皆さんこんにちは!新人のアナサピです!
VPNルータには、通信やパケットフィルタの動作などを確認できるログ機能があります。
しかし、私自身VPNルータのログには何が記録されるのか、許可設定の場所での挙動の違いをあまり知りませんでした。
そこで今回はVPNルータのログから、通信パターンごとにどのようなログが記録されるのかを試してみました。
検証方法
検証環境
今回はシンプルに以下の構成を利用しています。
VPNルータ
│
スイッチ
│
Webサーバ(Apache)
こちらの構成に他のサーバから接続して確認をしていきます!
確認したこと
今回はVPNルータのログを確認する事が目的なので、以下の方法で確認していきます。
- VPNルータのファイヤーウォールとPF(パケットフィルタ)で「許可」した場合
- VPNルータのファイアウォールで「拒否」、PF(パケットフィルタ)で「許可」した場合
- VPNルータのファイアウォールで「許可」、PF(パケットフィルタ)で「拒否」した場合
今回は上記の設定でHTTP接続を行ってそれぞれの挙動を確認しました。
また、PF(パケットフィルタ)について詳しく知りたい方は以下の記事もご覧ください


検証の前に
VPNルータのログを有効にする
今回の検証を行う前に、VPNルータのログ出力を有効にしておきます。
VPNルータでは、ファイアウォールルールごとにログ出力の有効・無効を設定できます。
そのため、ログを確認したいルールは画像の「ログ記録」を有効に設定しておく必要があります。

VPNルータのログの見方
SSH接続を例に、VPNルータのログの見方を確認してみます。
今回VPNルータのファイアウォール(以降FW)にて設定を行いました
FWの設定内容
プロトコル:tcp
送信元ネットワーク:"送信元のIPアドレス"
送信元ポート:*
宛先ネットワーク:192.168.0.10
宛先ポート:22
アクション:allow
ログ記録:有効
その結果、FWのログとして実際に接続した際のログが以下の通りです。
Jul 2 08:02:18 rt-113801432903-113801432904 kernel: [ 609.767644] [eth0-in-forward-1010-A] IN=eth0 OUT=eth1 MAC=9c:a3:ba:20:5d:74:d4:78:9b:50:16:3f:08:00 SRC="送信元IPアドレス" DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=58 ID=39680 DF PROTO=TCP SPT=59042 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
ちょっとこれだとわかりにくいのですが、まとめると内容は以下の通りです。
| 項目 | 内容 | 今回の値 |
|---|---|---|
| IN | 通信を受信したインターフェース | eth0 |
| OUT | 通信を転送したインターフェース | eth1 |
| SRC | アクセス元IPアドレス | “送信元IPアドレス” |
| DST | アクセス先IPアドレス | 192.168.0.10 |
| PROTO | プロトコル | TCP |
| DPT | 宛先ポート | 22(SSH) |
また、今回注目したいのが、下記の文言
[eth0-in-forward-1010-A]
これの最後の「A」です。こちらAllowの「A」でこの通信がVPNルータでは許可されたことが分かります。
後ほどの検証結果で拒否されたパターンを出しますが、拒否された場合はDenyの「D」が記録されます。
検証①VPNFWとPFで許可
設定内容
・VPNルータFW
プロトコル:tcp
送信元ネットワーク:"送信元のIPアドレス"
送信元ポート:*
宛先ネットワーク:192.168.0.10
宛先ポート:80
アクション:allow
ログ記録:有効
・サーバのPF
プロトコル:tcp
送信元ネットワーク:"送信元のIPアドレス"
送信元ポート:*
宛先ポート:80
アクション:allow
送信検証機からこのサーバへHTTPアクセスをしてみます。
[root@送信元サーバ]# curl http://VPNルータのグローバルIP
VPN Router Test
[root@送信元サーバ]#
無事に設定した「VPN Router Test」が表示されました。
では、VPNルータのログを確認してみましょう。
Jul 2 08:02:18 rt-113801432903-113801432904 kernel: [ 609.767644] [eth0-in-forward-1010-A] IN=eth0 OUT=eth1 MAC=9c:a3:ba:20:5d:74:d4:78:9b:50:16:3f:08:00 SRC="送信元IPアドレス" DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=58 ID=39680 DF PROTO=TCP SPT=59042 DPT=80 WINDOW=64240 RES=0x00 SYN URGP=0
宛先ポート80に送信元のIPアドレスから、[eth0-in-forward-1010-「A」]で許可されている事が分かります。
また、実際にサーバのApacheのログには以下が記録されていました。
"送信元IPアドレス" - - [02/Jul/2026:08:02:19 +0900] "GET / HTTP/1.1" 200 16 "-" "curl/8.12.1"
このことから、FWでもPFでも許可されて、サーバ(Apache)まで到達している事が分かります。
検証②VPNルータのFWのみ拒否
次にVPNルータのファイアウォールでHTTP通信を拒否します。
設定内容
・VPNルータFW
プロトコル:tcp
送信元ネットワーク:"送信元のIPアドレス"
送信元ポート:*
宛先ネットワーク:192.168.0.10
宛先ポート:80
アクション:Deny
ログ記録:有効
・サーバのPF
プロトコル:tcp
送信元ネットワーク:"送信元のIPアドレス"
送信元ポート:*
宛先ポート:80
アクション:allow
では実際に試してみましょう
[root@kfukuoka-Alma10 ~]# curl --connect-timeout 10 http://VPNルータのグローバルIP
curl: (28) Connection timed out after 10002 milliseconds
[root@kfukuoka-Alma10 ~]#
10秒接続試行してもダメでした。
ではVPNルータのログを確認しましょう。
Jul 2 08:07:35 rt-113801432903-113801432904 kernel: [ 926.594455] [eth0-in-forward-1010-D] IN=eth0 OUT=eth1 MAC=9c:a3:ba:20:5d:74:d4:78:9b:50:16:3f:08:00 SRC="送信元IPアドレス" DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=58 ID=16201 DF PROTO=TCP SPT=49154 DPT=80 WINDOW=64240 RES=0x00 SYN URGP=0
先ほどは、[eth0-in-forward-1010-「A」] でしたが、今回は[eth0-in-forward-1010-「D」] と拒否されていることが分かります。
また、VPNルータで拒否されたため当然ですが、サーバ(Apache)のログには記録ありませんでした。
検証③サーバのPFで拒否
最後に、さくらのクラウドのパケットフィルタ(PF)でHTTP通信を拒否します。
細かいPFの設定方法については以下の記事で実際の画面で解説しております!
設定内容
・VPNルータFW
プロトコル:tcp
送信元ネットワーク:"送信元のIPアドレス"
送信元ポート:*
宛先ネットワーク:192.168.0.10
宛先ポート:80
アクション:Allow
ログ記録:有効
・サーバのPF
プロトコル:tcp
送信元ネットワーク:"送信元のIPアドレス"
送信元ポート:*
宛先ポート:80
アクション:Deny

