Unix服务器介绍
下面我们可以定义三种类型的服务器,当然根据你的实际需要,这些服务器可以进一步分类。
1、公共服务器,这是一种可以访问互联网的服务器。
2、登录服务器,这种服务器允许非超级用户登录。
3、其它服务器,如MySQL,内部LDAP或NFS服务器,这些服务器只能从内部网络到达。
根据我们定义的这些服务器,网络的总体布局和我们要运用的防火墙规则也就显而易见了。
问题是我们该如何管理这些服务器,保持其安全性。这是我们设计的难题之一,因为一个脆弱的设计可能就意味着灾难的降临。
从一个更高级的视点上来看,我们知道有些服务器要比其它服务器重要。一个或多个服务器需要被其它的服务器信任,这样才能保证自动化改变的发生。账号的创建,按照Tripwire 或Samhain方式对主机完整性的监视,甚至配置文件的备份都需要从某个服务器配置并维持,而这个服务器能够以根用户身份访问其它服务器。
这样一个服务器,我们或可称它为主服务器,只有超级用户账户可用于登录访问。超级用户的口令需要与其它服务器的口令不同,而且这个主服务器不应向外部世界提供服务。公共服务器的损害不应影响主服务器的安全。当一个表面上不重要的机器被损害时,一次黑客性质的登录会成为一个rootkit的一部分,这又会导致用户账户口令的暴露。这也就是sudo并非一个好主意的原因:它给你的用户口令根目录的访问权限。一个被损害的su可能会泄露根用户的口令,这也就是主服务器如此重要的原因。
主服务器应能够以SSH方式并以根用户的身份登录到所有其它的服务器,但只能通过SSH密钥进行。基于口令的根用户的登录绝对不要允许通过SSH进行。如果主服务器被危及到其安全性,那么其它任何一个服务器都会落得同样的下场。因此,主服务器是一个堡垒,只运行SSH服务,并只与其它机器连接。配置文件的备份、主机完整性数据库等都可被存储在主服务器上。
可被公共访问的服务器是最为脆弱的,原因就在于它们运行的应用程序,但登录服务器也会引起问题,而且它们在许多其它方面也是很脆弱的。其用户,不管是开发人员还是学生、客户,都不太在乎安全问题。他们会运行心目中的任何可得到的应用程序,其中包括SQL服务器,基于PHP的WEB应用程序(只采用安全性很差的安全记录),以及看起来有用的其它任何东西。为了防止未知用户通过这些程序的漏洞进入系统,你最好还是为你的操作系统安装最新的补丁程序。