Linux安全检查

时间:2024-04-14 10:03:35

检查设备密码复杂度策略

1. 检查密码复杂度策略中设置的大写字母个数     

2. 检查密码复杂度策略中设置的数字个数

3. 检查密码复杂度策略中设置的特殊字符个数

4. 检查密码复杂度策略中设置的小写字母个数

Redhat系统:修改/etc/pam.d/system-auth文件, 
Suse9:修改/etc/pam.d/passwd文件, 
Suse10,Suse11:修改/etc/pam.d/common-password文件, 
在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:特殊字符个数 

检查是否设置口令生存周期

在文件/etc/login.defs中设置 PASS_MAX_DAYS 不大于标准值90

检查口令最小长度

在文件/etc/login.defs中设置 PASS_MIN_LEN 不小于标准值12

检查是否存在空口令账号

按照密码设置策略设置非空密码 命令: passwd [OPTION...] <accountName>

检查是否对登录进行日志记录

登录日志文件为/var/log/wtmp,/var/log/utmp.这2个文件中记录着所有登录过主机的用户,时间,来源等内容,这个文件不具可读性,可用last命令来看。 

检查安全事件日志配置

1. 检查syslog-ng是否配置安全事件日志

编辑/etc/syslog-ng/syslog-ng.conf 
配置: 
filter f_msgs { level(err) or facility(kern) and level(debug) or facility(daemon) and level(notice); }; 
destination msgs { file("/var/adm/msgs"); }; 
log { source(src); filter(f_msgs); destination(msgs); }; 
其中/var/adm/msgs为日志文件。 
如果该文件不存在,则创建该文件,命令为: 
touch /var/adm/msgs,并修改权限为666.命令为:chmod 666 /var/adm/msgs. 
重启日志服务: 
#/etc/init.d/syslog restart

2. 检查rsyslog是否配置安全事件日志

编辑/etc/rsyslog.conf 
配置: 
*.err;kern.debug;daemon.notice /var/adm/messages 
其中/var/adm/messages为日志文件。 
如果该文件不存在,则创建该文件,命令为: 
touch /var/adm/messages,并修改权限为666.命令为:chmod 666 /var/adm/messages. 
重启日志服务: 
#/etc/init.d/rsyslog restart 

3. 检查syslog是否配置安全事件日志

编辑/etc/syslog.conf 
配置: 
*.err;kern.debug;daemon.notice /var/adm/messages 
其中/var/adm/messages为日志文件。 
如果该文件不存在,则创建该文件,命令为: 
touch /var/adm/messages,并修改权限为666.命令为:chmod 666 /var/adm/messages. 
重启日志服务: 
#/etc/init.d/syslog restart 

检查使用IP协议远程维护的设备是否配置SSH协议,禁用telnet协议

对于使用IP协议进行远程维护的设备,应配置使用SSH协议

对于使用IP协议进行远程维护的设备,应禁止使用telnet协议, 在/etc/services文件中,注释掉 telnet 23/tcp 一行(如不生效重启telnetd服务或xinetd服务或系统,例如,Red Hat 上重启xinetd:service xinetd restart,根据实际情况操作)

检查是否禁止匿名用户登录FTP

禁止匿名WU-FTP用户登录,在/etc/passwd文件中,删除ftp用户

禁止匿名VSFTP用户登录,编辑/etc/vsftpd.conf(或/etc/vsftpd/vsftpd.conf)文件,设置:anonymous_enable=NO

检查是否修改snmp默认团体字

检查是否安装snmp服务, 如果系统未安装snmp服务,则认为合规。

检查snmp团体字是否未使用private, 编辑/etc/snmp/snmpd.conf,修改private默认团体字为用户自定义团体字。

检查配置文件/etc/snmp/snmpd.conf是否存在,如果系统安装了snmp服务,请确保该文件存在。如果不存在,则在/etc/snmp/目录下创建该文件。

检查snmp团体字是否未使用public,编辑/etc/snmp/snmpd.conf,修改public默认团体字为用户自定义团体字。

检查是否禁止root用户登录FTP

禁止root登录VSFTP, 编辑/etc/ftpusers(或/etc/vsftpd/ftpusers)文件 添加root

禁止root登录WU-FTP, 在/etc/ftpusers文件中加入一行 root

 检查是否关闭不必要的服务和端口

Linux安全检查

检查密码重复使用次数限制

Redhat:编辑/etc/pam.d/system-auth文件, 
Suse9:编辑/etc/pam.d/passwd文件, 
Suse10,Suse11:编辑/etc/pam.d/common-password文件, 
修改设置如下 
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5 
补充操作说明 
只需在password sufficient这一行加上remember=5即可 
NIS系统无法生效,非NIS系统或NIS+系统能够生效。  

检查是否禁用不必要的系统服务

查看所有开启的服务: 
#ps aux 
禁用xinetd.d 目录中不用的服务: 
#vi /etc/xinetd.d/servicename 
将服务文件里面的disable设置为disable=yes重启xinetd服务,即可。 
要直接关闭某个服务,如sshd可用如下命令: 
# /etc/init.d/sshd stop #关闭正在运行的sshd服务 
补充操作说明 
关闭下列不必要的基本网络服务。 
chargen-dgram daytime-stream echo-streamklogin tcpmux-server chargen-stream discard-dgram eklogin krb5-telnet tftp cvs discard-stream ekrb5-telnet kshell time-dgram daytime-dgram echo-dgram gssftp rsync time-stream

检查是否配置SSH方式账户认证失败次数限制

编辑/etc/pam.d/sshd文件 
在auth行下方添加: 
auth required pam_tally2.so deny=10 unlock_time=300 even_deny_root root_unlock_time=30 
在password include password-auth行下方添加: 
account required pam_tally.so 
参数说明: 
deny #连续认证失败次数超过的次数 
unlock_time #锁定的时间,单位为秒