EC2のSSHポート番号を変更する(負荷対策)

SSHでVPSやAWSに接続するとき、ポート番号は何番を使いますか?

デフォルトのSSHポート番号である "22" を使っているとハッカーからの標的にされやすい特徴があります。

対策としてはSSH接続をする際に 22番ポート以外を指定してあげると、不正アクセスが大分減ります。

今回はAWS EC2におけるポート番号変更についてエントリーします。

ポート番号変更はセキュリティ対策というより22番ポートへのアクセスが鬱陶しい(負荷対策)という程度の意味合いが強いです。
セキュリティ対策としては、パスワード認証をやめて鍵認証にしたり、IP制限をしたり、総当たり攻撃がやりづらくなるよう時間制限を加えるなどするのが効果的です。

 

問題

ルート権限のあるAWSやVPSにSSHでアクセスして lastbコマンドを実行してみましょう。

SSH接続に22番ポートを使用している場合、以下のように不正アクセスをたくさん確認できます。

この問題を解決するには簡単です。ポート番号を変更するだけです。

ただ、AWS EC2 をお使いの方は追加でAWSコンソールにて「インバウンドの設定」にて変更作業が必要になります。

 

手順

 

手順

EC2インスタンスにSSHで接続

SSHクライアントソフトを使ってEC2インスタンスに接続。

SSHクライアントソフトは Poderosa を使いました。

 

sshd_config の中身を書き換えリロード

sshd_config を vi で開いて編集してリロードする流れになります。


# root権限で実行しないと編集できません。
$ sudo vi /etc/ssh/sshd_config

:
# 任意の空きポート番号を指定する
# WELL KNOWNポート番号( 0 ~ 1023 )とREGISTERDポート番号( 1024 ~ 49151 ) を避ける
# 基本的に空いている49152 ~ 65535 で指定するといい
Port 54321
:

# 設定ファイル変更後は sshd を再起動
# Ubuntuの場合
$ sudo /etc/init.d/ssh restart

 

実演

実際に打ったコマンドは以下になります。


 

sshd_config をviで開いて編集したスクショは以下になります。

 

AWSコンソールにて、インバウンドの設定を変更

AWSの管理画面を開いて、インバウンドの設定を開きます。

SSHの項目を削除してTCPルールを追加。


 

「カスタムTCP」を選択して、先ほどviエディタにて指定したポート番号を指定。

 

動作確認

SSHクライアントソフトにポート番号を変更して再度接続します。

Poderosa なら以下のようになります。


 

以下のように接続できればOK。

ちなみにポート番号を変更したら不正アクセスがなくなりました。

 
以上です。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築