SSHでVPSやAWSに接続するとき、ポート番号は何番を使いますか?
デフォルトのSSHポート番号である "22" を使っているとハッカーからの標的にされやすい特徴があります。
対策としてはSSH接続をする際に 22番ポート以外を指定してあげると、不正アクセスが大分減ります。
今回はAWS EC2におけるポート番号変更についてエントリーします。
セキュリティ対策としては、パスワード認証をやめて鍵認証にしたり、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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。