1.5.3. SSH にデフォルト以外のポートを設定する
デフォルトでは、sshd デーモンは TCP ポート 22 をリッスンします。ポートを変更すると、システムがデフォルトポートで自動ネットワークスキャンに基づく攻撃にさらされる可能性が減るため、匿名化によってセキュリティーが強化されます。
SSH ポートを変更しても、セキュリティー上のメリットは限られています。攻撃者は、ポート番号に関係なく、フルポートスキャンを実行することでサービスを検出できます。本質的なセキュリティーの向上は、パスワード認証の無効化、鍵ベースの認証の使用、および適切なアクセス制御の実施によって実現されます。
SSH ポートの変更後は、クライアントの設定を更新して新しいポートを使用してください。ここでは、以下の点を説明します。
-
ユーザーの SSH 設定ファイル (
~/.ssh/config) - サーバーに接続する自動化ツールとスクリプト
- 監視システムとバックアップツール
- ロードバランサーとプロキシーの設定
これらの更新がないと、サーバーへの接続が失敗します。
前提条件
-
sudoまたは root ユーザーアクセス権によって提供される管理者特権。これは先頭にコマンドプロンプト#が付いているコマンドに必要です。sudoアクセス権を設定する方法については、非特権ユーザーが特定のコマンドを実行できるようにする を参照してください。 -
policycoreutils-python-utilsパッケージがシステムにインストールされている。
手順
-
任意のテキストエディターで、
/etc/ssh/sshd_config設定ファイルを開きます。 Portディレクティブの前の#文字を削除し、22 以外のポート番号を指定します。以下に例を示します。Port <49286>デフォルトの SELinux ポリシーを更新して、デフォルト以外のポートの使用を許可するようにします。
# semanage port -a -t ssh_port_t -p tcp <49286>firewalldの設定を更新します。# firewall-cmd --add-port <49286>/tcp # firewall-cmd --remove-port=22/tcp # firewall-cmd --runtime-to-permanentsshdサービスを再起動します。# systemctl restart sshd
検証
次のツールのような、実行中のサービスのポート番号を表示するツールを使用します。
# ss -tulpn | grep sshd tcp LISTEN 0 128 [::]:49286 [::]:* users:(("sshd",pid=1784,fd=8))出力結果で新しいポート番号を確認します。