ホーム » コンピュータ » Linux » swatchdogを使ったVPN接続の監視

swatchdogを使ったVPN接続の監視

Buffalo のルータを使っていて、VPNルータ機能を便利に使っているが、最近のセキュリティ問題が増えてきて、VPN サーバに侵入されないか心配になってきた。そこで、VPN 接続があったらメール通知を出すようにしたい。

swatchdog のインストール

Buffalo ルータ側で syslog をサーバに転送させているので syslog 監視を swatchdog でさせることとした。

((( swatchdogをインストール )))
$ sudo apt install swatch

((( /etc/swatchdog/local1.conf )))
watchfor /router xl2tpd\[.*\]: start_pppd: I'm running:/
        mail addresses=root,subject=[VPN] start xl2tpd

((( 動作確認 )))
$ sudo /usr/bin/swatchdog -c /etc/swatchdog/local1.conf --daemon -t /var/log/local1.log

swatchdog を systemd に登録

systemd のインスタンス化サービスを使えば、複数の監視の登録の柔軟性もでてくる。(Geminiが教えてくれた)

swatchdog を –daemon で動作させようとしたが、systemd だとうまく動かないので systemd の ExecStart では –daemon は使わない。

((( /etc/swatchdog/swatchdog.service )))
[Unit]
Description=swatchdog log monitor for %I
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/etc/swatchdog
ExecStart=/usr/bin/swatchdog -c /etc/swatchdog/%i.conf -t /var/log/%i.log
Restart=always
RestartSec=5s

# 標準出力・エラーを systemd のログ(journald)に送る設定
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

((( systemd 登録作業 )))
$ sudo ln -sf /etc/swatchdog/swatchdog.service /etc/systemd/system/swatchdog@.service
$ sudo systemctl enable --now swatchdog@local1.service
$ sudo systemctl start swatchdog@local1.service
$ sudo systemctl stop  swatchdog@local1.service