安全运维,等保测试常见解决问题。

1. 未配置口令复杂度策略。

bash 复制代码
# 配置密码安全策略 
# vi /etc/pam.d/system-auth
# local_users_only 只允许本机用户。
# retry =3         最多重复尝试3次。
# minlen=12        最小长度为12个字符。
# dcredit=-1       至少需要1个数字字符。
# ucredit=-1       至少需要1个大写字母。
# lcredit=-1       至少需要1个小写字母。
# ocredit=-1       至少需要1个特殊字符。
# difok=7          新口令与旧口令至少有7个字符不同。

# enforce_for_root 对root用户也强制执行这些规则。
password  requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root

2. 配置登录失败处理策略及登录连接超时策略。

bash 复制代码
#vi /etc/pam.d/sshd
auth required pam_faillock.so preauth silent deny=5 unlock_time=900
account required pam_faillock.so

#vi /etc/ssh/sshd_config 
# 服务器向客户端发送消息的间隔时间(秒),即30分钟。
ClientAliveInterval 1800
# 如果客户端在 ClientAliveInterval 时间内没有响应,服务器将断开连接。
ClientAliveCountMax 0

3. 未严格限制系统默认账户root的访问权限。

bash 复制代码
# 禁用root账户sshd远程登录
# vi /etc/ssh/sshd_config
PermitRootLogin no
PermitRootLogin yes

# 配置sqyr账户可以使用sudo来执行超管权限
# sudo visudo
sqyr ALL=(ALL) ALL

4. 未严格限制终端登录地址范围。

bash 复制代码
# 配置sshd允许内网ip为[222.19.190.1-222.19.190.255]范围内可访问
# vi /etc/hosts.allow
sshd: 222.19.190.0/24

# 配置sshd除了222.19.190.1~255内网ip可访问; 其他都拒绝
# vi /etc/hosts.deny
sshd: ALL

5. 未对及时清除会话信息。

bash 复制代码
# vi /etc/profile
# set system environment
export HISTSIZE=0
export HISTFILESIZE=0
export HISTFILE=/dev/null
#source /etc/profile

5. MYSQL未配置口令复杂度策略。

bash 复制代码
# vi /etc/my.cnf
# 设置密码安全相关
# 设置密码策略等级STRONG
validate_password_policy=STRONG
# 设置密码最小长度14
validate_password_length=14
# 设置密码中至少需要大写字母和小写字母的数量
validate_password_mixed_case_count=1
# 设置密码中至少需要数字的数量
validate_password_number_count=1
# 设置密码中至少需要特殊字符的数量
validate_password_special_char_count=1
# 设置密码定期更换周期365天
default_password_lifetime=365

6. MYSQL未配置登录失败处理策略及登录连接超时策略。

bash 复制代码
# 复制链接控制插件;[插件位置在安装/lib64/mysql/plugin目录]
[root@localhost plugin]# cp /lib64/mysql/plugin/connection_control.so /home/sqyr/local/mysql-5.7.43/install/data/mysql/lib64/mysql/plugin/
# 登录账户
[root@localhost plugin]# mysql -u root -p
# 执行安装插件
install plugin CONNECTION_CONTROL soname 'connection_control.so';
install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';
FLUSH PRIVILEGES;
show plugins;
exit;

# 编辑mysql配置文件,添加配置参数
[root@localhost plugin]# vi /etc/my.cnf
# 允许帐户进行的连续失败尝试5次
connection-control-failed-connections-threshold=5 
# 最小连接延迟[超过失败次数后;等待链接时长为1分钟]
connection-control-min-connection-delay=60000
# 重新启动
[root@localhost plugin]# systemctl restart mysqld 
# 登录后直接查看配置信息
show variables like '%connection_control%';
connection_control_failed_connections_threshold	5
connection_control_max_connection_delay	2147483647
connection_control_min_connection_delay	60000

7. MYSQL未严格限制系统默认账户root的访问权限。

bash 复制代码
[root@localhost ~]# mysql -u root -p
#收回root用户远程登录权限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'root'@'%';
#只允许访问用户数据库ubox
GRANT ALL PRIVILEGES ON ubox.* TO 'root'@'%';
FLUSH PRIVILEGES;

8. MYSQL未开启日志功能,未对重要的用户行为和重要安全事件进行审计。

bash 复制代码
# 控制binlog日志文件保留时间,超过时间会删除
expire_logs_days=7
# 配置日志格式
log_timestamps=system
# 一般有两种形式,FILE和TABLE,默认FILE; TABLE时mysql库的slow_log表中
log_output=FILE,TABLE

# 开启慢日志查询
slow_query_log=ON
# 配置慢日志询阈值为3秒
long_query_time=3
# 配置慢日志文件
slow_query_log_file=/home/sqyr/local/mysql-5.7.43/install/data/mysql/data/mysql-slow.log

# 开启审计日志
general_log=ON
# 配置审计日志文件
general_log_file=/home/sqyr/local/mysql-5.7.43/install/data/mysql/data/mysql-general.log
# 配置错误日志文件
log-error=/home/sqyr/local/mysql-5.7.43/install/data/mysql/mysql-error.log
相关推荐
chlk12317 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑18 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件18 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒19 小时前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
cipher1 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行2 天前
Linux和window共享文件夹
linux
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux