レ点腫瘍学ノート

日記/2020年/06月15日/Synology NASで443ポートを使ったopenVPNの設定 の履歴の現在との差分(No.4)


#author("2021-10-17T20:59:09+09:00;2020-06-15T22:39:12+09:00","default:tgoto","tgoto")
#author("2023-01-09T18:00:51+09:00;2020-06-15T22:39:12+09:00","","")
こちらのサイトが非常に参考になった。

#ogp(https://tabikumo.com/sslh-nas/)

 $ sudo -i
 # cd /usr/syno/share/
 # cp -a nginx org_nginx
 # cd /usr/syno/share/nginx

DSM.mustacheの77行目、WWWService.mustacheの15行目、server.mustacheの117行目の''listen 443''をすべて''listen 127.0.0.1:443''に変更する。

 # vim DSM.mustache
 # vim WWWService.mustache
 # vim server.mustache

vimの扱いに慣れていないと戸惑うが、iで編集モードに入りescで編集モードを抜けられること、「:wq」で保存して閉じるであることさえわかれば簡単な編集はできる。

#ogp(https://qiita.com/JpnLavender/items/fabcc79b4ab0d52e1f6d)

 # sudo synoservicecfg --restart nginx

再起動

 # cd /usr/local/sslh/var/
 # cp sslh.cfg org_sslh.cfg

 # vim /usr/local/sslh/var/sslh.cfg

13行目の{ host: “0.0.0.0“; port: “30000“; }のうち0.0.0.0をサーバーのローカルIPアドレスに、30000を443に変更する。

 # netstat -an | grep 443
これで下記のように当該ポートがlistenになっていればOK。

 tcp 0 0 192.168.100.20:443 0.0.0.0:* LISTEN
 tcp 0 0 127.0.0.1:443 0.0.0.0:* LISTEN
 tcp6 0 0 :::443 :::* LISTEN

*SSLHのインストール [#a239bc02]

職場プロキシなどではインターネットブラウザの接続に必要な80ポートと443ポート以外のポートが閉じられていることが少なくない。したがってこの443ポートを用いてVPN接続を試みたいが、443ポートはhttpsへの接続にも必要な重要なポートである。したがってこの443ポートを複数の用途で併用するための工夫が必要となり、これがSSLHとなる。

Synology NASのパッケージセンターでSynoCommunity(http://packages.synocommunity.com/)からインストールできる。

*ルータの設定 [#b8c9532c]

***Synology NAS -> コントロールパネル -> 外部アクセス -> ルータの設定 [#i61c859e]

作成→カスタムポートで以下のポートを開いておく。openVPNのデフォルトである''UDP''ではなく''TCP''を開いておく必要があることに注意。
,ローカルポート,ルーターポート,プロトコル
,1194,1194,TCP

***盲点だった点 [#r00e10c2]

今回上記はopenVPNでの設定を試したが、そもそもiPhoneなどが標準で利用できるL2TP/IPSecの設定をしようとしたのにSynologyのセキュリティ設定やVPNサーバーをいくらいじっても接続ができなかった。設定画面の ''コントロールパネル -> 外部アクセス -> ルータの設定 -> 接続テスト'' で何度やっても500番と4500番のポートの接続テストがエラーになって原因がなかなか解明できなかった。

うちはIO-DATAのルータ(WN-PL1167EX01)を使っていたのだが、このルータの''セキュリティ設定 -> パススルー -> IPsecパススルー'' が「無効」になっていたのを「有効」に変更したところあっさりとL2TP接続ができてしまった。

#ogp(https://amzn.to/3F046BR)

*追記(2021/11/13) [#c1288904]

ここに書いた方法はSynology DSM 6では使用可能ですがDSM 7.0にアップデートすると使えなくなってしまうようです。具体的にはSSLHで443ポートを開くための設定が変わってしまうため443ポートが開けません。

DSM 7.0ではsslh.cfgがあるディレクトリも変更になっています。

 cd /usr/local/sslh/var/ (DSM 6.x)
 cd var/packages/sslh/var/ (DSM 7.0)

nginxの設定ファイルがある場所はDSM 7.0ではこのようになっています。下記のディレクトリの /etc/nginx/ に nginx.conf があります。

 usr/syno/share/nginx/

さらに、nginxの再起動のコマンドも変わっているようです。

 synoservicecfg --restart nginx (DSM 6.x)
 synosystemctl restart nginx (DSM 7.0)

何か他のアプリケーションが443ポートをlistenしておりSSLHで443をlistenできないため、今のところDSM 7.0とSSLHで443番ポートを使ったOpenVPN設定ができていません。

#ogpi(https://oncologynote.jp/?3981681b0a)

#navi(日記/2020年)
#pcomment