centos7 更改 ssh 端口到非 22 安全设置

0x00 起因

新换的 vps 新装的 Centos7 第一步要做的就是更改 ssh 的端口,因为 selinux 的安全限制以及firewalld 的拦截,所以要更改几个地方,今天九尾大家介绍一下如何去更改这个设置。

0x01 设置

1. 更改 sshd_config 设置

vim  /etc/ssh/sshd_config
Port 22  
# 22端口先不注释掉,有问题还能回来,没试完就注释掉了,后面就没办法了
Port 9999

2. 修改 selinux

安装 semanage 工具

yum -y install policycoreutils-python

为 ssh 打开 9999 端口

semanage port -a -t ssh_port_t -p tcp 9999
# 为 ssh 添加新的允许端口
semanage port -l | grep ssh
ssh_port_t                     tcp      9999, 22
# 查看当前 SELinux 允许的端口,有没有9999

3. 配置防火墙FirewallD

首先检测防火墙是否已经启用,启用返回值runing,反之,为not running

firewall-cmd --state

若没有启用,需要启用

systemctl start firewalld
systemctl enable firewalld

若已经启用,则进行下一步

查看防火墙的默认、活跃区域(zones)

firewall-cmd --get-default-zone
firewall-cmd --get-active-zones

看两条命令的返回值是否含有 public,有则为正确(默认就是 public 区域)。

端口永久开放
为了防止出错,22端口一同开放

与临时开放的区别在于多了 permanent

firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=9999/tcp

防火墙重载

firewall-cmd --reload

查看已暴露端口

firewall-cmd --permanent --list-port
firewall-cmd --zone=public --list-all

重启SSH

systemctl restart sshd.service

之后用Putty、Xshell之类的软件换成1024端口登录,看能否成功登录。

禁用22端口
首先,删除ssh运行端口

vi etc/ssh/sshd_config

在Port 22前加#成为#Port 22后保存退出即可

在把防火墙中的22端口移除

firewall-cmd --permanent --zone=public --remove-port=22/tcp

重启并查看是否移除

firewall-cmd --reload
firewall-cmd --permanent --list-port

若移除,则成功。

本文参考链接,排名不分先后。
https://blog.csdn.net/ausboyue/article/details/53691953
https://sebastianblade.com/how-to-modify-ssh-port-in-centos7/
https://www.jianshu.com/p/c18d5347c9b6
https://zhuanlan.zhihu.com/p/35335800

上一篇
下一篇