我正在运行 CentOS 版本 6.2(最终版)。
我想要监听端口 22 和 1022 的 sshd 端口。
我已将以下行添加到 /etc/ssh/sshd_config:
Port 22
Port 1022
并重新启动了 sshd 并关闭了 iptables 但是我无法连接到端口 1022 上的 sshd。
即使我做了以下事情
#Port 22
Port 1022
sshd 继续监听端口 22,而不监听端口 1022。我尝试了除 1022 之外的其他端口值,但没有成功。
帮助!
答案1
如果您使用的是 CentOS 5,您描述的配置确实有效,但快速测试表明 CentOS 6 上的 sshd 不会绑定到 1023 以下的任何端口(22 除外)-我目前找不到这方面的参考。如果您想在多个端口上访问 sshd,请选择一个 >=1024 的端口。
更新 - 这与 SELinux 有关。当前策略不允许 sshd 绑定到 1023 以下的非标准端口(实验证实)例如
semanage port -l | grep 22
ssh_port_t tcp 22
如果你想添加额外的端口<=1023,你必须在 SELinux 中明确允许它
semanage port -a -t ssh_port_t -p tcp 1022
semanage port -l | grep 22
ssh_port_t tcp 1022, 22
然后重启 sshd
netstat -tnlp
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 25376/sshd
tcp 0 0 0.0.0.0:1022 0.0.0.0:* LISTEN 25376/sshd
答案2
这基本上是不推荐的,但无论如何这是可以实现的。
cp /etc/ssh/sshd_config /etc/ssh/sshd_config-another
编辑sshd-config-another
文件并分配不同的端口号和pid文件。
Port 1022
PidFile /var/run/sshd-another.pid
现在跑,
ln -s /usr/sbin/sshd /usr/bin/sshd-another
cp /etc/rc.d/init.d/sshd /etc/rc.d/init.d/sshd-another
打开新的启动脚本并进行相应的更改。
# config: /etc/ssh/sshd_config-another
# pidfile: /var/run/sshd-another.pid
[ -f /etc/sysconfig/sshd-another ] && . /etc/sysconfig/sshd-another
prog="sshd-another"
SSHD=/usr/sbin/sshd-another
PID_FILE=/var/run/sshd-another.pid
创建/etc/sysconfig/sshd-second
文件。
OPTIONS="-f /etc/ssh/sshd_config-another"
单独的 PAM 配置。
ln -s /etc/pam.d/sshd /etc/pam.d/sshd-another
重新启动服务。
service sshd restart
service sshd-another restart
检查配置。
chkconfig --add sshd-another
chkconfig on sshd-another
答案3
随着 Centos 的消亡,我认为将 Red Hat 客户门户中的解决方案链接起来以在不同的端口上配置多个 SSHD 服务可能会有所帮助(即,为第三方供应商提供不同的端口来连接非标准端口)。
请注意:RHEL 链接仅显示更改端口,但并未显示所使用的所有其他 SSH 强化技术
从上面的 CENTOS 文章中可以看出,更改“PidFile” PidFile /var/run/sshd-another.pid 是明智之举
RHEL 链接:
关联 :https://access.redhat.com/solutions/1166283 RHEL7/8 上的第二个 SSHD 链接:https://access.redhat.com/solutions/63129 RHEL5/6 上的第二个 SSHD
SSH 强化提示:
链接:dev-sec.io/baselines/ssh