syslogによるルータの管理


今回購入したルータ(NTT-ME BA8000 Pro)にはsyslog機能があるため、こちらを参考にサーバで共通管理できるようにしてみました。
今までのルータではわからなかったのですがログを見てみると、1時間に4〜5回、インターネット側からUDPの137ポートからアクセスがあり、ブロックしていることがわかりました。ルータでプライベートIPアドレスの偽装とファイル共有関係(TCP&UDP 137〜139番ポート)のフィルタが設定できない場合、あるいは設定する自信のない方は、ファイル共有サービスは絶対に使用しないことを薦めます。おやじはフィルタの設定はしていますが、ファイル共有は使用していません。
syslogを取るようにする設定は、いとも簡単でした。他のデストリビューションでも同様の方法で対応は可能かと思います。
ルータで検出した不正アクセスの状況を、グラフ化してみました。取り敢えず、直近の3週間分の統計です。(2003.01.07)

■サーバの設定

まず、ログファイルを0バイトの状態で作成しておかなければならないので、他のログと同じように /var/log 配下に router というファイルを作成する。

 # touch /var/log/router
syslogのログ記録内容を全て(debug、notice、info)とし、上記ファイル名で記録するよう、下記の1行を追加する。infoと/varの間は「Tab」である。

 # vi /etc/syslog.conf
 user.debug;user.notice;user.info /var/log/router 
次にsyslogの起動スクリプトを編集して、ルータからのログを受信するようにパラメータ(-r)を追加する。(下記の青字

 # vi /etc/rc.d/init.d/syslog

 (snip)

 start() {
     echo -n $"Starting system logger: "
     daemon syslogd
-r $SYSLOGD_OPTIONS
     RETVAL=$?
     echo
     echo -n $"Starting kernel logger: "
     daemon klogd $KLOGD_OPTIONS
     echo
     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog
     return $RETVAL
 }
このままではログが肥大化するので、他のログと同様にlotateするように、/etc/logrotate.d/syslogを編集し、1行目に他のファイルに続けて /var/log/routerファイル(下記の青字)を追加する。

 # vi /etc/logrotate.d/syslog
 /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron 
/var/log/router {
     sharedscripts
     postrotate
     /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
     endscript
 }
設定が終わったら、sysylogを下記で再起動し、ルータからの情報を受信できるようにする。

 # /etc/rc.d/init.d/syslog restart
以上で、サーバ側の設定は終了であり、続いてルータ側の設定を行う。

■BA8000 Proの設定

ルータ(BA8000 Pro)側の設定は、メンテナンス->ログで行う。下記に示すように、ログ方法の「syslog」にチェックマークを入れ、syslogレベルの「info」と「notice」にチェックマークを入れる。「Debug」をチェックすると全てのログを収集するので、ログが膨大になるので、トラブル解析以外ではチェックしないほうが良い。更に、syslogサーバIPアドレスとして、サーバのIPアドレスを入力し設定すれば、完了である。




Top Pageへ