iptables的過濾規(guī)則
iptables的過濾規(guī)則:
# 過濾表規(guī)則
- *filter
# 默認(rèn)徹略
- :FORWARD DROP [ ]
- :INPUT DROP [ ]
- :OUTPUT ACCEPT [ ]
# 定義新鏈
- -N ICMP_FORWARD
- -N TCP_FORWARD
- -N UDP_FORWARD
- -N ICMP_INPUT
- -N TCP_INPUT
- -N UDP_INPUT
- # Fix a bug
- -A OUTPUT -p icmp -m state --state INVALID -j DROP
# 以下是FORWARD鏈的規(guī)則
# 若是ICMP協(xié)議則跳到 ICMP_FORWARD
- -A FORWARD -p icmp -j ICMP_FORWARD
# 若是TCP協(xié)議則跳到 TCP_FORWARD
- -A FORWARD -p tcp -j TCP_FORWARD
# 若是UDP協(xié)議則跳到 UDP_FORWARD
- -A FORWARD -p udp -j UDP_FORWARD
# 允許碎片通過的速率200個(gè)/s,從200開始計(jì)數(shù)
- -A FORWARD -f -m limit --limit 200/s --limit-burst 200 -j ACCEPT
# 不匹配FORWARD鏈的所有規(guī)則,丟棄數(shù)據(jù)包,結(jié)束FORWARD鏈
- -A FORWARD -j DROP
# 以下是FORWARD鏈中針對ICMP協(xié)議的規(guī)則
# 從內(nèi)網(wǎng)到外網(wǎng)的放行
- -A ICMP_FORWARD -p icmp -s 192.168.0.0/24 -i eth0 -o ppp+ -j ACCEPT
# 從外網(wǎng)進(jìn)來的回應(yīng)包放行
- -A ICMP_FORWARD -p icmp -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT
# 丟棄所有不匹配的ICMP數(shù)據(jù)包,結(jié)束FORWARD鏈
- -A ICMP_FORWARD -p icmp -j DROP
# 以下是FORWARD鏈中針對TCP協(xié)議的規(guī)則
# 允許內(nèi)網(wǎng)1024以上的端口連接外網(wǎng)
- -A TCP_FORWARD -p tcp -s 192.168.0.0/24 -m tcp --sport 1024: -i eth0 -o ppp+ -j ACCEPT
# 允許內(nèi)網(wǎng)進(jìn)行主動式的FTP
- -A TCP_FORWARD -p tcp -m tcp --sport 21 --dport 1024: -m state --state ESTABLISHED -i ppp+ -j ACCEPT
- -A TCP_FORWARD -p tcp -m tcp --sport 20 --dport 1024: -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT
# 允許外網(wǎng)進(jìn)來的回應(yīng)包通過
- -A TCP_FORWARD -p tcp -m state --state ESTABLISHED -m tcp --dport 1024: -i ppp+ -j ACCEPT
# 丟棄所有不匹配的TCP數(shù)據(jù)包,結(jié)束FORWARD鏈
- -A TCP_FORWARD -p tcp -j DROP
# 以下是FORWARD鏈中針對UDP協(xié)議的規(guī)則
# 允許內(nèi)網(wǎng)1024以上的端口連接外網(wǎng)
- -A UDP_FORWARD -p udp -s 192.168.0.0/24 -m udp --sport 1024: -i eth0 -o ppp+ -j ACCEPT
# 允許外網(wǎng)中指明的DNS服務(wù)器進(jìn)行域名解析
- -A UDP_FORWARD -p udp -s 202.96.96.68 -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT
- -A UDP_FORWARD -p udp -s 202.96.*.* -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT
# 開放IRC OICQ 端口
- -A UDP_FORWARD -p udp -m multiport --source-port 4000,8000 -m udp --dport 1024: -i ppp+ -j ACCEPT
# 允許從外網(wǎng)進(jìn)來的UDP回應(yīng)包通行
- -A UDP_FORWARD -p udp -m state --state ESTABLISHED,RELATED -m udp --dport 1024: -i ppp+ -j ACCEPT
# 丟棄所有不匹配的UDP數(shù)據(jù)包,結(jié)束FORWARD鏈
- -A UDP_FORWARD -p udp -j DROP
# 以下開始是對網(wǎng)關(guān)服務(wù)器的匹配規(guī)則
# 允許數(shù)據(jù)包進(jìn)入本地回環(huán)接口
- -A INPUT -p all -i lo -j ACCEPT
# 若是ICMP協(xié)議則跳到ICMP_INPUT進(jìn)行規(guī)則匹配
- -A INPUT -p icmp -j ICMP_INPUT
# 若是TCP協(xié)議則跳到TCP_INPUT進(jìn)行規(guī)則匹配
- -A INPUT -p tcp -j TCP_INPUT
# 若是UDP協(xié)議則跳到UDP_INPUT進(jìn)行規(guī)則匹配
-A INPUT -p udp -j UDP_INPUT
# 允許碎片通過的速率200個(gè)/s,從200開始計(jì)數(shù)
- -A INPUT -f -m limit --limit 200/s --limit-burst 200 -j ACCEPT
# 不匹配INPUT鏈的所有規(guī)則,丟棄數(shù)據(jù)包,結(jié)束INPUT鏈
- -A INPUT -j DROP
# 以下是INPUT鏈中針對ICMP協(xié)議的規(guī)則
# 允許從內(nèi)網(wǎng)來的ICMP數(shù)據(jù)包
- -A ICMP_INPUT -p icmp -i eth0 -j ACCEPT
# 允許從外網(wǎng)來的ICMP回應(yīng)包通行
- -A ICMP_INPUT -p icmp -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT
# 丟棄所有不匹配的ICMP數(shù)據(jù)包,結(jié)束INPUT鏈
- -A ICMP_INPUT -p icmp -j DROP
# 以下是INPUT鏈中針對TCP協(xié)議的規(guī)則
# 對內(nèi)網(wǎng)機(jī)器提供 http https 網(wǎng)上鄰居 透明代理服務(wù)
- -A TCP_INPUT -p tcp -s 192.168.0.0/24 -m multiport --destination-port 80,443,137,138,139,8080 -i eth0 -j ACCEPT
# 允許服務(wù)器以主動方式連接外網(wǎng)的FTP服務(wù)器
- -A TCP_INPUT -p tcp -m tcp --sport 21 --dport 1024: -m state --state ESTABLISHED -i ppp+ -j ACCEPT
- -A TCP_INPUT -p tcp -m tcp --sport 20 --dport 1024: -m state --state ESTABLISHED,RELATED -i ppp+ -j ACCEPT
# 提供 ssh smtp pop3 http https 服務(wù)
- -A TCP_INPUT -p tcp -m multiport --destination-port 22,25,110,80,443 -j ACCEPT
# 拒絕外網(wǎng)主動連接本服務(wù)器
- -A TCP_INPUT -p tcp -m tcp --syn -i ppp+ -j DROP
# 允許進(jìn)來的回應(yīng)包通過
- -A TCP_INPUT -p tcp -m state --state ESTABLISHED -m tcp --dport 1024: -j ACCEPT
# 丟棄所有不匹配的TCP數(shù)據(jù)包,結(jié)束INPUT鏈
- -A TCP_INPUT -p tcp -j DROP
# 以下是INPUT鏈中針對UDP協(xié)議的規(guī)則
# 允許外網(wǎng)中指明的DNS服務(wù)器進(jìn)行域名解析
- -A UDP_INPUT -p udp -s 202.96.96.68 -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT
- -A UDP_INPUT -p udp -s 202.96.*.* -m udp --sport 53 --dport 1024: -i ppp+ -j ACCEPT
# 為內(nèi)網(wǎng)的機(jī)器提供DNS和SAMBA服務(wù)
- -A UDP_INPUT -p udp -s 192.168.0.0/24 -m multiport --destination-port 53,137,138,139 -i eth0 -j ACCEPT
# 允許服務(wù)器作為samba client
- -A UDP_INPUT -p udp -s 192.168.0.0/24 -m udp --sport 137:139 --dport 1024: -i eth0 -j ACCEPT
# 允許進(jìn)來的回應(yīng)包通過
- -A UDP_INPUT -p udp -m state --state ESTABLISHED,RELATED -m udp --dport 1024: -j ACCEPT
# 為內(nèi)網(wǎng)的機(jī)器提供DHCP服務(wù)
- -A UDP_INPUT -p udp -m udp --sport 68 --dport 67 -i eth0 -j ACCEPT
# 丟棄所有不匹配的UDP數(shù)據(jù)包,結(jié)束INPUT鏈
- -A UDP_INPUT -p udp -j DROP
- COMMIT
# 路由表規(guī)則
*nat
# 默認(rèn)徹略
- :PREROUTING ACCEPT [ ]
- :POSTROUTING ACCEPT [ ]
- :OUTPUT ACCEPT [ ]
# 為內(nèi)網(wǎng)機(jī)器使用squid透明代理進(jìn)行端口重定向
- -A PREROUTING -i eth0 -p tcp -d ! 192.168.0.1 -m tcp --dport 80 -j REDIRECT --to-ports 8080
# 對內(nèi)網(wǎng)機(jī)器應(yīng)用IP偽裝
- -A POSTROUTING -o ppp+ -j MASQUERADE
- COMMIT
【編輯推薦】