CentOS SSH 端口配置与管理
SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络上进行安全的远程登录和其他网络服务,默认情况下,CentOS 操作系统的 SSH 服务监听的是 22 号端口,但出于安全考虑,我们可能需要修改这个默认端口,本文将详细介绍如何更改 CentOS 系统中的 SSH 端口,以及相关的防火墙和 SELinux 配置。
一、SSH 服务
SSH 简介
SSH 是一种加密的网络传输协议,主要用于远程登录和管理 Linux 系统,它通过加密数据流量来保护用户信息和操作的安全性,防止中间人攻击和窃听。
CentOS 中的 SSH 服务
在 CentOS 中,SSH 服务通常由opensshserver
软件包提供,该服务默认安装并启用,监听的是TCP的22端口。
二、修改 SSH 端口的必要性
减少暴力攻击风险
默认的 SSH 端口是 22,黑客通常会扫描此端口以寻找可攻击的服务器,将 SSH 端口更改为非标准端口可以降低被攻击的几率。
避免自动化攻击
许多自动化工具和恶意软件会针对默认端口进行攻击,修改端口可以让这些工具失去效力。
三、修改 SSH 端口的步骤
远程登录或物理登录到服务器
您需要通过 SSH 远程登录到您的 CentOS 服务器或者直接物理访问服务器的控制台。
修改 SSH 配置文件
使用文本编辑器(如 vi)打开 SSH 配置文件:
sudo vi /etc/ssh/sshd_config
找到Port
这一行,按i
进入编辑模式,利用#
将其注释掉,然后在下面添加一行新的Port
,
#Port 22 Port 31022
保存并退出编辑器(按Esc
,输入:wq
,然后按Enter
)。
关闭 SELinux(可选)
SELinux 可能会阻止新的 SSH 端口正常工作,我们需要暂时关闭 SELinux:
sudo setenforce 0
永久关闭 SELinux(不推荐,因为会降低系统安全性):
sudo vi /etc/selinux/config
将SELINUX=
后面的值改为disabled
:
SELINUX=disabled
保存并退出编辑器。
修改防火墙设置
如果您的服务器启用了防火墙(如 firewalld),需要放行新的 SSH 端口:
sudo firewallcmd zone=public addport=31022/tcp permanent sudo firewallcmd reload
如果防火墙是关闭状态,这里就不需要执行上述命令。
重启 SSH 服务
修改完成后,需要重启 SSH 服务以使更改生效:
sudo systemctl restart sshd
测试新端口
使用 xshell 或命令行工具测试新的 SSH 端口是否工作正常:
ssh 用户名@IP p 31022
四、常见问题及解决方法
新端口无法连接
如果修改后的新端口无法连接,可能是由于以下原因:
防火墙未放行新端口:确保已在防火墙中放行新的 SSH 端口。
SELinux 限制:检查 SELinux 是否允许新的 SSH 端口通过。
配置文件错误:检查 SSH 配置文件是否正确无误。
SSH 服务无法启动
SSH 服务无法启动,可能是由于配置文件错误或端口已被其他服务占用,可以通过以下命令查看日志:
sudo journalctl xe
根据日志提示进行相应的修正。
五、归纳
修改 CentOS 系统中的 SSH 端口可以提高系统的安全性,减少被攻击的风险,具体步骤包括修改 SSH 配置文件、关闭 SELinux(可选)、修改防火墙设置以及重启 SSH 服务,通过以上步骤,您可以成功地将 SSH 服务的端口更改为自定义的端口,从而增强系统的安全性,如果在修改过程中遇到问题,可以根据常见问题及解决方法进行排查和解决。