NAT-Traversalの無効化

うちはVPNサーバーとして「Softether VPN Server」(以下、VPNServer)を使っています。
VPNServerはデフォルトで443/TCP、992/TCP、5555/TCPの3つのポートがリスナーポートとして開かれており、このポートに向けて接続することで各種設定を行うことが出来ます。

言うまでもなくファイアウォールでブロックしていればVPNServerまで到達できずにエラーとなります。
しかし今回たまたまファイアウォールのポートを開けるのを忘れていたのですが、その状態でもアクセスしたら通ってしまったんです。

セキュリティ的にすごく気持ち悪いので調べたらVPNServerのNATトラバーサルという機能が影響しているということが分かりました。
リスナーポートに対してTCP接続が成立しなかったときにUDPを使っていい感じに接続する仕組みらしいです。

これを無効にする方法です。
VPNServerの設定ファイルの中のdeclare ServerConfigurationセクションを探し、その中にあるbool DisableNatTraversal falsebool DisableNatTraversal trueにすればNAT-Tを無効に出来ます。

尚、NAT環境下においてはポートフォワーディングを適切に設定しないとVPNServerを動かしているマシンに到達する前にパケットが破棄されるのでご注意ください。

ネットワーク周りはいろいろと難しいですね。