45203
aws で web アプリケーションのサーバーを開発していたとします。特に、 production 環境などについての質問です。

昨日友人と話していたところ、 production 環境なので、なるべく secure にするべきであり、なので ssh ポートはデフォルト(22)
から変更するべきである、といった話を聞きました。

個人的に、 Conventional ではない設定は設定の面倒臭さをなどを引き起こす、と考えています。

### 質問

  * sshd のポートを 22 から変更するのは、 セキュリティ対策として有効なのでしょうか?
CC BY-SA 4.0
2018-06-18T06:20:26.030
44846
2018-07-01T05:26:48.073
754
question
security ssh
sshd のポートを 22 から変更するのはセキュリティとして有効?
SSHに限らず、サービス既定のポート番号を使用していると、該当のサービスが動いていると見込んだ総当たりの攻撃を受ける可能性がありますから、任意のポート番号への変更は(万全ではないにしても)意味はあると思います。
CC BY-SA 4.0
2018-06-18T06:41:54.927
44847
2018-06-18T06:41:54.927
3060
44846
answer
Portを隠すのは、たしかにテクニックとしてはありますが、設計時にどこで何を担保するのかということを考慮しておくべきで、「なるべくセキュア」という設計をしていれば、ほかが駄々洩れということになりかねませんか？

例えば、EC2を利用していればそのまえのファイアーウォールで、OSのSELinuxで止めることは可能です。どこで何を遮断するのが適切かはシステムごとに異なります。

逆に、外から直接SSH接続を許すような設計にしているのであれば、SELinuxで止めて、一応ポートも変えておくという設計もあり得ます。  
外に公開するサービスはこれとこれ、だから、これをこういう方法でまもる。  
システム内部でしか使わないサービスはこれ。だから、ファイアウォールに任せるとか、まずは「何を公開するのか」を軸に整理されてはいかがでしょうか？

逆にこの「方針」が定まっていないと、誰かに何かを言われれうたびにぐらぐらと変更が繰り返され、余計な手間がかかるばかりか、その後、なにがどうなっているのか全く分からない状況になります。
CC BY-SA 4.0
2018-06-18T07:17:06.773
44849
2018-06-18T07:17:06.773
10174
44846
answer
アタックを受ける頻度が下がるのは間違いないですが、そうあるべきということはないと思います。

例えば 踏み台サーバーを使ったSSHアクセスという方法も一般的です。  
踏み台は 使うときだけ起動して、使い終わったら止めれば、常時SSHポートを公開する必要はありません。

ご参考） [CDP:Ondemand Activation
パターン](http://aws.clouddesignpattern.org/index.php/CDP:Ondemand_Activation_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3)
CC BY-SA 4.0
2018-06-18T07:26:02.693
44851
2018-06-18T07:26:02.693
5008
44846
answer
sshdのポート変更のメリットとして考えられるのは総当たり攻撃による  
"パスフレーズ認証だった場合の侵入リスク軽減"  
"攻撃からリソース負荷を軽減"  
"攻撃などの余計な失敗ログを残さない"  
……などかと思います。  
これらのことから一定の効果は望めるかと思いますが、  
管理できないと結局、「あれ？このサーバのsshポート何番だっけ？」となりかねません。  
AWSであれば、そちらよりもセキュリティグループでIPフィルタリングかけます。  
もしくは接続時だけ使用するセキュリティグループとスイッチするかですかね。
CC BY-SA 4.0
2018-06-18T07:28:22.117
44852
2018-06-18T07:28:22.117
44846
answer
こと AWS に限った話をします。 AWS では、そのリソースがとれる IP のレンジが決まっています。
<https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-ip-ranges.html>

これにより、どうやらこのレンジの IP すべてに対して、ひとまず 22 番ポートに対して ssh brute force をかけるような bot
が動いている様子です。これは、 bastion をやろうが何しようが、ネットワーク的に外部に露出する部分があるのならば、もれなくこのような bot
はあらわれる様子です。

ssh bruteforce に晒されるのを放置するのは良くないので、たとえば inbound の IP 制限をかける、などがあるかと思います。また、 IP
制限といっても万能ではありません。そのような場合のために、 22 からポートを変更する意味はあるようだ、と思うにいたりました。
CC BY-SA 4.0
2018-07-01T05:26:48.073
45203
2018-07-01T05:26:48.073
754
44846
answer