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