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


參考資料

相關網頁

arrow
arrow
    全站熱搜

    安德森 發表在 痞客邦 留言(0) 人氣()