更改默认SSH端口是增强SSH服务器安全性的几种方法之一,本篇文章分享如何正确的更改Linux中SSH默认端口
如果您了解SSH基础知识,那么您已经知道SSH默认使用端口22。
通过SSH连接到服务器时,大多数情况下,您不提供任何端口信息。在这种情况下,您的连接将连接到SSH服务器的端口22。
您可以使用以下步骤将默认端口从您选择的端口号22更改为:
- 打开
/etc/ssh/sshd_config
文件进行编辑。 - 找到具有的行
Port 22
(如果用#注释掉,则也删除#)。 - 将线路更改为端口2522(或您选择的介于1024和65535之间的任意数字)。
- 确保防火墙允许新端口(如果有)。
- 使用重启ssh守护进程
sudo systemctl restart sshd
。 - 再次登录必须指定ssh连接的端口
ssh user@ip_address_of_server -p 2522
为什么更改默认的SSH端口?
保护SSH服务器最基本的技巧之一就是更改默认的SSH端口号22。
为什么?由于许多bot脚本都会在默认端口22上进行蛮力攻击,因此大多数此类脚本并不总是扫描开放端口,它们会将默认端口用于SSH等各种已知服务。
现在您知道了为什么要更改默认的SSH端口,让我们看看如何做。
通过更改防火墙设置允许新端口上的流量
如果您设置了防火墙或自定义ipconfig或ifconfig,或者使用的是selinux,则在进行更改之前必须允许新的ssh端口。否则,您可能无法使用SSH访问而被锁定。
现在,这部分取决于您使用的是哪种防火墙或路由。
如果使用UFW,则可以使用以下命令允许端口2522:
sudo ufw allow 2522/tcp
如果使用的是iptables,则应使用以下命令:
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2522 -j ACCEPT
在Fedora,CentOS和Red Hat上,防火墙由firewalld管理,您可以使用以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=2522/tcpsudo firewall-cmd --reload
在CentOS和Red Hat上,您可能还需要更改SELinux规则:
sudo semanage port -a -t ssh_port_t -p tcp 2522
现在您已经设置了正确的防火墙设置,让我们继续更改SSH端口。
SSH更改默认端口
通常,ssh配置文件位于/etc/ssh/sshd_config
。您必须使用基于终端的编辑器(例如Vim或Nano或Emacs)来编辑文件。
像Ubuntu这样的发行版默认安装了Nano,因此您可以使用它在编辑模式下打开文件,如下所示:
sudo nano /etc/ssh/sshd_config
如您所见,您必须是sudo用户或root用户才能编辑ssh配置。
向下滚动一点,您将看到带有的线Port 22
。如果以开头#
,则表示该行已被注释掉。带注释的行为您提供默认设置。
因此,如果看到# Port 22
,则表示默认端口为22。
用您选择的端口号更改此行。在Linux中,端口号0-1023通常保留用于各种服务。最好避免使用0到1023之间的任何值,以免发生冲突。
您可以使用1024到65535之间的任何其他端口号。在示例中,我使用的是2522。确保删除#
端口行之前的。
保存更改并退出编辑器。如果您使用的是Nano,请使用Ctrl + X保存并退出。
下一步是重新启动ssh服务。大多数现代系统使用systemd服务,因此您可以使用以下命令:
sudo systemctl restart sshd
现在,如果要访问SSH服务器,则必须指定端口号:
ssh user@ip_address_of_server -p 2522
以上就是关于如何[正确,安全地]在Linux中SSH更改默认端口的全部内容
评论前必须登录!
注册