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

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
相关推荐
智塑未来21 分钟前
证券公司智能运维平台哪个品牌做得好?擎创科技智能运维 2.0 适配券商全场景
运维·科技·区块链
蚰蜒螟1 小时前
从内核源码看Linux启动:chroot、execve与MS_MOVE的协奏曲
linux·服务器·网络
影视飓风TIM2 小时前
Linux下C语言缓冲区原理 + Git版本控制
linux·c语言·git
来者皆善2 小时前
ZYNQ linux上使用 USB CDC ACM
linux·运维·服务器
4/5$全真龙门2 小时前
廉价易行的内网穿透
运维
数据知道3 小时前
容器安全入门:Docker 逃逸原理与 5 个经典 CVE
安全·网络安全·docker·容器
缓慢更新3 小时前
企业档案管理系统迁移实录:从文件服务器到智能检索引擎
运维·服务器
小北的AI科技分享3 小时前
企业AI开发:从技术选型到落地的关键路径
运维·模型·评估
Dawn-bit3 小时前
Linux磁盘分区与Swap和磁盘故障查询
linux·运维·服务器·网络·云计算
JonLee20203 小时前
适配 Yii 3.0,php-casbin/yii-permission 3.0 正式发布
安全·php·rbac·yii·权限·casbin