更改了 SSH 端口,我需要使用 iptables 打开端口吗?

更改了 SSH 端口,我需要使用 iptables 打开端口吗?

更新

正如 Khaled 所建议的,我更改了我的 netstat 命令

netstat -lnp | grep 3899
tcp        0      0 :::3899           :::*              LISTEN      10333/sshd

那么它不应该倾听吗?


我将 centos 5.5 机器上的 ssh 端口改为 3899。但我似乎无法远程登录。我以前也这样做过,但上次我不需要做任何其他更改就可以让它正常工作。

iptables -L | grep 3899
[empty response]

iptables -L | grep 22
[empty response]

iptables -L | grep ssh
ACCEPT     tcp  --  anywhere       anywhere       state NEW tcp dpt:ssh

答案1

是的,您可能需要调整防火墙规则。要查看当前规则:

iptables -nvL

如果您看到一堆 ACCEPT 规则和最后的 REJECT 规则,则意味着您的主机正在阻止除指定连接之外的所有传入连接。

思考您可以使用system-config-securitylevel基于菜单的工具打开自定义端口。在终端中运行该程序并选择“自定义”按钮。添加3899:tcp其他港口列出并保存更改。我不确定 system-config-securitylevel 是否采用端口号而不是服务名称。如果在该工具中指定端口号不起作用,您可以尝试添加自定义“myssh”服务名称,/etc/services然后在 system-config-securitylevel 中使用该名称。

你可以运行

nmap -sS -v server.example.com

从外部机器扫描您的系统以确定哪些端口是开放的。

进行此更改的另一种方法是手动编辑/etc/sysconfig/iptables,并将现有的 ssh 条目复制到其正下方的另一个条目,但将端口从 ssh 更改为 3899。请注意,通过手动编辑 iptables 文件很容易搞砸防火墙配置,因此如果您选择这种方式,请务必小心。进行更改后,重新启动计算机,或运行/etc/init.d/iptables restart以加载您的更改。

答案2

运行这个,它应该添加允许连接到端口 3899 的条目

iptables -I INPUT -p tcp --dport 3899 -j ACCEPT

您的帖子没有显示 INPUT 链的默认策略是什么,或者其他规则是什么。

复制粘贴此处的输出

iptables-save然后netstat -nlp 我们就会知道帮助您所需的所有详细信息。

答案3

答案可能是肯定的——如果您的 iptables 规则处于活动状态,则目标端口 SSH(dpt:ssh)规则仅覆盖端口 22——由 IANA 分配并在 /etc/services 中列出的标准 SSH 端口。

您需要更改该规则以允许流量到端口 3899(或任何新的 SSH 端口) - 在 CentOS 上,我相信 ipables 规则位于/etc/sysconfig/iptables

答案4

无论使用 dpt:ssh 还是 CentOS 都会使用端口 22,您应该手动打开端口 3899

您可以通过运行以下命令来执行此操作:

iptables -I INPUT -p tcp --dport 3899 -j ACCEPT

相关内容