ひさふぃの日記

DjangoとPythonとLaravelが好き。大阪でフリーランスエンジニアやってます。

AWSのEC2でsshポートを22以外にする

役に立つ人

AWSのEC2でsshのportを22以外にしたい人
sshのセキュリティグループでマイIP以外を設定したい人

なぜ22以外にするの?

sshのport22というのはデフォルト設定の値ですので

  • 単純に数が多い
  • セキュリティに疎い人のサーバー

つまり、クラッカーの方々が日夜セキュリティのあまあまなサーバーをさがしているのですがその際に標的になりやすいのです
そのため、ポートを22以外にするだけでクラッカーからの攻撃をぐんと減らすことができます
(まぁ秘密鍵が流出しなければ大丈夫ですが不正アクセスのログが残ってると気持ち悪い...)

AWSのセキュリティグループで設定できないの?

セキュリティグループだけではsshのportを22以外にすることはできません
じゃどうするのか?
AWSの機能ではなくLinuxの設定もいじりましょう

ssh_config

sshに関する設定ファイルです
AmazonLinux2の場合/etc/ssh/ssh_configにあります
試しに検索してみましょう

sudo find / -name /ssh_config
// 結果が出力される
/etc/ssh/ssh_config

みつかったら設定ファイルを編集していきます

// 念のため初期設定ファイルのバックアップを取る
sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config.origin
// viエディタで開く
sudo vi /etc/ssh/ssh_config

開いたら/Port 22と入力しenterを押してください
入力した内容は左下に表示されるので確認しつつ入力していってくださいね
するとPort 22と書かれた箇所にジャンプします
そうしたらccとcを2回入力してPort 22222と入力してください
その後はEscを押した後、左下を見ながら:wqと入力してEnterを押してください
設定ファイルの編集が完了したら設定を反映させます

sudo systemctl restart sshd

これでLinuxの設定は完了です

セキュリティグループ

これだけだとセキュリティグループが22222のportを許可していないので接続できません
カスタムTCPとポート範囲を設定します

f:id:hisafi:20210211182039p:plain

さいごに

これでssh時にportを指定して接続できればOKです

ssh ec2-user@12.12.12.12 -i key -p 22222

以上、お疲れ様でした!

Linux教科書 LPICレベル1 Version5.0対応