我在Azure(ACS)中使用Kubernetes,并想知道是否可以更改节点VM上的SSH端口。我想防止对默认SSH端口(端口22)的暴力攻击,但我不想破坏任何群集内通信机制。如果这会产生任何不同,我会很乐意使用acs-engine。
答案 0 :(得分:0)
最重要的是,我同意JonahB的100%认为将节点暴露在狂野的互联网上是一种不必要的风险。 我甚至不愿意把它放在一个“答案”框中,因为它更像是一个肮脏的黑客,但它太多的字符不适合评论;那说:
理论上,你可以利用这样一个事实:kubelet
使用远程控制API几乎可以直接进入这些机器上的Linux内核。部署到群集中的DaemonSet
可以是volumeMount /var/lib/dbus
,然后使用systemd控件套接字关闭sshd.service,然后更新DS(或单独的一个)可以重新启动ssh对于您选择的节点,如果您确实需要ssh in。或者volumeMount /etc/ssh
,请更改配置,然后使用相同的控件套接字重新启动sshd.service。
我使用了一个非常类似的技巧,使用volumeMount和go-systemd库在节点上配置新的systemd服务;巧合的是,我碰巧在回答类似这一问题时发布了systemd daemon-reload部分的要点。