建立iptables.rule
[root@localhost ~]#vim iptables.rule
#!/bin/bash
# 取消防火牆:
# iptables -F
# iptables -X
EXTIF="eth1" # 這個是可以連上 Public IP 的網路介面,也可能是 ppp0
export EXTIF
# 1. 先設定好核心的網路功能:
# 開啟 TCP Flooding 的 DoS 攻擊抵擋機制,但這個設定不適合 loading 已經很高的主機!!!
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# 取消 ping 廣播的回應;
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# 開啟逆向路徑過濾,以符合 IP 封包與網路介面的設定;
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $i
done
# 開啟記錄有問題的封包
for i in /proc/sys/net/ipv4/conf/*/log_martians; do
echo "1" > $i
done
# 取消來源路由,這個設定值是可以取消的;
for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo "0" > $i
done
# 取消重新宣告路徑的功能。
for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo "0" > $i
done
# 取消傳送重新宣告路徑的功能。
for i in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo "0" > $i
done
# 2. 清除規則、設定預設政策及開放 lo 與相關的設定值
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 3.預設抵擋的主機
# iptables -A INPUT -i $EXTIF -s 192.168.1.1 -j DROP
# 4.預設開放的主機
# iptables -A INPUT -i $EXTIF -s 192.168.1.0/24 -j ACCEPT
# 4-1.撥接ADSL時,開放內部的主機
#iptables -A INPUT -i eth0 -j ACCEPT
# 5. 允許某些類型的 ICMP 封包進入
AICMP="0 3 3/4 4 11 12 14 16 18"
for tyicmp in $AICMP
do
iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
done
# 6. 允許某些服務的進入
# iptables -A INPUT -p TCP -i $EXTIF --dport 21 --sport 1024:65534 -j ACCEPT # FTP
# iptables -A INPUT -p TCP -i $EXTIF --dport 65400:65410 --sport 1024:65534 -j ACCEPT #FTP 被動式連線埠
# iptables -A INPUT -p TCP -i $EXTIF --dport 22 --sport 1024:65534 -j ACCEPT # SSH
# iptables -A INPUT -p TCP -i $EXTIF --dport 25 --sport 1024:65534 -j ACCEPT # SMTP
# iptables -A INPUT -p UDP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS
# iptables -A INPUT -p TCP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS
# iptables -A INPUT -p TCP -i $EXTIF --dport 80 --sport 1024:65534 -j ACCEPT # WWW
# iptables -A INPUT -p TCP -i $EXTIF --dport 110 --sport 1024:65534 -j ACCEPT # POP3
# iptables -A INPUT -p TCP -i $EXTIF --dport 443 --sport 1024:65534 -j ACCEPT # HTTPS
# 最終將這些功能儲存下來吧!
/etc/init.d/iptables save
寫入rc.local 僅是預防萬一而已
[root@localhost ~]# vim /etc/rc.d/rc.local
# 1. Firewall /路徑/iptables.rule
近期迴響