iptables
記述内容 [#x7eb98d1]
SSHなどでポート開放を行うと、ブルートフォースアタックを受けることになり、公開鍵認証でない場合はいずれか侵入される不安があります。
その際に有効なのが、iptablesによりhashlimitを使用して接続元からの接続回数にて接続を拒否する方法です。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m hashlimit --hashlimit-name ssh_hashlimit --hashlimit-mode srcip --hashlimit 10/m --hashlimit-burst 10 --hashlimit-htable-expire 120000 -j ACCEPT
--hashlimit-name ssh_hashlimit <-- hashlimitの設定の名称
--hashlimit-mode srcip <-- 制限元を接続元のIPアドレスを指定
--hashlimit 10/m <-- 1分間に10回(10/hourは1時間に10回)
--hashlimit-burst 10 <-- 同一ホストからの最大接続回数を10回
--hashlimit-htable-expire 120000 <-- 単位はmsec。120秒。
管理ファイル [#b184a703]
hashlimitの設定テーブルは下記ディレクトリのファイルに保存されています。
# ls /proc/net/ipt_hashlimit/
設定例 [#y511c563]
-A INPUT -p tcp -m multiport --dport 80,443 -m state --state NEW -m hashlimit --hashlimit-name web_limit --hashlimit 20/m --hashlimit-burst 200 --hashlimit-mode srcip --hashlimit-htable-expire 300000 -j ACCEPT