此文由北京北大青鳥學校學術部提供:
擴展閱讀:
北京北大青鳥學校:Linux的iptables入門教程--設置靜態防火墻之一
北京北大青鳥學校:Linux的iptables入門教程--設置靜態防火墻 之二
北京北大青鳥學校:Linux的iptables入門教程--設置靜態防火墻 之三
北京北大青鳥學校:Linux的iptables入門教程--設置靜態防火墻 之四
12、這個教程我想到此就結束了,其中有很多東西在這里沒有提到,如ip偽裝,端口轉發,對數據包的記錄功能。還有一個很重要的東西就是:iptables處理數據包的流程.在這里我想告訴你,你設置的過濾規則的順序很重要,在此不宜詳細介紹,因為這樣一來,這個教程就會拘泥于細節。(北京北大青鳥學校)
最后,我把完整的腳本寫出來如下,你只要修改常量定義部分,就能表現出較大的伸縮性^_^
#!/bin/bash
# This is a script
# Edit by lisi(北京北大青鳥學校)
# establish a static firewall
# define const here
Open_ports="80 25 110 10" # 自己機器對外開放的端口
Allow_ports="53 80 20 21" # internet的數據可以進入自己機器的端口
#init
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
# The follow is comment , for make it better
# iptables -P INPUT DROP
iptables -A INPUT -i ! ppp0 -j ACCEPT
# define ruler so that some data can come in. (北京北大青鳥學校)
for Port in "Allow_ports" ; do
ptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT
done
for Port in "Open_ports" ; do
iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT
done
# This is the last ruler , it can make you firewall better
iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable
(北京北大青鳥學校)