iptables 模組 recent 防止字典暴力、port scan 攻擊

iptables 模塊 recent 防止字典暴力、port scan ***

http://cha.homeip.net/blog/archives/2008/03/iptables_recent.html
http://hahahaha.cc/?p=76
http://www.ducea.com/2006/06/28/using-iptables-to-block-brute-force-attacks/
http://www.snowman.net/projects/ipt_recent/
解決具體問題:限制 ssh 猜密碼,對每個 IP 允許三分鐘內允許有 5 次 TCP 的 NEW 請求
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH --update --seconds 180 --hitcount 10 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name ROUTER-SSH --set -j ACCEPT

iptables recent module 操作備忘
?    同一個 IP 來源在一個小時內只允許建立(或嘗試)五次 SSH 聯機
?    建立解除封鎖的後門
?    /proc/net/ipt_recent/* 清單
同一個 IP 來源在一個小時內只允許建立(或嘗試)三次 SSH 聯機
iptables -A INPUT -p tcp --dport 22 --syn -m recent --rcheck --seconds 3600 --hitcount 3 --rttl --name SSH --rsource -j DROP
iptables -A INPUT -p tcp --dport 22 --syn -m recent --set --name SSH --rsource -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
注: 請注意 rule 順序: 先設置 recent 條件 -j DROP, 再設置 recent --set -j ACCEPT
建立解除封鎖的後門
#留下解鎖的記錄
iptables -A INPUT -p tcp --dport 1600 --syn -j LOG --log-prefix "SSH_CONN_UNLOCKED "
iptables -A INPUT -p tcp --dport 1600 --syn -m recent --remove --name SSH --rsource -j REJECT --reject-with icmp-host-unreachable
使用方法: telnet linux.host 1600
注: 以上 tcp 1600 port 可以改成任一個未使用的 tcp port
/proc/net/ipt_recent/* 清單
若未設定 --name 則預設爲 DEFAULT
#把某 IP 加入 DEFAULT 記錄清單
echo xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT
#把某 IP 從 DEFAULT 清單移除
echo -xx.xx.xx.xx > /proc/net/ipt_recent/DEFAULT
#清空 DEFAULT 清單
echo clear > /proc/net/ipt_recent/DEFAULT

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章