RS6000
作者RS6000·2021-12-29 20:17
售前技术支持·浪潮商用机器有限公司

AIX操作系统安全控制

字数 10723阅读 1269评论 0赞 1

AIX 操作系统安全控制

1.1 网络与服务 安全配置标准

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 -agrep piobe; lssrc -agrep qdaemon; lssrc -agrep writesrv; lssrc -agrep imqss; lssrc -agrep imnss; lssrc -agrep httpdlite; lssrc -agrep uprintfd; lssrc -agrep dt 使用下面的命令查看有无未被注释掉的行: egrep -i 'piobeqdaemonwritesrvimqssimnsshttpdliteuprintfddt' /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 'routedgateddhcpcddhcpsddhcprdautoconf6ndpd-hostndpd-routerlpdtimedrwhoddpid2aixmibdhostmibdmrouted' /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 'kshellkloginexeccomsatuucpfingersystatnetstatrpc.ttdbserverechotftprpc.sprayddiscardtalkrpc.cmsdchargenntalkrpc.rwallddaytimerpc.rquotadrpc.pcnfsdwebsmrpc.rexdrpc.rstatdcomsatrpc.rusersdrpc.ssalldtimepop3kfclixmqueryimap2instsrv' /etc/inetd.conf 使用下面的命令查看有无注释错的行: diff /etc/inetd.conf /etc/inetd.conf.bak.时间戳


1.2 NFS 的配置 (暂时不做)

(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 文件系统)

1.3 SNMP 的配置

关闭该服务(使用 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 服务

1.4 sendmail 的配置

关闭 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 中还有无其他需要注释的)

1.5 DNS ( Bind )的配置

关闭 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 服务

1.6 主机路由控制

主机建议不设置缺省路由。

优先使用点对点方式设置静态路由,对于不能使用点对点方式的,设置为最小子网。

6.7 文件与目录安全配置

临时目录权限配置标准

临时目录 /tmp 、 /var/tmp 应该包含粘置位,避免普通用户随意删除由其他用户创建的文件。通过检查临时目录的属性,正确设置粘置位。

chmod +t /tmp ——为 /tmp 增加粘置位。

重要文件和目录权限配置标准

AIX 系统, /usr/bin 、 /bin 、 /sbin 目录为可执行文件目录, /etc 目录为系统配置目录,包括帐户文件、系统配置、网络配置文件等,这些目录和文件相对重要。确认这些配置文件的权限设置安全。

文件或目录属主属组权限
/etc/passwdrootsecurity-rw-r--r--
/etc/grouprootsecurity-rw-r--r--
/etc/filesystemsrootsystem-rw-rw-r--
/etc/hostsrootsystem-rw-rw-r--
/etc/inittabrootsystem-rw-------
/etc/security/failedloginrootsystem-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

1.8 SUID/SGID 可执行程序安全配置

SUID/SGID 的程序在运行时,将有效用户 ID 改变为该程序的所有者 ( 组 )ID ,使得进程拥有了该程序的所有者(组)的特权,因而可能存在一定的安全隐患。对于这些程序,应该在全部检查后形成基准,隔一个时期后检查并且对照基准。查找此类程序的命令:

find / -perm -4000 -user 0 – ls ――查找 SUID 可执行程序

find / -perm -2000 -user 0 – ls ――查找 SGID 可执行程序

对于 SUID 和 SGID 的属性设置、调整应经过严格的测试、审批,并同时增加对其的日志审计。 **

1.9 /etc/ftpusers 设置

将系统缺省安装的用户如 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

1.10 usr/bin/X11/xhost 文件设置

将 /usr/bin/X11/xhost 文件的权限改为 744, 保证只有 root 用户可以执行。

chmod 744 /usr/bin/X11/xhost

1.11 增加对 cron 和 at 执行权限的限制

修改 /var/adm/cron 目录下的 cron.allow 、 cron.deny 、 at.allow 、 at.deny ,增加对用户使用定时作业的控制。建议对 cron 和 at 的使用、维护进行集中管理,并注意所有自动作业在时间和机器性能方面的统筹安排。对于 cron 和 at 执行的脚本应加强管理,并要求有完善的日志记录。

