Closed4
cloud-initでsshのport変更 [ubuntu 24.04][oci]
ociにてcloud-initによるssh port変更に苦戦した
最終的には下記が必要十分な設定内容だった
#cloud-config
write_files:
# ssh.socketのオーバーライド設定
- path: /etc/systemd/system/ssh.socket.d/override.conf
owner: root:root
permissions: '0644'
content: |
[Socket]
ListenStream=
ListenStream=12345
runcmd:
# systemdの設定を再読み込み
- systemctl daemon-reload
# ssh.socketの再起動
- systemctl restart ssh.socket
- systemctl status ssh.socket
# iptablesの設定(既存のルールを保持しながら新しいルールを追加)
- iptables -I INPUT 6 -m state --state NEW -p tcp --dport 12345 -j ACCEPT
- iptables-save > /etc/iptables/rules.v4
sshd_configの編集なしでssh port変更できる理由
- sshdが直接ポートをリッスンしなくなったから
- systemdのsocket activation実装であるssh.socketがssh portをリッスン
- 接続発生時にsystemdがsshdを起動
FYI:https://0pointer.de/blog/projects/socket-activation.html
ociハマりポイント
- iptablesが有効化されている
- デフォルトでport 22以外解放されていない
FYI: https://cloudsolution.terilogy.com/blog/oci-ubuntu-iptables
terraformにてcloud-configを指定
metadata = {
user_data = filebase64("./cloud-init/cloud-init.yaml")
}
このスクラップは6ヶ月前にクローズされました