合规基线/安全合规检查有手就行!(未完)

本文详细介绍了如何使用Shell脚本进行16条常见的Linux主机安全合规检查,包括密码策略、PAM配置、SSH服务配置等,提供具体命令示例,帮助提升系统安全性。
摘要由CSDN通过智能技术生成

xdm!我又又又回来了!打不死的蟑螂,打不死的李坚强ing

合规基线

主机安全合规检查

本文包含常见16条安全合规检查!

小李有话说:

  • 对文件搜索替换
    语法: sed 选项 ‘s/搜索的内容/替换的内容/动作’ 文件
    其中 s:代表search 搜索; / 分隔符(可以自定义); 动作一般是p打印和全局替换g
    \ 代表转义;^代表替换整行

小李有话说:
在linux中通常会使用shell结合正则表达式来过滤字符,本文将以一个简单的例子来说明+,*,[:space:]的一些用法
+ 匹配1个或多个字符
* 匹配0个或多个字符
[:space:] 匹配空白字符,包括空格,tab

小李有话说:
PAM配置文件的每一行的格式:(详情见下文)
Module-type Control-flag Module-path Arguments
模块类型 控制字符 模块路径 模块参数

小李有话说:
① 在包含某个关键字的行上面插入一行文字,命令如下:
sed -i ‘/hello/i\1234’ testfile
执行完命令后,会将i后面反斜杠后面的内容插入到包含hello关键字行的上面
② 在包含某个关键字的行下面插入一行文字,命令如下:
sed -i ‘/hello/a\4567’ testfile
执行完命令后,会将a后面反斜杠后面的内容插入到包含hello关键字行的下面

  1. 用户帐户和环境 - 检查密码最小长度是否大于等于8

     id: 92014
        title: "用户帐户和环境 - 检查密码最小长度是否设置为大于等于8"
        description: "/etc/login.defs 文件中的 PASS_MIN_LEN 参数为口令最小长度,考虑到密码复杂度建议将 PASS_MIN_LEN 参数设置为8或以上。"
        rationale: "密码最小长度应:大于等于8"
        condition: all
        rules:
          - 'f:/etc/login.defs -> n:^PASS_MIN_LEN\s*\t*(\d+)$ compare >= 8'
    
  2. 用户帐户和环境 - 检查密码过期时间是否小于等于90天

  3. 用户帐户和环境 - 检查修改密码的最小间隔时间是否大于等于7天

  4. 用户帐户和环境 - 检查密码过期警告时间是否大于等于7天

    /etc/login.defs文件

    PASS_MAX_DAYS 60      #密码最大有效期,此处参数PASS_MAX_DAYS为60,表示60天后,密码会过期。99999表示永不过期。
    PASS_MIN_DAYS 0      #两次修改密码的最小间隔时间,0表示可以随时修改账号密码
    PASS_MIN_LEN  8      #密码最小长度,对于root无效
    PASS_WARN_AGE 7      #密码过期前多少天开始提示
    
    
    
    UID_MIN                   500
    UID_MAX                 60000 
    UID_MIN    #用户ID的最小值
    UID_MAX    #用户ID的最大值
    
    GID_MIN                   500
    GID_MAX                 60000
    GID_MIN    #组ID最小值
    GID_MAX    #组ID最大值
    
    CREATE_HOME     yes 
    CREATE_HOME  #表示是否创建用户home目录
    USERGROUPS_ENAB yes 
    USERGROUPS_ENAB   #该参数启用,表示userdel删除用户时,如果该用户用户组如果没有成员存在,则会删除该用户组
    
    MD5_CRYPT_ENAB yes 
    ENCRYPT_METHOD MD5   
    ENCRYPT_METHOD  #表示用户密码加密方式,此处表示用MD5加密密码
    
  5. 配置PAM认证 - 检查密码重用是否受限制

    原理:/etc/pam.d/password-auth 和 /etc/pam.d/system-auth 文件中应存在:password sufficient pam_unix.so remember=5

    $ sudo vi /etc/pam.d/common-passwordpassword [success=1 default=ignore] pam_unix.so obscure sha512 remember=5
    

    “remember=5” 表示禁止使用最近用过的5个密码(己使用过的密码会被保存在 /etc/security/opasswd 下面

  6. SSH服务配置 - 检查SSH空闲超时间隔是否设置

    /etc/ssh/sshd_config文件中ClientAliveInterval应设置为:小于等于300,ClientAliveCountMax应设置为:小于等于3

    ClientAliveInterval 300
    ClientAliveCountMax 3
    #按上面的配置的话,300*3=900秒=15分钟,即15分钟客户端不响应时,ssh连接会自动退出。
    
  7. SSH服务配置 - 检查SSH的HostbasedAuthentication是否禁用/

    etc/ssh/sshd_config文件中HostbasedAuthentication应设置为:no

    HostbasedAuthentication yes #指定身份验证是否允许
    EnableSSHKeysign yes
    StrictHostKeyChecking no
    
  8. SSH服务配置 - 检查SSH的MaxAuthTries参数是否小于四

    MaxAuthTries参数(初始值为6)指定每个连接允许的最大验证尝试次数。当登录次数达到设置的一半时,错误信息将被写入syslog文件进行记录。

    Port 22960 
    LoginGraceTime 30  #认证的时限
    MaxAuthTries 3   #认证的次数
    Protocol 2 
    PermitRootLogin no
    

    **sshd:**使用ssh协议(专为远程登录会话和其他网络服务提供安全性的协议)远程开启其他主机shell(最高权限)的服务。

    Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值