目录
- [一、配置 shhd_config](#一、配置 shhd_config)
-
- [1.1 文件备份](#1.1 文件备份)
- [1.2 修改 shhd_config](#1.2 修改 shhd_config)
- [二、配置 SELinux](#二、配置 SELinux)
-
- [2.1 检查 SELinux 状态](#2.1 检查 SELinux 状态)
- [2.2 安装 semanage](#2.2 安装 semanage)
- [2.3 修改 SSH 的 SELinux 端口上下文](#2.3 修改 SSH 的 SELinux 端口上下文)
- 三、配置防火墙
- [四、重启 SSH 服务并测试](#四、重启 SSH 服务并测试)
- [五、禁用 22 端口](#五、禁用 22 端口)
-
- [5.1 修改 shhd_config](#5.1 修改 shhd_config)
- [5.2 配置防火墙](#5.2 配置防火墙)
- [5.3 重启 SSH 服务](#5.3 重启 SSH 服务)
一、配置 shhd_config
1.1 文件备份
bash
[root@localhost ~]# sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
1.2 修改 shhd_config
可以使用 ss -tuln 查看已占用的端口。
bash
# 1、编辑命令,输入【i】编辑
[root@localhost ~]# sudo vi /etc/ssh/sshd_config
# 2、添加端口,以防无法登录服务器,暂时先放开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 2222
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
# =====================================================================
# 3、保存并退出
在 vi 中按 Esc,输入 :wq,然后回车

如图所示,如果您想要更改SELinux系统上的端口,您必须告知 SELinux 关于这个变化。
二、配置 SELinux
2.1 检查 SELinux 状态
bash
[root@localhost ~]# sudo getenforce
Enforcing
如果返回 Enforcing,则需要进行下一步。
2.2 安装 semanage
bash
# CentOS 8/RHEL 8+
[root@localhost ~]# sudo yum -y install policycoreutils-python-utils
# CentOS 7/RHEL 7+
#[root@localhost ~]# sudo yum -y install policycoreutils-python
2.3 修改 SSH 的 SELinux 端口上下文
bash
# 添加新端口
[root@localhost ~]# sudo semanage port -a -t ssh_port_t -p tcp 2222
# 验证是否成功
[root@localhost ~]# sudo semanage port -l | grep ssh
ssh_port_t tcp 2222, 22
三、配置防火墙
bash
# 开放端口(TCP协议)
[root@localhost ~]# sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
success
# 重新加载防火墙规则
[root@localhost ~]# sudo firewall-cmd --reload
success
# 验证端口是否开放
[root@localhost ~]# sudo firewall-cmd --list-ports
2222/tcp
四、重启 SSH 服务并测试
bash
# 1、重启服务
[root@localhost ~]# sudo systemctl restart sshd
# 2、查看 SSH 监听的端口
[root@localhost ~]# sudo ss -tnlp | grep sshd
# 3、在新终端测试连接(不要关闭当前终端!),如使用 win 命令提示符
# ssh -p port username@localhost
ssh -p 2222 root@192.168.0.110
输入登录密码
也可以使用Putty、Xshell软件测试是否成功登录。
五、禁用 22 端口
5.1 修改 shhd_config
bash
# 1、编辑命令,输入【i】编辑
[root@localhost ~]# sudo vi /etc/ssh/sshd_config
# 2、注释端口
#Port 22
# 3、保存并退出
在 vi 中按 Esc,输入 :wq,然后回车
5.2 配置防火墙
bash
# 移除22端口
[root@localhost ~]# sudo firewall-cmd --permanent --zone=public --remove-port=22/tcp
# 重新加载防火墙规则
[root@localhost ~]# sudo firewall-cmd --reload
5.3 重启 SSH 服务
bash
[root@localhost ~]# sudo systemctl restart sshd