一个网络系统的安全程度,在很大程度上取决于管理者的素质,以及管理者所采取的安全措施的力度。在对系统进行配置的同时,要把安全性问题放在重要的位置。
SCO Unix,作为一个技术成熟的商用网络操作系统,广泛地应用在金融、保险、邮电等行业,其自身内建了丰富的网络功能,具有良好的稳定性和安全性。但是,如果用户没有对Unix系统进行正确的设置,就会给入侵者以可乘之机。因此在网络安全管理上,不仅要采用必要的网络安全设备,如:防火墙等,还要在操作系统的层面上进行合理规划、配置,避免因管理上的漏洞而给应用系统造成风险。
下面以SCO Unix Openserver V5.0.5为例,对操作系统级的网络安全设置提几点看法,供大家参考。
合理设置系统安全级别
SCO Unix提供了四个安全级别,分别是Low、Traditional、Improved和High级,系统缺省为Traditional级;Improved级达到美国国防部的C2级安全标准;High级则高于C2级。用户可以根据自己系统的重要性及客户数的多少,设置适合自己需要的系统安全级别,具体设置步骤是:scoadmin→system→security→security profile manager。
合理设置用户
建立用户时,一定要考虑该用户属于哪一组,不能随便选用系统缺省的group组。如果需要,可以新增一个用户组并确定同组成员,在该用户的主目录下,新建文件的存取权限是由该用户的配置文件.profile中的umask的值决定。umask的值取决于系统安全级, Tradition安全级的umask的值为022,它的权限类型如下:
文件权限: - r w - r - - r - -
目录权限: d r w x r - x r - x
此外,还要限制用户不成功登录的次数,避免入侵者用猜测用户口令的方法尝试登录。为账户设置登录限制的步骤是:Scoadmin--〉Account Manager--〉选账户--〉User--〉Login Controls--〉添入新的不成功登录的次数。
指定主控台及终端登录的限制
如果你希望root用户只能在某一个终端(或虚屏)上登录,那么就要对主控台进行指定,例如:指定root用户只能在主机第一屏tty01上登录,这样可避免从网络远程攻击超级用户root。设置方法是在/etc/default/login文件增加一行:CONSOLE=/dev/tty01。
注意:设置主控台时,在主机运行中设置后就生效,不需要重启主机。
如果你的终端是通过Modem异步拨号或长线驱动器异步串口接入Unix主机,你就要考虑设置某终端不成功登录的次数,超过该次数后,锁定此终端。设置方法为:scoadmin→Sysrem→Terminal Manager→Examine→选终端,再设置某终端不成功登录的次数。如果某终端被锁定后,可用ttyunlock〈终端号〉进行解锁。也可用ttylock〈终端号〉直接加锁。
文件及目录的权限管理
有时我们为了方便使用而将许多目录和文件权限设为777或666,但是这样却为黑客攻击提供了方便。因此,必须仔细分配应用程序、数据和相应目录的权限。发现目录和文件的权限不适当,应及时用chmod命令修正。
口令保护的设置
口令一般不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,绝对避免用英语单词或词组等设置口令,而且应该养成定期更换各用户口令的习惯。通过编辑/etc/default/passwd文件,可以强制设定最小口令长度、两次口令修改之间的最短、最长时间。另外,口令的保护还涉及到对/etc/passwd和/etc/shadow文件的保护,必须做到只有系统管理员才能访问这两个文件。
合理设置等价主机
设置等价主机可以方便用户操作,但要严防未经授权非法进入系统。所以必须要管理/etc/hosts.equiv、.rhosts和.netrc这3个文件。其中,/etc /hosts.equiv列出了允许执行rsh、rcp等远程命令的主机名字;.rhosts在用户目录内指定了远程用户的名字,其远程用户使用本地用户账户执行rcp、rlogin和rsh等命令时不必提供口令;.netrc提供了ftp和rexec命令所需的信息,可自动连接主机而不必提供口令,该文件也放在用户本地目录中。由于这3个文件的设置都允许一些命令不必提供口令便可访问主机,因此必须严格限制这3个文件的设置。在.rhosts中尽量不用“+ +”,因为它可以使任何主机的用户不必提供口令而直接执行rcp、rlogin和rsh等命令。
合理配置/etc/inetd.conf文件
Unix系统启动时运行inetd进程,对大部分网络连接进行监听,并且根据不同的申请启动相应进程。其中ftp、telnet、rcmd、rlogin和finger等都由inetd来启动对应的服务进程。因此,从系统安全角度出发,我们应该合理地设置/etc/inetd.conf文件,将不必要的服务关闭。关闭的方法是在文件相应行首插入“#”字符,并执行下列命令以使配置后的命令立即生效。
#ps-ef │ grep inetd │ grep -v grep
#kill -HUP 〈 inetd-PID 〉
合理设置/etc/ftpusers文件
在/etc/ftpuser文件里列出了可用FTP协议进行文件传输的用户,为了防止不信任用户传输敏感文件,必须合理规划该文件。在对安全要求较高的系统中,不允许ftp访问root和UUCP,可将root和UUCP列入/etc/ftpusers中。
合理设置网段及路由
在主机中设置TCP/IP协议的IP地址时,应该合理设置子网掩码(netmask),把禁止访问的IP地址隔离开来。严格禁止设置缺省路由(即:default route)。建议为每一个子网或网段设置一个路由,否则其他机器就可能通过一定方式访问该主机。
不设置UUCP
UUCP为采用拨号用户实现网络连接提供了简单、经济的方案,但是同时也为黑客提供了入侵手段,所以必须避免利用这种模式进行网络互联。
删除不用的软件包及协议
在进行系统规划时,总的原则是将不需要的功能一律去掉。如通过scoadmin--〉Soft Manager去掉X Window;通过修改/etc/services文件去掉UUCP、SNMP、POP、POP2、POP3等协议。
正确配置.profile文件
.profile文件提供了用户登录程序和环境变量,为了防止一般用户采用中断的方法进入$符号状态,系统管理者必须屏蔽掉键盘中断功能。具体方法是在.porfile首部增加如下一行:
trap ' ' 0 1 2 3 5 15
创建匿名ftp
如果你需要对外发布信息而又担心数据安全,你可以创建匿名ftp,允许任何用户使用匿名ftp,不需密码访问指定目录下的文件或子目录,不会对本机系统的安全构成威胁,因为它无法改变目录,也就无法获得本机内的其他信息。注意不要复制/etc/passwd、/etc/proup到匿名ftp的etc下,这样对安全具有潜在的威胁。
应用用户和维护用户分开
金融系统Unix的用户都是最终用户,他们只需在具体的应用系统中完成某些固定的任务,一般情况下不需执行系统命令(shell),其应用程序由.profile调用,应用程序结束后就退到login状态。维护时又要用root级别的su命令进入应用用户,很不方便。可以通过修改.profile 文件,再创建一个相同id用户的方法解决。例:应用用户work有一个相同id相同主目录的用户worksh, 用户work的.profile文件最后为:
set -- `who am i`
case $1 in
work exec workmain;exit;;
worksh break;;
esac
这样当用work登录时,执行workmain程序;而用worksh登录时,则进入work的$状态。