概述
默认情况下,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。
如何调整防火墙以允许新配置的端口使用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才能正常连接上。
相关主题
最后
以上就是傲娇香水为你收集整理的linux防火墙只允许ssh,更改Linux系统中的默认SSH端口及配置防火墙以允许访问新的SSH端口...的全部内容,希望文章能够帮你解决linux防火墙只允许ssh,更改Linux系统中的默认SSH端口及配置防火墙以允许访问新的SSH端口...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复