【iptables】接続元IPごとのレート制限
問題
iptablesで、ソースIPごとに接続の頻度に制限をかけることはできるでしょうか。
答え
ipt_recent モジュール利用(iptables で ”-m recent” というオプションを使えるようになる)
例)587番ポートに同じIPアドレスから頻繁に接続が発生することがあるのを制限したい。
1分間に10件までに制限する。頻度が基準値を超えたら拒否する。
iptables -A INPUT -p tcp --dport 587 -m state --state NEW -m recent --rcheck --seconds 60 --hitcount 10 --name 587 --rsource -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 587 -m state --state NEW -m recent --set --name 587 --rsource -j ACCEPT
必要に応じて、事前にルール削除
iptables -F
ルール保存も忘れずに
service iptables save
メモ
ポート番号を22番にすれば、SSHのログイン試行ボット対策にも使えそうです。
hashlimit モジュールを使う手もあるようです。
コメント