CentOS 7 修改默认的 SSH 端口
一些网站管理员认为,更改默认为 22 的 SSH 端口号可以增强安全性。这是因为每个人都知道 SSH 默认端口号是 22,当然也包括黑客,所以是不安全的。
将 SSH 端口号更改为 22 以外的其他值将增强服务器的安全性,因为坏人不会知道 SSH 通信的端口。这是一个很酷的技巧,但不会阻止那些决心闯入你服务器的人。
只需使用简单的端口扫描程序或类似工具,黑客就可以找出服务器上的所有连接端口。这是一项古老的技术,可能在我们今天的时间里不适用。
在我看来,保护 SSH 服务器的最佳方法是使用证书和加密实现无密码登录。使用此方法,只允许已使用加密密钥的计算机使用 SSH 协议登录。
另一种方法是通过将该计算机的 IP 地址放到防火墙白名单中,来将防火墙配置为仅允许来自预定义计算机的 SSH 连接。其他任何东西都不会更好地增强您的服务器安全性。
以下是更改步骤。
1、首先,备份 SSH 配置文件
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
2、开始修改配置文件
sudo vi /etc/ssh/sshd_config
修改内容,可以把端口修改为你想要修改的值:
这里可以在保留 22 端口的情况下,先增加一个新端口,以确保可以通过新端口连接,然后再禁用掉 22 端口。
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 22
Port 2244
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
保存文件,在完成修改之前,不要退出登录。
3、默认情况下,SELinux 只允许端口 22 用于 SSH,现在需要做的是通过 SELinux 启用新创建的端口。执行以下命令:
sudo semanage port -a -t ssh_port_t -p tcp 2244
如果执行以上命令后报错:semanage command not found
,执行这条命令来安装 semanage
sudo yum -y install policycoreutils-python
安装成功后,再次执行第一条命令,通过 SELinux 来允许新端口。
4、执行以下命令允许新端口通过防火墙。
sudo firewall-cmd --permanent --zone=public --add-port=2244/tcp
如果报错:FirewallD is not running
,表示防火墙还没有开启,执行以下命令来开启防火墙:
systemctl enable firewalld systemctl start firewalld
然后查看防火墙状态:
systemctl status firewalld # 或者以下命令 firewall-cmd --state
5、重新加载防火墙配置。
sudo firewall-cmd --reload
6、重启 SSH 服务。
sudo systemctl restart sshd.service
7、或者通过运行以下命令验证 SSH 现在是否在新端口上运行。
ss -tnlp | grep ssh
8、退出并尝试使用新端口号登录。
ssh root@192.168.0.1 -p 2244
9、禁用 22 端口。
10、重启 SSH 服务。
systemctl restart sshd.service
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析