トップ 最新 追記

ORCA愉快日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|10|11|12|
2012|01|02|09|
2013|04|

2013-04-27 ログ監視ベースのネットワークフィルタリングツールのメモ

_ [Linux] ログ監視ベースのネットワークフィルタリングツールのメモ

fail2ban、denyhosts、blockhostsなどといった、ログを監視してパケットフィルタリングによるアクセス制限を行うツールについて、主にDebian GNU/Linuxを対象として調査したものです。(2013年4月27日時点)

いずれのソフトも、/var/log/auth.logなどのログを監視して、指定されたパターンのアクセスエラーが一定回数を超えるようであれば、iptablesやTCP Wrapperなどを利用してアクセス制限を行うツールです。いわゆるDoSアタックやブルートフォースアタックなどの攻撃の影響を抑えることができます。また、いずれもPythonで実装されており、アクセス制限を行うログパターンなどの設定は、正規表現を利用して簡単に記述できます。

下記の中でもfail2banが人気で、DebianのPopularity contest(人気コンテスト)では、コンテスト参加者のうちfail2banのインストール数が11096、denyhostsのインストール数が2821と4倍近く開いています。これは、ssh/apache/vsftpd/postfixといった色々なサービスを対象として監視できるfail2banと、sshに特化してシンプルに監視できるdenyhostsに人気が分かれており、オールマイティなfail2banのほうが人気なようです。blockhostsはDebianパッケージになっていませんが、導入はそれほど難しくないため、IPv6でも監視したい場合に便利でしょう。

ログ監視ベースのネットワークフィルタリングツール一覧
fail2ban denyhosts blockhosts
対応サービス 色々なサービス(ssh/apache等) sshのみ sshd/proftpd等
フィルタリング iptables/TCP Wrapper等 TCP Wrapper iptables/TCP Wrapper
実装言語 Python Python Python
IPv6対応 ○(blockhosts 2.7.0以降)
Debianパッケージ ○ あり ○ あり ☓ なし
□ 参考URL Fail2ban Wiki http://www.fail2ban.org/wiki/index.php/Main_Page Wikipedia - Fail2ban http://en.wikipedia.org/wiki/Fail2ban sourceforge - denyhosts http://denyhosts.sourceforge.net/ Wikipedia - DenyHosts http://en.wikipedia.org/wiki/DenyHosts ACZoom - BlockHosts http://www.aczoom.com/blockhosts

_ [Linux] sedで指定行を抽出する

シェルスクリプト等で指定した行を抽出するのに、head/tailコマンドの組み合わせではなく、sed/awkを利用すると良い。よく忘れるのでメモ。

□ sedの利用例
---------------------------------------
* test.txtの3行目を出力
  $ sed -n '3p' test.txt
* test.txtの3-5行目を出力
  $ sed -n '3,5p' test.txt
* test.txtの3-5行目を削除して出力
  $ sed '3,5d' test.txt
---------------------------------------
  
* 解説
man sedを実行して参照すること
  
+ コマンドオプション
  -n, --quiet, --silent
     自動的にパターンスペースを出力するのを止める
+ アドレス
  アドレス範囲は addr1,addr2 形式で指定する。
+ コマンド
  p :現在のパターンスペースを出力する
  d :パターンスペースを削除して、次の処理を開始する
□ awkの利用例
---------------------------------------
* test.txtの3行目を出力
  $ awk 'NR==3' test.txt
* test.txtの3-5行目を出力
  $ awk 'NR==3,NR==5' test.txt
---------------------------------------
  
* 解説
man awkを実行して参照すること
+ 組み込み変数
  NR :現在までに読み込んだ入力レコード数の合計。

トップ 最新 追記