Masteries

技術的なことや仕事に関することを書いていきます.

EdgeRouter XでVPN接続した時にコマンドを実行する

EdgeRouter Xを使って自宅のネットワークにVPNで接続出来るようにすると, どうしても「自分以外がVPNを利用して, 不正に自宅ネットワークに入り込んでいないか?」という所が気になってきます.

いろいろと解決策はありますが, ここでは「VPN接続が行われた時に通知をする」ということで, 不正利用に気付きやすくする(自分がVPNに接続していない時にVPN接続の通知が行われる = 不正利用が行われた, と判断できる)仕組みを作ってみましょう.

そのためには, EdgeRouter XにVPN接続した際, 任意のコマンドを実行できるようにすればよさそうです. そのコマンドの中で, いい感じにメールを送信するなり, SlackやLINEなどのAPIを利用してメッセージを送信するなどすれば良いでしょう.

なお, 今回は以下のページなどを参考にして, L2TP/IPsecで構築したVPNを対象とします.

yabe.jp

方法

結論から言えば, /etc/ppp/ip-up.d/l2tpdというファイルを作って, そこにパーミッション755を与えれば, VPN接続する度にそのファイルを実行してくれます.

例えば, このファイルに,

#!/bin/sh

echo "connected!" >> /tmp/vpn.log

というコードを書いておけば, VPNに接続する度にこのファイルが実行され, /tmp/vpn.logconnected!という文字列が書き込まれる訳です.

逆に, /etc/ppp/ip-down.d/l2tpdを設置してあげれば, VPN接続を切断したタイミングでそのファイルが実行されるので, 切断の通知なども出来ます.

なお, これらのファイルは, rootユーザーでなければ書き込むことはできないので,

$ sudo su -

などでrootユーザーになってから設置/変更などする必要があります. 気をつけましょう.