SELinux 删除或保留旧的 SSH 端口标签?

Flo*_*ens 6 ssh selinux port

我正在按照这个(基本)安全指南将我的服务器的 SSH 端口更改为其他端口。

它说:

$ semanage port -a -t ssh_port_t -p tcp 2345 #Change me 
Run Code Online (Sandbox Code Playgroud)

...这将在端口 2345 上添加一个新标签,说明这与 SSH 相关,并且 SSH 进程可以访问该端口。

让我感到困扰的是,这不会删除旧端口 22 上的标签。

将旧标签留在原处更安全还是将其移除更安全?我不知道端口的默认设置是在受限空间内还是在非受限空间内,我认为这可能很重要。

如果我错了,请纠正我,但删除旧端口的命令是:

# semanage port -d -p tcp 22
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 4

没有明显的理由从端口 22 中删除端口类型标签(将 ssh 服务器重新定位到另一个端口也不一定会让您更安全)。如果您确实删除了标签,那么 sshd 将无法绑定到端口 22 并侦听连接。

  • 这只能“保护”您免受路过式扫描仪的侵害,这些扫描仪只是尝试大量默认用户名和密码。不允许 root 使用密码登录,并确保所有用户都有强密码,就足够了。移动端口不足以进行有针对性的攻击,因为攻击者可以通过端口扫描在几秒钟内找到新的端口号。 (3认同)
  • @MichaelHampton 如果您使用端口扫描检测并阻止此类尝试会怎样。(将试图访问未定义端口的 ip 列入黑名单)?为什么无法运行以下命令“semanage port -d -t ssh_port_t -p tcp 22”并删除默认端口?我收到这样的错误:“端口 tcp/22 在策略中定义,无法删除” (3认同)
  • @Achilles您可以添加端口,但无法从 SELinux 策略中删除默认端口。 (3认同)