owner203の世界ではShadowsocksとApacheが導入されています。しかもいろんな原因で、ShadowsocksはTLS通信のデフォルトポート443番ポートを使っています。これはApacheとぶつかって、ApacheのTLS通信が使えなくなります。ブラウザからの接続はHTTPしか使えなくて、これはセキュリティ上よくないものです。ではどうすればいいでしょう?
実はshadowsocks-libevはパケット転送機能もついています。Shadowsocksではない通信が来た場合、それを指定したポートに転送することはできます。Shadowsocksの設定はこちらです。
/etc/shadowsocks-libev/config.json
{
"server":"0.0.0.0",
"server_port":443,
"local_port":1080,
"password":"mypassword",
"timeout":60,
"method":"chacha20-ietf-poly1305",
"fast_open":true,
"plugin":"obfs-server",
"plugin_opts":"obfs=tls;failover=127.0.0.1:8443;fast-open"
}
設定ファイルでplugin_optsにfailover=127.0.0.1:8443というオプションを追記すれば、443番ポートにShadowsocksではない通信が来たら、自動的にローカルの8443番ポートに転送されます。
次に、Apacheのデフォルトポートを変更します。
vi /etc/apache2/ports.conf
/etc/apache2/ports.conf
Listen 80
<IfModule ssl_module>
--Listen 443
++Listen 8443
</IfModule>
<IfModule mod_gnutls.c>
--Listen 443
++Listen 8443
</IfModule>
vi /etc/apache2/sites-enabled/000-default-le-ssl.conf
/etc/apache2/sites-enabled/000-default-le-ssl.conf
<IfModule mod_ssl.c>
--<VirtualHost *:443>
++<VirtualHost *:8443>
#後略...
これで、ApacheがでShadowsocksから転送された8443番ポートを使うようになります。