Linux 配置规范
一、
检查口令最小长度
在文件/etc/login.defs 中设置 PASS_MIN_LEN 不小于 8
sed -i '/PASS_MIN_LEN/s/5/8/g' /etc/login.defs
二、
检查是否设置口令生存周期
在文件/etc/login.defs 中设置 PASS_MAX_DAYS 不大于标准值,PASS_MAX_DAYS 90
sed -i '/PASS_MAX_DAYS/s/99999/90/g' /etc/login.defs
三、
检查设备密码复杂度策略
修改/etc/pam.d/system-auth 文件,
在 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 选 3 种 , 追 加 到 password requisite
pam_cracklib.so 后面,添加到配置文件中。
例如:password requisite pam_cracklib.so ucredit=-1 lcredit=-1 dcredit=-1
注:ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特殊字符个
数
echo
"password
requisite
pam_cracklib.so
ucredit=-1
lcredit=-1
dcredit=-1" >>/etc/pam.d/system-auth
四、
检查是否限制用户 su 到 root —201804 在检查一下个系统是否都有配置
编辑 su 文件(vi /etc/pam.d/su),在开头添加下面一行:
auth required pam_wheel.so use_uid 这表明只有 wheel 组的成员可以使用 su 命令成为 root 用户。
你可以把用户添加到 wheel 组,以使它可以使用 su 命令成为 root 用户。
添加方法为:
usermod –G wheel username
sed -i '7i\auth
required
pam_wheel.so use_uid' /etc/pam.d/su
五、
检查是否设置文件与目录缺省权限
在文件/etc/profile 中设置 umask 027 或 UMASK 027,如果文件中含有 umask 参数,则需要在最前面
设置该参数
sed –i "/umask/s/002/027/g" /etc/profile
六、
检查是否设置命令行界面超时退出
以 root 账户执行,vi /etc/profile,增加 export TMOUT=300(单位:秒,可根据具体情况设定超时
退出时间,要求不小于 300 秒),注销用户,再用该用户登录激活该功能
echo "TMOUT=300" >> /etc/profile
七、
检查是否限制 root 用户远程登录
修改/etc/ssh/sshd_config 文件,配置 PermitRootLogin no。重启服务,/etc/init.d/sshd restart。
sed –i "/PermitRootLogin/s/yes/no/g" /etc/ssh/sshd_config
八、
检查是否启用 syslog 日志审计
1. Redhat 5.x 之前(包括 5.x) 编辑/etc/syslog.conf; Redhat 6.x 编辑/etc/rsyslog.conf
添加 authpriv.* /var/log/secure
2. 创建/var/log/secure 文件 touch /var/log/secure
3. 重启 syslog 服务
/etc/init.d/syslog restart
九、
检查是否配置远程日志功能—201804 在检查一下个系统是否都有配置
syslog-ng 是否配置远程日志功能
在 /etc/syslog-ng/syslog-ng.conf 中 配 置 destination logserver { udp("10.10.10.10"
port(514)); };
log { source(src); destination(logserver); };
可以将此处 10.10.10.10 替换为实际的 IP
rsyslog 是否配置远程日志功能
修改配置文件 vi /etc/rsyslog.conf,
加上这一行:
*.* @192.168.0.1
可以将"*.*"替换为你实际需要的日志信息。比如:kern.* ; mail.* 等等。
可以将此处 192.168.0.1 替换为实际的 IP 或域名(域名格式形如:www.nsfocus.com,根据具体
情况填写)。
syslog 是否配置远程日志功能
修改配置文件 vi /etc/syslog.conf,
加上这一行:
*.* @192.168.0.1
可以将"*.*"替换为你实际需要的日志信息。比如:kern.* ; mail.* 等等。
可以将此处 192.168.0.1 替换为实际的 IP 或域名(域名格式形如:www.nsfocus.com,根据具体
情况填写)。
十、
检查是否禁止匿名用户登录 FTP—201804 在检查一下个系统是否都有配置
在/etc/passwd 文件中,删除 ftp 用户
编辑/etc/vsftpd.conf(或/etc/vsftpd/vsftpd.conf)文件,设置:anonymous_enable=NO
十一、 检查是否禁止 root 用户登录 FTP
编辑/etc/ftpusers(或/etc/vsftpd/ftpusers)文件,将 root 用户添加进去
十二、 检查是否启用 SSH 协议,禁用 telnet 协议 —201804 在检查一下个系统是否都有配置
利用命令 rpm -qa |grep telnet 查看是否安装 telnet 和 telnet-server 如果安装的话
1、编辑/etc/xinetd.d/telnet, 修改 disable = yes。激活 xinetd 服务。命令如下:
service xinetd restart
2、卸载 telnet-server 服务
如果没安装则说明禁用 telnet 服务
十三、 检查是否删除了潜在危险文件
1、 是否删除.netrc 文件
1.执行命令 find / -maxdepth 3 -name .netrc 2>/dev/null
2.进入到.netrc 文件存在的目录
3.执行命令:mv .netrc .netrc.bak
2、 是否删除 hosts.equiv 文件
1.执行命令 find / -maxdepth 3 -name hosts.equiv 2>/dev/null
2.进入到 hosts.equiv 文件存在的目录
3.执行命令:mv hosts.equiv hosts.equiv.bak
3、 是否删除.rhosts 文件
1.执行命令 find / -maxdepth 3 -name .rhosts 2>/dev/null
2.进入到.rhosts 文件存在的目录
3.执行命令:mv .rhosts .rhosts.bak
十四、 检查是否关闭不必要的服务和端口
关闭 printer sendmail nfs kshell lpd ident tftp time ntalk bootps klogin ypbind daytime
nfslock echo discard chargen 服务
十五、 检查是否限制用户 FTP 缺省访问权限—201804 在检查一下个系统是否都有配置
将需要限制的用户名加入到/etc/vsftpd/chroot_list 文件中。
十六、 检查是否配置用户所需最小权限
chmod 644 /etc/passwd /etc/shadow /etc/group
十七、 Banner 信息清除 —201804 在检查一下个系统是否都有配置
删除"/etc"目录下的 issue.net 和 issue 文件:
# mv /etc/issue /etc/issue.bak
# mv /etc/issue.net /etc/issue.net.bak