一、操作系统通用Linux
1 检查是否配置登陆超时时间设置
编辑vi /etc/profile文件,配置TMOUT将值设置为低于300.
export TMOUT=300
2 检查是否禁止root用户登录FTP
设置如下将对应配置文件中,设置root,禁止登录的用户列表中添加root用户
- 编辑vi /etc/ftpaccess,将root前的#去掉
- 编辑vi /etc/vsftpd/ftpusers,将root前的#去掉
- 编辑vi /etc/ftpusers,将root前的#去掉
- 编辑vi /etc/vsftpd.ftpusers,将root前的#去掉
- 编辑v i /etc/pam.d/vsftpd,将root前的#去掉
- 编辑vi /etc/pam.d/ftp,将root前的#去掉
3 检查是否使用SSH协议进行远程维护
开启ssh,关闭telnet
1.关闭telnet服务[仅供参考,不通的系统会有差别]
a)vi /etc/xinetd.d/telnet,将disable=no改成disable=yes;
b)chkconfig telnet off;如果需要设置telnet服务不为开机自启动,使用命令chkconfig -del telnet或者chkconfig --del telnet
2.使用命令server xinetd restart或者/etc/init.d/xinetd restart使更改生效。
4 检查是否配置日志文件安全权限
- 对日志文件进行赋权:chmod 640 /var/log/messages,权限要小于等于640
- 对日志文件进行赋权:chmod 640 /var/log/secure,权限要小于等于640
- 对日志文件进行赋权:chmod 640 /var/log/maillog,权限要小于等于640
- 对日志文件进行赋权:chmod 640 /var/log/cron,权限要小于等于640
- 对日志文件进行赋权:chmod 640 /var/log/spooler,权限要小于等于640
- 对日志文件进行赋权:chmod 640 /var/log/boot.log,权限要小于等于640
5 检查是否启用Syslog日志审计
系统可能是syslog或rsyslog,配置存在其中一个即可。
- vi /etc/syslog.conf,修改或配置authpriv.* /var/log/secure
- vi /etc/rsyslog.conf,修改或配置authpriv.* /var/log/secure
6 检查是否启用远程日志功能
系统可能是syslog或rsyslog,配置存在其中一个即可。
- 配置文件添加:vi /etc/syslog.conf,加上*.* @10.254.90.58 //10.254.90.58IP请根据现网情况自行配置,注意空白处为tab键
- 配置文件添加:vi /etc/rsyslog.conf,加上*.* @10.254.90.58 //10.254.90.58IP请根据现网情况自行配置,注意空白处为tab键
7 检查是否记录cron行为日志
系统可能是syslog或rsyslog,配置存在其中一个即可。
- vi /etc/syslog.conf,修改或配置cron.* /var/log/cron
- vi /etc/rsyslog.conf,修改或配置cron.* /var/log/cron
8 检查是否配置文件与目录缺省权限控制
配置的值可以为:027|037|077|127|137|177|327|337|377|777|067|167|367|767
- vi /etc/login.defs,修改或配置umask 027
- vi /etc/profile,修改或配置umask 027
9 检测是否限制 root 用户远程登录
修改配置:vi /etc/ssh/sshd_config,修改或配置PermitRootLogin no
10 检查是否限制用户su到root
- 添加配置:vi /etc/pam.d/su,修改或配置auth sufficient pam_rootok.so
- 添加配置:vi /etc/pam.d/su,修改或配置auth required pam_wheel.so group=wheel
cnetos7.8及以上修改以下位置:
(添加配置:vi /etc/pam.d/su,修改或配置auth sufficient pam_rootok.so
添加配置:vi /etc/pam.d/su,修改或配置auth required pam_wheel.so use_uid)
- 限制完成后,将需要su到root用户的添加到wheel组中,才允许su到root用户:
usermod -g wheel username用户名。
11 检查是否配置用户最小授权
- chmod 644 /etc/passwd 设置文件权限低于等于644
- chmod 644 /etc/group设置文件权限低于等于644
- chmod 600 /etc/shadow设置文件权限低于等于600
12 检查是否关闭不必要的服务和端口
- 通过chkconfig --list daytime查看对应的服务是否开启,通过chkconfig daytime off 关闭。
同理关闭如下服务:
- daytime-udp
- time
- time-udp
- echo
- echo-udp
- discard,
- discard-udp
- chargen
- chargen-udp,
- ntalk
- ident
- printer
- bootps
- tftp
- kshell
- klogin
- lpd
- nfs
- nfs.lock
- sendmail
- ypbind
13 检查是否删除或锁定无关账号
配置listen,gdm,webservd,nobody,nobody4,noaccess账号的状态,通过命令如下:
- chsh listen -s /sbin/nologin
- chsh gdm -s /sbin/nologin
- chsh webservd -s /sbin/nologin
- chsh nobody -s /sbin/nologin
- chsh nobody4 -s /sbin/nologin
- userdel noaccess
14 检查用户 FTP 访问安全是否配置
如果有开启vsftpd则需要配置如下两个文件,内容添加root
- vi /etc/vsftpd.chroot_list配置root
- vi /etc/vsftpd/chroot_list配置root
15 检测是否删除潜在危险文件
- 全局搜索是否存在:.rhosts文件,如果存在则删除掉。
- 全局搜索是否存在:.netrc文件,如果存在则删除掉。
- 全局搜索是否存在:.hosts.equiv文件,如果存在则删除掉。
16 检查密码过期时间
编辑:vi /etc/login.defs设置PASS_MAX_DAYS=90(等号要记得写),时间要小于等于90
17 检查密码创建要求是否配置
- vi /etc/pam.d/common-password ,修改或配置password requisite pam_cracklib.so retry=3 minlen=8 minclass=3
匹配正则如下:
^password\\s+requisite\\s+pam_cracklib\\.so\\s+.*retry=\\d\\s+.*((minlen=([8-9]|[1-9]\\d)+\\s+.*minclass=[3-4])|(minclass=[3-4]\\s+.*minlen=([8-9]|[1-9]\\d+)))
- vi /etc/pam.d/system-auth,password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 minclass=3
匹配正则如下:
^(\\s*|\\t*)password\\s+requisite\\s+pam_cracklib\\.so\\s+.*retry=\\d\\s+.*((minlen=([8-9]|[1-9]\\d)+\\s+.*minclass=[3-4])|(minclass=[3-4]\\s+.*minlen=([8-9]|[1-9]\\d+)))
- vi /etc/login.defs,修改或配置PASS_MIN_LEN=8,设置为大于等于8
- vi /etc/pam.d/system-auth,启动pam_passwdqc.so模块
18 检查是否禁止匿名FTP
- vi /etc/vsftpd.conf,配置修改anonymous_enable=NO
- vi /etc/vsftpd/vsftd.conf,配置修改anonymous_enable=NO
19 检查系统是否安装最新补丁
该检查项不用修改
- uname –a
二、操作系统AIX
1 检查是否配置用户最小授权
配置如下文件的权限,权限需要低于等于644
- 确认/etc/passwd文件权限,可用chmod 644 /etc/passwd更改权限
- 确认/etc/passwd文件权限,可用chmod 644 /etc/group更改权限
- 确认/etc/security文件权限,可用chmod 644 /etc/security更改权限
- 确认/etc/passwd所属用户及用户组,可用chown root /etc/passwd更改用户
- 确认/etc/group所属用户及用户组,可用chown root /etc/group更改用户
- 确认/etc/security所属用户及用户组,可用chown root /etc/security更改用户
2 检查是否设置防止堆栈缓冲溢出
- 在/etc/security/limits文件中,修改或配置 core = 0
- 在/etc/security/limits文件中,修改或配置 core_hard = 0
- 在/etc/security/limits文件中,修改或配置 ulimit –c 0
3 检查是否配置日志记录用户登录
- 在/etc/syslog.conf文件中,修改或配置 auth.info /var/adm/authlog
- 在/etc/rsyslog.conf文件中,修改或配置 *.info;auth.none /var/adm/syslog
- 检查/var/adm/authlog文件是否存在
- 检查/var/adm/syslog文件是否存在
4 检查是否禁止系统用户登录 FTP
- 在/etc/ftpusers文件中修改或配置root
- 在/etc/ftpusers文件中修改或配置daemon
- 在/etc/ftpusers文件中修改或配置bin
- 在/etc/ftpusers文件中修改或配置sys
- 在/etc/ftpusers文件中修改或配置adm
- 在/etc/ftpusers文件中修改或配置lp
- 在/etc/ftpusers文件中修改或配置uucp
- 在/etc/ftpusers文件中修改或配置nuucp
- 在/etc/ftpusers文件中修改或配置listen
- 在/etc/ftpusers文件中修改或配置nobody
- 在/etc/ftpusers文件中修改或配置noaccess
- 在/etc/ftpusers文件中修改或配置nobody4
5 检查是否设置口令生存周期
- 在/etc/security/user文件中修改或配置maxage=13
6 检查是否设置登陆超时时间
在/etc/security/.profile文件中修改或配置,小于等于600
TMOUT 600
TIMEOUT 600
配置文件中只能有一项增加或修改TMOUT或者TIMEOUT即可,不能TMOUT和TIMEOUT同时存在
7 检查是否删除或锁定无关账号
配置仅供参考:
- chsh listen -s /sbin/nologin
- chsh gdm -s /sbin/nologin
- chsh webservd -s /sbin/nologin
- chsh nobody -s /sbin/nologin
- chsh nobody4 -s /sbin/nologin
- userdel noaccess
8 检查是否配置日志文件权限
配置文件权限要小于等于600
- ls -l /var/adm/authlog查看权限,可用chmod 600 /var/adm/authlog更改权限
- 配置文件权限要小于等于640
- ls -l /var/adm/syslog查看权限,可用chmod 640 /var/adm/syslog更改权限
9 检查是否记录 cron
- /var/spool/cron/cron.allow配置对应的用户信息
- /var/spool/cron/cron.deny配置对应的用户信息
- /var/spool/cron/at.allow配置对应的用户信息
- /var/spool/cron/at.deny配置对应的用户信息
10 检查是否设置口令重复次数
在/etc/security/user文件中,修改或配置histsiz=5
11 检查是否设置连续失败认证次数
在/etc/security/user文件中,修改或配置 loginretries=6
12 检查是否配置口令复杂度
- 在/etc/security/user文件中,修改或配置minlen=8
- 在/etc/security/user文件中,修改或配置minalpha=1
- 在/etc/security/user文件中,修改或配置 mindiff=1
- 在/etc/security/user文件中,修改或配置 minother=1
- 在/etc/security/user文件中,修改或配置 pwdwarntime=5
13 检查是否限制 root 用户远程登录
在/etc/ssh/sshd_config文件中,修改或配置 PermitRootLogin no
14 检查是否修改系统Banner
在/etc/security/login.cfg文件中,修改或配置herald
15 检查是否设置文件与目录缺省权限
- 在/etc/login.defs文件中,修改或配置 umask=027
- 在/etc/security/user文件中,修改或配置 umas=077
16 检查是否使用 SSH 协议进行远程维护
关闭telnet服务,开启sshd
仅供参考:
.首先应保证inetd守护进程是开启的,可输入#lssrc –s inetd查看
[root@HAN04UX] /home/root #lssrc -s inetd
Subsystem Group PID Status
inetd tcpip 184490 active
active 表示inetd进程已开启
2.启动telnet服务: #startsrc -t telnet
[root@HAN04UX] /home/root #startsrc -t telnet
0513-124 The telnet subserver has been started.
3.停止telnet服务: #stopsrc -t telnet
[root@HAN04UX] /home/root #stopsrc -t telnet
0513-127 The telnet subserver was stopped successfully.
4.查看Telnet服务状态,#lssrc -t telnet
[root@HAN04UX] /home/root #lssrc -t telnet
Service Command Description Status
telnet /usr/sbin/telnetd telnetd -a active
5.查看/etc/inetd.conf文件的以下字段是否被注释掉,如果被注释掉,说明开机时不自动打开Telnet服务
[root@HAN04UX] /home/root #more /etc/inetd.conf
## @(#)62 1.17.1.14 src/tcpip/etc/inetd.conf, tcpinet, tcpip610 11/2/99 09:16:20
## IBM_PROLOG_BEGIN_TAG
......
ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd
telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -a
shell stream tcp6 nowait root /usr/sbin/rshd rshd
......
命令说明:
startsrc 是开启进程,stopsrc 是停止进程
lssrc 是获取子系统的状态
-s 是指定子系统
-t 是指定类型
三、操作系统HPUX
1 检查是否使用 SSH 协议进行远程维护
启动sshd,关闭telnet
1.关闭telnet服务[仅供参考,不通的系统会有差别]
a)vi /etc/xinetd.d/telnet,将disable=no改成disable=yes;
b)chkconfig telnet off;如果需要设置telnet服务不为开机自启动,使用命令chkconfig -del telnet或者chkconfig --del telnet
2.使用命令server xinetd restart或者/etc/init.d/xinetd restart使更改生效。
2 检查是否配置密码过期时间
vi /etc/default/security文件,修改或配置 PASS_MAXDAYS=90 值必须小于等于90
3 检查是否配置密码强度
- vi /etc/default/security文件,配置MIN_PASSWORD_LENGTH=8,大于等于8
- vi /etc/default/security文件,配置或修改
PASSWORD_MIN_UPPER_CASE_CHARS=1,大于等于1
- vi /etc/default/security文件,配置或修改PASSWORD_MIN_DIGIT_CHARS=1,大于等于1
- vi /etc/default/security文件,配置或修改
PASSWORD_MIN_LOWER_CASE_CHARS=1,大于等于1
- vi /etc/default/security文件,配置或修改 ALLOW_NULL_PASSWORD=0
4 检查是否配置日志文件安全权限
配置/var/log/messages 、 /var/log/secure 、 /var/log/maillog 、/var/log/cron、 /var/log/spooler、/var/log/boot.log文件权限,权限低于等于775
- chmod 775 /var/log/messages
- chmod 775 /var/log/secure
- chmod 775 /var/log/maillog
- chmod 775 /var/log/cron
- chmod 775 /var/log/spooler
- chmod 775 /var/log/boot.log
5 检查是否配置文件与目录缺省权限控制
可配置的值为:(027|037|077|127|137|177|327|337|377|777|067|167|367|767)
vi /etc/default/login,修改或配置umask 027。
6 检查用户 FTP 访问安全是否配置
如果没安装vsftp则无需配置,会默认为合规
- vi /etc/vsftd.conf文件, 在结尾新起一行,将root添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将daemon添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将bin添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将sys添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将adm添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将lp添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将uucp添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将nuucp添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将listen添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将nobody添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将hpdb添加进去
- vi /etc/vsftd.conf文件, 在结尾新起一行,将useradm添加进去
7 检查是否禁止 root 用户登录 FTP
如果没安装ftp则无需配置,会默认为合规
- vi /etc/ftpaccess,将root前的#去掉
- vi /etc/vsftpd/ftpusers,将root前的#去掉
- vi /etc/ftpusers,将root前的#去掉
- vi /etc/vsftpd.ftpusers,将root前的#去掉
8 检测是否删除潜在危险文件
- 全盘所搜.rhosts文件,存在则删除它
- 全盘所搜. netrc文件,存在则删除它
- 全盘所搜.hosts.equiv文件,存在则删除它
9 检测是否限制 root 用户远程登录
vi /etc/ssh/sshd_config 文件,配置或修改PermitRootLogin no
10 检查是否记录 cron 行为日志
syslog和rsyslog只要配置其中一个即可
- vi /etc/syslog.conf文件,去掉cron.* /var/log/cron前面的#注释,或新增cron.* /var/log/cron
- vi /etc/rsyslog.conf文件,去掉cron.* /var/log/cron前面的#注释,或新增cron.* /var/log/cron
11 检查用户连续认证失败次数不得超过6次
vi /etc/default/security文件,配置或修改AUTH_MAXTRIES=6,值小于等于6
12 检查是否启用远程日志功能
vi /etc/syslog.conf配置 *.* @10.254.90.58 //注意空白处为tab键,IP为日志服务端的IP地址
13 检查是否禁止匿名 FTP
如果没安装vsftp则无需配置,会默认为合规
- vi /etc/vsftd.conf文件,配置或修改anonymous_enable=NO
- vi /etc/vsftpd/vsftd.conf文件,配置或修改anonymous_enable=NO
14 检查是否配置口令历史安全要求
vi /etc/default/passwd文件,配置或修改HISTORY=5,大于等于5
15 检查是否启用 Syslog 日志审计
vi /etc/syslog.conf文件, 将 authpriv.* /var/log/secure 前面的#注释去掉,或者新增该配置项
四、操作系统Solaris
1 检查是否配置SSH 登录
启用ssh,关闭telnet服务
2 检查是否配置登录失败账户锁定
vi /etc/security/policy.conf,配置或修改 LOCK_AFTER_RETRIES=YES
vi /etc/default/login,配置或修改 RETRIES=6,小于等于6
3 检查是否配置口令复杂度
vi /etc/default/passwd, 配置或修改 PASSLENGTH=8,大于等于8
vi /etc/default/passwd, 配置或修改 MINALPHA=4
vi /etc/default/passwd, 配置或修改 MINSPECIAL=1
vi /etc/default/passwd, 配置或修改 MINDIGIT=1
4 检查是否配置日志文件权限控制
chmod 644 /var/log/messages
chmod 644 /var/adm/utmpx
chmod 644 /var/adm/wmtpx
chmod 600 /var/adm/sulog
设置权限要小于等于644
5 检查是否配置口令最长生存期
vi /etc/default/passwd文件,配置或修改 PWMAX=90 #密码的最大生存周期,小于等于90