登录
登录 注册新账号
注册
已有账号登录
Centos7.x、8.x修改SSH端口
Jianfei Chen 阅读 24 次
5月3日发布

Centos7.x、8.x修改SSH端口

  1. 修改ssh端口
   vi /etc/ssh/sshd_config

找到

   #Port 22

修改为:

   Port 22     //使端口22继续生效
   Port 2222    //修改为你想要的端口号

  1. 修改firewall配置
    firewall添加修改的ssh端口:
   firewall-cmd --zone=public --add-port=2222/tcp --permanent

重启:

   firewall-cmd --reload

查看添加端口是否成功,如果添加成功则会显示yes,否则no

   firewall-cmd --zone=public --query-port=2222/tcp

  1. 修改SELinux
    检查semanage是否安装
   rpm -qa |grep policycoreutils-python 
   # 若未安装,请先安装工具包
   yum install -y policycoreutils-python

查看当前selinux允许的端口

   semanage port -l |grep ssh

添加新端口

   semanage port -a -t ssh_port_t -p tcp 2222

检查是否添加成功

   semanage port -l |grep ssh

  1. 重启SSH、防火墙服务
   systemctl restart sshd.service
   systemctl restart firewalld.service

  1. sshd_config 关闭22端口
   vi /etc/ssh/sshd_config
   # 注释Port 22
   # Port 22
   重启SSH服务
   systemctl restart sshd.service

  1. firewall 删除的22端口
   先查看
   firewall-cmd --zone=public --query-port=22/tcp
   删除
   firewall-cmd --zone=public --remove-port=22/tcp --permanent
   再查看
   firewall-cmd --zone=public --query-port=22/tcp
   重新载入
   firewall-cmd --reload

注意:

SSH端口默认是22,如果要修改端口,可先增加一个端口,方法如上,使用新端口登录后再把22端口注释掉(注意同时修改防火墙# firewall-cmd --zone=public --remove-port=22/tcp --permanent,再重新加载# firewall-cmd --reload)。如果是增加端口号,需要先取消22端口的#号,再另起一行新增一个port端口。

若想删除已停用的端口可使用-d删除命令,# semanage port -d -t sshportt -p tcp 2222

若想添加其他已定义的端口(如443)到SSH,可使用-m修改命令,# semanage port -m -t sshportt -p tcp 443

直接使用-a命令添加443端口会报错:ValueError: Port tcp/443 already defined

一般停用默认端口后我们会想到从selinux中删除22端口,但在执行# semanage port -d -t sshportt -p tcp 22命令后会报以下错误:ValueError: Port tcp/22 is defined in policy, cannot be deleted而无法删除。暂时无法实现。

©著作权归作者所有:来自51CTO博客作者chpj的原创作品,如需转载,请注明出处,否则将追究法律责任