目 录
第1章 概述 7
1.1. 目的 7
1.2. 适用范围 7
1.3. 参考文档 7
第2章 AIX安全配置指南 7
2.1. 补丁与安全软件 7
2.1.1. 补丁 7
2.1.2. SSH配置 8
2.2. INETD网络服务 9
2.2.1. 禁用shell与login 9
2.2.2. 其他不必要的inetd服务 9
2.3. DAEMON服务 10
2.3.1. 禁用 nfs服务 10
2.3.2. 其他不必要的daemon服务 10
AIX 4.3.3: 10
2.3.3. 加强snmp community复杂度 11
2.4. 日志 12
2.4.1. 捕获auth消息 12
2.4.2. 禁止syslog接受网络日志 12
2.4.3. 发送远程日志 12
2.5. 文件与目录权限 13
2.5.1. 检查所有人可写的目录是否设置 sticky位 13
2.5.2. 检查所有人可写的文件是否被授权 13
2.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权 14
2.5.4. 检查没有owner的文件 14
2.6. 认证和授权 14
2.6.1. 禁止root以及系统用户使用ftp服务 14
2.6.2. 限制root用户远程登录 15
2.6.3. 禁止使用.rhosts方式认证 15
2.6.4. 确保只有授权用户可以使用cron与at服务 16
2.7. 用户账号与环境 16
2.7.1. 禁止系统帐号登陆 16
2.7.2. 设置密码策略 16
2.7.3. 检查系统其他超级用户 17
2.8. 警告BANNER 17
2.8.1. 设置telnet登陆banner 17
2.8.2. 设置ftp登陆banner 17
2.8.3. 网络与物理访问banner 18
第3章 LINUX安全配置指南 19
3.1. 补丁与安全软件 19
3.1.1. 补丁 19
3.1.2. SSH配置 19
3.2. XINETD网络服务 20
3.2.1. 禁用shell login rlogin rsh 20
3.2.2. 其他不必要的xinetd服务 20
3.3. DAEMON服务 21
3.3.1. 禁用nfs服务 21
3.3.2. 其他不必要的daemon服务 21
3.4. 日志 22
3.4.1. 捕获authpriv消息 22
3.4.2. 开启ftp服务日志 22
3.4.3. 发送远程日志 23
3.5. 文件与目录权限 23
3.5.1. 检查所有人可写的目录应该设置sticky位 23
3.5.2. 检查所有人可写的文件是否被授权 24
3.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权 24
3.5.4. 检查没有owner的文件 24
3.6. 认证和授权 25
3.6.1. 禁止root以及系统用户使用ftp服务 25
3.6.2. 限制root直接登陆 25
3.6.3. 禁止使用.rhosts方式验证 25
3.6.4. 确保只有授权用户可以使用cron与at服务 26
3.7. 用户帐号与环境 26
3.7.1. 禁止系统帐号的登陆 26
3.7.2. 设置密码策略 27
3.7.3. 检查系统其他超级用户 27
3.8. 警告BANNER 27
3.8.1. 网络与物理访问banner 27
3.8.2. vsftp的警告信息 28
第4章 SCO安全配置指南 28
4.1. 补丁与安全软件 28
4.1.1. 补丁 28
4.1.2. SSH配置 28
4.2. INETD服务 29
4.2.1. 禁用shell与login 29
4.2.2. 其他不必要的inetd服务 29
4.3. DAEMON服务 30
4.3.1. 禁用nfs服务 30
4.3.2. 其他不必要的daemon服务 30
4.3.3. 加强snmp community复杂度 31
4.4. 日志 31
4.4.1. 捕获auth与authpriv消息 31
4.4.2. 发送远程日志 31
4.5. 文件与目录权限 32
4.5.1. 检查所有人可写的目录是否设置 sticky位 32
4.5.2. 检查所有人可写的文件是否被授权 32
4.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权 33
4.5.4. 检查没有owner的文件 33
4.6. 认证和授权 33
4.6.1. 禁止root以及系统用户使用ftp服务 33
4.6.2. 限制root远程登录 34
4.6.3. 禁止使用.rhosts方式认证 34
4.6.4. 确保只有授权用户可以使用cron与at服务 34
4.6.5. 设置自动退出空闲终端 34
4.7. 用户帐号与环境 35
4.7.1. 禁止系统帐号登陆 35
4.7.2. 设置密码策略 35
4.7.3. 检查系统其他超级的用户 36
4.8. 警告BANNER 36
4.8.1. 网络与物理访问banner 36
第5章 SOLARIS安全配置指南 37
5.1. 补丁与安全软件 37
5.1.1. 补丁 37
5.1.2. SSH配置 38
5.2. INETD网络服务 38
5.2.1. 禁用shell与login 38
5.2.2. 其他不必要的inetd服务 39
5.3. DAEMON服务 39
5.3.1. 禁用nfs服务 39
5.3.2. 其他不必要的daemon服务 40
5.3.3. 加强snmp community复杂度 40
5.4. 日志 41
5.4.1. 捕获log_auth信息 41
5.4.2. 禁止syslogd接受远程日志 41
5.4.3. 开启inetd服务日志 42
ENABLE_CONNECTION_LOGGING=YES 42
5.4.4. 开启ftp服务日志 43
5.4.5. 设置syslog接受ftp与inetd信息 43
5.4.6. 开启cron日志 44
CRONLOG=YES 44
5.5. 文件与目录权限 44
5.5.1. 检查所有人可写的目录是否设置 sticky位 44
5.5.2. 检查所有人可写的文件是否被授权 44
5.5.3. 检查没有owner的文件 45
5.5.4. 检查存在扩展属性的文件或目录 45
5.6. 认证和授权 45
5.6.1. 禁止root以及系统用户使用ftp服务 45
5.6.2. 限制root用户远程登陆 46
5.6.3. 禁止.rhosts方式认证 46
5.6.4. 确保只有授权用户可以使用cron与at服务 47
5.6.5. 禁用Secure-RPC上的nobody权限 47
5.6.6. 禁止sendmail监听外部地址 48
5.7. 用户帐号与环境 48
5.7.1. 禁止系统帐号登陆 48
5.7.2. 设置密码策略 49
5.7.3. 检查系统其他超级用户 49
5.8. 警告BANNER 50
5.8.1. 网络与物理访问banner 50
5.8.2. 设置ftp的banner 50
第6章 HP-UX安全配置指南 51
6.1. 补丁与安全软件 51
6.1.1. 补丁 51
6.1.2. SSH配置 51
6.2. INETD网络服务 52
6.2.1. 禁用shell与login 52
6.2.2. 其他不必要的inetd服务 52
6.3. DAEMON服务 53
6.3.1. 禁用nfs服务 53
6.3.2. 其他不必要的daemon服务 53
6.3.3. 加强snmp community复杂度 54
6.4. 日志 55
6.4.1. 禁止syslog接受网络日志 55
6.4.2. 开启inetd日志 55
6.4.3. 开启ftp日志 56
HP-UX 11.XX 56
6.5. 文件与目录权限 56
6.5.1. 检查所有人可写的目录是否设置 sticky位 56
6.5.2. 检查所有人可写的文件是否被授权 57
6.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权 57
6.5.4. 检查没有owner的文件 57
6.5.5. 确保补丁备份目录不能被其他人访问 58
6.6. 认证和授权 58
6.6.1. 禁止root以及系统用户使用ftp服务 58
6.6.2. 限制root用户登陆控制台 59
6.6.3. 确保只有授权用户可以使用cron与at服务 59
6.6.4. 禁止使用.rhosts方式认证 59
6.7. 用户账号与环境 60
6.7.1. 禁止系统帐号登陆 60
6.7.2. 设置密码策略 60
6.7.3. 检查系统其他超级用户 61
6.8. 警告BANNER 61
6.8.1. 网络与物理访问banner 61
6.8.2. 设置ftp的banner 62
第7章 WINDOWS安全配置指南 63
7.1. 补丁 63
7.1.1. 安装最新的SP 63
7.1.2. 安装最新的安全Hotfix 63
7.2. 账号与审计 64
7.2.1. 设置密码策略 64
7.2.2. 设置帐号锁定 64
7.2.3. 设置必要的审核 65
7.2.4. 设置日志 66
7.3. 安全设置 67
7.3.1. 禁止远程枚举帐号与共享 67
7.3.2. 设置登录消息提示标题 68
7.3.3. 设置登录消息提示正文 69
7.3.4. 禁止显示上次登录用户名 70
7.3.5. 禁止自动登陆 71
7.3.6. 禁止自动执行系统调试器 71
7.3.7. 禁止磁盘自动运行 72
7.4. 服务设置 72
7.4.1. 禁用Alert服务 72
7.4.2. 禁用Clipbook 73
7.4.3. 禁止Computer Browser 73
7.4.4. 禁止Remote Registry Service服务 73
7.4.5. 禁止Print spooler服务 74
7.4.6. 禁止Messenger服务 74
7.4.7. 加强snmp community复杂度 74
第1章 概述
1.1. 目的
提供操作系统层面规范统一的安全配置,加强操作系统相关的安全配置,从而更好的保障应用系统数据的保密性、完整性与可用性
1.2. 适用范围
所有生产服务器
1.3. 参考文档
《操作系统相关Checklist》
第2章 AIX安全配置指南
2.1. 补丁与安全软件
2.1.1. 补丁
描述
系统补丁是针对操作系统本身暴露的缺陷所进行修补的程序,系统可能存在风险很大的安全缺陷,通过安装系统补丁,我们可以消除漏洞被利用的可能,从而更好的保障我们的生产系统
风险
高,安装前需要严格测试
操作
1) 检查操作系统版本
4.3.0.0
2) 检查维护补丁情况
All filesets for 4.3.1.0_AIX_ML were found.
All filesets for 4.3.2.0_AIX_ML were found.
All filesets for 4.3.1.0_AIX_ML were found.
All filesets for 4.3.2.0_AIX_ML were found.
All filesets for 4.3.3.0_AIX_ML were found.
All filesets for 4330-02_AIX_ML were found.
All filesets for 4320-02_AIX_ML were found.
All filesets for 4330-03_AIX_ML were found.
All filesets for 4330-04_AIX_ML were found.
All filesets for 4330-05_AIX_ML were found.
All filesets for 4330-01_AIX_ML were found.
All filesets for 4330-06_AIX_ML were found.
Not all filesets for 4330-07_AIX_ML were found.
All filesets for 4330-08_AIX_ML were found
那么系统的最新补丁集是4330-08
3) 检查特定的补丁是否安装(如IY22308):
IY22308 Abstract: Memory leak in fclose() subroutine
Fileset bos.adt.prof:4.3.3.77 is applied on the system.
Fileset bos.rte.libc:4.3.3.77 is applied on the system.
All filesets for IY22308 were found.
表示补丁已经安装
4) 安装补丁
smitty update_all
选择补丁文件目录如/tmp/patch
2.1.2. SSH配置
描述
相对于r系列命令,SSH提供了安全的传输通道,多样的身份认证方式,包括用户名/密码与证书认证方式,可以有效的抵御网络嗅探、会话拦截等攻击,有效的保护了数据的完整性、可用性与保密性
风险
无
操作
编辑$dir/sshd_config($dir为包含sshd_config配置文件的目录),修改配置如下:
1) Protocol 2(使用第二版SSH协议)
2) IgnoreRhosts yes(禁止基于rhosts方式认证)
3) RhostAuthentication no(禁止使用rhosts方式认证)
4) PermitRootLogin no(拒绝root直接登录)
5) PermitEmptyPassword(拒绝使用空密码)
6) Banner /etc/motd(设置Banner)
2.2. inetd网络服务
2.2.1. 禁用shell与login
描述
shell与login服务提供了传统的rlogin rsh与rcp服务,该类服务的缺点是认证模式简单(依赖~./rhosts或/etc/rhosts.equiv)与明文传输信息,容易遭受网络窃听与会话劫持等攻击
风险
低,无法使用提供远程执行命令服务
操作
1) 编辑/etc/inetd.conf,注释exec开头的服务
2) kill –HUP pid(inetd进程的pid)
2.2.2. 其他不必要的inetd服务
描述
其他服务如kshell、klogin、echo、discard等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
1) 编辑/etc/inetd.conf,注释以下服务
Tcp:
telnet shell kshell login klogin exec echo discard chargen daytime time
ttdbserver dtspc
udp:
ntalk rstad ruserd rwalld sprayd pcnfsd echo discard chargen daytime time
cmsd
2) kill –HUP pid(inetd进程的pid)
2.3. daemon服务
2.3.1. 禁用 nfs服务
描述
nfs服务用于提供网络文件共享,其本身是基于RPC协议的,存在RPC服务方面的弱点,容易为攻击者利用,如果没有提供nfs服务,必须关闭该服务,减少系统受到的安全威胁
风险
低,无法提供NFS服务
操作
2.3.2. 其他不必要的daemon服务
描述
其他daemon服务如routed、gated、named、timed等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
AIX 4.3.3:
对于以下服务: sendmail routed gated named timed snmpd rwhod dpid2 lpd portmap ndpd-router ndpd-host使用命令如下:
Stopsrc –s $service
Chrctcp –d $service
($service为上面的服务)
对于以下服务: piobe httpdlite pmd writesrv,使用命令如下:
Rmitab $services
($service为上面的服务)
AIX 5.x:
对于以下服务: sendmail routed gated named timed rwhod mrouted
snmpd dpid2 hostmidb lpd portmap autoconf6 ndpd-router ndpd-host 使用命令如下:
Stopsrc –s $service
Chrctcp –d $service
($service为上面的服务)
对于以下服务: piobe i4ls httpdlite pmd writesrv,使用命令如下:
Stopsrc –s $service
Rmitab $service
($service为上面的服务)
开启pormap、snmpd dpid2 hostmibd服务:
Chrctcp –a $service
2.3.3. 加强snmp community复杂度
描述
snmp服务提供了远程监控服务器的功能,默认snmp允许所有IP地址使用public读取所有的资源,给攻击者暴露了许多有用的系统信息(如系统进程 文件系统 网卡等)
风险
无
操作
编辑/etc/snmpd.conf,修改如下:
1) 修改community public …中的public为复杂的字符串
2) 修改community private…中的private为复杂的字符串
3) 限制可以远程读取服务器信息的IP地址范围,例如:
community 10.200.24.0 255.255.255.0 readWrite,允许10.200.24.0/24网段的IP地址使用字符串对本机进行远程监控,权限是读写
4) 如果需要关闭snmpd服务,方法如下:
stopsrc –s snmpd
chrctcp –d snmpd
2.4. 日志
2.4.1. 捕获auth消息
描述
缺省AIX没有发送安全相关的日志到syslogd,如su尝试,失败的登录,root登录尝试等,通过捕获安全日志可以在发生安全事件的时候提供更多的信息
风险
无
操作
1) 编辑/etc/syslog.conf,增加下面两行:
auth.info\t\t/var/adm/authlog
.info;auth.none\t\t/var/adm/syslog
2) chown root:system /var/adm/authlog
3) chmod 600 /var/adm/authlog
4) stopsrc –s syslogd;startsrc –s syslogd
2.4.2. 禁止syslog接受网络日志
描述
默认情况下syslogd会监听udp 514端口,接受远程主机的日志,不需要任何认证,这通常会导致恶意DOS攻击,降低了服务器的可用性
风险
低,无法作为日志收集服务器
操作
1)#chssys –s syslogd –a “-r”
2)#stopsrc –s syslogd
3)#startsrc –s syslogd
2.4.3. 发送远程日志
描述
发送远程日志是指发送本地日志的拷贝到远程服务器,这通常可以作为日志冗余备份方式,当发生安全事件的时候,即使本地日志被删除,也可以使用备份日志进行分析
风险
低,需要测试是否对系统性能产生大的影响
操作
1) 编辑/etc/syslog.conf,增加下面:
auth.info\t\t@remotehost
*,info;auth.none\t\t@remotehost
*,emerg\t\t@remotehost
local7.\t\t@remotehost
2) stopsrc –r syslogd; startsrc –r syslogd
2.5. 文件与目录权限
2.5.1. 检查所有人可写的目录是否设置 sticky位
描述
在所有人可写的目录中,sticky位可以保证只有文件的属主可以更改该文件,其他任何人没有修改权限,这可以防止恶意破坏他人的文件
风险
无
操作
3) find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) –print
4) chmod +t $found($found是上面查找出来的目录名)
2.5.2. 检查所有人可写的文件是否被授权
描述
所有人可写的文件通常赋予任何人写的权限,这将导致文件的恶意更改或删除,应该避免该类文件的出现,除非有必要
风险
低,需要检查该文件的具体作用
操作
for part in mount | grep dev | awk '{print $2}' | \
; do
egrep -v 'cdrom|nfs'
echo "Searching $part"
find $part \( -perm -0002 –a ! -perm -1000 \) \
-type f -xdev -ls
Done
2.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权
描述
带有suid或sgid标志位的可执行文件被任意用户执行时带有文件属主的权限,这通常被攻击者用来安置后门或寻找系统漏洞
风险
低,需要检查文件是否被授权
操作
for part in mount | grep dev | awk '{print $2}' | \
; do
egrep -v 'cdrom|nfs'
echo "Searching $part"
find $part \( -perm -04000 -o -perm -02000 \) \
-type f -xdev -ls
Done
2.5.4. 检查没有owner的文件
描述
当删除某用户而忘记删除该用户的文件的时候可能会出现没有owner的文件,如果以后又建立用户,可能该用户会继承以前被删除用户的uid,这将导致可能包含私密内容的文件被他人获取,造成信息泄露
风险
低,需要检查该文件的具体作用
操作
find / \( -nouser -o -nogroup \) -ls
2.6. 认证和授权
2.6.1. 禁止root以及系统用户使用ftp服务
描述
ftpuser文件包含了不能使用本地ftp服务的用户,通常系统帐号包括root并不需要直接使用本地ftp,禁止系统与root帐号使用ftp可以降低系统遭受的安全威胁
风险
无
操作
一般需要包含root(如果需要使用可以排除)
编辑/etc/ftpusers,每行一个用户
2.6.2. 限制root用户远程登录
描述
远程使用root登录控制台容易导致root密码丢失,尤其采用telnet方式登录,应该避免使用root直接远程登录,以减少针对root口令的威胁
风险
低,root无法直接登陆控制台
操作
需要确保有一个可以远程登陆的普通用户
chuser rlogin=false login=true su=true sugroups=system root
2.6.3. 禁止使用.rhosts方式认证
描述
.rhosts方式认证允许通过简单的基于文件方式的认证,该协议本身没有任何加密,容易导致网络嗅探的发生,同时如果该文件被攻击者控制,容易引发更大的安全隐患
风险
低,无法使用r系列命令
操作
1) 删除系统级信任文件
[ -f /etc/hosts.equiv ] && rm -f /etc/hosts.equiv
2) 删除用户级信任文件
注意:如果需要使用该认证方式,必须确保严格的信任关系,保证信任的主机与用户
2.6.4. 确保只有授权用户可以使用cron与at服务
描述
Cron与at是unix系统用来调度程序运行的进程,必须确保授权用户使用cron与at服务,避免被恶意用户放置后门
风险
无
操作
编辑/var/adm/cron/cron.allow与/var/adm/cron/at.allow,文件里包含的用户就是允许使用cron与at的用户
2.7. 用户账号与环境
2.7.1. 禁止系统帐号登陆
描述
系统帐号蠕通常用于系统内部权限维护,并不是真实的用户,禁止该类用户登录可以减少攻击者利用该类帐号进行登录的可能
风险
无
操作
for user in daemon bin sys adm uucp nuucp printq guest
nobody lpd sshd; do
chuser rlogin=false login=false "$user"
done
2.7.2. 设置密码策略
描述
良好的密码策略如密码满足一定的复杂度,定期更换密码等可以较好的抵御基于密码的攻击
风险
无
操作
chsec -f /etc/security/user -s default -a maxage=13(设置密码最长使用13周)
chsec -f /etc/security/user -s default -a minlen=8(设置密码最小长度8个字符)
chsec -f /etc/security/user -s default -a minage=1(设置密码最少使用1周)
chsec -f /etc/security/user -s default -a pwdwarntime=28(设置四周后收到修改密码警告)
chsec -f /etc/security/user -s default -a loginretries=5(设置失败登录次数为5次)
2.7.3. 检查系统其他超级用户
描述
uid为0的用户拥有系统最高权限,应该检查系统中uid为0的用户是否是合法用户,并减少uid为0的用户数目
风险
无
操作
检查/etc/passwd,看是否存在其他uid为0的用户
2.8. 警告Banner
2.8.1. 设置telnet登陆banner
描述
telnet登录banner是远程连接进入系统之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
chsec -f /etc/security/login.cfg -s default -a
herald="Authorized uses only. All activity may be monitored
and reported\n\r\nlogin: "
2.8.2. 设置ftp登陆banner
描述
ftp登录banner是登录 ftp服务器之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
1) dspcat -g /usr/lib/nls/msg/en_US/ftpd.cat > /tmp/ftpd.tmp
sed "s/\"\%s FTP server (\%s) ready.\"/\"\%s Authorized
uses only. All activity may be monitored and reported\"/" \
/tmp/ftpd.tmp > /tmp/ftpd.msg
gencat ftpd.cat /tmp/ftpd.msg
2) echo “herald: /etc/ftpmotd” >> /etc/ftpaccess.ctl
cat << EOF >> /etc/ftpmotd
Authorized uses only. All activity may be monitored and
reported
EOF
(5.1以后版本)
2.8.3. 网络与物理访问banner
描述
物理访问banner是通过控制台登录系统之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
编辑/etc/issue与/etc/motd,写入希望写的东西
第3章 Linux安全配置指南
3.1. 补丁与安全软件
3.1.1. 补丁
描述
系统补丁是针对操作系统本身暴露的缺陷所进行修补的程序,系统可能存在风险很大的安全缺陷,通过安装系统补丁,我们可以消除漏洞被利用的可能,从而更好的保障我们的生产系统
风险
高,安装前需要严格测试
操作
自动: 使用up2date(AS)或yum(Fedora)进行安装
手动: rpm –Uvh xxx.rpm(xxx.rpm为下载的补丁包)
3.1.2. SSH配置
描述
相对于r系列命令,SSH提供了安全的传输通道,多样的身份认证方式,包括用户名/密码与证书认证方式,可以有效的抵御网络嗅探、会话拦截等攻击,有效的保护了数据的完整性、可用性与保密性
风险
无
操作
编辑$dir/sshd_config,修改配置如下:
1) Protocol 2(使用第二版SSH协议)
2) IgnoreRhosts yes(禁止基于rhosts方式认证)
3) RhostAuthentication no(禁止使用rhosts方式认证)
4) PermitRootLogin no(拒绝root直接登录)
5) PermitEmptyPassword(拒绝使用空密码)
6) Banner /etc/issue.net(设置Banner)
3.2. xinetd网络服务
3.2.1. 禁用shell login rlogin rsh
描述
shell与login服务提供了传统的rlogin rsh与rcp服务,该类服务的缺点是认证模式简单(依赖~./rhosts或/etc/rhosts.equiv)与明文传输信息,容易遭受网络窃听与会话劫持等攻击
风险
低,无法使用r系列命令
操作
chkconfig ${FILE} off
3.2.2. 其他不必要的xinetd服务
描述
其他服务如kshell、klogin、echo、discard等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
chkconfig ${FILE} off
FILE可以为以下值:
Chargen chargen-udp cups-lpd cups daytime daytime-udp echo echo-udp
Eklogin finger gssftp imap imaps ipop2 ipop3 krb5-telnet klogin kshell ktalk
Ntalk pop3s rexec rlogin rsh rsync servers services sgi_fam talk telnet tftp
Time time-udp vsftpd wu-ftpd
3.3. daemon服务
3.3.1. 禁用nfs服务
描述
nfs服务用于提供网络文件共享,其本身是基于rpc协议的,存在rpc服务方面的弱点,容易为攻击者利用,如果没有提供nfs服务,必须关闭该服务,减少系统受到的安全威胁
风险
低,无法提供nfs服务
操作
1) 禁用nfs服务端
chkconfig --level 345 nfs off
2) 禁用nfs客户端
chkconfig --level 345 nfslock off
chkconfig --level 345 autofs off
3.3.2. 其他不必要的daemon服务
描述
其他daemon服务如sendmail、rusersd、rwalld、rwhod等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
Chkconfig –level 345 $service off,具体$service服务列表如下:
postgressql mysql named apache httpd tux lpd cups hpoj ypbind ypserv yppasswdd smb portmap netfs webmin kudzu squid cups ip6tables pcmcia bluetooth mDNSResponser
apmd canna FreeWnn gpm jpoj innd irda kdcrotate isdn lvs mars-new oki4daemon privoxy rstatd rusersd rwalld rwhod spamassass wine sendmail
开启snmpd服务:
Chkconfig –level 345 snmpd on
关闭snmpd服务:
Chkconfig –level 345 snmpd off
3.4. 日志
3.4.1. 捕获authpriv消息
描述
缺省可能该选项已经开启,但并不是所有的Linux发布版都开启该选项,大量有关安全方面消息如(网络设备启动,usermod,change等),都通过AUTH_PRIV发送,在发生安全事件的时候可以提供详细的参考
风险
无
操作
检查/etc/syslog.conf是否包含authoriv.,如果没有加入下面行:
authpriv.\t\t\t\t/var/log/secure
touch /var/log/secure
chown root:root /var/log/secure
chmod 600 /var/log/secure
3.4.2. 开启ftp服务日志
描述
开启ftp日志可以获取所有ftp连接的远程IP地址等信息,在发生安全事件的时候可以提供详细的参考
风险
无
操作
wu-ftpd默认的记录文件是/var/log/xferlog
针对wu-ftpd:
打开/etc/xinetd.d/wu-ftpd,修改server_args = -l -a -d
针对vsftpd:
打开/etc/vsftpd.conf或/etc/vsftpd/vsftpd.conf,修改xferlog_std_format=NO,
log_ftp_protocol=YES(如果没有该行需要加上)
3.4.3. 发送远程日志
描述
发送远程日志是指发送本地日志的拷贝到远程服务器,这通常可以作为日志冗余备份方式,当发生安全事件的时候,即使本地日志被删除,也可以使用备份日志进行分析
风险
低,需要测试是否对系统性能产生大的影响
操作
在/etc/syslog.conf中加入下面的:
kern.warning;.err;authpri.none\t@loghost
*.info;mail.none;authpriv.none;cron.none\t@loghost
*.emerg\t@loghost
local7.\t@loghost
--loghost是日志服务器的IP地址
3.5. 文件与目录权限
3.5.1. 检查所有人可写的目录应该设置sticky位
描述
在所有人可写的目录中,sticky位可以保证只有文件的属主可以更改该文件,其他任何人没有修改权限,这可以防止恶意破坏他人的文件
风险
无
操作
find / -xdev –type d \( -perm -0002 –a ! –perm -1000 \) –print
3.5.2. 检查所有人可写的文件是否被授权
描述
所有人可写的文件通常赋予任何人写的权限,这将导致文件的恶意更改或删除,应该避免该类文件的出现,除非有必要
风险
低,需要检查该文件的具体作用
操作
1) find / -xdev –type f \( -perm -0002 –a ! –perm -1000 \) –print
2) chmod +t $found(假设$found是查找出的目录)
3.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权
描述
带有suid或sgid标志位的可执行文件被任意用户执行时带有文件属主的权限,这通常被攻击者用来安置后门或寻找系统漏洞
风险
低,需要检查文件是否被授权
操作
find / \(-perm -04000 –o –perm -02000 \) –type f –xdev -print
3.5.4. 检查没有owner的文件
描述
当删除某用户而忘记删除该用户的文件的时候可能会出现没有owner的文件,如果以后又建立用户,可能该用户会继承以前被删除用户的uid,这将导致可能包含私密内容的文件被他人获取,造成信息泄露
风险
低,需要审核该文件的具体作用
操作
find / -nouser –o –nogroup –print
3.6. 认证和授权
3.6.1. 禁止root以及系统用户使用ftp服务
描述
ftpusers文件包含了不能使用本地ftp服务的用户,通常系统帐号包括root并不需要直接使用本地ftp,禁止系统与root帐号使用ftp可以降低系统遭受的安全威胁
风险
无
操作
创建/etc/ftpusers,加入系统用户,每个一行
如果存在/etc/vsftpd.conf或/etc/vsftpd/vsftpd.conf,使用ftpusers替换vsftpd.ftpusers
3.6.2. 限制root直接登陆
描述
远程使用root登录控制台容易导致root密码丢失,尤其采用telnet方式登录,应该避免使用root直接远程登录,以减少针对root口令的威胁
风险
低,root无法直接登陆控制台
操作
for i in seq 1 6
; do
echo tty$i >> /etc/securetty
done
for i in seq 1 11
; do
echo vc/$i >> /etc/securetty
done
echo console >> /etc/securetty
chown root:root /etc/securetty
chmod 400 /etc/securetty
3.6.3. 禁止使用.rhosts方式验证
描述
.rhosts方式认证允许通过简单的基于文件方式的认证,该协议本身没有任何加密,容易导致网络嗅探的发生,同时如果该文件被攻击者控制,容易引发更大的安全隐患
风险
低,无法使用r系列命令
操作
for FILE in /etc/pam.d/*; do
grep -v rhosts_auth $FILE > ${FILE}.tmp
mv -f ${FILE}.tmp $FILE
chown root:root $FILE
chmod 644 $FILE
do
如果需要使用.rhosts,避免应该严格限制信任主机与用户,避免使用+或主机名字,防火墙应该阻断外部访问主机的rlogin/rcp/rsh服务
3.6.4. 确保只有授权用户可以使用cron与at服务
描述
Cron与at是unix系统用来调度程序运行的进程,必须确保授权用户使用cron与at服务,避免被恶意用户放置后门
风险
无
操作
编辑/etc/cron.allow与/etc/at.allow,文件里包含的用户就是允许使用cron与at的用户
3.7. 用户帐号与环境
3.7.1. 禁止系统帐号的登陆
描述
系统帐号通常用于系统内部权限维护,并不是真实的用户,禁止该类用户登录可以减少攻击者利用该类帐号进行登录的可能
风险
无
操作
usermod –L –s /s bin/nologin $name($name是系统帐号)
3.7.2. 设置密码策略
描述
良好的密码策略如密码满足一定的复杂度,定期更换密码等可以较好的抵御基于密码的攻击
风险
无
操作
修改/etc/login.defs,设置如下:
PASS_MAX_DAYS 90(密码最长可以使用90天)
PASS_MIN_DAYS 7(7天之内不能改变密码)
PASS_WARN_AGE 28(在密码过期之前28天会收到警告)
PASS_MIN_LEN 8(密码最小长度)
3.7.3. 检查系统其他超级用户
描述
uid为0的用户拥有系统最高权限,应该检查系统中uid为0的用户是否是合法用户,并减少uid为0的用户数目
风险
无
操作
检查/etc/passwd,看是否存在其他uid为0的用户
3.8. 警告Banner
3.8.1. 网络与物理访问banner
描述
物理访问banner是通过控制台登录系统之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
编辑/etc/issue与/etc/motd,./etc/issue.net写入希望写的东西
3.8.2. vsftp的警告信息
描述
ftp登录banner是登录 ftp服务器之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
检查编辑/etc/vsftpd.conf或/etc/vsftpd/vsftpd.conf,增加下面一行:
ftpd_banner=xxx
第4章 SCO安全配置指南
4.1. 补丁与安全软件
4.1.1. 补丁
描述
系统补丁是针对操作系统本身暴露的缺陷所进行修补的程序,系统可能存在风险很大的安全缺陷,通过安装系统补丁,我们可以消除漏洞被利用的可能,从而更好的保障我们的生产系统
风险
高,安装前需要严格测试
操作
1) 使用swconfig –P查看系统补丁安装情况
2) 使用custom安装补丁,跟安装软件一样
4.1.2. SSH配置
描述
相对于r系列命令,SSH提供了安全的传输通道,多样的身份认证方式,包括用户名/密码与证书认证方式,可以有效的抵御网络嗅探、会话拦截等攻击,有效的保护了数据的完整性、可用性与保密性
风险
无
操作
编辑$dir/sshd_config,修改配置如下:
1) Protocol 2(使用第二版SSH协议)
2) IgnoreRhosts yes(禁止基于rhosts方式认证)
3) RhostAuthentication no(禁止使用rhosts方式认证)
4) PermitRootLogin no(拒绝root直接登录)
5) PermitEmptyPassword(拒绝使用空密码)
6) Banner /etc/issue.net(设置Banner)
4.2. inetd服务
4.2.1. 禁用shell与login
描述
shell与login服务提供了传统的rlogin rsh与rcp服务,该类服务的缺点是认证模式简单(依赖~./rhosts或/etc/rhosts.equiv)与明文传输信息,容易遭受网络窃听与会话劫持等攻击
风险
低,无法使用r系列命令
操作
1) 编辑/etc/inetd.conf,注释shell login开头的服务
2) kill –HUP pid(inetd进程的pid)
4.2.2. 其他不必要的inetd服务
描述
其他服务如kshell、klogin、echo、discard等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
1) 编辑/etc/inetd.conf,注释以下服务
telnet shell kshell login klogin exec echo discard chargen daytime time
ttdbserver dtspc ntalk rstad ruserd rwalld sprayd pcnfsdcmsd
2) kill –HUP pid(inetd进程的pid)
4.3. daemon服务
4.3.1. 禁用nfs服务
描述
nfs服务用于提供网络文件共享,其本身是基于RPC协议的,存在RPC服务方面的弱点,容易为攻击者利用,如果没有提供nfs服务,必须关闭该服务,减少系统受到的安全威胁
风险
低,无法提供NFS服务
操作
NFS的启用取决于/etc/exports是否可读,默认不存在该文件
1) #cd /etc/rc2.d
4.3.2. 其他不必要的daemon服务
描述
其他daemon服务如uucp、nis、pppd等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
1) 针对S89hostmib S95calserver S95docview
S99apcssd P70uucp S85nis,操作如下:
cd /etc/rc2.d
mv S89hostmib s89hostmib(其他服务类似)
2) 针对pppd snmpd named gated xntpd lpd routed irdd timed rwhod rarpd,操作如下:
编辑/etc/tcp,注释包含相关服务的行
4.3.3. 加强snmp community复杂度
描述
snmp服务提供了远程监控服务器的功能,默认snmp允许所有IP地址使用public读取所有的资源,给攻击者暴露了许多有用的系统信息(如系统进程 文件系统 网卡等)
风险
无
操作
编辑/etc/snmpd.comm,修改如下:
1) 修改public为复杂的字符串
2) 限制可以远程读取服务器信息的IP地址范围,例如:
10.200.24.254 read[write]
限制来自10.200.24.254的机器可以读取或写本机的SNMP信息
3) 如果需要关闭snmpd服务,方法如下:
/etc/rc2.d/S89hostmib stop
mv /etc/rc2.d/S89hostmib /etc/rc2.d/s89hostmib
4.4. 日志
4.4.1. 捕获auth与authpriv消息
描述
auth与auth_priv包含了许多安全相关的消息,通过捕获安全相关消息可以在发生安全事件的时候提供更多的信息
风险
无
操作
编辑/etc/syslog.conf,检查是否存在包含auth与authpriv的行,如果没有,增加下面两行:
authpriv.,auth.\t\t\t\t/var/log/secure
4.4.2. 发送远程日志
描述
发送远程日志是指发送本地日志的拷贝到远程服务器,这通常可以作为日志冗余备份方式,当发生安全事件的时候,即使本地日志被删除,也可以使用备份日志进行分析
风险
低,需要测试是否对系统性能产生大的影响
操作
1) 修改/etc/syslog.conf如下:
kern.warning;.err;authpri.none\t@loghost
*.info;mail.none;authpriv.none;cron.none\t@loghost
*.emerg\t@loghost
local7.\t@loghost
注:loghost是日志服务器的IP地址
4.5. 文件与目录权限
4.5.1. 检查所有人可写的目录是否设置 sticky位
描述
在所有人可写的目录中,sticky位可以保证只有文件的属主可以更改该文件,其他任何人没有修改权限,这可以防止恶意破坏他人的文件
风险
无
操作
1) find / -xdev –type d \( -perm -0002 –a ! –perm -1000 \) –print
2) chmod +t $found(假设$found是上面的找到的文件)
4.5.2. 检查所有人可写的文件是否被授权
描述
所有人可写的文件通常赋予任何人写的权限,这将导致文件的恶意更改或删除,应该避免该类文件的出现,除非有必要
风险
低,需要检查该文件的具体作用
操作
find / -xdev –type f \( -perm -0002 –a ! –perm -1000 \) –print
4.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权
描述
带有suid或sgid标志位的可执行文件被任意用户执行时带有文件属主的权限,这通常被攻击者用来安置后门或寻找系统漏洞
风险
低,需要检查文件是否被授权
操作
find / \(-perm -04000 –o –perm -02000 \) –type f –xdev -print
4.5.4. 检查没有owner的文件
描述
当删除某用户而忘记删除该用户的文件的时候可能会出现没有owner的文件,如果以后又建立用户,可能该用户会继承以前被删除用户的uid,这将导致可能包含私密内容的文件被他人获取,造成信息泄露
风险
低,需要检查该文件的具体作用
操作
find / -nouser –o –nogroup –print
4.6. 认证和授权
4.6.1. 禁止root以及系统用户使用ftp服务
描述
ftpuser文件包含了不能使用本地ftp服务的用户,通常系统帐号包括root并不需要直接使用本地ftp,禁止系统与root帐号使用ftp可以降低系统遭受的安全威胁
风险
无
操作
编辑/etc/ftpusers,加入系统用户名,一行一个
4.6.2. 限制root远程登录
描述
远程使用root登录控制台容易导致root密码丢失,尤其采用telnet方式登录,应该避免使用root直接远程登录,以减少针对root口令的威胁
风险
低,root无法直接登陆控制台
操作
1) 编辑/etc/default/login,加入下面一行:
CONSOLE=/dev/tty01
4.6.3. 禁止使用.rhosts方式认证
描述
.rhosts方式认证允许通过简单的基于文件方式的认证,该协议本身没有任何加密,容易导致网络嗅探的发生,同时如果该文件被攻击者控制,容易引发更大的安全隐患
风险
低,无法使用r系列命令
操作
1) 删除/etc/equiv.rhosts与~/.rhosts文件
4.6.4. 确保只有授权用户可以使用cron与at服务
描述
Cron与at是unix系统用来调度程序运行的进程,必须确保授权用户使用cron与at服务,避免被恶意用户放置后门
风险
无
操作
编辑/var/lib/cron/cron.allow与/var/lib/cron/at.allow,文件里包含的用户就是允许使用cron与at的用户
4.6.5. 设置自动退出空闲终端
描述
自动退出空闲终端是指超过给定时间如果终端没有使用,该用户将自动退出登录,这可以防止由于不小心导致被他人操作
操作
1) 针对sh(默认shell): 编译/etc/profile->增加下面一行:
TMOUT=120 ; export TMOUT
2) 针对csh: 编辑/etc/csh.login增加下面两行:
setenv TMOUT 120
注:上面的时间单位是秒
4.7. 用户帐号与环境
4.7.1. 禁止系统帐号登陆
描述
系统帐号蠕通常用于系统内部权限维护,并不是真实的用户,禁止该类用户登录可以减少攻击者利用该类帐号进行登录的可能
风险
无
操作
编辑/etc/passwd,修改不需要登录的用户shell为/dev/null
4.7.2. 设置密码策略
描述
良好的密码策略如密码满足一定的复杂度,定期更换密码等可以较好的抵御基于密码的攻击
风险
无
操作
1) 输入scoadmin
2) 依次进入Account Manager->Account->User->Login Controls
失败登陆次数默认是5次,具体按照帐号管理相关规定设置
3) 依次进入Account Manager->Account->User->Password Restrictions->Password Expiration,设置口令过期时间(Days until password expires),账号锁定时间(Days until account is locked:)
4.7.3. 检查系统其他超级的用户
描述
id为0的用户拥有系统最高权限,应该检查系统中uid为0的用户是否是合法用户,并减少uid为0的用户数目
风险
无
操作
检查/etc/passwd,,查看是否存在其它uid为0的用户
4.8. 警告Banner
4.8.1. 网络与物理访问banner
描述
物理访问banner是通过控制台登录系统之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
编辑/etc/motd与/etc/issue,修改为自己想要的语句
第5章 Solaris安全配置指南
5.1. 补丁与安全软件
5.1.1. 补丁
描述
系统补丁是针对操作系统本身暴露的缺陷所进行修补的程序,系统可能存在风险很大的安全缺陷,通过安装系统补丁,我们可以消除漏洞被利用的可能,从而更好的保障我们的生产系统
风险
高,安装前需要严格测试
操作
1) 下载Sun Alert Patch Cluster,放到/var/sadm/下,假设为
2) cd /var/sadm
unzip –qq *_SunAlert Patch_Cluster.zip
cd _SunAlert_ Patch_Cluster.zip
./install_cluster –q
cd ..
rm –rf *_SunAlert_ Patch_Cluster
注意:安装补丁的时候可以忽略return code是2(该补丁已经安装过了)和8(该补丁应用的软件包没有在系统上安装)的错误,如果有其他错误,请注意查看/var/sadm/install_data,
5.1.2. SSH配置
描述
相对于r系列命令,SSH提供了安全的传输通道,多样的身份认证方式,包括用户名/密码与证书认证方式,可以有效的抵御网络嗅探、会话拦截等攻击,有效的保护了数据的完整性、可用性与保密性
风险
无
操作
编辑$dir/sshd_config,修改配置如下:
1) Protocol 2(使用第二版SSH协议)
2) IgnoreRhosts yes(禁止基于rhosts方式认证)
3) RhostAuthentication no(禁止使用rhosts方式认证)
4) PermitRootLogin no(拒绝root直接登录)
5) PermitEmptyPassword(拒绝使用空密码)
6) Banner /etc/issue(设置Banner)
5.2. inetd网络服务
5.2.1. 禁用shell与login
描述
shell与login服务提供了传统的rlogin rsh与rcp服务,该类服务的缺点是认证模式简单(依赖~./rhosts或/etc/rhosts.equiv)与明文传输信息,容易遭受网络窃听与会话劫持等攻击
风险
低,无法使用r系列命令
操作
1) cd /etc/inet
2) 编辑inetd.conf,注释shell login开头的服务
3) kill –HUP pid(inetd进程的pid)
5.2.2. 其他不必要的inetd服务
描述
其他服务如kshell、klogin、echo、discard等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
1) 编辑/etc/inetd.conf,注释以下服务
Time echo discard daytime chargen fs dtspc exec comsat talk finger uucp
Name xaudio netstat ufsd rexd systat sun-dr uuidgen krb5_prop
100068 1000146 100147 100150 100221 100232 100235 kerbd rstatd
Rusersd sprayd walld printer shell login ftp tftp
100083 100229 100230 100242 100234 100134 100155 rquotad
2) kill –HUP pid(inetd进程的pid)
5.3. Daemon服务
5.3.1. 禁用nfs服务
描述
nfs服务用于提供网络文件共享,其本身是基于RPC协议的,存在RPC服务方面的弱点,容易为攻击者利用,如果没有提供nfs服务,必须关闭该服务,减少系统受到的安全威胁
风险
低,无法提供nfs服务或使用nfs服务
操作
1) 禁用nfs服务器
mv /etc/rc3.d/S15nfs.server /etc/rc3.d/.NOS15nfs.server
2) 禁用nfs客户端
mv /etc/rc2.d/S73nfs.client /etc/rc2.d/.NOS73nfs.client
3) 禁止automount
mv /etc/rc2.d/S74autofs /etc/rc2.d/.NOS74autofs
5.3.2. 其他不必要的daemon服务
描述
其他daemon服务如samba、dhcp、dicectory等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
1) Cd /etc/rc3.d
mv S90samba.NO S90samba
其他服务S13kdc.master S14kdc S50apache S76snmpdx S34dhcp类似
2) Cd /etc/rc2.d
Mv S72directory .NOS72directory
其他服务S71ladp.client S80lp S80spc S92volmgt S42ncakmod S77dmi S80mipagemt S70uucp S47pppd S88sendmail
开启snmp服务:
Mv /etc/rc3.d/.NOS76snmpdx /etc/rc3.d/S76snmpdx
5.3.3. 加强snmp community复杂度
描述
snmp服务提供了远程监控服务器的功能,默认snmp允许所有IP地址使用public读取所有的资源,给攻击者暴露了许多有用的系统信息(如系统进程 文件系统 网卡等)
风险
无
操作
编辑/etc/snmp/conf/snmpd.conf,修改如下:
1) 修改system-group-read-community与read-community中的public为复杂的字符串
2) 如果需要停止snmpd服务,方法如下:
Solaris9前(含9):
cd /etc/rc3.d
mv S76snmpdx .NOS76snmpdx
Solaris10:
cd /etc/rc3.d
mv S82initsma .NOS82initsma
替代的snmp服务禁止:
cd /etc/rc3.d
mv S75seaport .NOS75seaport
mv S76snmpdx .NOS76snmpdx
5.4. 日志
5.4.1. 捕获log_auth信息
描述
log_auth包含失败登陆,su操作等安全方面的消息,通过捕获安全相关消息可以在发生安全事件的时候提供更多的信息
风险
无
操作
1) 检查/etc/syslog.conf中是否存在auth.info,如果不存在,增加一行:
auth.info\t\t\t/var/log/authlog
2) touch /var/log/authlog
3) kill –HUP pid(syslogd进程的pid)
注:安全日志文件为/var/log/authlog
5.4.2. 禁止syslogd接受远程日志
描述
默认情况下,syslogd会打开udp端口514,接受其他主机发送的日志信息,由于没有任何的认证机制,可能会导致拒绝服务攻击
配置建议
如果不是作为集中日志服务器,启用该配置
操作
Solaris 9
1) 编辑/etc/default/syslogd,修改LOG_FROM_REMOTE=NO
2) kill –HUP pid(pid为syslogd的pid)
Solaris 8
1) awk '$1 ~ /syslogd/ && !/-(t|T)/ { $1 = $1 " -t" }; \
{ print }' /etc/init.d/syslog >/etc/init.d/newsyslog
2) chown root:sys /etc/init.d/newsyslog
3) chmod 744 /etc/init.d/newsyslog
4) rm -f /etc/rc2.d/S74syslog
5) ln -s /etc/init.d/newsyslog /etc/rc2.d/S74syslog
5.4.3. 开启inetd服务日志
描述
开启inetd服务 日志可以获取所有inetd相关服务的连接与使用信息,在发生安全事件的时候可以提供详细的参考
风险
无
操作
Solaris 9
1) cd /etc/default
2) 编辑inetd文件,修改如下:
ENABLE_CONNECTION_LOGGING=YES
3) kill –HUP $pid($pid为syslogd进程PID)
Solaris 8
1) cd /etc/init.d
2) if [ ! -f newinetsvc ]; then
cp inetsvc newinetsvc
fi
3) awk '/\/usr\/sbin\/inetd/ && !/-t/ { $NF = "-t " $NF }
{ print }' newinetsvc >newinetsvc.new
4) mv newinetsvc.new newinetsvc
5) chown root:sys newinetsvc
6) chmod 744 newinetsvc
7) rm -f /etc/rc2.d/S72inetsvc
8) ln -s /etc/init.d/newinetsvc /etc/rc2.d/S72inetsvc
5.4.4. 开启ftp服务日志
描述
开启ftp日志可以获取所有ftp连接的远程IP地址等信息,在发生安全事件的时候可以提供详细的参考
风险
无
操作
1) cd /etc/inet
2) awk '/in.ftpd/ && !/-d/ { $NF = $NF " -d" }
/in.ftpd/ && !/-l/ { $NF = $NF " -l" }
{ print }' inetd.conf > inetd.conf.new
3) mv inetd.conf.new inetd.conf
4) chown root:sys inetd.conf
5) chmod 444 inetd.conf
5.4.5. 设置syslog接受ftp与inetd信息
描述
默认syslog没有接收inetd与ftp的日志,只有在日志中配置了daemon消息才能记录inetd与ftp的日志
操作
1) 检查/etc/syslog.conf文件中是否存在daemon.debug,如果不存在,增加下面一行:
daemon.debug\t\t\t/var/log/connlog
2) touch /var/log/connlog
3) kill –HUP pid(syslogd进程的pid)
5.4.6. 开启cron日志
描述
cron日志可以捕获有关cron使用情况的信息,在发生安全事件的时候可以提供详细的参考
风险
无
操作
1) cd /etc/default
2) 编辑cron,修改如下:
CRONLOG=YES
注:日志文件路径为/var/cron/log
5.5. 文件与目录权限
5.5.1. 检查所有人可写的目录是否设置 sticky位
描述
在所有人可写的目录中,sticky位可以保证只有文件的属主可以更改该文件,其他任何人没有修改权限,这可以防止恶意破坏他人的文件
风险
无
操作
1) find / -xdev –type d \( -perm -0002 –a ! –perm -1000 \) –print
2) chmod +t $found(假设$found是上面的找到的文件)
5.5.2. 检查所有人可写的文件是否被授权
描述
所有人可写的文件通常赋予任何人写的权限,这将导致文件的恶意更改或删除,应该避免该类文件的出现,除非有必要
风险
低,需要检查该文件的具体作用
操作
find / -xdev –type f \( -perm -0002 –a ! –perm -1000 \) –print
5.5.3. 检查没有owner的文件
描述
当删除某用户而忘记删除该用户的文件的时候可能会出现没有owner的文件,如果以后又建立用户,可能该用户会继承以前被删除用户的uid,这将导致可能包含私密内容的文件被他人获取,造成信息泄露
风险
低,需要检查该文件的具体作用
操作
1) find / -nouser –o –nogroup –print
2) rm –f $found(假设$found为上面找到的文件,看情况决定是否删除)
5.5.4. 检查存在扩展属性的文件或目录
描述
设置了扩展属性的文件或目录一般无法直接通过管理工具看见,攻击者可能会利用该特点隐藏木马文件
风险
低,需要检查该文件的具体作用
操作
find / -xattr –print
5.6. 认证和授权
5.6.1. 禁止root以及系统用户使用ftp服务
描述
ftpuser文件包含了不能使用本地ftp服务的用户,通常系统帐号包括root并不需要直接使用本地ftp,禁止系统与root帐号使用ftp可以降低系统遭受的安全威胁
风险
无
操作
1) if [ -d /etc/ftpd ]; then
file=/etc/ftpd/ftpusers
else
file=/etc/ftpusers
fi
2) for user in root daemon bin sys adm lp uucp nuucp \
smmsp listen nobody noaccess nobody4
do
echo $user >>$file
done
3) sort -u $file >$file.new
4) mv $file.new $file
5) chown root:root $file
6) chmod 600 $file
5.6.2. 限制root用户远程登陆
描述
远程使用root登录控制台容易导致root密码丢失,尤其采用telnet方式登录,应该避免使用root直接远程登录,以减少针对root口令的威胁
风险
低,root无法直接登陆
操作
1) 编辑/etc/default/login,修改CONSOLE=/dev/console
5.6.3. 禁止.rhosts方式认证
描述
.rhosts方式认证允许通过简单的基于文件方式的认证,该协议本身没有任何加密,容易导致网络嗅探的发生,同时如果该文件被攻击者控制,容易引发更大的安全隐患
风险
低,无法使用r系列命令
操作
1) 编辑/etc/pam.conf,注释包含rhosts_auth的行
2) 删除/etc/hosts.equiv与~/.rhosts文件
5.6.4. 确保只有授权用户可以使用cron与at服务
描述
Cron与at是unix系统用来调度程序运行的进程,必须确保授权用户使用cron与at服务,避免被恶意用户放置后门
风险
无
操作
编辑/etc/cron.d/cron.allow与/etc/cron.d/at.allow,文件里包含的用户就是允许使用cron与at的用户
5.6.5. 禁用Secure-RPC上的nobody权限
描述
keyserv默认存储Secure-RPC使用用户keys,通常会允许nobody用户访问,这可能会泄漏信息
风险
无
操作
Solaris 9
1) 编辑/etc/default/keyserv,修改ENABLE_NOBODY_KEYS=NO
Solaris 8
1) awk '$1 ~ /keyserv/ && !/-d/ { $1 = $1 " -d" }; \
{ print }' /etc/init.d/rpc >/etc/init.d/newrpc
2) chown root:sys /etc/init.d/newrpc
3) chmod 744 /etc/init.d/newrpc
4) if [ -f /etc/rc2.d/S71rpc ]; then
file=/etc/rc2.d/S71rpc
else
file=/etc/rc2.d/.NOS71rpc
fi
5) rm -f $file
6) ln -s /etc/init.d/newrpc $file
5.6.6. 禁止sendmail监听外部地址
描述
默认sendmail监听外部地址,这通常允许恶意用户使用该sendmail发送垃圾邮件,如果作为邮件服务器,必须配置可发邮件的信任区域,避免垃圾邮件的产生
风险
低,无法提供mail服务
操作
1) 编辑/etc/mail/sendmail.cf,查找包含DaemonPortOptions不包含inet6的行,在该行后面增加”, Addr=127.0.0.1”
2) kill –HUP pid(pid为sendmail的pid)
3)
5.7. 用户帐号与环境
5.7.1. 禁止系统帐号登陆
描述
系统帐号蠕通常用于系统内部权限维护,并不是真实的用户,禁止该类用户登录可以减少攻击者利用该类帐号进行登录的可能
风险
无
操作
1) passwd -l daemon
2) for user in adm bin lp smmsp nobody noaccess \
uucp nuucp smtp listen nobody4; do
passwd -l $user
/usr/sbin/passmgmt -m -s /dev/null $user
Done
5.7.2. 设置密码策略
描述
设置密码的最小长度与周期性更换密码是不错的安全习惯
风险
无
操作
1) 编辑/etc/default/passwd,修改如下:
MAXWEEKS=13(密码最长可以使用13周)
MINWEEKS=1(密码至少需要使用1周)
WARNWEEKS=4(4周后发出更改密码警告)
2) 针对当前用户
logins -ox |awk -F: '($1 == "root" || $8 == "LK") { next }
{ $cmd = "passwd" }
($11 <= 0 || $11 > 91) { $cmd = $cmd " -x 91" }
($10 < 7) { $cmd = $cmd " -n 7" }
($12 < 28) { $cmd = $cmd " -w 28" }
($cmd != "passwd") { print $cmd " " $1 }' \
其他字段如下:
PASSLENGTH(密码最小长度)
HISTORY(密码使用历史)
MINALPHA(最少的字母)
3) 设置失败登录次数
编辑/etc/default/login,编辑/RETRIES=5(设置失败登录次数为5)
5.7.3. 检查系统其他超级用户
描述
uid为0的用户拥有系统最高权限,应该检查系统中uid为0的用户是否是合法用户,并减少uid为0的用户数目
风险
无
操作
#logins -o | awk -F: '($2 == 0) { print $1 }'
5.8. 警告Banner
5.8.1. 网络与物理访问banner
描述
物理访问banner是通过控制台登录系统之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
修改/etc/issue与/etc/motd,加入震慑性语句
5.8.2. 设置ftp的banner
描述
ftp登录banner是登录 ftp服务器之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
创建或编辑/etc/ftpd/banner.msg,加入震慑性语句
第6章 HP-UX安全配置指南
6.1. 补丁与安全软件
6.1.1. 补丁
描述
系统补丁是针对操作系统本身暴露的缺陷所进行修补的程序,系统可能存在风险很大的安全缺陷,通过安装系统补丁,我们可以消除漏洞被利用的可能,从而更好的保障我们的生产系统
风险
高,安装前需要严格测试
操作
下载最新HP安全补丁(*.depot),解压后放置/tmp目录,假设补丁为X1_mobile_patches.depot
安装补丁: swinstall -s /tmp/X1_mobile_patches.depot
6.1.2. SSH配置
描述
相对于r系列命令,SSH提供了安全的传输通道,多样的身份认证方式,包括用户名/密码与证书认证方式,可以有效的抵御网络嗅探、会话拦截等攻击,有效的保护了数据的完整性、可用性与保密性
风险
无
操作
编辑$dir/sshd_config,修改配置如下:
1) Protocol 2(使用第二版SSH协议)
2) IgnoreRhosts yes(禁止基于rhosts方式认证)
3) RhostAuthentication no(禁止使用rhosts方式认证)
4) PermitRootLogin no(拒绝root直接登录)
5) PermitEmptyPassword(拒绝使用空密码)
6) Banner /etc/issue(设置Banner)
6.2. inetd网络服务
6.2.1. 禁用shell与login
描述
shell与login服务提供了传统的rlogin rsh与rcp服务,该类服务的缺点是认证模式简单(依赖~./rhosts或/etc/rhosts.equiv)与明文传输信息,容易遭受网络窃听与会话劫持等攻击
风险
低,无法使用r系列命令
操作
1) 编辑/etc/inetd.conf,注释shell login开头的服务
2) #refresh inetd
6.2.2. 其他不必要的inetd服务
描述
其他服务如kshell、klogin、echo、discard等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
1) 编辑/etc/inetd.conf,注释以下服务
echo discard daytime chargen dtspc exec ntalk finger uucp
ident auth instl_boots registrar recserv
rpc.rstatd rpc.rusersd rpc.rwalld rpc.sprayd rpc.cmsd kcms_server
printer shell login ftp tftp bootps kshell klogin
rpc.rquotad rpc.ttdbserver
2) #refresh inetd
6.3. Daemon服务
6.3.1. 禁用nfs服务
描述
nfs服务用于提供网络文件共享,其本身是基于RPC协议的,存在RPC服务方面的弱点,容易为攻击者利用,如果没有提供NFS服务,必须关闭该服务,减少系统受到的安全威胁
风险
低,无法提供NFS服务或使用NFS工具
操作
#ch_rc -a -p NFS_SERVER=0 /etc/rc.config.d/nfsconf
6.3.2. 其他不必要的daemon服务
描述
其他daemon服务如nis/nis+、等服务通常为系统自带,它们的存在会带来一定的安全隐患
风险
低
操作
禁用nis/nis+:
编辑/etc/rc.config.d/namesrvs,修改NIS_MASTER_SERVER=0
NIS_SLAVE_SERVER=0 NIS_CLIENT=0 NISPLUS_SERVER=0
NISPLUS_CLIENT=0
禁用printer:
编辑/etc/rc.config.d/tps,修改XPRINTSERVERS=''
编辑/etc/rc.config.d/lp,修改LP=0
编辑/etc/rc.config.d/pd,修改PD_CLIENT=0
禁用sendmail:
编辑etc/rc.config.d/mailservs,修改SENDMAIL_SERVER=0
禁用snmp:
编辑如下: /etc/rc.config.d/SnmpHpunix中SNMP_HUPX_START=0
/etc/rc.config.d/SnmpMaster中SNMP_MASTER_START=0
/etc/rc.config.d/SnmpMib2中SNMP_MIB2_START=0
/etc/rc.config.d/SnmpTrpDst中SNMP_TRAPDEST_START=0
禁用 GUI管理工具:
编辑如下: /etc/rc.config.d/snaplus2 START_SNAPPLUS=0 START_SNANODE=0 START_SNAINETD=0
禁用路由服务:
编辑如下: etc/rc.config.d/netdaemon MROUTED=0
RWHOD=0 DDFA=0 START_RBOOTD=0
禁用DNS服务:
编辑如下: /etc/rc.config.d/namesrvs中NAMED=0
禁用web:
编辑如下: /etc/rc.config.d/ns-ftrack中NS_FTRACK=0 apacheconf中APACHE_START=0
禁用smb相关:
编辑如下: /etc/rc.config.d/samba RUN_SAMBA=0 /etc/rc.config.d/cifsclient RUN_CIFSCLIENT=0
开启snmp服务:
编辑如下: /etc/rc.config.d/SnmpHpunix中SNMP_HUPX_START=1
/etc/rc.config.d/SnmpMaster中SNMP_MASTER_START=1
/etc/rc.config.d/SnmpMib2中SNMP_MIB2_START=1
/etc/rc.config.d/SnmpTrpDst中SNMP_TRAPDEST_START=1
6.3.3. 加强snmp community复杂度
描述
snmp服务提供了远程监控服务器的功能,默认snmp允许所有IP地址使用public读取所有的资源,给攻击者暴露了许多有用的系统信息(如系统进程 文件系统 网卡等)
风险
无
操作
编辑/etc/SnmpAgent.d/snmpd.conf,修改如下:
1) 修改get-community-name: public …中的public为复杂的字符串
2) 修改set-community-name: private…中的private为复杂的字符串
3) 限制可以远程读取服务器信息的IP地址范围,例如:
get[set]-community-name: IP: 10.200.24.215 10.200.24.216,允许10.200.24.215与216P使用字符串对本机进行远程监控,权限是读或写
4) 如果需要关闭snmpd服务,方法如下:
cd /sbin/rc2.d
for file in S565OspfMib S941opcagt S570SnmpFddi
do mv -f $file .NO$file
done
ch_rc -a -p SNMP_HPUNIX_START=0 \
/etc/rc.config.d/SnmpHpunix
ch_rc -a -p SNMP_MASTER_START=0 \
/etc/rc.config.d/SnmpMaster
ch_rc -a -p SNMP_MIB2_START=0 \
/etc/rc.config.d/SnmpMib2
ch_rc -a -p SNMP_TRAPDEST_START=0 \
/etc/rc.config.d/SnmpTrpDst
6.4. 日志
6.4.1. 禁止syslog接受网络日志
描述
默认情况下syslogd会监听udp 514端口,接受远程主机的日志,不需要任何认证,这通常会导致恶意DOS攻击,降低了服务器的可用性
风险
低,无法作为日志服务器
操作
SYSLOGD_OPTS="`sh -c '. /etc/rc.config.d/syslogd ;
ch_rc -a -p SYSLOGD_OPTS="-N $SYSLOGD_OPTS" \
/etc/rc.config.d/syslogd
6.4.2. 开启inetd日志
描述
开启inetd日志可以获取所有使用inetd服务的远程IP地址等信息,在发生安全事件的时候可以提供详细的参考
风险
无
操作
ch_rc -a -p INETD_ARGS=-l /etc/rc.config.d/netdaemons
6.4.3. 开启ftp日志
描述
开启ftp日志可以获取所有ftp连接的远程IP地址等信息,在发生安全事件的时候可以提供详细的参考
风险
无
操作
HP-UX 11.XX
1) cd /etc
2) awk '/^ftpd/ && !/-L/ { $NF = $NF " -L" }
/^ftpd/ && !/-l/ { $NF = $NF " -l" }
{ print }' inetd.conf > inetd.conf.tmp
3) cp inetd.conf.tmp inetd.conf
4) rm –f inetd.conf.tmp
HP-UX 10.XX
1) cd /etc
2) awk '/^ftpd/ && !/-l/ { $NF = $NF " -l" }
{ print }' inetd.conf > inetd.conf.tmp
3) cp inetd.conf.tmp inetd.conf
4) rm –f inetd.conf.tmp
注: 默认日志路径/var/adm/syslog/syslog.log
6.5. 文件与目录权限
6.5.1. 检查所有人可写的目录是否设置 sticky位
描述
在所有人可写的目录中,sticky位可以保证只有文件的属主可以更改该文件,其他任何人没有修改权限,这可以防止恶意破坏他人的文件
风险
无
操作
1) find / -xdev –type d \( -perm -0002 –a ! –perm -1000 \) –print
2) chmod +t $found(假设$found是上面的找到的文件)
6.5.2. 检查所有人可写的文件是否被授权
描述
所有人可写的文件通常赋予任何人写的权限,这将导致文件的恶意更改或删除,应该避免该类文件的出现,除非有必要
风险
低,需要检查该文件的具体作用
操作
find / -xdev -type f -perm -0002 –print
6.5.3. 检查设置suid或sgid标志位的可执行文件是否被授权
描述
带有suid或sgid标志位的可执行文件被任意用户执行时带有文件属主的权限,这通常被攻击者用来安置后门或寻找系统漏洞
风险
低,需要检查文件是否被授权
操作
find / -xdev –type d \( -perm -04000 –o –perm -02000 \) –print
6.5.4. 检查没有owner的文件
描述
当删除某用户而忘记删除该用户的文件的时候可能会出现没有owner的文件,如果以后又建立用户,可能该用户会继承以前被删除用户的uid,这将导致可能包含私密内容的文件被他人获取,造成信息泄露
风险
低,需要检查该文件的具体作用
操作
1) find / \( -nouser -o -nogroup \) –ls
2) rm –f $found(删除该文件和或其他处理)
6.5.5. 确保补丁备份目录不能被其他人访问
描述
补丁备份目录存放了补丁安装信息,如果攻击者可以获取系统补丁安装情况,将对系统造成一定的安全威胁
风险
无
操作
chmod go-rwx /var/adm/sw/save
6.6. 认证和授权
6.6.1. 禁止root以及系统用户使用ftp服务
描述
ftpuser文件包含了不能使用本地ftp服务的用户,通常系统帐号包括root并不需要直接使用本地ftp,禁止系统与root帐号使用ftp可以降低系统遭受的安全威胁
风险
无
操作
1) if [[ "$(uname -r)" = B.10* ]]; then
ftpusers=/etc/ftpusers
else
ftpusers=/etc/ftpd/ftpusers
fi
2) for name in root daemon bin sys adm lp \
uucp nuucp nobody hpdb useradm
do
echo $name
done >> $ftpusers
3) sort –u $ftpusers > $ftpusers.tmp
4) cp $ftpusers.tmp $ftpusers
5) rm –f $ftpusers.tmp
6) chown root:sys $ftpusers
7) chmod 600 $ftpusers
6.6.2. 限制root用户登陆控制台
描述
远程使用root登录控制台容易导致root密码丢失,尤其采用telnet方式登录,应该避免使用root直接远程登录,以减少针对root口令的威胁
风险
低,root无法直接登陆控制台
操作
需要确保有一个可以远程登陆的普通用户
echo console > /etc/securetty
chown root:sys /etc/securetty
chmod 600 /etc/securetty
6.6.3. 确保只有授权用户可以使用cron与at服务
描述
Cron与at是unix系统用来调度程序运行的进程,必须确保授权用户使用cron与at服务,避免被恶意用户放置后门
风险
无
操作
编辑/var/adm/cron/cron.allow与/var/adm/cron/at.allow,文件里包含的用户就是允许使用cron与at的用户
6.6.4. 禁止使用.rhosts方式认证
描述
.rhosts方式认证允许通过简单的基于文件方式的认证,该协议本身没有任何加密,容易导致网络嗅探的发生,同时如果该文件被攻击者控制,容易引发更大的安全隐患
风险
低,无法使用r系列命令
操作
删除/etc/equiv.rhosts与$HOME/.rhosts文件($HOME为用户主目录)
6.7. 用户账号与环境
6.7.1. 禁止系统帐号登陆
描述
系统帐号蠕通常用于系统内部权限维护,并不是真实的用户,禁止该类用户登录可以减少攻击者利用该类帐号进行登录的可能
风险
无
操作
1) for user in uucp nuucp adm daemon bin lp \
nobody noaccess hpdb useradm; do
passwd –l "$user"
/usr/sbin/usermod -s /bin/false "$user"
if [[ "$(uname -r)" = B.10* ]]; then
/usr/lbin/modprpw -w "*" "$user"
else
/usr/lbin/modprpw -w "$user"
fi
done
6.7.2. 设置密码策略
描述
良好的密码策略如密码满足一定的复杂度,定期更换密码等可以较好的抵御基于密码的攻击
操作
logins -ox \
| awk -F: '($8 != "LK" && $1 != "root") { print $1 }' \
| while read logname; do
passwd –x 91 –n 7 –w 28 "$logname"
/usr/lbin/modprpw -m exptm=90,mintm=7,expwarn=30 \
"$logname"
done
echo PASSWORD_MAXDAYS=91 >> /etc/default/security
echo PASSWORD_MINDAYS=7 >> /etc/default/security
echo PASSWORD_WARNDAYS=28 >> /etc/default/security
/usr/lbin/modprdef -m exptm=90,mintm=7,expwarn=30
6.7.3. 检查系统其他超级用户
描述
uid为0的用户拥有系统最高权限,应该检查系统中uid为0的用户是否是合法用户,并减少uid为0的用户数目
风险
无
操作
logins -d | grep ' 0 '
6.8. 警告Banner
6.8.1. 网络与物理访问banner
描述
telnet登录banner是远程连接进入系统之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
编辑/etc/motd与/etc/issue,写入希望写的东西
6.8.2. 设置ftp的banner
描述
ftp登录banner是登录 ftp服务器之前看到的一段提示消息,一般包含授权访问信息,设置该信息可以保留法律起诉的可能并从心里上威慑攻击者
风险
无
操作
banner="Authorized users only. All activity may \
be monitored and reported."
if [ -d /etc/ftpd ]; then
echo "banner=/etc/issue" >>/etc/ftpd/ftpaccess
chmod 600 /etc/ftpd/ftpaccess
chown root:sys /etc/ftpd /etc/ftpd/ftpaccess
fi
第7章 Windows安全配置指南
7.1. 补丁
7.1.1. 安装最新的SP
描述
ServicePack(简称SP)是Mircosoft集中发布的补丁集,包括操作系统,应用软件(如Office)等 Microsoft产品的最新补丁,应用最新的SP可以防止由于系统漏洞导致的攻击
风险
高, 安装前需要严格测试
操作
从安全部门获取最新的SP补丁(Mircosoft产品如Office SQLServer等),直接运行即可
7.1.2. 安装最新的安全Hotfix
描述
Hotfix是Microsoft就某一产品缺陷特地发布的补丁,该漏洞可能允许攻击者远程控制系统,安装最新的Hoftix可以防止由于系统漏洞导致的攻击
风险
高, 安装前需要严格测试
操作
1) 如果部署统一的补丁管理服务器,可以参考相关文档进行设置,以获取最新的Hotfix
2) 如果没有统一的补丁管理服务器,则需要开启本地“自动更新”,方法如下:
进入“控制面板”-〉“自动更新”,选择“下载更新,但由我决定什么时候安装”进入“控制面板”-〉“管理工具”-〉服务,确认“Automatic Updates”服务已经启动
7.2. 账号与审计
注意:如果系统加入域,可以使用域控制器上的策略覆盖本地策略
7.2.1. 设置密码策略
描述
密码策略包括密码长度,密码复杂度和密码的使用周期, 好的密码策略应该满足不易猜解,定期更换原则,这将大大增加针对密码攻击的难度
风险
无
操作
1) 点击“运行”-〉输入secpol.msc,进入本地安全策略,点击“账号策略”-〉“密码策略”,如下:
2) 设置“密码长度最小值”为8,“密码最长存留期”为180,“密码必须符合复杂性要求”启用
7.2.2. 设置帐号锁定
描述
当无效登录次数达到规定的次数后,我们可以选择锁定此帐号,这可以有效的防御简单的猜解攻击
风险
无
操作
点击“运行”-〉输入secpol.msc,进入本地安全策略,点击“帐户策略”-〉“帐户锁定策略”,如下:
设置“帐户锁定阀值”为10,帐户锁定时间与复位时间都是15分钟
7.2.3. 设置必要的审核
描述
审核是针对系统事件的跟踪,可以提供诸如帐号管理,帐号登陆,系统事件等方面详尽的信息,可以为发生安全事件的时候提供必要的原始日志
风险
无
操作
1) 点击“运行”-〉输入secpol.msc,进入本地安全策略,点击“本地策略”-〉“审核策略”,如下:
2) 设置“审核策略更改“,”审核登录事件“,”审核帐户登录事件“,”审核帐户管理“为成功与失败
7.2.4. 设置日志
描述
日志系统包括系统日志,应用日志与安全日志,详细的记录系统日常发生的事件,发生安全事件的时候可以提供必要的原始日志
风险
无
操作
1) 进入“控制面板”-〉“管理工具”-〉事件查看器,如下:
2) 设置最大日志文件大小为80M,按需要改写日志文件
7.3. 安全设置
注意:如果系统加入域,可以使用域控制器上的策略覆盖本地策略
7.3.1. 禁止远程枚举帐号与共享
描述
远程枚取帐号与共享是在不用任何用户名与密码的情况下,通过网络使用匿名身份进行帐号与共享与猜解,这通常会作为攻击的前奏。禁止远程枚取帐号与共享可以更好的保护系统信息的保密性,减少威胁的可能性
风险
无
操作
1) 点击“运行”-〉输入secpol.msc,进入本地安全策略,点击“本地策略”-〉“安全选项”,如下:
2) 对于windows xp/2003: 设置 网络访问-不允许SAM帐户的匿名枚取和网络访问—不允许SAM帐户和共享的匿名枚取
对于window 2000: 设置 Additional Restrictions for Anonymous Connections: “No Access Without Explicit Anonymous Permissions”
7.3.2. 设置登录消息提示标题
描述
登录消息提示标题是用户登录系统时弹出授权说明的窗口标题,设置合理的标题可以对未授权访问者产生威慑作用
风险
无
操作
1) 点击“运行”-〉输入secpol.msc,进入本地安全策略,点击“本地策略”-〉“安全选项”,如下:
2) 设置用户试图登录时消息标题
7.3.3. 设置登录消息提示正文
描述
登录消息提示正文是用户登录系统时弹出授权说明的窗口正文,设置合理的正文(如访问授权)可以对未授权访问者产生威慑作用
风险
无
操作
1) 点击“运行”-〉输入secpol.msc,进入本地安全策略,点击“本地策略”-〉“安全选项”,如下:
2) 设置用户试图登录时消息文字
7.3.4. 禁止显示上次登录用户名
描述
默认登录的时候,系统会使用上一次登录使用的用户名,这给我们带来了方便,但是如果攻击着有权连接系统,同样可以给他减少猜解用户名的麻烦
风险
无
操作
点击“运行”-〉输入secpol.msc,进入本地安全策略,点击“本地策略”-〉“安全选项”,如下:
7.3.5. 禁止自动登陆
描述
自动登录允许用户不输入用户名与密码直接进入系统,这通过在注册表中明文存放用户名与密码实现,这可能导致可以接触系统本身的任何人都可以通过重启机器进入系统
风险
无
操作
3) 打开regedit.exe
4) 修改
HKLM\Software\Microsoft\WindowsNT\ CurrentVersion\Winlogon\AutoAdminLogon 类型: REG_DWORD 值:0
7.3.6. 禁止自动执行系统调试器
描述
系统调试器是windows处理程序异常的一种方法,当软件发生异常的时候,系统通常会提示是否使用调试器。执行系统调试器可能会导致精心构造的恶意代码在系统空间中执行,从而危害系统安全
风险
无
操作
1) 打开regedit
1) 修改HKLM\Software\Microsoft\Window\CurrentVersion\
Windows NT\winlogon\No
类型为: REG_DWORD 值为:0
7.3.7. 禁止磁盘自动运行
描述
磁盘自动运行指当磁盘根目录如光盘F:下存在Autorun.inf的时候,当我们进入该磁盘根目录的时候,系统会自动运行Autorun.inf中指定的文件,为病毒与木马的传播带来了便捷,同样增加了安全威胁
风险
无
操作
2) 打开regedit
3) 修改HKLM\Software\Microsoft\Window\CurrentVersion\
Policies\Explorer\NoDriverTypeAutoRun
类型为: REG_DWORD) 值为255
7.4. 服务设置
服务设置参看“控制面板”->管理工具->服务
7.4.1. 禁用Alert服务
描述
Alerter服务用于通知用户与计算机有关系统管理方面的事件,如服务启动失败等,通常这都可以在系统日志中出现,XP系统默认禁止该服务
风险
无
操作
打开“控制面板”->管理工具->服务,打开Alerter,停止并禁用
7.4.2. 禁用Clipbook
描述
Clipbook服务用于在网络上的机器间共享剪贴板上的信息,通常在交互式中应用比较多,因为信息在网络中传播,可能造成信息泄露,2003系统默认禁止该服务.
风险
无
操作
打开“控制面板”->管理工具->服务,打开Clipbook,停止并禁用
7.4.3. 禁止Computer Browser
描述
Computer Browser服务用于跟踪网络上一个域内的机器.它允许用户通过网上邻居来发现他不知道确切名字的共享资源.它可以不通过任何授权就允许任何人浏览这些资源.,通常在交互式应用中使用较多
风险
无
操作
打开“控制面板”->管理工具->服务,打开Computer Browser,停止并禁用
7.4.4. 禁止Remote Registry Service服务
描述
远程注册表服务用于允许匿名用户通过网络获取一定的注册表信息,这通常会暴露系统的一些敏感信息,增加安全威胁
风险
无
操作
打开“控制面板”->管理工具->服务,打开Remote Registry Service,停止并禁用
7.4.5. 禁止Print spooler服务
描述
Print spooler服务用于将多个请求打印的文档统一进行保存和管理,待打印机资源空闲后,再将数据送往打印机处理,服务器通常并不需要使用打印机
风险
无
操作
打开“控制面板”->管理工具->服务,打开Print spooler,停止并禁用
7.4.6. 禁止Messenger服务
描述
Messenger服务用于发送net send消息或传递Alerter服务器的消息,该功能通常比较少用,XP系统默认禁止该服务
风险
无
操作
打开“控制面板”->管理工具->服务,打开Messenger,停止并禁用
7.4.7. 加强snmp community复杂度
描述
snmp服务提供了远程监控服务器的功能,默认snmp允许所有IP地址使用public读取所有的资源,给攻击者暴露了许多有用的系统信息(如系统进程 文件系统 网卡等)
风险
无
操作
默认snmp服务没有安装,如果已经安装,操作如下:
1) 打开“控制面板”->管理工具->服务,打开SNMP Service->属性->安全,修改public为复杂的字符串,选择”接收来自这些主机的SNMP包”,添加信任的需要查询信息的主机
2) 如果不需要使用snmp服务,停止并禁用该服务,停止并禁用SNMP Trap Service服务