ipv4を使用しないEC2でAdGuard Homeを現在運用していますが、たまにAdGuard Homeのログを観察すると、自宅のISPが使用するアドレスと携帯キャリアのアドレスしかありませんでした。 ipv4を使用していたときは海外からよくわからん場所からのクローラーと思われるアクセスがあったりしましたが、AdGuard Homeのダッシュボードを見る限り、ipv6のみにした場合は、自分の身に覚えのあるアクセスログがありませんでした。
ほんとうに、身に覚えのあるアクセスしかないのか、フローログを採ってみてログを見てみます。
どこのフローログを採る?
フローログを採るタイミングが2か所あるように思われます。 VPCフローログとENIネットワークログです。
VPCフローログではACLに対する評価 ACCEPT/REJECTを行います。 ENIネットワークフローログの場合は、セキュリティグループの評価 ACCEPT/REJECT を行います。今回はどの特定のポートで通信を許可した、弾いたを観察したいのでENIフローログを採取してみます。
フローログの設定
こちらのサイトを参考に、IAMロールの設定とフローログの設定を行いました。
ログ出力の保存期間は7日とします。
フローログを観察する
しばらく日を置いてから、DNSサーバへアクセスしてきたIPアドレスをLog Insightsで調べてみます。
まずはアクセスしてきたIPアドレスとその回数を出力してみます。
実行したクエリ
fields @timestamp, srcAddr, dstAddr, srcPort, dstPort | filter dstAddr = '<DNSサーバのIPアドレス>' | stats count() as AccessCount by srcAddr | sort AccessCount desc
アクセスが多い順に並べると、身に覚えのないIPv6がありました。しかも1番アクセスしてくるアドレスが知らないアドレスとは...
2620:fe:0:0:0:0:0:10 が誰が使っているのか IPひろば で調べてみると、 Quad9 のクローラーのようです。 14番目の 2001:500:13:0:0:0:0:46 については、whois.arin.net が所有していることが分かりました。 whois情報作成のための、クローラーがアクセスしてきているのかもしれません。
次に、セキュリティグループの設定で許可していない(身に覚えのない)、80番や22番へのアクセス履歴はないか、調べてみます。
fields @timestamp, srcAddr, dstAddr, srcPort, dstPort, action | filter dstAddr = '2406:da14:a37:8d00:c617:170:5bc1:98e1' and dstPort in ['22','80']
身に覚えのない22番ポートへの通信、またセキュリティグループで許可されていない80番への通信は拒否されていることもわかりました。 アクセス数でいうと、iPv4に比べて少ない印象を受けます。
2a06:4880:a000:0:0:0:0: というIPアドレス群がアクセスして生きていますが、こちらは internet-measurement.com というところのクローラーのようです。
ipv4のときはもっといろいろなクローラーがアクセスしてきたように思います。
所感
ログの量だけをみた感覚ですが、ipv4のときよりもipv6のほうが、クローラー等の知らないアドレスからのアクセスが少ないような印象を受けました。 比較対象としてipv4でインスタンス立てて同じようにログ収集すればよかった...
参考文献
VPC Flow Logs で取得したフローログを CloudWatch Logs に発行する - technical notes