iptables 防火牆規則設定檔說明
FC 的 iptables 防火牆設定會存放在 /etc/sysconfig/iptables 中[code][root at www.bestlong.idv.tw ~] # more /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
[/code]逐項說明如下
使用 setup 設定規則 filter table 中除了預設的 INPUT 、 OUTPUT 及 FORWARD 外再自行建立了 RH-Firewall-1-INPUT。[code]
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
[/code]將 INPUT 及 FORWARD 導向 RH-Firewall-1-INPUT 中。
註:INPUT是指進入本機;FORWARD是指由一個介面流向另一個介面(例:eth0 <--> eth1)。[code]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
[/code]完全接受 loopback interface 的封包(主機可以存取本身的所有服務項目)[code]
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
[/code]允許主機可以接受 ping 等 icmp 封包[code]
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
[/code]下面這三行與ipv6 有關,(224.0.0.251 is a multicast address ... you can disable it if you don't want to use mdns ...)
可以刪除[code]
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
[/code]網際網路印表機服務
631/tcp # Internet Printing Protocol
631/udp # Internet Printing Protocol[code]
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
[/code]允許連線出去後對方主機回應進來的封包(包括主動式與被動式的ftp連線)。
當主機對外要建立連線時,遠端主機勢必也要回應封包到原主機,所以回應的封包是要被允許的。
-m state --state ESTABLISHED 扮演很重要角色,那就是允許連線出去後對方主機回應進來的封包。
RELATED 配合 ip_conntrack_ftp (ip_nat_ftp)模組
可以針對連入與連外目的 port 為 21 的 ftp 協定命令溝通進行攔截
在 /etc/sysconfig/iptables-config 中加入
IPTABLES_MODULES="ip_conntrack_ftp"
重新啟動 iptables 服務即可載入指定的模組![code]
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[/code]允許連線服務的項目(tcp/22、tcp/80、tcp/25、tcp/100、tcp/53、udp/53等)[code]
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
[/code]除了允許的服務外其它回應 icmp封包 「icmp-host-prohibited」
每個type所對應的訊息如下:
icmp-net-unreachable => Destination Net Unreachable
icmp-host-unreachable => Destination Host Unreachable
icmp-port-unreachable => Destination Port Unreachable
icmp-proto-unreachable => Destination Protocol Unreachable
icmp-net-prohibited => Dest Unreachable, Bad Code: 9
icmp-host-prohibited => Dest Unreachable, Bad Code: 10[code]
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
[/code] 謝謝大大,解釋的很清楚受益良多,
可是我發現一個問題,當我開啟pop3/imap時會開啟110port/143port,我防火牆將這二port做Reject時,或不新增這二port時,一樣都可以收到。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j Reject
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j Reject
我試tcp:80 tcp:22 時都ok
是否這二port在iptables是無法檔的
煩請大大不吝指教 [b]回復 [url=http://www.bestlong.idv.tw/redirect.php?goto=findpost&pid=1271&ptid=561]2#[/url] [i]jllua[/i] [/b]
要確認修改設定後有重新啟動 iptables 才會生效, 還有測試時要看你是從本機或是遠端做連線測試, 這樣的條件是不一樣的. iptables 有restart
mail是以gmail測試寄一封信至mail server的, 雖然 110port reject ,可是還是收的到耶
不知bestlong大大可否測一下
感恩 所提供的資料不足以判斷確切原因
可以的話請將 iptables 的設定內容列出,相關設定檔位置大概如下列表:
/etc/sysconfig/iptables
/etc/sysconfig/iptables-config
或是列出目前設定狀態,可以用指令:
[root at bestlong.idv.tw] iptables -L
以及
[root at bestlong.idv.tw] iptables -L -t nat
頁:
[1]