【Linux】SSHのポート変更。

セキュアなシェルログイン(ssh)やセキュアなファイル転送(sftp)に利用されるSSHポート。初期設定では Port 22 がそれに充てられているのだけれど、このまま運用するのはちょっと危険。サーバのログを確認すると、自分ではない誰かが Port 22 にアクセスして root でログインしようと試みた形跡が残っていたりします。

ネットで情報を収集してみると、ポート番号を 22 から別のものに変えるだけで、この手の不正アクセスの殆どを撃退できそうなのでやってみる。

sshd の設定ファイルは以下にあります。

/etc/ssh/sshd_config

このファイルをテキストエディタで開きます。要 管理者権限。

# sudo nano /etc/ssh/sshd_config

すると、今までに設定を弄っていなければ、

Port 22

…と書かれた行がすぐに見つかる筈。

この '22' を任意のポート番号に書き換えます。他のサービスが現在利用していないポートならどこでもOK。'1024' 以上の数字を指定しておけばたぶん大丈夫。

適当に '10022' にしてみる。

Port 10022

書き換えたら sshd_config を保存。で、sshd を再起動。再起動のコマンドは OS によって異なったりしますが、

# sudo systemctl restart sshd.service

だとか、

# sudo service sshd restart

だとか。

外部のマシンから、試しに SSH 接続。

# ssh -p 10022 -l <ログインユーザ名> <サーバ名>

サーバに無事接続されて、パスワードを尋ねられたら設定変更は正しく完了しています。

うまく繋がらない場合、例えば最新版の CentOS などでは、システム上でファイアウォールが稼働していて、デフォルトではない、普段は使用しないポートが塞がれている可能性があります。例えば、

# nmap -sT -p10022 <サーバ名>

というコマンドを実行してみて、実行結果の "STATE" 欄に "filtered" と表示されていれば、おそらくファイアウォールが効いています。使用するポートの通信を許可しましょう。

カテゴリ: