ubuntu 24.04
にsshすると接続が遅いので、原因を調べました。
ssh接続が遅い原因は、systemd-logind
のIPAddressDeny
です。これはログイン時のセキュリティです。
systemd-logind サービスの設定ファイル (/lib/systemd/system/systemd-logind.service) には、IPAddressDeny=any というオプションが含まれています。この設定は、systemd-logind プロセスによる全ての IP アドレスへのアクセスを拒否するものです
ssh接続を正常に戻すには、これを解除します。
$ sudo vim /lib/systemd/system/systemd-logind.service
+ IPAddressDeny=any
- #IPAddressDeny=any
しかし、セキュリティも確保したいので、localhostのみ解除することにします。
IPAddressAllow=localhost
IPAddressAllow=192.168.1.0/24
IPAddressDeny=any
この設定により、localhostと192.168.1.0/24サブネット(192.168.1.1から192.168.1.254まで)からのアクセスが許可され、それ以外のIPアドレスからのアクセスは拒否されます。
設定を反映させるために、以下のコマンドを実行します。
$ sudo systemctl daemon-reload
$ sudo systemctl restart systemd-logind.service
セキュリティ上の懸念
IPAddressDeny=any をコメントアウトすることで、systemd-logind プロセスのネットワークアクセス制限が解除されます。これにより、潜在的にセキュリティリスクが増加する可能性があります。しかし、以下の点を考慮する必要があります:
systemd-logind は主にローカルシステムのセッション管理を担当するため、通常はネットワークアクセスを必要としません。
NIS クライアントなど、特定の環境設定ではネットワークアクセスが必要になる場合があります。
システム全体のファイアウォール設定や他のセキュリティ対策が適切に行われていれば、リスクは最小限に抑えられます。
セキュリティと利便性のバランスを取るために、必要最小限のネットワークアクセスのみを許可するよう、IPAddressAllow オプションを使用して特定の IP アドレスやネットワークへのアクセスを制限することも検討できます
sshd -> ssh
なお、24.04では、unitがsshdからsshという名前に変更されています。
# sshサーバーを起動
+ $ sudo systemctl start ssh
- $ sudo systemctl start sshd
# ステータスの確認
+ $ sudo systemctl status ssh
- $ sudo systemctl status sshd
# 起動時に実行
+ $ sudo systemctl enable ssh
- $ sudo systemctl enable sshd