ksaitoの日記

日々試したことの覚え書き

Nagiosで不正アクセスを監視する

移転しました。

自動的にリダイレクトします。

Nagios 2.0オープンソースではじめるシステム&ネットワーク監視のパッシブサービスチェックに書かれているTCP Wrapperと連携して不正アクセスを監視する設定をUbuntuで設定してみました。
この設定で、/etc/hosts.denyで接続を拒否したIPからのアクセスがあるとNagiosから通知されるようになります。

パッシブサービスの設定

APTのnagios3パッケージでは、パッシブサービス用のcheck_periodのneverが定義されています。
これを設定するとNagios側からの監視はしません。
check_commandには、ダミーのreturn-okを指定します。

$ tail -11 /etc/nagios3/conf.d/localhost_nagios2.cfg
define service {
       use                      generic-service
       host_name                localhost
       check_period             never
       service_description      TCPWrapper
       check_command            return-ok
       max_check_attempts       1
       check_freshness          0
       flap_detection_enabled   0
       is_volatile              1
}
$

TCPWrapperに拒否するアドレスを指定する

localhostと特定のIPアドレス以外のアクセスを拒否するように設定します。
この設定では、localhostと10.0.1.100以外のアクセスは拒否ということになります。

$ cat /etc/hosts.deny
ALL:ALL EXCEPT LOCAL, 10.0.1.100: twist (/etc/nagios3/handle_tcp_wrapper %h %d) &
$ cat /etc/hosts.deny

アクセスを拒否した場合に/etc/nagios3/handle_tcp_wrapperを実行します。

$ cat handle_tcp_wrapper
#! /bin/sh
/etc/nagios3/submit_check_result_via_nsca localhost TCPWrapper 2 "Denied $2-$1"
$ cat submit_check_result_via_nsca
printfcmd="printf"

NscaBin="/usr/sbin/send_nsca"
NscaCfg="/etc/send_nsca.cfg"
NagiosHost="localhost"

# Fire the data off to the NSCA daemon using the send_nsca script
$printfcmd "%s\t%s\t%s\t%s\n" "$1" "$2" "$3" "$4" | $NscaBin -H $NagiosHost -c $NscaCfg
$

動作確認

/etc/hosts.denyで例外に指定されていないIPアドレスから接続があると接続が拒否されますが、そのときに下記のようなメールが通知されます。
不正アクセスの監視は、自動的に復帰することはないので、NagiosのWebコンソールから"Submit passive check result for this service"を使ってステータスを変更します。

 ***** Nagios *****

Notification Type: PROBLEM

Service: TCPWrapper
Host: localhost
Address: 127.0.0.1
State: CRITICAL

Date/Time: Sat Mar 21 11:27:14 JST 2009

Additional Info:

Denied sshd-10.1.0.10.in-addr.arpa