UT-VPNとhttpsを同時に使用するときの注意点
UT-VPNとApacheを同時に動かしているサーバで少しはまったので一応残しておく。
UT-VPNサーバを起動すると、デフォルトでは443、5555、992の3つのポートが開く。
その際、どれか1つのポートが使われている場合、当然ながらそのポートは使われない。
一番多いのは、既にApache等のWebサーバが動いており、https(443)を既に使っている場合だろう。
しかし、ここでApacheを停止すると、UT-VPNが443ポートの状況を常に監視しているのか、即座にUT-VPNが443ポートを占有するのである。
今回現象が起こったサーバの場合、週に1回ログをローテーションするためにApacheを再起動しているのだが、Apacheが停止して再び起動する際、既にUT-VPNが443を占有しており、起動に失敗した。
正確にはこのサーバは少しおかしくて、apachectl restartするとなぜかたまにApacheが停止したまま上がらないことがあるので、数分後に明示的にapachectl startが動くようにしてあるのだが、そのタイミングでこの現象が起こった。
(apachectl restartがちゃんと動いたときはそういったことは起こらなかった。)
対処としては、UT-VPNが余計なポートを使わないようにすること。
(そもそも5555しか使っていないので、992とかが空いてるのもセキュリティ上よろしくない。)
utvpncmdから、ListenerListでポートの使用状況を確認する。
VPN Server>ListenerList ListenerList コマンド - TCP リスナー一覧の取得 ポート番号|状態 ----------+---------- TCP 443 |エラー発生 TCP 5555 |動作中 TCP 992 |動作中 コマンドは正常に終了しました。
なるほど、空いていなかったポートは「エラー発生」となっていたのか。
ListenerDeleteコマンドで余計なリスナーを削除する。
VPN Server>ListenerDelete ListenerDelete コマンド - TCP リスナーの削除 削除する TCP/IP リスナーのポート番号: 443 コマンドは正常に終了しました。 VPN Server>ListenerDelete ListenerDelete コマンド - TCP リスナーの削除 削除する TCP/IP リスナーのポート番号: 992 コマンドは正常に終了しました。
これで余計なポートは全て閉じた。
まあ、ちゃんと運用するサーバであれば最初から使うポートだけに絞るはずなので、こんな現象に遭遇することはまず無いとは思うのだけれど。