Ubuntu の VPN(L2TP/IPsec)で、ログからユーザのVPN接続/切断や、接続元IPアドレスを確認する方法です。
なお、VPNのユーザー認証は、Linuxアカウントで認証する設定になっていることが必要です。
UbuntuでのVPN(L2TP/IPsec)サーバで、Linuxアカウントで認証する: パソコン鳥のブログ
auth.log による確認
VPN接続/切断時のユーザー名と時間がわかります。
接続元のIPアドレスはわかりません。(後述のsyslog による確認が必要です)
下記のようにログ出力されています。(時刻の表示は省略しています)
XXXXX の箇所がユーザー名です。
接続時 pppd[19279]: pam_unix(ppp:session): session opened for user XXXXX by (uid=0) 切断時 pppd[19279]: pam_unix(ppp:session): session closed for user XXXXX
syslog による確認
VPN接続/切断時のユーザー名と時間、接続元のIPアドレスがわかります。
ただし、これらのログは複数行に分かれているので、面倒です。
接続時
下記のようにログ出力されています。(時刻の表示は省略しています)
XX.XX.XX.XXは接続元IPです。
PPPP の箇所は数値が表示されます。
xl2tpd[10003]: Call established with XX.XX.XX.XX, PID: PPPP, Local: 44918, Remote: 1, Serial: 0
接続元IPは分かりますが、ここからユーザ名を取得するには、PID: PPPP の PPPP の数値を含む、pppd[PPPP] の行を探します。
例えば、PID: 15072 だったら、pppd[15072] を含む次のような行を探します。
XXXXX がユーザー名になります。
pppd[15072]: user XXXXX logged in on tty intf ppp0
次のような行の YY.YY.YY.YY はクライアントPCに振られたIPアドレスです。
pppd[15072]: remote IP address YY.YY.YY.YY
切断時
接続時の PID: PPPP に対応する切断時のログは、下記のようにログ出力されています。(時刻の表示は省略しています)
PPPP の数値を含む、pppd[PPPP] の行です。
例えば、PID: 15072 だったら、pppd[15072] を含む次のような行を探します。
pppd[15072]: Connect time 18.5 minutes. pppd[15072]: Connection terminated.
なお、切断時のログの行にはユーザー名は含まれていないので、対応する接続時のログの行からユーザー名を取得する必要があります。
コメント