iptables總結腳本

# 此腳本是本人學習iptables時編寫,並不適用其他機器,僅供學習參考

# 編寫策略: 
# 默認策略爲ACCEPT, 這裏我沒有更改默認策略,而是先允許指定的規則通過,然後再DROP所有tcp,udp,icmp請求
# 讀者可根據自己的習慣來編寫規則,比如默認禁止所有,再允許指定規則

iptables -F

# 允許所有已建立的連接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 記錄日誌 LOG 日誌記錄在/var/log/message中
好像只能記錄別人的icmp請求,不能記錄自己的icmp請求
iptables -A INPUT -p icmp -j LOG --log-prefix "---firewall log for icmp---"

# 下面兩條的含義爲允許本機到別人的icmp請求
iptables -A INPUT -p icmp --icmp-type 8 -s 192.168.49.65 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -s 192.168.49.65 -j ACCEPT

# 允許本機內部之間的通信
iptables -A INPUT -i lo -j ACCEPT

# iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 22 -m state --state NEW -j ACCEPT
#iptables -A INPUT -p tcp --dport 3306 -m state --state NEW -j ACCEPT
#iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

# 一些常用的顯示擴展
# multiport -- 離散多端口匹配擴展
#iptables -A INPUT -s 192.168.0.0/16 -p tcp -m multiport --dports 22,3306,80 -m state --state NEW -j ACCEPT

# iprange -- 指定一段連續的ip地址
iptables -A INPUT -p tcp -m iprange --src-range 192.168.49.0-192.168.49.100 -m multiport --dports 22,3306,80 -m state --state N
EW -j ACCEPT

# connlimit -- 連接數限制
# 一個客戶端只允許建立最多兩個連接
iptables -A INPUT -d 192.168.49.65 -p tcp --dport 80 -m connlimit ! --connlimit-above 2 -j ACCEPT

# limit -- 流量控制
# --limit RATE
# --limit-burst 7

# string -- 字符串控制
# --algo {bm|kmp}
# --string "STING"
iptables -A OUTPUT -s 192.168.49.65 -m string --algo kmp --string "xiao" -j DROP

# 允許指定的規則通過,然後禁止所有
iptables -A INPUT -p tcp -j DROP
iptables -A INPUT -p udp -j DROP
iptables -A INPUT -p icmp -j DROP

service iptables save
iptables-save > /etc/sysconfig/iptables.my
iptables-restore < /etc/sysconfig/iptables.my
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章