等保测评中对服务器、数据库等相关优化

等保测评中对服务器及数据库的部分安全处理

【服务器相关】
系统为CentOS7.8

  1. 密码有效期设置/etc/login.defs
    PASS_MAX_DAYS    90 #密码使用天数
    PASS_MIN_DAYS    0
    PASS_MIN_LEN    9
    PASS_WARN_AGE    15 #提醒用户修改密码天数

注:修改配置后仅针对新增帐号才会生效,原帐号可通过chage命令调整,可通过chage -l root查看。

vi /etc/pam.d/system-auth 优先级高于login.defs

# 配置最小长度为8位,至少包含1位大写字母、1位小写字母、1位数字和1位特殊字符。
password requisite pam_cracklib.so minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1 retry=5 difok=3
# minlen:最小密码长度
# dcredit:最少数字
# ucredit:最少大写字母
# ocredit:最少特殊字符
# lcredit:最少小写字符
# retry:尝试次数
# difok:最少不同字符
    chage:密码失效是通过此命令来管理的。
     
      参数意思:
      -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
      -M 密码保持有效的最大天数。
      -W 用户密码到期前,提前收到警告信息的天数。
      -E 帐号到期的日期。过了这天,此帐号将不可用。
      -d 上一次更改的日期
      -I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
      -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
  1. 调整密码强度 /etc/security/pwquality.conf
  2. 登录失败处理 /etc/pam.d/sshd

     auth       required     pam_tally2.so onerr=fail deny=10 unlock_time=1800 even_deny_root root_unlock_time=1800
  3. 登录超时echo $TMOUT,可通过 /etc/profile 设置export TMOUT=600并使用source重载。
  4. 删除或停用不常用账户,如lp games等
  5. 帐号锁定
    vi /etc/pam.d/login
auth required pam_tally2.so file=/var/log/tallylog deny=5 even_deny_root unlock_time=1200

# deny=5 锁定账户次数
# even_deny_root 使用用户
# unlock_time=1200 账号锁定时间
  1. 修改命令行历史记录保存条数
    echo $HISTSIZE 默认1000条
    vi /etc/profile 调整为0

【数据库相关】
版本为MySQL5.7

  1. 设置密码复杂度
    查看:show variables like 'validate%';
  2. 设置过期时间
    查看:select user,host,password_lifetime,password_last_changed,password_expired from mysql.user;
    show variables like 'default_password_lifetime';
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
  3. 登录失败策略,需安装插件
    show variables like 'connection_control%';

    
     install plugin CONNECTION_CONTROL soname 'connection_control.so';
     install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.so';
    
  4. 超时wait_time
  5. 开启安全审计

    show variables like '%general%';
    set global general_log=on;
    set global log_output='table'; #table / file
    [mysqld]
    #密码强度
    plugin-load=validate_password.so
    validate_password_policy=1
    validate-password=FORCE_PLUS_PERMANENT
    #密码策略
    default_password_lifetime=90
    #失败次数
    connection-control-failed-connections-threshold=3
    #锁定时间,单位毫秒
    connection-control-min-connection-delay=60000
    #连接超时
    wait_timeout = 600
    interactive_timeout = 600

附:
CentOS7测评命令

查看内核版本    uname -a  
查看系统版本    cat /etc/redhat-release  
查看IP地址    ifconfig  或 ip a
1    检查是否有空口令账号    awk -F: '( $2== "") { print }' /etc/shadow
2    检查密码强度及有效期策略    cat /etc/login.defs
3    具备登录失败处理:连续失败达到次数进行锁定    cat /etc/pam.d/system-auth
4    登录超时退出(长时间未登录,退出登录界面)。    echo $TMOUT
5    是否禁用Telnet    systemctl status telnet
6    双因子验证(密钥)    
7    普通操作不应使用root账号    
8    关键文件、命令的权限划分要适当,防止普通用户执行关键操作。    ls -l /etc/passwd
9    root账户应禁止远程登录    cat /etc/ssh/sshd_config
10    列出具有登录shell的用户    cat /etc/passwd | grep '/bin/bash'
11    列出具有超级权限的用户    cat /etc/passwd | awk -F: '$3==0'
12    删除或停用不需要登录的用户    如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher
13    查看是否有免密执行sudo命令的账户    sudo visudo
14    是否指定专人进行账号管理、权限分配。    
15    查看重要文件修改历史。    stat 文件名
16    查看SELinux的模式和详细信息,查看SELinux配置信息。    getenforce sestatus  cat /etc/selinux/config
18    查看审计服务状态    service auditd status   service rsyslog status
19    查看审计日志    tail /var/log/audit/audit.log
20    查看审计策略    cat /etc/audit/auditd.conf
21    查看审计报表    aureport -if /var/log/audit/audit.log
22    查看是否有多余的安装组件    rpm -qa  
23    查看系统所有的进程    ps aux | less 或 pstree -apnh | less (建议)
25    查看正在运行的服务    systemctl list-units 显示全部服务 systemctl list-units --type=service  显示所有已启动的服务
26    查看当前监听的端口    netstat -ntlp
27    查看是否使用白名单限制接入地址    cat /etc/hosts.deny cat /etc/hosts.allow
28    查看防火墙状态    systemctl status firewalld.service  (如果防火墙开启了)查看防火墙规则    firewall-cmd --list-all

MySQL指标:

等保测评中对服务器、数据库等相关优化

最新版Mysql.xlsx

linux各发行版测评命令_V1.0.docx

Tags: 运维

添加新评论