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