linux服务器二级等保测评整改(持续更新)

本文介绍了二级等保背景下,针对CentOS7服务器和MySQL5.7.40数据库的安全整改措施。内容包括:服务器的密码策略、超时自动退出设置、访问控制规则以及文件备份策略;数据库的等待超时时间、密码策略、登录失败锁定、审计日志开启等关键配置。旨在提升系统安全性。
摘要由CSDN通过智能技术生成

最近有很多项目做二级等保,整理一下网上零碎的资源,做个记录,跟大家分享一下。

一、服务器整改(CentOS7)

1.用户密码策略:复杂度限制、最小长度、密码定期更换、账户锁定策略/etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        required      pam_faildelay.so delay=2000000
auth        sufficient    pam_fprintd.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so
auth        required      pam_tally2.so deny=5 lock_time=300 unlock_time=300 even_deny_root root_unlock_time=300


account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     required      pam_permit.so

password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so
password    required      pam_pwquality.so dcredit=1 ucredit=1 ocredit=1 lcredit=1 minlen=8

pam_tally2.so这条是控制输错几次密码锁定账户的,参数意义如下:

deny=5:错误次数,单位 次;

lock_time:普通用户锁定后等待的时间,单位 秒;

unlock_time:普通用户锁定后解锁要等待的时间,单位 秒;

even_deny_root: root用户是否受此限制;

root_unlock_time=300:root用户锁定后解锁要等待的时间,单位 秒。

pam_pwquality.so这条是控制密码复杂度的,参数意义如下:

minlen=N:定义用户密码的最小长度;
dcredit=N:定义用户密码中必须包含多少个数字;
ucredit=N:定义用户密码中必须包含多少个大写字母;
lcredit=N:定义用户密码中必须包含多少个小些字母;
ocredit=N:定义用户密码中必须包含多少个特殊字符(除数字、字母之外);

2.超时自动退出

修改/etc/profile, 在最后一行回车  加上export TMOUT=3000  单位 秒

3.限制服务器和应用系统的访问控制规则

编辑/etc/hosts.deny

#
# hosts.deny    This file contains access rules which are used to
#               deny connections to network services that either use
#               the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               The rules in this file can also be set up in
#               /etc/hosts.allow with a 'deny' option instead.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
sshd:all:deny

编辑/etc/hosts.allow

#
# hosts.allow   This file contains access rules which are used to
#               allow or deny connections to network services that
#               either use the tcp_wrappers library or that have been
#               started through a tcp_wrappers-enabled xinetd.
#
#               See 'man 5 hosts_options' and 'man 5 hosts_access'
#               for information on rule syntax.
#               See 'man tcpd' for information on tcp_wrappers
#
sshd:11.11.11.11:allow
#设置需要开放的ip

4.文件备份, 这里我写一个通用的脚本, 大家可以根据需要,自行修改  然后添加到定时任务

#!/bin/sh
echo "beifen start"
#这行是打包命令,实际路径大家按需调整
tar zcvf /data/blqy/bakup/apache-tomcat-8.5.82`date '+%Y%m%d'`.tar /data/blqy/tomcat/apache-tomcat-8.5.82
echo "beifen end"
#mtime后面的参数就是备份需要保留的天数
find /data/blqy/bakup/  -name "*.tar" -mtime +3  -exec rm {} \;

添加到定时任务的命令是crontab -e, 采用cron表达式进行定义, 格式如下:

0 0 * * * /home/shell/bakup.sh

crontab -l可以查看定时任务列表

二、数据库整改(<=Mysql5.7.40)

1.设置等待超时时间: wait_timeout和interactive_timeout

mysql> show global variables like 'wait_timeout'; 
mysql> show global variables like 'interactive_timeout';
mysql> set global interactive_timeout=1800;
mysql> set global wait_timeout=1800;

2.密码策略插件validate_password是否启用

use mysql;
#查看都安装了哪些插件
show plugins;
#查看密码策略
show variables like '%password%';
show variables like '%validate_password.policy%';
#安装密码校验策略插件
install plugin validate_password soname 'validate_password.so';

3.密码过期时间

#查看
show variables like 'default_password_lifetime';
#设置密码有效期为90天
SET GLOBAL default_password_lifetime = 90;

4.登录失败次数及登录失败锁定时间

#登陆失败次数限制:
show variables like 'connection_control_failed_connections_threshold';
#限制重试时间,此处为毫秒,注意按需求换算:
show variables like 'connection_control_min_connection_delay';
#登陆发生延迟时,延迟的最大时间:
show variables like 'connection_control_max_connection_delay';
#安装登录控制插件
install plugin CONNECTION_CONTROL soname 'connection_control.so';
install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';

5.登录超时锁定时间

#查看
show variables like 'wait_timeout';   
show variables like 'interactive_timeout';
查看配置文件是否存在以上配置
#设置
set global wait_timeout=1800;
Query OK, 0 rows affected (0.00 sec)

set global interactive_timeout=1800;
Query OK, 0 rows affected (0.00 sec)

6.开启审计日志(开启general_log就会符合等保要求,但是后期这个文件会非常大,要记得定时清理)

#临时开启
use mysql
SET GLOBAL general_log = 'ON';

#永久开启
#在配置文件的`[mysqld]`下添加如下配置:
log-output=FILE
general_log=1
general_log_file="找一个大磁盘存日志/mysql_general.log"

今天先到这,未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值