防止 sync flood 攻擊的設定:
iptables -N synfoold iptables -A synfoold -p tcp --syn -m limit --limit 1/s -j RETURN iptables -A synfoold -p tcp -j REJECT --reject-with tcp-reset iptables -A INPUT -p tcp -m state --state NEW -j synfoold |
測試過一個很忙碌的站臺用這個設定,老實說并不好....
所以也許可以調(diào)整時間與次數(shù)的觸發(fā)值。
防止 Ping of Death :
iptables -N ping iptables -A ping -p icmp --icmp-type echo-request -m limit --limit \ 1/second -j RETURN iptables -A ping -p icmp -j REJECT iptables -I INPUT -p icmp --icmp-type echo-request -m state --state NEW \ -j ping |
或者是直接設定主機不響應 echo request 。
/proc/sys/net/ipv4/icmp_echo_ignore_all |
iptables 機制是逐條檢查...
但是假設當一個封包要通過時,第一條規(guī)則已經(jīng)放行通過,封包的命運已經(jīng)定下來,剩余規(guī)則就不會再檢查,就算剩余規(guī)則中有要擋下這個封包時也無效!
例:
規(guī)則 1 : 放行所有 80 port 的封包
規(guī)則 2 : 拒絕 210.58.221.241 80 port 封包
規(guī)則 3 ........
像這樣子時,根本無法擋下 210.58.221.241 80 port 封包...
因為第 1 條規(guī)則已經(jīng)先放行所有 80 port 的封包了,所以該封包早就先通過了......
正確的寫法應該將規(guī)則 1 與規(guī)則 2 互換.....
※ 引述《AceLan (小蛋蛋)》之銘言:
> [root@babu netfilter]# pwd > /lib/modules/2.4.13-7mdk/kernel/net/ipv4/netfilter > [root@babu netfilter]# ls > ip_conntrack.o.gz ipchains.o.gz ipt_mark.o.gz > ip_conntrack_ftp.o.gz ipfwadm.o.gz ipt_multiport.o.gz > ip_conntrack_h323.o.gz ipt_LOG.o.gz ipt_owner.o.gz > ip_conntrack_irc.o.gz ipt_MARK.o.gz ipt_state.o.gz > ip_conntrack_talk.o.gz ipt_MASQUERADE.o.gz ipt_tcpmss.o.gz > ip_nat_ftp.o.gz ipt_MIRROR.o.gz ipt_tos.o.gz > ip_nat_h323.o.gz ipt_REDIRECT.o.gz ipt_unclean.o.gz > ip_nat_irc.o.gz ipt_REJECT.o.gz iptable_filter.o.gz > ip_nat_talk.o.gz ipt_TCPMSS.o.gz iptable_mangle.o.gz > ip_queue.o.gz ipt_TOS.o.gz iptable_nat.o.gz > ip_tables.o.gz ipt_limit.o.gz > ip_vs/ ipt_mac.o.gz |
> (http://netfilter.samba.org/)
> 只是很好奇各個模塊的功能 有 ip_ 開頭 ipt_ & iptable_ 開頭的
> 這些模塊有什么不同呢?
iptables_ 開頭,是給 iptables -t xxxx 的。比方:
iptables -t nat ...
iptables -t mangle .....
ipt_ 開頭的,是 -j xxxx 使用的。比方:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT ....
ip_conntrack 開頭的是一些紀錄/追蹤通訊協(xié)議的運作,然后適時修改封包
內(nèi)容讓特定通訊協(xié)議可以正常工作。
ip_nat_ 開頭的是解決一些常見服務在 nat 環(huán)境可能無法使用的情況。
ip_conntrack* 與 ip_nat_* 這些 module 一般要使用 modprobe 來加載。
ip_tables 是主要提供 iptables 功能的核心。ip_queue 是可以讓封包過濾
傳輸丟給使用層的應用程序來處理。