[root@kfukuoka-Alma10 ~]# curl --connect-timeout 10 http://VPNルータのグローバルIP
curl: (28) Connection timed out after 10002 milliseconds
[root@kfukuoka-Alma10 ~]#
こちらも10秒接続試行してもダメでした。
ではVPNルータのログを確認しましょう。
Jul 2 08:15:08 rt-113801432903-113801432904 kernel: [ 1379.709368] [eth0-in-forward-1010-A] IN=eth0 OUT=eth1 MAC=9c:a3:ba:20:5d:74:d4:78:9b:50:16:3f:08:00 SRC=133.125.237.176 DST=192.168.0.10 LEN=60 TOS=0x00 PREC=0x00 TTL=58 ID=1356 DF PROTO=TCP SPT=56094 DPT=80 WINDOW=64240 RES=0x00 SYN URGP=0
今回、通信は出来なかったものの、 [eth0-in-forward-1010-A] となっており、
VPNルータのログだけを見ると、検証①(全許可)とほぼ同じように見えます。
しかし、Apacheのログには何も記録されていません。
つまり、VPNルータは通信を許可したものの、その先のパケットフィルタで通信が遮断されたことが分かります。
また、こちらも同様にサーバ(Apache)のログには記録ありませんでした。
上記の結果から、VPNルータのファイアウォールも、パケットフィルタも似たような制限が出来ますが、「通信がどこまで到達したか」を確認する場合は、VPNルータのログが必要となってきます。
まとめ
今回はVPNルータのログを確認しながら、通信がどのように記録されるのかを検証しました。
VPNルータのログを見ることで、
- 通信が許可されたか、拒否されたか
- アクセス元・アクセス先IPアドレス
- 使用されたポート番号
- VPNルータを通過した通信かどうか
といった情報を確認できることが分かりました。
一方で、VPNルータのログだけでは、サーバ内でどこまで処理されたかまでは判断できません。
そのため、障害調査を行う際はVPNルータのログだけでなく、ApacheやSSHなどサーバ内のログも合わせて確認することが重要です。
また、VPNルータのファイアウォールログの画面には以下の文言が記載されています。
※ 最新の100件を表示しております
今回は検証環境ということもあり、検証端末以外からのアクセスはVPNルータのファイアウォールで拒否し、不要なログを出力しない設定にしていたため、目的の通信を簡単に確認できました。
しかし、実際の環境ではさまざまな通信が発生するため、ログはすぐに流れてしまい、確認したい情報を見失ってしまうこともあります。
そこで次回は、VPNルータのログをSyslogサーバへ転送して保存する方法を検証していきたいと思います。


