bestlong 怕失憶論壇
標題:
iptables 防火牆規則設定檔說明
[打印本頁]
作者:
bestlong
時間:
2007-11-22 13:32
標題:
iptables 防火牆規則設定檔說明
FC 的 iptables 防火牆設定會存放在 /etc/sysconfig/iptables 中
[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
複製代碼
逐項說明如下
使用 setup 設定規則 filter table 中除了預設的 INPUT 、 OUTPUT 及 FORWARD 外再自行建立了 RH-Firewall-1-INPUT。
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
複製代碼
將 INPUT 及 FORWARD 導向 RH-Firewall-1-INPUT 中。
註:INPUT是指進入本機;FORWARD是指由一個介面流向另一個介面(例:eth0 <--> eth1)。
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
複製代碼
完全接受 loopback interface 的封包(主機可以存取本身的所有服務項目)
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
複製代碼
允許主機可以接受 ping 等 icmp 封包
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
複製代碼
下面這三行與ipv6 有關,(224.0.0.251 is a multicast address ... you can disable it if you don't want to use mdns ...)
可以刪除
-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
複製代碼
網際網路印表機服務
631/tcp # Internet Printing Protocol
631/udp # Internet Printing Protocol
-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
複製代碼
允許連線出去後對方主機回應進來的封包(包括主動式與被動式的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 服務即可載入指定的模組!
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
複製代碼
允許連線服務的項目(tcp/22、tcp/80、tcp/25、tcp/100、tcp/53、udp/53等)
-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
複製代碼
除了允許的服務外其它回應 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
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
複製代碼
作者:
jllua
時間:
2010-10-22 16:22
謝謝大大,解釋的很清楚受益良多,
可是我發現一個問題,當我開啟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是無法檔的
煩請大大不吝指教
作者:
bestlong
時間:
2010-10-27 09:21
回復
2#
jllua
要確認修改設定後有重新啟動 iptables 才會生效, 還有測試時要看你是從本機或是遠端做連線測試, 這樣的條件是不一樣的.
作者:
jllua
時間:
2010-11-1 17:14
iptables 有restart
mail是以gmail測試寄一封信至mail server的, 雖然 110port reject ,可是還是收的到耶
不知bestlong大大可否測一下
感恩
作者:
bestlong
時間:
2010-12-10 13:19
所提供的資料不足以判斷確切原因
可以的話請將 iptables 的設定內容列出,相關設定檔位置大概如下列表:
/etc/sysconfig/iptables
/etc/sysconfig/iptables-config
或是列出目前設定狀態,可以用指令:
[root at bestlong.idv.tw] iptables -L
以及
[root at bestlong.idv.tw] iptables -L -t nat
歡迎光臨 bestlong 怕失憶論壇 (http://www.bestlong.idv.tw/)
Powered by Discuz! X1.5