之前服务器有几次被攻击的事件(ssh暴力破解、恶意程序、挖矿程序等),其中一次严重事件,服务器无法登录,联系阿里云售后也无法恢复,只能重置。所以决定认真学习下安全设置,并整理成博文,以供需要的人做参考。
文章目录
- 1、防SSH暴力破解
- 2、禁止root用户登录,创建有root权限用户UserA来登录
- 3、使用密钥登录,比密码安全,缺点时是麻烦
- 4、创建快照,以便于系统出问题,做系统还原
- 5、网络安全组规则设置
- 6、打开防火墙,并开启ssh自定义端口
1、防SSH暴力破解
修改文件 /etc/ssh/sshd_config,并重启ssh服务(systemctl restart sshd.service)。
修改项 | 说明 |
Port 2022 | 修改传统的22端口,减少攻击 |
Protocol 2 | 强制使用SSH Protocol2(版本1不安全) |
PermitEmptyPasswords no | 禁止空密码登录 |
PermitRootLogin no AllowUsers UserA | 禁止root用户登录,创建有root权限用户UserA来登录(下面有详细步骤) |
MaxAuthTries 3 | 允许三次尝试 |
LoginGraceTime 20 | 在20秒内不能完成登录,则断开连接 |
ClientAliveInterval 600 ClientAliveCountMax 3 | 闲置会话最多3个,600秒后无动作就自动断开连接 |
修改文件/etc/hosts.allow
# 仅允许192.168.1.x网段访问
sshd: 192.168.1.
2、禁止root用户登录,创建有root权限用户UserA来登录
(1)创建用户并设置密码
adduser UserA
passwd UserA
(2)赋予UserA用户root权限
第1种方式:修改/etc/sudoers文件,增加如下:
UserA ALL=(ALL:ALL) ALL
第2种方式:修改/etc/passwd文件,把用户ID修改为0,如下
UserA:x:0:1000:UserA,,,:/home/UserA:/bin/bash
3、使用密钥登录,比密码安全,缺点时是麻烦
创建密钥对,并下载保存到本地,每次登录时选择密钥登录,并加载密钥文件即可。
4、创建快照,以便于系统出问题,做系统还原
5、网络安全组规则设置
遇到过通过Redis远程代码执行漏洞,访问6379端口非法获得权限执行任何命令。
6、打开防火墙,并开启ssh自定义端口
# 开启防火墙
systemctl start firewalld.service
# 查看状态
systemctl status firewalld.service
# 停止防火墙
systemctl stop firewalld.service
# 开启ssh端口
firewall-cmd --zone=public --add-port=2022/tcp --permanent
# 刷新
firewall-cmd --reload
以上这些不用每一个都设置,根据自己的实际情况吧。