1.12 信任主机的设置

(1) 原则上关闭 rlogin 、 rsh 、 rexec 服务。

(2) 对于需要以信任主机方式访问的业务系统,按照以下方式设置:

修改文件安全设置操作说明
1. /etc/hosts.equiv (全局配置文件) 2. $HOME/.rhosts (单独用户的配置文件)限定信任的主机、账号不能有单行的"+"或"+"的配置信息1. 编辑/etc/host.equiv文件或者$HOME/.rhosts文件,只增加必须的帐户和主机,删除不必要的信任主机设置。 2. 更改/etc/hosts.equiv文件的属性,只允许root可读写。

1.13 系统登录提示的设置

修改之前先备份: 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.14 登录策略的配置 要求

(1) 基本登录策略配置

需要对登录策略进行以下设置(或修改/etc/security/login.cfg,文件中其他属性主要针对 TTY ,非网络终端 PTY ) (等比参数)

策略默认设置安全设置配置说明
失败登录后延迟5秒显示提示符logindelay=0default: 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=truerlogin=false

1.15 用户帐号和口令及属性的配置

1.16 帐号安全控制要求

(1) 帐户的建立策略

u 根据系统的需求,按照不同的角色进行账户的建立,并赋予最小的权限。

u 帐户的命名必须符合相关的命名规范。

根据目前的安全策略和维护流程,对用户 ID 权限 进行设置、管理是至关重要的。操作系统用户 ID 可分为:

Ø 系统维护 ID

Ø 应用维护 ID

Ø 操作 ID (不能直接访问 shell )

Ø 紧急用户密码管理 ID

Ø 工具软件用户 ID 等类型

(2) 系统帐户的删除和锁定策略

修改之前先备份: cp /etc/security/uesr /etc/security/user.bak. 时间戳

策略默认设置安全设置配置说明
账户锁定阈值loginretries=0loginretries=88次登录失败后锁定(root设为0,缺省值;其他用户设为8) 方法: 在文件/etc/security/user中的“default:”小节中更改为loginretries = 8
锁定不必要的账号account_locked=falseaccount_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 天未登录的用户,如果有,建议先对其进行锁定。脚本执行过程中把锁定的用户重定向到一个文件中,发给相关部门确认。

1.17 口令策略配置要求

按照如下要求修改 /etc/security/user 中 root 用户的参数值)

AIX 系统中口令策略的安全基线,按照下表的项目和要求进行配置:

策略默认设置安全设置配置说明
口令最长有效期maxage=0maxage=4不高于30天
口令最短有效期minage=0minage=0
口令过期后多长时间内用户可以更改maxexpired=-1maxexpired=44周
口令中某一字符最多只能重复次数maxrepeats=8maxrepeats=22次
口令最短长度minlen=6minlen=88个字符
口令中最少包含字母字符的数量minalpha=2minalpha=44个字符
口令中最少包含非字母数字字符数量Minother=1minother=11个
新口令中最少有多少个字符和旧口令不同mindiff=0mindiff=66个
同一口令在多长时间内不能重复使用histexpire=0histexpire=4040周
同一口令与前面多少个口令不能重复histsize=0histsize=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

1.18 umask 设置

/etc/security/user 文件中的 default 小节, umask 设置从 022 改为 027 。

1.19 用户的环境变量

修改文件安全设置操作说明
/etc/security/environPATH设置中不含本地目录(.)printenv 查看当前的环境变量设置 chuser usrenv="PATH=**" root 去掉root的PATH环境变量中的(.)。


1.20 syslog 日志的配置

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.21 系统内核参数配置 基线

(1) AIX 系统网络参数的配置标准:

策略默认设置安全设置
忽略ICMP重定向包ipignoreredirects=0ipignoreredirects=1
不发送ICMP重定向包ipsendredirects=1ipsendredirects=0
不转发源路由包ipsrcrouteforward=1ipsrcrouteforward=0
不发送源路由包ipsrcroutesend=1ipsrcroutesend=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 防止地址掩码查询

1.22 系统审计参数配置

Ø 通过配置 /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 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广