默认情况下,SSH绑定在22端口上,更改默认SSH端口可为Linux系统增加一层安全保护。本文说明了如何在Linux操作系统中更改默认的SSH端口,以下是可行的方法,此外,我们还将向您展示如何配置防火墙以允许访问新的SSH端口。它可以免受不必要的攻击,尤其是僵尸程序和端口扫描攻击。
如何在Linux中更改默认的SSH端口 在Linux操作系统中更改SSH端口并不困难,可以通过在目标文件中进行更改,我建议用户在配置文件中进行任何更改时要格外小心,最好在进行任何更改之前,请先复制配置文件: # cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bk 为此,请运行以下命令: # sed -i 's/#Port 22/Port 2200/g' /etc/ssh/sshd_config 我们可以通过运行以下命令来检查更改: # grep -w Port /etc/ssh/sshd_config Port 2200 注:还可以自定义Port 2200。 参考:使用SELinux强制更改CentOS、RHEL 7/8、Fedora上的SSH端口。
如何调整防火墙以允许新配置的端口使用SSH 退出会话之前,请不要忘记对防火墙进行更改,如果没有,您将无法重新登录。这意味着,您必须允许防火墙中的新端口用于ssh访问。 UFW是基于Ubuntu的系统的默认防火墙,要调整UFW防火墙,请运行以下命令: $ sudo ufw allow 2200/tcp FirewallD是RHEL7/8和CentOS 7系统的默认防火墙工具,默认情况下处于启用状态,因此,我们需要通过运行以下命令进行必要的更改: $ sudo firewall-cmd --permanent --zone=public --add-port=2200/tcp $ sudo firewall-cmd --reload 另外,我们需要调整SELinux规则以允许新的SSH端口: $ sudo semanage port -a -t ssh_port_t -p tcp 2200 进行记录,您必须根据iptables行号在拒绝行之前插入“INPUT”规则: # iptables -nvL --line-n
就我而言,“reject”输入规则位于第五行,因此我将在第五行添加一个新规则。 对于RHEL 6/CentOS 6系统,运行以下命令来调整iptables规则: $ sudo iptables -I INPUT 5 -p tcp --dport 2200 -m state --state NEW,ESTABLISHED -j ACCEPT $ sudo iptables -A OUTPUT -p tcp --sport 2200 -m state --state ESTABLISHED -j ACCEPT $ sudo service iptables save 完成上述所有更改后,就该重新启动ssh服务了。 对于SysVinit系统,运行: $ sudo service sshd restart 对于基于RHEL的systemd系统,运行: $ sudo systemctl restart sshd 对于基于Debian的systemd系统,运行: $ sudo systemctl restart ssh 现在,检查SSH守护进程是否正在侦听新的2200端口: $ sudo netstat -tplugn | grep ssh
注:如上图所示,已达成目标。 最后,尝试使用标准端口和新的SSH端口访问远程Linux系统,并查看两者之间的区别。 使用标准SSH端口时提示错误: $ ssh 192.168.1.4 -l ywnz ssh: connect to host 192.168.1.4 port 22: Connection refused 但同时,它允许我使用新的SSH端口登录: $ sh 192.168.1.4 -l ywnz -p 2200 Password: Last login: Wed Feb 19 23:39:36 2020 from 192.168.1.6 Have a lot of fun... 注:以上表明用原先的22端口已提示错误,需要新的SSH端口2200才能正常连接上。
相关主题 |