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
參考資料
相關網頁