当前位置: 主页 > 服务器技术 > 安全防护 > iptables limit 参数

iptables limit 参数

时间:2009-9-17来源:互联网 点击:
限制特定封包傳入速度 
限制特定埠口連入頻率 
iptables Log 記錄參數備忘 
自定 Chain 使用備忘 
防治 SYN-Flood 碎片攻擊 
限制 ping (echo-request) 傳入的速度

限制前, 可正常每 0.2 秒 ping 一次

ping your.linux.ip -i 0.2

限制每秒只接受一個 icmp echo-request 封包

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j Drop

--limit 1/s 表示每秒一次; 1/m 則為每分鐘一次

--limit-burst 表示允許觸發 limit 限制的最大次數 (預設 5)

再以每 0.2 秒 ping 一次, 得到的回應是每秒一次

ping your.linux.ip -i 0.2

限制 ssh 連入頻率

建立自訂 Chain, 限制 tcp 連線每分鐘一次, 超過者觸發 Log 記錄 (記錄在 /var/log/messages)

iptables -N ratelimit
iptables -A ratelimit -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A ratelimit -p tcp --syn -m limit --limit 1/m --limit-burst 1 -j ACCEPT
iptables -A ratelimit -p tcp -j LOG --log-level "NOTICE" --log-prefix "[RATELIMIT]"
iptables -A ratelimit -p tcp -j Drop

引用自訂 Chain, 限制 ssh (tcp port 22) 連入頻率

iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT (特定 IP 來源不受限制)
iptables -A INPUT -p tcp --dport 22 -j ratelimit

參考資料: Mike‘s Blog - How to limit attack attempts in Linux

sshd_config 設定備忘:

LoginGraceTime 30 密碼輸入時限為 30 秒 
MaxAuthTries 2 最多只能輸入 3 次密碼 
同理可證

iptables -N pinglimit
iptables -A pinglimit -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A pinglimit -j Drop

iptables -A INPUT -p icmp --icmp-type echo-request -j pinglimit

亦可達到每秒只接受一個 echo-request 封包

補充: 清除自訂 Chain

iptables -L -n --line-number
iptables -D INPUT n
iptables -F ratelimit
iptables -X ratelimit

防治 SYN-Flood 碎片攻擊

iptables -N syn-flood
iptables -A syn-flood -m limit --limit 100/s --limit-burst 150 -j RETURN
iptables -A syn-flood -j Drop

iptables -I INPUT -j syn-flood

模擬攻擊

wget http://www.xfocus.net/tools/200102/naptha-1.1.tgz
wget ftp://rpmfind.net/linux/freshrpms/redhat/7.0/libnet/libnet-1.0.1b-1.src.rpm
tar -zxf naptha-1.1.tgz
rpmbuild --recompile libnet-1.0.1b-1.src.rpm
cp -r /var/tmp/libnet-buildroot/usr/* /usr/local/
cd naptha-1.1
make

./synsend your.linux.host.ip 80 local.host.eth0.ip 0.1

若成功抵擋, 不久後會出現 Can‘t send packet!: Operation not permitted 的訊息

_______________________________________________________________________

限制SYN频率

目前比较有效的是对SYN的频率和次数进行限制,这样最大限度的控制了单个IP地址发动攻击的能力。例如将SYN请求的次数限制在30次每分钟,系统默认是5次/秒可以将burst从默认的5个降低到2个。


/sbin/iptables -A INPUT -p tcp -tcp-flags SYN,ACK,FIN,RST SYN -m
limit --limit 30/m --limit-burst 2 -j ACCEPT
站长资讯网
. TAG: IPTABLES LIMIT参数
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言