iptablesでstringモジュールを使う

知らなかったのだけど、iptablesのstringモジュールを使うと文字列で色々処理することができるらしいです。

例えば”/hoge.php”というアクセスを遮断したい場合。
通常Webサーバーや.htaccessなどを使うことが多いと思いますが、iptablesでも遮断することができました。

こんな感じで設定できます。

[code lang=”shell”]
$ sudo /sbin/iptables -I INPUT -m string –algo bm –string "/hoge.php" -j DROP
[/code]

保存しておきたければ、下記を実行すると良いと思います。

[code lang=”shell”]
$ sudo /sbin/service iptables save
[/code]

設定後はこんな風になります。

[code lang=”shell”]
% sudo iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all — 0.0.0.0/0 0.0.0.0/0 STRING match "/hoge.php" ALGO name bm TO 65535
[/code]

実際にこれで/hoge.phpへアクセスしたところ、タイムアウトして、接続できませんでした。
他にも使い所がありそうなので使っていきたいですね。