CentOS 6.3. SSH,绑定到www.example.com上的端口xxx0.0.0.0失败:权限被拒绝

0x6upsns  于 2022-11-07  发布在  其他
关注(0)|答案(5)|浏览(171)

CentOS 6.3最低配置。已安装SSH服务器,端口22。所有工作正常。我更改了777上的端口22,并重新启动sshd,并在日志中看到:

Jul 26 01:01:07 myserver sshd[1590]: error: Bind to port 777 on 0.0.0.0 failed: Permission denied.
Jul 26 01:01:07 myserver sshd[1590]: error: Bind to port 777 on :: failed: Permission denied.
Jul 26 01:01:07 myserver sshd[1590]: fatal: Cannot bind any address.

/etc/sysconfig/iptables文件中包含以下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 777 -j ACCEPT
  • 网络统计-tulpn| grep:22* 和 * 网络统计-tulpn| grep:777* 不返回任何内容
aelbi1ox

aelbi1ox1#

Centos默认使用SELinux,我不认为Ubuntu使用SELinux(或者至少我没有看到它)。

k3fezbri

k3fezbri2#

SELinux不允许sshd在CentOS 6.3默认安装的另一个端口上运行。

  • 在防火墙中挖一个洞(您已经这样做了)
  • 为SELinux添加一条规则,以允许sshd在端口777上运行:sudo semanage port -a -t ssh_port_t -p tcp 777
omjgkv6w

omjgkv6w3#

您可以使用命令sudo setenforce 0禁用selinux。
sudo设置强制0
防火墙-cmd-添加端口=777/tcp -永久
防火墙-cmd-重新加载

jucafojl

jucafojl4#

端口777专用于Multiling HTTP,即使未使用,也不能绑定到它。例如,如果尝试绑定到端口8777,它将正常工作。

ercv8c1e

ercv8c1e5#

问题是通知SELinux,但我认为有两种情况:
1.该端口尚未分配给内置服务,在这种情况下,可以这样做:

sudo semanage port -a -t ssh_port_t -p tcp 22777

1.矶钓正在覆盖某些现有服务(不要问我为什么);在这种情况下,需要使用稍微不同语法:

sudo semanage port --modify -t ssh_port_t -p tcp 777

当然,应该通过更新防火墙来使这些端口可用:

sudo firewall-cmd --add-port=22777/tcp --permanent

sudo firewall-cmd --add-port=777/tcp --permanent

然后:

sudo firewal-cmd --reload

相关问题