本教程根据最新的Centos 7规则来更改端口,主要用来防止默认的22端口被暴力破解
更改SSH配置文件:
通过SSH客户端连接自己的vps,默认通过SSH协议22端口远程登录。
现在打算将默认的22端口改成其他端口,比如2211端口。
1. 登录系统后,运行以下命令打开sshd_config文件:
vi /etc/ssh/sshd_config
2. 在默认的SSH端口配置下面添加一个我们要用的新的端口
Port 22
# 默认的22端口配置,注意现在不删除这个默认的22端口配置,避免修改后无法链接SSH
Port 2211
# 新添加的2211端口配置
# 默认的22端口配置,注意现在不删除这个默认的22端口配置,避免修改后无法链接SSH
Port 2211
# 新添加的2211端口配置
3. 运行以下命令重启ssh服务(或重启服务器)即可:
systemctl restart sshd
在SELinux中添加端口:
如果你关闭了SELinux,可以忽略此步。
1. 安装SELinux策略编辑器:
yum -y install policycoreutils-python
2. 先查看SELinux开放给ssh使用的端口:
semanage port -l|grep ssh
3. 如果SELinux没有给SSH开放2211端口,运行以下命令添加该端口:
semanage port -a -t ssh_port_t -p tcp 2211
4. 完成后,再次检查是否添加成功:
semanage port -l|grep ssh
防火墙放行新端口:
如果经过以上步骤编辑好SSH配置文件并重启服务后仍无法连接
则需要在防火墙添加入站规则来放行新端口(如果服务商自带防火墙也要一并开启)
1. CentOS 7.5默认是安装了防火墙但没有开启,运行以下命令可以开启:
systemctl start firewalld.service
2. 运行以下命令开放防火墙对应端口:
firewall-cmd --zone=public --add-port=2211/tcp --permanent
3. 运行如下命令重新加载防火墙策略:
firewall-cmd --reload
4. 运行以下命令查看端口是否开启,如果已开启则可以用SSH客户端通过2211端口登录。
firewall-cmd --permanent --query-port=2211/tcp
5. 重启SSH服务即可尝试连接:
systemctl restart sshd
6. 其他防火墙命令整理:
停止firewall:
systemctl stop firewalld.service
禁止firewall开机启动:
systemctl disable firewalld.service
重启firewall:
systemctl restart firewalld.service
systemctl stop firewalld.service
禁止firewall开机启动:
systemctl disable firewalld.service
重启firewall:
systemctl restart firewalld.service
删除初始SSH端口22:
完成以上步骤后可以再重启下机器,尝试下是否还可以正常连接新端口。
1. 如果没问题的话则删除掉ssh配置文件里的22端口即可:
vi /etc/ssh/sshd_config
2. 找到Port 22并注释或者删除此行:
#Port 22
# 注释掉22端口,或者直接删除此行
Port 2211
# 新添加的2211端口配置
# 注释掉22端口,或者直接删除此行
Port 2211
# 新添加的2211端口配置
3. 最后重启SSH服务就大功告成:
systemctl restart sshd