AWSにポート22以外のポートでアクセスする

ポート22は空いていないけどAWSにアクセスしたいなーというニーズありますよね。
まあ何の時に使いたいかは置いておいて443でアクセスする方法をやってみます。

sshd_configの編集

まずは受け側のサーバで443をリスンしないといけません。
SSHDに22だけでなく443を追加します。

$sudo vi /etc/ssh/sshd_config

Port 22
となっているところにもう1行追加します。
Port 443

Port 22
Port 443
#AddressFamily any

こんな感じ。そしたらSSHDデーモンを再起動。

$ sudo /etc/init.d/sshd restart

そしたら確認。

$netstat -anp | grep LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      -
tcp        0      0 :::22                       :::*                        LISTEN      -
tcp        0      0 :::443                      :::*                        LISTEN      -

できてますね。

セキュリティGroupの設定

AWSのセキュリティ設定をして443をあけましょう。
タイプ「HTTPS」をあけます。送信元は「0.0.0.0/0」でもよいですが適宜環境に合わせて狭めておくほうがいいでしょう。

接続確認

Teratermで指定のインスタンスに接続。
指定のインスタンスにポート443を指定してあとは普段通り接続すると。。

$ netstat -anp | grep 443
tcp        0    320 172.31.18.152:443           XXX.XXX.XXX.XXX:62509          ESTABLISHED -

できてますねー。

これができればトンネリングもなんでもできるようになるのでProxyを実装すれば無料WifiスポットやうさんくさいWifiなど限定的な環境でブラウジングしてもセキュアな通信を確保できるようになります。
どこからでもアクセスできる自分の環境は結構重宝するので設定しておくのがおすすめですよ!

上記向けのProxyの構築はまた別途書くことにします。