Ubuntu 24.04でSSHのポートを変更する

手順

  1. /etc/ssh/sshd_configを開いてPortを変更し、保存
  2. ssh.socketを再起動する(sudo systemctl restart ssh.socket

ssh.serviceではなく、ssh.socketを再起動する。

なんで?

えー、自分も正確なところはあまりわかってないが、だいたいこんな感じらしい・・・

Ubuntu 24.04ではSocket Activationが有効になっている。これはsystemdがポートを開き、接続があったら対象のサービスを起動して、そのサービスに接続を引き渡す仕組みらしい。

Socket Activationではsystemdが接続を待ち受けるためsshdは自分でポートを開かない。そしてsystemdが待ち受けるポートと引き渡し先のサービスを管理するのがsocketというユニット。sshの場合はssh.socketが管理しているのでポートを変える場合はssh.socketの再起動が必要になる。

ssh.socketは最初にsshd_configを読み取ってポート番号を調べ、/etc/systemd/generator/ssh.socket.d/addresses.conf というファイルを作成し、systemdに開くポートを伝える。

ちなみにSSHのポートを変えても別にセキュリティ強度が上がるわけではない。攻撃の頻度が減ってログも減る程度の意味しかないが、まあ、自宅サーバ勢には要らんログが減るだけでも嬉しい。とはいえ最近の攻撃ツールにはポートの変更を検出して攻撃先ポートを自動的に変えるものがあるので気休めかもしれないが。