EC2 で Web サーバを構築する手順に盛り込もうと思いましたが、ssh の待ち受けポートの変更だけで記事を独立させてみました。
ここでは ssh の待ち受けポートを 22 番から 10022 番に変更する方法を紹介します。
ssh のデフォルト待ち受けポートが 22 番なので、それを変更することで不正アタックを軽減する効果を期待しての対策となります。
もちろん、変更先のポート番号は 10022 番である必要はありませんので、ご自身の環境にあわせて置き換えてください。
sshのポート変更
まずは ssh の待ち受けポートを変更します。
現在は 22 番で受け付けていることを確認します。
まあ、22 番で接続している時点でわかりますけどね・・・。
1 2 3 | $ netstat -an | grep 22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN |
次に sshd の設定を変更します。
1 2 3 | $ vi /etc/ssh/sshd_config #Port 22 |
Port は 22 で設定されていてコメントアウトされていますが、デフォルトが 22 なのでコメントアウトされていることに関係なく 22 番が有効になっています。
では、このコメントを外し 10022 にしてみます。
1 | Port 10022 |
これだけでは設定が反映されないので、sshd_config のファイルを保存したら sshd のサービスを再起動します。
1 | $ service sshd restart |
これで待ち受けポートから 22 番が消え、10022 番が表示されます。
1 2 3 | $ netstat -an | grep 10022 tcp 0 0 0.0.0.0:10022 0.0.0.0:* LISTEN |
実際にローカル PC などから 10022 番ポートで ssh 接続でき、22 番ポートで接続できなくなっていることを確認しましょう。
セキュリティグループの変更
これで 22 番ポートの解放は不要になったので、EC2 のインスタンスを作成する際に作ったセキュリティグループのルールを変更します。
EC のインスタンスを構築した時の記事は「AWSでWebサーバ用途にEC2(AmazonLinux)の環境を構築する」の通り。

では、セキュリティグループを調整します。
EC2 のページの左メニューから「セキュリティグループ」をクリックします。
まだ、RDS や Redis については詳細なセキュリティグループを設定していないですが、まずは EC2(web)用のセキュリティグループを調整します。
web のセキュリティグループを選択すると、画面下に詳細な情報が表示されます。
ここで「インバウンド」のタブをクリックします。
インバウンドは外部から EC2 に入ってくるパケットのことになります。
早速、「編集」ボタンをクリックしましょう。
22 番ポートの設定を削除します。
ちなみに、この設定画面には IPv6 の設定も含まれていますが、不要な場合はソースアドレスが「::/0」になっている行(80, 443, 10022番ポート)も削除しちゃいましょう。
ちなみに 10022 番ポートは世界中のどこからでも受け付けるようになっていますが、自宅や会社が固定 IP アドレスを持っているならその IP で制限しておきます。
IP アドレスが動的で変動の可能性がある場合は、ssh の認証が鍵認証ということもあるので、個人情報を扱うようなサイトじゃなければ私はこれで OK と考えています。
もちろん、鍵の紛失に備えた対策や鍵にパスフレーズを設定することは怠らないようにしましょう。