IPv6の設定ミスで重大なセキュリティホールを開けてしまった話
家庭で業務用ルーターを使用している方、いらっしゃるでしょうか。
私もその一人で、RTX1200でtransix(DS-Lite)を使っていたのですが、1年越しに重大なセキュリティミスをしていることが発覚してしまいました。
目次
1. ポート開放ができない?
私はもともとPPPoE、IPv4環境でWordPressやMinecraftサーバーを運用していました。しかし、プロバイダーを変更することになり、IPv6の利用を余儀なくされました。
ここで、私はIPv4環境でのネットワーク設定しか経験したことがないため、IPv6も同じノリでやれば大丈夫だろうと思いこんでいました。
そして、肝心のポート開放について調べてみると、「IPv6ではポート開放ができない」という情報を目にしました。
しかし、これは「IPv6では(IPv4アドレスの)ポート開放ができない」という意味であり、IPv6アドレスの場合は普通にポート開放ができてしまいます。
IPv4とIPv6ではポート開放の仕組みが異なっており、IPv4ではルーターに1つグローバルIPアドレスが割り当てられていて、NATマスカレードというものを使用し、ルーター宛の通信を各機器宛の通信へと変換します。
しかし、IPv6では、ルータだけでなく各機器にもそれぞれグローバルIPアドレスが割り当てられる仕組みになっており、IPv4環境でのNATマスカレードという機能が存在しない、必要ないため、各機器のグローバルIPアドレスを公開できさえすれば、いわゆる「ポート開放」が可能となります。
IPv6ではNATマスカレードという壁がないので、直でデバイスに到達するという設計なのですね。
ということはより一層ファイヤーウォールが重要となってきます。
しかし、ここの認識が甘かった...。
2. RTX1200を買う
完全にIPv6では外部に公開することができないと思い込んでいたので、PPPoEとtransixの通信を両立できるRTX1200を導入しました。
初めて業務用ルーターを買う私は、なかなかに苦戦します。
まさか全部コマンドラインで設定するとは思わず、先人が書き残してくれたいろんな記事を読み漁り、なんとか接続成功しました。
ここで問題ないように思われたのですが、1年後、重大なセキュリティホールを開けていたことに気づきます。
3. 突然のセキュリティホール発覚
1年後、ChatGPTにネットワーク構成をレビューしてもらってたんですが、
## それでも残るリスク(正直に言う)### ① RTX1200 の IPv6 FW 設定ミスもし`ipv6 filter allow any any`みたいな状態ならアウト👉 最低限の IPv6 拒否設定は必須。
と言われまして、「ん?こんなのやった覚えないぞ?」となります。
この記述は外部から来た「IPv6の通信はすべて許可しますよ」という設定であり、もし、ファイヤーウォールが設定されていない機器が合った場合、ノーガードで侵入ができてしまうということになります。
もちろんブロックする設定など書いていないですから、IPv6アドレスが割当てられている機器すべてに外部から通信ができてしまいます。
まずいですよ!マジで。
ファイル・写真サーバーに使ってたMacは、VNC・SSHを使っているのですが、全然ブルートフォースアタックで突破されていた可能性がありますし、他のIoT機器がDDoS攻撃の踏み台にされていたリスクもあります。
OSのファイヤーウォールだけが頼りという状態なので、古いOSの機器・古いNASなんかはさらに深刻です。
一応ログを確認してみて、不審なログイン履歴などはありませんでした。1/2^128を引き当てるのは流石にないだろうとも思いますが、油断はできないですね。
マジで怖い。
今後の対策
もう業務用ルーターでコマンドラインは書かずに家庭用ルーターを使用し、TailScaleかCloudflare Tunnel、それかAWSやGCPを使用することにします。
最近はこういったVPNサービスも主流となってきているので、ポート開放をせずにこういったサービスを使用することは全然いい選択だと思います。セキュリティも利便性も向上しますからね。あとネットワークはしっかり仕組みを理解しましょうね...。
まじこわいっす。勉強になりました...