一. 关闭Ping 扫描
- 先切换到root
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
1代表关闭,0代表开启
- 用iptables
iptables -I INPUT -p icmp -j DROP
二. 创建普通用户,禁止root用户登录,只允许普通用户使用su命令切换到root
这样做的好处是双重密码保护,黑客就算知道了普通用户的密码,如果没有root密码,对服务器上攻击也比较有限。
- 在root下添加普通账户
useradd lidi // 添加一个普通账户lidi,并设置密码
passwd lidi
- 禁止root登录
vi /etc/ssh/sshd_config
PermitRootLogin no // 设为no
Systemctl restart sshd // 重启sshd
这样就完成了第一步,之后root就无法登录服务器只能通过普通用户su切换
三、 修改ssh的默认端口22,因为ssh的端口是22,我们如果修改了该端口,他们就需要花费一点时间来扫描,稍微增加了点难度
以下将端口改为20903可以根据需要自己更改,大家修改端口时候最好挑10000~65535之间的端口号,10000以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行
- 修改/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Port 22 //这行去掉#号
Port 51866 //下面添加这一行
为什么不先删除22,以防其他端口没配置成功,而又把22的删除了,无法再次进入服务器
- 修改SeLinux,关闭可忽略
- 如果你关闭了防火墙,可以忽略第三步,话说防火墙不开启太危险了,建议开启
- 首先查看防火墙是否监听20903端口
firewall-cmd --permanent --query-port=20903/tcp
no // 显示no 未监听
firewall-cmd --permanent --add-port=20903/tcp // 添加端口
success
- 重新加载防火墙策略
firewall-cmd --reload
- 执行成功后,查看20903端口是否被开启:
firewall-cmd --permanent --query-port=20903/tcp
- 重启SSH服务和防火墙,最好也重启下服务器
systemctl restart sshd
systemctl restart firewalld.service
shutdown -r now
- 然后测试试试,能不能通过20903登录,若能登录进来,说明成功,接着删除ssh 22端口,同时关闭防火墙22端口
firewall-cmd --permanent --zone=public --remove-port=22/tcp
四、使用一些类似DenyHosts预防SSH暴力破解的软件(不详细介绍)
其实就是一个python脚本,查看非法的登录,次数超过设置的次数自动将ip加入黑名单。
五、使用云锁(不详细介绍)