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关键字行的下面
-
用户帐户和环境 - 检查密码最小长度是否大于等于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'
-
用户帐户和环境 - 检查密码过期时间是否小于等于90天
-
用户帐户和环境 - 检查修改密码的最小间隔时间是否大于等于7天
-
用户帐户和环境 - 检查密码过期警告时间是否大于等于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加密密码
-
配置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 下面
-
SSH服务配置 - 检查SSH空闲超时间隔是否设置
/etc/ssh/sshd_config文件中ClientAliveInterval应设置为:小于等于300,ClientAliveCountMax应设置为:小于等于3
ClientAliveInterval 300 ClientAliveCountMax 3 #按上面的配置的话,300*3=900秒=15分钟,即15分钟客户端不响应时,ssh连接会自动退出。
-
SSH服务配置 - 检查SSH的HostbasedAuthentication是否禁用/
etc/ssh/sshd_config文件中HostbasedAuthentication应设置为:no
HostbasedAuthentication yes #指定身份验证是否允许 EnableSSHKeysign yes StrictHostKeyChecking no
-
SSH服务配置 - 检查SSH的MaxAuthTries参数是否小于四
MaxAuthTries参数(初始值为6)指定每个连接允许的最大验证尝试次数。当登录次数达到设置的一半时,错误信息将被写入syslog文件进行记录。
Port 22960 LoginGraceTime 30 #认证的时限 MaxAuthTries 3 #认证的次数 Protocol 2 PermitRootLogin no
**sshd:**使用ssh协议(专为远程登录会话和其他网络服务提供安全性的协议)远程开启其他主机shell(最高权限)的服务。
Secure Shell (SSH) 是一个允许两台电脑之间通过安全的连接进行数据交换的