title icon 雷射印表機資訊網
menu_top_background
:::
IP FireWall
:::

IP FireWall

1.重新編譯Kernel,加入以下敘述:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_DEFAULT_TO_ACCEPT(註1)

註1:IPFW預設的規則是deny ip from any to any,因此,如果編譯過核心之後重新開機,你將會被阻擋在防火牆之外﹔有兩種方法可以避免這種情形:第一種,在/etc/rc.conf中加入firewall_type=open的敘述,日後再將規則寫入/etc/rc.firewall中,第二種則是在Kernel中加入options IPFIREWALL_DEFAULT_TO_ACCEPT的敘述,這會改變IPFW的預設規則,由deny ip from any to any更改為allow ip from any to any。

2.IPFW防火牆規則
ipfw [-N] command [index] action [log] protocol addresses [options]

-N:列出解析的位址與服務名稱

command:
add,增加一項規則至firewall/accounting規則列表
del,刪除一項規則至firewall/accounting規則列表

index:如果有指定index(編號)值,將會被指定紀錄在規則列表中﹔否則將會置於編號100之後的位置,但注意,並不包含預設規則:rule 65535, deny

action:
rejetct,丟棄封包,並送出一個ICMP主機或無法到達的封包給資料來源
allow,允許封包通過,別名:pass、permit、accept同義
deny,丟棄封包,並且資料來源將不會得到一個ICMP的訊息,亦即表示封包從未到達目的地
count,在此項規則中,將不會allow/deny封包,僅僅只是更新封包計數器,並對下一個規則列表進行搜尋

log:在編譯核心時,如果有加上IPFIREWALL_VERBOSE,則log(紀錄)會將符合規則的紀錄輸出至system console

protocol:
all,指所有封包
icmp,指icmp封包
tcp,指tcp封包
udp,指udp封包

address:完整的address,包含address/mask [port] to address/mask [port] [via interface]
address/mask可以是address、address/mask-bits、address:mask-pattern,如:192.168.0.1、192.168.0.1/24、any(指的是any IP address)
port,使用者可以只指定protocols(UDP、TCP)所支援的port﹔via可以是ip位置或是local主機ip介面卡上的domain name,亦可以是介面卡的名稱(如fxp0),如:PPP*包含kernel中所有的ppp介面﹔

options:
frag,如果封包不是資料串的第一片段,則檢查
in,檢查進入的封包
out,檢查流出的封包
ipoptions spec,
established,
setup,
tcpflags flags,
icmptypes types,

3.IPFW指令
ipfw [-a] [-c] [-d] [-e] [-t] [-N] [-S] list

-a:列出封包計數器,這也是唯一可以看見封包計數器的方式

-c:簡潔的方式列出防火牆的規則

-d:除了列出靜態規則之外,並列出動態規則

-e:如果指定了-d的變數,也會列出失效的規則

-t:列出最後符合防火牆規則的次數﹔此處列出的方式與ipfw的語法不同

-N:試圖解析所給的位址與服務

-S:列出每一項規則的設定,如果這個旗標沒有被指定,失效的規則將不會被列出

menu_bottom_background

::: copy right: 苗栗縣政府教育處資訊中心
建議使用瀏覽器Firefox或Chrome