在你开始前
关于本教程
本教程适用于希望更好地了解AIX中的网络服务以及每个服务对系统安全性的影响的AIX系统管理员。 负责以某种方式连接到公共网络的RS / 6000的管理员可以使用本教程中的信息来实现功能和安全性之间的必要平衡。
本演示文稿中未使用任何第三方工具; 仅探讨和解决了所有AIX系统可用的组件。 真正的安全模型不仅仅需要关闭服务和修改配置文件,而且,本教程为实现完整系统完整性的目标提供了坚实的基础。
关于本教程中的示例
本教程中的示例在完整安装了AIX 4.3.3(维护级别08)的IBM RS / 6000上运行。主机上没有放置AIX安装介质上可用的软件。 本教程中讨论的所有实践和配置在运行AIX 5L(5.1 ML 01)的生产系统上均同样适用(并已得到确认)。
重要的是要了解对系统配置进行任何更改的潜在影响; 在处理与安全相关的问题时尤其如此。 在对生产系统进行任何修改之前,请确保已首先在适当的开发环境中对更改进行了测试。 撞击时,请始终备份系统,系上安全带并合上盖板。
了解安全性
问题是什么?
AIX(或几乎任何操作系统)的常规安装都包含令人眼花services乱的服务。 其中一些服务至关重要:例如,如果没有telnetd
守护程序处于活动状态,将无法远程登录系统。 但是,其中许多服务是在Internet变得更小的时候开发的,而黑客和其他试图获得未经授权的访问者所感知的危险被认为远不及轻松的远程访问和简单的身份验证方法带来的好处。
当今的计算环境更加危险:连接到Internet的主机数量呈指数增长,并且随着这种增长,访问和破坏计算机的尝试已成为司空见惯的事件。 安全不足的系统可能会很快受到威胁; 一旦攻击者获得了对系统的访问权限,存储在其中的信息将不再是私有的,并且其内容也将无法被信任。
它是怎么发生的?
从定义上讲,任何受到远程攻击者破坏的系统都拥有针对它的自己的网络连接。 其中一些攻击利用了网络守护程序特定版本中的错误。 其他攻击之所以成功,是因为它们利用了特定协议中的一个已知弱点,该弱点是运行该服务的所有系统所共有的。
重要的是,不仅要评估所有活动的网络服务在执行必要任务方面的有用性,而且还要评估其缺点或漏洞,这一点很重要。 平衡每项服务的优缺点可能很困难,但这是确保系统安全的关键部分。
野蛮人在插座
缺省的AIX安装提供了许多服务,每个服务负责监听至少一个端口。 下表详细列出了每个打开的端口,绑定到该端口的系统守护程序以及启动该守护程序的配置文件。
7 |
tcp |
echo |
/usr/sbin/inetd |
/etc/inetd.conf |
7 |
udp |
echo |
/usr/sbin/inetd |
/etc/inetd.conf |
9 |
tcp |
discard |
/usr/sbin/inetd |
/etc/inetd.conf |
9 |
udp |
discard |
/usr/sbin/inetd |
/etc/inetd.conf |
13 |
tcp |
daytime |
/usr/sbin/inetd |
/etc/inetd.conf |
13 |
udp |
daytime |
/usr/sbin/inetd |
/etc/inetd.conf |
19 |
tcp |
chargen |
/usr/sbin/inetd |
/etc/inetd.conf |
19 |
udp |
chargen |
/usr/sbin/inetd |
/etc/inetd.conf |
21 |
tcp |
ftp |
/usr/sbin/ftpd |
/etc/inetd.conf |
23 |
tcp |
telnet |
/usr/sbin/telnetd |
/etc/inetd.conf |
25 |
tcp |
smtp |
/usr/sbin/sendmail |
/etc/rc.tcpip |
37 |
tcp |
time |
/usr/sbin/inetd |
/etc/inetd.conf |
37 |
udp |
time |
/usr/sbin/inetd |
/etc/inetd.conf |
67 |
udp |
bootps |
/usr/sbin/bootpd |
/etc/inetd.conf |
111 |
tcp |
sunrpc |
/usr/sbin/portmap |
/etc/rc.tcpip |
111 |
udp |
sunrpc |
/usr/sbin/portmap |
/etc/rc.tcpip |
161 |
udp |
snmp |
/usr/sbin/snmpd |
/etc/rc.tcpip |
177 |
udp |
xdmcp |
/usr/dt/bin/dtlogin (spawned by /etc/rc.dt) |
/etc/inittab |
199 |
tcp |
smux |
/usr/sbin/dpid2 |
/etc/rc.tcpip |
512 |
tcp |
exec |
/usr/sbin/rexecd |
/etc/inetd.conf |
513 |
tcp |
login |
/usr/sbin/rlogind |
/etc/inetd.conf |
514 |
tcp |
shell |
/usr/sbin/rshd |
/etc/inetd.conf |
514 |
udp |
syslog |
/usr/sbin/syslogd |
/etc/rc.tcpip |
518 |
udp |
ntalk |
/usr/sbin/talkd |
/etc/inetd.conf |
543 |
tcp |
klogin |
/usr/sbin/krlogind |
/etc/inetd.conf |
544 |
tcp |
kshell |
/usr/sbin/krshd |
/etc/inetd.conf |
1001 |
tcp |
rpc.statd |
/usr/sbin/rpc.statd |
/etc/rc.nfs |
1001 |
udp |
rpc.statd |
/usr/sbin/rpc.statd |
/etc/rc.nfs |
1002 |
tcp |
rpc.statd |
/usr/sbin/rpc.statd |
/etc/rc.nfs |
1002 |
udp |
rpc.statd |
/usr/sbin/rcp.statd |
/etc/rc.nfs |
1234 |
tcp |
instsrv |
/home/netinst/bin/instsrv |
/etc/inetd.conf |
2401 |
tcp |
writesrv |
/usr/sbin/writesrv |
/etc/inittab |
6000 |
tcp |
X11 |
/usr/lpp/X11/bin/X (spawned by /etc/rc.dt) |
/etc/inittab |
6112 |
tcp |
dtspc |
/usr/dt/bin/dtspcd |
/etc/inetd.conf |
32768 |
tcp |
dtlogin |
/usr/dt/bin/dtgreet (spawned by /etc/rc.dt) |
/etc/inittab |
32769 |
tcp |
rpc.ttdbserver |
/usr/dt/bin/rpc.ttdbserver |
/etc/inetd.conf |
32772 |
tcp |
dpid2 |
/usr/sbin/dpid2 |
/etc/rc.tcpip |
32785 |
udp |
cmsd |
/usr/dt/bin/rpc.cmsd |
/etc/inetd.conf |
49213 |
tcp |
httpd |
/usr/IMNSearch/httpdlite/httpdlite |
/etc/inittab |
该怎么办?
强化AIX系统的网络服务有两个基本步骤:
- 禁用不必要的服务。
目的在于服务网站的系统是否还应该在其上运行邮件服务器? 如果数据中心不会使用从网络源引导系统的功能,那么提供该服务的守护程序是否应该处于活动状态? 显然,这两个问题的答案都不是。 如果网络服务正在运行,但没有用处,则应将其关闭。
- 配置其余服务以确保安全运行。
当然,不可能关闭所有服务。 (如果可能,则组织需要重新考虑其对信息技术的使用。)但是,可以通过将那些活动服务配置为以安全方式运行来减轻潜在的风险。 在理想情况下,默认配置也将是安全配置。 可悲的是,世界并不完美。
禁用不必要的服务
网络服务从哪里开始?
在AIX系统上,网络服务通常以以下四种方式之一启动:
-
/etc/inittab file
的条目。 这些服务在系统启动时被激活,并且取决于所使用的方法,如果被杀死,它们可能会自动重生。