CentOS 7修改ssh端口,有效减少爆破 | Linux折腾之路

  • 2018-10-03
  • 1,137
  • 0

本文介绍如何CentOs修改默认ssh的22端口
使用工具:SecureCRT8.1
Linux版本:CentOS 7

第一步:检查要添加的端口是否被占用

用ssh工具登录服务器,执行命令

netstat -lnp|grep 10010

这里 grep 后跟的就是你要添加的端口号,这里我用的10010端口. 如果没有任何打印,说明没有被占用.有打印的话,说明被占用了,一般会列出哪个进程占用.

第二步:修改sshd_config配置文件

执行命令

vim /etc/ssh/sshd_config

默认情况下,可以看到,大概在17行,有 #Port 22 , 移动光标至此处键入yyp, 直接复制到下一行, 把两行的注释’#’去掉 , 修改成

Port 22
Port 10010

ssh的默认端口为22 , 如果你不强制说明别的端口, “Port 22″注不注释都是开放22访问端口. 上面我保留了22端口, 防止之后因为各种权限和配置问题, 导致连22端口都不能访问了, 那就尴尬了. 等一切都ok了, 再关闭22端口. 在这里我添加了10010端口, 为了防止端口被系统或其他一些特殊软件占用 , 建议添加10000-65535之间的端口

第三步: 检查SELinux

检查SElinux是否开放了你要增加的端口

若你关闭了SElinux,可跳过第三步 首先我们要查看下是否开启了SELinux, 执行命令

sestatus -v

如果输出结果为:

SELinux status: disabled

说明关闭了SELinux, 如果你要开启, 执行命令

vim /etc/selinux/config

找到:

SELINUX=disabled

修改成:

SELINUX=enforcing

重启服务一下,就OK.
这一步真正的目的是开启SELinux的情况下,检查要添加的端口是否有开放, 若无则开放端口
执行命令

semanage port -l|grep ssh

我的系统打印如下

ssh_port_t tcp 22

可以看到, SELinux没有开放我要增加的10010端口, 那么我们来添加10010端口

semanage port -a -t ssh_port_t -p tcp 10010

完成后,再次查看

ssh_port_t tcp 22,10010

第四步: 防火墙开放端口

如果你关闭了防火墙 , 可跳过第四步 先来检查一下防火墙是否开放了10010端口

firewall-cmd --permanent --query-port=10010/tcp

打印结果如:no 表示没有开放10010端口,那么添加下这个端口:

firewall-cmd --permanent --add-port=10010/tcp

打印结果如success

成功添加, 重新加载下防火墙策略:

firewall-cmd --reload

执行成功后,查看10010端口是否被开启:

firewall-cmd --permanent --query-port=10010/tcp

打印结果如yes

第五步: 重启ssh服务和防火墙服务

执行下面命令

systemctl restart sshd systemctl restart firewalld.service

最好也重启下服务器

shutdown -r now

第六步:尝试登录

尝试用10010端口登录ssh , 或进入服务器使用本地访问ssh

ssh root@localhost -p 10010 

若能成功登录说明10010已经完全可以使用了, 接下来只要重复上述几个步骤 , 注释’#’掉22端口,  同时 SElinux 和 Firewalls 关闭22端口

第七步: 开放安全组策略

如果你使用第三方服务器, 如腾讯云, 阿里云服务器, 请务必在安全组中开放你要添加的端口 下面是腾讯云主机安全组策略添加端口

腾讯云添加新端口

当然, 你还可以限制同一ip登录失败的次数,  登录失败次数超过一定次数, 直接封锁ip. 本文就不一一叙述了.

评论

还没有任何评论,你来说两句吧