過去、ssh専用ハニーポットKippo を使って、SSH経由でサーバに侵入しようと試みるクラッカーの動向を追った。

今回は、実際サーバを管理する際に、セキュリティ対策の一つとして有効であるsshの接続ポートを変更する方法をご紹介。
ちなみにSELINUXを使うともっとセキュリティを高める事が出来るが、敷居が高い方も多く無効にしてる方も多いようなので、SELINUXを無効にしている場合の説明をさせていただく。

sshd_configの設定変更

/etc/ssh/sshd_config の Portの設定がデフォルトだとコメントになっているので、このコメントを解除し、好きなポート番号を設定する。今回は22222とした。

  • 設定変更前

    1
    2
    # cat /etc/ssh/sshd_config | grep ^#Port
    #Port 22
  • 設定変更後

    1
    2
    # cat /etc/ssh/sshd_config | grep ^Port
    Port 22222

変更した設定を反映

sshdを再起動

設定変更が完了したら、ファイルを保存し、sshdを再起動する。

1
# systemctl restart sshd.service

反映確認

  • ss コマンドで変更したポートでListen出来ているか確認する。正常にできている事を確認。

    1
    2
    3
    # ss -lntp | grep 22222
    LISTEN 0 128 *:22222 *:* users:(("sshd",2457,3))
    LISTEN 0 128 :::22222 :::* users:(("sshd",2457,4))
  • 外部から接続を確認する。

以下のメッセージで接続出来ない事がある。

1
port 22222: Connection refused

おそらくそれはfirewalld22222 のアクセスを許可してないからだ。22222ポートのアクセスを許可してあげよう。

firewalld で 22222 の接続を許可してあげる。

設定方法は以下の通り。

1
2
# firewall-cmd --permanent --add-port 22222/tcp
# systemctl reload firewalld.service

これで接続できる事を確認できればOK!