AIX 系统中涉及服务的配置和启动信息的,主要在以下几个文件:
l /etc/inittab 文件
l /etc/rc.* (包括 rc.tcpip , rc.nfs 等文件)
l 由 inetd 启动的服务,在文件 /etc/inetd.conf 中被定义
( inetd 本身在 /etc/rc.tcpip 中由 src 启动)
本部分的安全基线,主要通过修改这些文件中的内容进行配置。
请按照下表进行配置:
操作的文件 | 要求禁用的服务 | 设置方式 | 操作说明 | |||||||||||||||||||||||||||||
/etc/inittab 修改前先备份: cp /etc/inittab /etc/inittab.bak.时间戳 | piobe | 注释掉该行 (在该服务所在行最左边加上冒号”:”;或删除此行,但之前需要确认有有效备份) | 1) 查看由/etc/inittab文件启动的表项: lsitab -a 2) 对/etc/inittab进行编辑,注释掉启动项 3) 更改完配置后停止该服务。(参考stopsrc命令) | |||||||||||||||||||||||||||||
qdaemon | ||||||||||||||||||||||||||||||||
writesrv | ||||||||||||||||||||||||||||||||
imqss | ||||||||||||||||||||||||||||||||
imnss | ||||||||||||||||||||||||||||||||
httpdlite | ||||||||||||||||||||||||||||||||
uprintfd | ||||||||||||||||||||||||||||||||
dt | ||||||||||||||||||||||||||||||||
一般需要注释如下的几行:最左侧加冒号则被注释掉 piobe:2:wait:/usr/lib/lpd/pioinit_cp >/dev/null 2>&1 # pb cleanup qdaemon:23456789:wait:/usr/bin/startsrc -sqdaemon writesrv:23456789:wait:/usr/bin/startsrc -swritesrv uprintfd:23456789:respawn:/usr/sbin/uprintfd dt:2:wait:/etc/rc.dt 一般需要停掉下面的两个子系统: stopsrc -s qdaemon; stopsrc -s writesrv 使用下面的命令查看有无未被停掉的子系统: lssrc -a | grep piobe; lssrc -a | grep qdaemon; lssrc -a | grep writesrv; lssrc -a | grep imqss; lssrc -a | grep imnss; lssrc -a | grep httpdlite; lssrc -a | grep uprintfd; lssrc -a | grep dt 使用下面的命令查看有无未被注释掉的行: egrep -i 'piobe | qdaemon | writesrv | imqss | imnss | httpdlite | uprintfd | dt' /etc/inittab 使用下面的命令查看有无注释错的行: diff /etc/inittab /etc/inittab.bak.时间戳 | |||||||||||||||||
/etc/rc.tcpip 修改前先备份: cp /etc/rc.tcpip /etc/rc.tcpip.bak.时间戳 | routed | 注释掉该行 (在该服务所在行最左边加上井号“#”) | 1) 查看由/etc/rc.tcpip文件启动的表项: lssrc -g tcpip 2) 对/etc/rc.tcpip进行编辑,注释掉启动项 3) 更改完配置后停止该服务。(参考stopsrc命令) | |||||||||||||||||||||||||||||
gated | ||||||||||||||||||||||||||||||||
dhcpcd | ||||||||||||||||||||||||||||||||
dhcpsd | ||||||||||||||||||||||||||||||||
dhcprd | ||||||||||||||||||||||||||||||||
autoconf6 | ||||||||||||||||||||||||||||||||
ndpd-host | ||||||||||||||||||||||||||||||||
ndpd-router | ||||||||||||||||||||||||||||||||
lpd | ||||||||||||||||||||||||||||||||
timed | ||||||||||||||||||||||||||||||||
rwhod | ||||||||||||||||||||||||||||||||
dpid2 | ||||||||||||||||||||||||||||||||
aixmibd | ||||||||||||||||||||||||||||||||
hostmibd | ||||||||||||||||||||||||||||||||
mrouted | ||||||||||||||||||||||||||||||||
一般不用注释任何行,都已被注释 一般也不需要停到任何子系统,没有相关的子系统在运行 使用下面的命令查看有无未被停掉的子系统: lssrc -g tcpip 使用下面的命令查看有无未被注释掉的行: egrep -i 'routed | gated | dhcpcd | dhcpsd | dhcprd | autoconf6 | ndpd-host | ndpd-router | lpd | timed | rwhod | dpid2 | aixmibd | hostmibd | mrouted' /etc/rc.tcpip 使用下面的命令查看有无注释错的行: diff /etc/rc.tcpip /etc/rc.tcpip.bak.时间戳 | ||||||||||||||||||
/etc/inetd.conf 修改前先备份: cp /etc/inetd.conf /etc/inetd.conf.bak.时间戳 | 查看inetd的状态以及由inetd启动的服务的状态; lssrc -l -s inetd 1) 编辑/etc/inetd.conf文件,注释不需要的服务, 2) 更改完配置后需要重启inetd进程。 | |||||||||||||||||||||||||||||||
至少禁用以下服务: kshell、klogin、exec、comsat、uucp、finger、systat、netstat、tftp、talk、ntalk、rpc.rquotad、rpc.rexd、rpc.rusersd、rpc.ttdbserver、rpc.sprayd、rpc.cmsd、rpc.rwalld、rpc.pcnfsd、rpc.rstatd、rpc.ssalld、echo、discard、chargen、daytime、time、comsat、websm(wsmserver)、instsrv、imap2、pop3、kfcli、xmquery | 注释掉该行: exec ntalk daytime time daytime time xmquery wsmserver cmsd ttdbserver | |||||||||||||||||||||||||||||||
如果有管理上的需要,可以打开telnetd、ftpd、rlogind、rshd等服务。对非root用户应该限制其所能浏览的目录仅为其主目录。 | (建议使用SSH代替telnet等远程登录的方式)去掉相应注释符 | |||||||||||||||||||||||||||||||
一般需要注释如下的几行:最左侧加#号则被注释掉 exec、ntalk、daytime、time、daytime、time、xmquery、wsmserver、cmsd、ttdbserver,共10个 注释掉后,需要重启inetd使更改生效: stopsrc -s inetd; startsrc -s inetd 使用下面的命令查看有无未被注释掉的行: egrep -i 'kshell | klogin | exec | comsat | uucp | finger | systat | netstat | rpc.ttdbserver | echo | tftp | rpc.sprayd | discard | talk | rpc.cmsd | chargen | ntalk | rpc.rwalld | daytime | rpc.rquotad | rpc.pcnfsd | websm | rpc.rexd | rpc.rstatd | comsat | rpc.rusersd | rpc.ssalld | time | pop3 | kfcli | xmquery | imap2 | instsrv' /etc/inetd.conf 使用下面的命令查看有无注释错的行: diff /etc/inetd.conf /etc/inetd.conf.bak.时间戳 |
(1) NFS 系统的组成情况
ü nfsd —— NFS 服务进程,运行在服务器端,处理客户的读写请求;
ü mountd —— 加载文件系统服务进程,运行在服务器端,处理客户加载 nfs 文件系统的请求;
ü biod —— 客户端服务进程,运行在客户端,处理客户对服务器的请求;
ü /etc/exports —— 定义服务器对外输出的 NFS 文件系统;
ü /etc/filesystems —— 定义客户端加载的 NFS 文件系统。
(2) 使用 rmnfs 关闭 NFS 服务
如果需要 NFS 服务,使用 showmount -e 或直接 查看 /etc/exports 文件检查输出的文件系统是否必要,以及属性是否妥当( readonly 等)。
ü lssrc -g nfs ——显示 NFS 系列服务的运行状态
ü mknfs ——启动 NFS 服务,并在启动文件中( /etc/inittab )添加 NFS 的启动项
ü rmnfs ——停止 NFS 服务,并从启动文件中( /etc/inittab )删除 NFS 的启动项
ü showmount -e ——显示本机输出的 NFS 文件系统
ü mount ——显示本机加载的文件系统(包括 NFS 文件系统)
关闭该服务(使用 stopsrc -s snmpd 停止服务,并在 /etc/rc.tcpip 中注释掉, 如果系统上运行有 HACMP ,则 snmpd 需要被打开,因为 HACMP 的正常启动和运行需要 snmpd 的支持 );如果需要开放 snmp 服务,则必须在 /etc/snmpd.conf 中更改缺省的 community name 。
lssrc -l -s snmpd ——显示 SNMP 服务的运行状态
startsrc -s snmpd ——启动 SNMP 服务
stopsrc -s snmpd ——停止 SNMP 服务
关闭 sendmail 服务。如果是邮件服务器,则需要将 sendmail 软件升级到最新版本。( 2005-9-16 发布的最新版本为 8.13.5 )。
lssrc -s sendmail ——显示 sendmail 的运行状态
startsrc -s sendmail ——启动 sendmail
stopsrc -s sendmail ――停止 sendmail
在文件 /etc/rc.tcpip 中注释掉下面的行:
# start /usr/lib/sendmail "$src_running" "-bd -q${qpi}" (注释掉该行)
cat /etc/rc.tcpip|grep sendmail (查看 rc.tcpip 中还有无其他需要注释的)
关闭 DNS 域名解析服务, stopsrc -s named 停止服务并在 /etc/rc.tcpip 中注释掉。如果是 DNS 服务器,则将 DNS 版本升级到最新(大版本号 9 的最新版本为 2005 年 12 月发布的 9.3.2 ;大版本号 8 最新版本为 2005 年发布的 8.4.7 ),并在其配置文件修改版本号,避免信息泄漏。
lssrc -s named ——显示 DNS 服务的运行状态
startsrc -s named ——启动 DNS 服务
stopsrc -s named ——停止 DNS 服务
主机建议不设置缺省路由。
优先使用点对点方式设置静态路由,对于不能使用点对点方式的,设置为最小子网。
临时目录权限配置标准:
临时目录 /tmp 、 /var/tmp 应该包含粘置位,避免普通用户随意删除由其他用户创建的文件。通过检查临时目录的属性,正确设置粘置位。
chmod +t /tmp ——为 /tmp 增加粘置位。
重要文件和目录权限配置标准:
AIX 系统, /usr/bin 、 /bin 、 /sbin 目录为可执行文件目录, /etc 目录为系统配置目录,包括帐户文件、系统配置、网络配置文件等,这些目录和文件相对重要。确认这些配置文件的权限设置安全。
文件或目录 | 属主 | 属组 | 权限 |
/etc/passwd | root | security | -rw-r--r-- |
/etc/group | root | security | -rw-r--r-- |
/etc/filesystems | root | system | -rw-rw-r-- |
/etc/hosts | root | system | -rw-rw-r-- |
/etc/inittab | root | system | -rw------- |
/etc/security/failedlogin | root | system | -rw-r--r-- |
chmod +t /tmp ; chmod +t /var/tmp
chown root:security /etc/passwd
chown root:security /etc/group
chown root:system /etc/filesystems
chown root:system /etc/hosts
chown root:system /etc/inittab
chown root:system /etc/security/failedlogin
chmod 644 /etc/passwd
chmod 644 /etc/group
chmod 664 /etc/filesystems
chmod 664 /etc/hosts
chmod 600 /etc/inittab
chmod 644 /etc/security/failedlogin
SUID/SGID 的程序在运行时,将有效用户 ID 改变为该程序的所有者 ( 组 )ID ,使得进程拥有了该程序的所有者(组)的特权,因而可能存在一定的安全隐患。对于这些程序,应该在全部检查后形成基准,隔一个时期后检查并且对照基准。查找此类程序的命令:
对于 SUID 和 SGID 的属性设置、调整应经过严格的测试、审批,并同时增加对其的日志审计。 **
将系统缺省安装的用户如 daemon 、 bin 、 sys 、 adm 、 uucp 、 guest 、 nobody 、 lpd 、 invscout 、 imnadm 、 ipsec 、 nwroot 、 nwuser 、 nwprint 、 nwldap 、 ldap 、 nuucp ,及其他不需要使用 FTP 权限的用户都加入。
在文件 /etc/ftpusers 中加入下面的用户,防止非法访问,该文件可能需要创建。
/etc/ftpusers 文件权限为 root 属主, -rw-r--r-- 。
daemon
bin
sys
adm
uucp
guest
nobody
lpd
invscout
imnadm
ipsec
nwroot
nwuser
nwprint
nwldap
ldap
nuucp
chown root:system /etc/ftpusers; chmod 644 /etc/ftpusers
将 /usr/bin/X11/xhost 文件的权限改为 744, 保证只有 root 用户可以执行。
chmod 744 /usr/bin/X11/xhost
修改 /var/adm/cron 目录下的 cron.allow 、 cron.deny 、 at.allow 、 at.deny ,增加对用户使用定时作业的控制。建议对 cron 和 at 的使用、维护进行集中管理,并注意所有自动作业在时间和机器性能方面的统筹安排。对于 cron 和 at 执行的脚本应加强管理,并要求有完善的日志记录。
(1) 原则上关闭 rlogin 、 rsh 、 rexec 服务。
(2) 对于需要以信任主机方式访问的业务系统,按照以下方式设置:
修改文件 | 安全设置 | 操作说明 |
1. /etc/hosts.equiv (全局配置文件) 2. $HOME/.rhosts (单独用户的配置文件) | 限定信任的主机、账号不能有单行的"+"或"+"的配置信息 | 1. 编辑/etc/host.equiv文件或者$HOME/.rhosts文件,只增加必须的帐户和主机,删除不必要的信任主机设置。 2. 更改/etc/hosts.equiv文件的属性,只允许root可读写。 |
修改之前先备份: cp /etc/security/login.cfg /etc/security/login.cfg.bak. 时间戳
通过修改系统 banner ,避免泄漏操作系统名称、版本号、主机名称等,并且给出登录告警信息。
在/etc/security/login.cfg文件中,在 default 小节 增加:
herald = "ATTENTION:You have logged onto a secured server..All accesses logged.\n\nlogin:"
(1) 基本登录策略配置
需要对登录策略进行以下设置(或修改/etc/security/login.cfg,文件中其他属性主要针对 TTY ,非网络终端 PTY ) (等比参数)
策略 | 默认设置 | 安全设置 | 配置说明 |
失败登录后延迟5秒显示提示符 | logindelay=0 | default: logindelay=5 | 延迟5秒显示提示符 |
(2) 登录超时策略
设置登录超时时间 300 秒
修改 /etc/profile 文件, 在最后 增加一行:
TMOUT=300;TIMEOUT=300;export readonly TMOUT TIMEOUT
(3) CLIENT 登录的 IP 限制 (暂时不做)
使用 smitty ipsec 将系统允许登录的 CLIENT 端 IP 加入,仅允许从合法的 IP 登录主机。
(4) root 登录策略 (暂时不做)
a. 系统管理员维护系统,不能直接使用 root 登录,而应该先以普通用户登录,然后再 su 成 root ,此时应设置 su groups 属性,规定可以 su 到 root 的用户组。(主控终端除外)
b. 禁止 root 账号远程登录。
c. 对 root 用户使用人数要加以限制
策略 | 默认设置 | 安全设置 | 配置说明 |
禁止root远程登录 | rlogin=true | rlogin=false |
(1) 帐户的建立策略
u 根据系统的需求,按照不同的角色进行账户的建立,并赋予最小的权限。
u 帐户的命名必须符合相关的命名规范。
根据目前的安全策略和维护流程,对用户 ID 权限 进行设置、管理是至关重要的。操作系统用户 ID 可分为:
Ø 系统维护 ID
Ø 应用维护 ID
Ø 操作 ID (不能直接访问 shell )
Ø 紧急用户密码管理 ID
Ø 工具软件用户 ID 等类型
(2) 系统帐户的删除和锁定策略
修改之前先备份: cp /etc/security/uesr /etc/security/user.bak. 时间戳
策略 | 默认设置 | 安全设置 | 配置说明 |
账户锁定阈值 | loginretries=0 | loginretries=8 | 8次登录失败后锁定(root设为0,缺省值;其他用户设为8) 方法: 在文件/etc/security/user中的“default:”小节中更改为loginretries = 8 |
锁定不必要的账号 | account_locked=false | account_locked=true | 锁住这些用户的账号: daemon、bin、sys、adm、uucp、nuucp、guest、nobody、lpd、imnadm,脚本见下 |
注:上表中不必要的帐号指的是无用帐户、过期测试帐户,以及一些系统帐号,如:
daemon 、 bin 、 sys 、 adm 、 uucp 、 nuucp 、 guest 、 nobody 、 lpd 、 imnadm (建议不要删除 nobody 用户, ORACLE RAC 安装需要此用户,只锁住这个用户即可)
a. 可以使用 chuser 命令锁定用户 , 如:
chuser account_locked=true user_name (或通过 smitty chuser 操作,输入要锁定的用户)
chuser account_locked=true daemon
chuser account_locked=true bin
chuser account_locked=true sys
chuser account_locked=true adm
chuser account_locked=true uucp
chuser account_locked=true nuucp
chuser account_locked=true guest
chuser account_locked=true nobody
chuser account_locked=true lpd
chuser account_locked=true imnadm
b. 解除用户多次失败登录后的锁定,通过命令( chsec )进行复位设置。
(3) 超过 90 天未登录系统的用户,将用户名发给使用部门,确认是否还在使用,如果不使用,则将其删除。
建议写个定时执行的脚本,检查超过 90 天未登录的用户,如果有,建议先对其进行锁定。脚本执行过程中把锁定的用户重定向到一个文件中,发给相关部门确认。
按照如下要求修改 /etc/security/user 中 root 用户的参数值)
AIX 系统中口令策略的安全基线,按照下表的项目和要求进行配置:
策略 | 默认设置 | 安全设置 | 配置说明 |
口令最长有效期 | maxage=0 | maxage=4 | 不高于30天 |
口令最短有效期 | minage=0 | minage=0 | |
口令过期后多长时间内用户可以更改 | maxexpired=-1 | maxexpired=4 | 4周 |
口令中某一字符最多只能重复次数 | maxrepeats=8 | maxrepeats=2 | 2次 |
口令最短长度 | minlen=6 | minlen=8 | 8个字符 |
口令中最少包含字母字符的数量 | minalpha=2 | minalpha=4 | 4个字符 |
口令中最少包含非字母数字字符数量 | Minother=1 | minother=1 | 1个 |
新口令中最少有多少个字符和旧口令不同 | mindiff=0 | mindiff=6 | 6个 |
同一口令在多长时间内不能重复使用 | histexpire=0 | histexpire=40 | 40周 |
同一口令与前面多少个口令不能重复 | histsize=0 | histsize=10 | 与前10个口令不能重复 |
root用户可针对上述控制项进行安全调整,在root用户小节中的最底下加入(绝对不可加到default中,且每个用户配置之间保持一个空行): maxage=4 minage=0 maxexpired=4 maxrepeats=2 minlen=8 minalpha=4 minother=1 mindiff=6 histexpire=40 histsize=10 |
/etc/security/user 文件中的 default 小节, umask 设置从 022 改为 027 。
修改文件 | 安全设置 | 操作说明 |
/etc/security/environ | PATH设置中不含本地目录(.) | printenv 查看当前的环境变量设置 chuser usrenv="PATH=**" root 去掉root的PATH环境变量中的(.)。 |
syslog 是大部分 UNIX 系统日志记录方式,它由两部分组成, syslogd 守护进程和 syslog.conf 配置文件。 syslog 除提供日常维护日志外,还提供系统登录、攻击尝试等安全性的日志信息,帮助管理员进行审计和追踪。
syslog 配置文件要求:
修改文件 | 安全设置 |
/etc/syslog.conf | 配置文件中包含以下日志记录: .err /var/adm/errorlog .alert /var/adm/alertlog *.cri /var/adm/critlog auth,authpriv.info /var/adm/authlog |
(1) AIX 系统网络参数的配置标准:
策略 | 默认设置 | 安全设置 |
忽略ICMP重定向包 | ipignoreredirects=0 | ipignoreredirects=1 |
不发送ICMP重定向包 | ipsendredirects=1 | ipsendredirects=0 |
不转发源路由包 | ipsrcrouteforward=1 | ipsrcrouteforward=0 |
不发送源路由包 | ipsrcroutesend=1 | ipsrcroutesend=0 |
(2) 操作方法:
a. 显示当前配置的网络参数
no -a ( 显示所有网络参数 )
b. 网络参数安全配置
no -o ipignoreredirects=1
no -o ipsendredirects=0
no – o ipsrcrouteforward=0
no – o ipsrcroutesend=0
/usr/sbin/no -o directed_broadcast=0 (对于直接的广播信息不作回应)
/usr/sbin/no -o icmpaddressmask=0 防止地址掩码查询
Ø 通过配置 /etc/security/audit/config 和 /etc/security/audit/objects 文件,开启系统审计功能,主要审计 root 用户对重要文件的写操作,如 /etc/hosts 、 /etc/passwd 、 /etc/inetd.conf 、 /etc/services 等配置文件的修改操作,但应该注意观察系统资源占用。
具体实施方法请参见《 audit_sbs3.0 - 20090914.doc 》
Ø 通过 MD5 等工具计算重要文件的 HASH 值,定期比较、确认文件的完整性。
具体实施方法请参见《 audit_md5 - 20090914.doc 》
Ø 定期查看系统内部已经打开的审计日志文件 /var/adm/wtmp (用户登录 / 退出记录)、 /var/adm/sulog ( su 命令执行结果)、 /etc/security/failedlogin (失败登录记录)。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论0 条评论