nagios

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
タイトルとURLをコピーしました