Inte.net需要配置一台自己的WEB服务器,由于没有自己的安全基础设施,应该在WEB服务器前面放一台配置了相应过滤规则的路由器。这台WEB服务器仅仅提供WWW和HTTPS服务,但是,它当然也需要具有远程控制特性。另外,这台WEB服务器最好还能够发送邮件。由于Linux服务器和网页是由三个不同的管理员维护的,所有的管理操作都应该保证在以后进行日志分析是更容易理解。
实现
前面段落中说明的安全WEB服务器的需求如何实现呢?下面的例子说明了一种在SuSE Linux 6.4发布的服务器上的实现方法。为了实现上述想定,我们决定选择SSH管理和Apache WEB服务器。
第一步:配置路由器
每一个流行的路由器都提供配置过滤列表的功能。您必需配置下面的简单规则:
+------------------------------------------------------------------------------+
|------------------------------过滤规则--------------------------------------|
+-------------------------+-------------------------+-------------------------+
|----------来源----------|-----------目标----------|---------服务-----------|
+-------------------------+-------------------------+-------------------------+
|任何位置--------------|web服务器------------|WWW,HTTPS,UDP highport,|
|--------------------------|---------------------------|ICMP types 0 + 3-----|
+-------------------------+-------------------------+--------------------------+
|管理员-----------------|web服务器------------|SSH---------------------|
+-------------------------+-------------------------+-------------------------+
|web服务器-----------|任何位置---------------|DNS, SMTP-----------|
+-------------------------+-------------------------+-------------------------+
|web服务器-----------|路由器------------------|SSH或telnet----------|
+-------------------------+-------------------------+-------------------------+
路由器的操作手册会提供如何进行上述配置的详细信息。这里我建议使用Cisco路由器,因为对于这种情况它非常容易配置,并且还在IOS的第12版以后提供了SSH的加密服务。
第二步:安装Linux服务器
执行SuSE 6.4的标准安装。处于安全考虑,至少应为/、/var、/tmp、/home和/usr/local安装5个分区。后面会定义一些mount这些分区的特殊选项,这些选项可以保证系统具有更高的本地安全性能。
现在是选择需要安装哪些程序包的时候了。选择最小系统安装,然后手工加入下面一些必要的程序包:
在Basis (a)中选择compat
在Applications (ap)中选择sudo
在Network (n)中选择apache, bindutil;去掉postfix和sendmail
在Security (sec)中选择firewals, hardensuse, mod_ssl, scanlogd, seclearcase/" target="_blank" >ccheck, secumod, tripwire.
其它一些您认为需要的程序包,如数据库和为Apache设计的一些模块。然后完成安装。
第三步:更新
在配置之前,检查一下是否可以获得这些安装包的更新版本,如果有,需要的话最好进行更新。
您可以在这里找到SuSE 6.4的更新信息。
第四步:Linux的本地配置
在开始真正工作之前,必需首先执行所有的诸如输入服务器名、配置网络接口和设置用户等标准Linux配置。在初始情况下,所有不需要的服务都是非活动状态的。特权程序的授权回收工作并不是必需的,您可以通过harden_suse工具简单地实现这个任务:
erde#harden_suse yes
这个命令在很多地方更改了系统的配置,这些更改都记在/etc/harden_suse.log日志文件中,这些操作可以过/etc/undo_harden_suse脚本予以恢复。使用其它Linux发布的用户可应使用Bastille脚本或者其它类似的程序。
随后,所有网络访问服务(除了SSH)都被禁止,仅仅保留了下面的授予特权的suid和sgid程序:
erde# find / -perm -04000 -type f -exec ls -ld {} ;
-rwsr-x--- 1 root trusted 23840 Mar 11 11:26 /bin/ping
-rwsr-x--- 1 root trusted 30750 Mar 11 11:37 /bin/su
-rwsr-x--- 1 root trusted 21268 Mar 11 11:10 /usr/bin/crontab
-rwsr-xr-x 1 man root 85460 Mar 11 11:24 /usr/bin/man
-rwsr-xr-x 1 root root 15308 Mar 11 11:26 /usr/bin/rcp
-rwsr-xr-x 1 root root 11052 Mar 11 11:26 /usr/bin/rlogin
-rwsr-xr-x 1 root root 8104 Mar 11 11:26 /usr/bin/rsh
-rwsr-x--- 1 root shadow 38340 Mar 11 11:50 /usr/bin/gpasswd
-rwsr-x--- 1 root trusted 22184 Mar 11 11:50 /usr/bin/newgrp
-rwsr-xr-x 1 root shadow 27920 Mar 11 11:50 /usr/bin/passwd
-rwsr-x--- 1 root trusted 56600 Mar 11 18:41 /usr/bin/sudo
-rwsr-xr-x 1 root root 20300 Mar 11 11:26 /usr/sbin/traceroute
-rwsr-xr-x 1 root root 6132 Mar 11 09:36 /usr/lib/pt_chown
erde# find / -perm -02000 -type f -exec ls -ld ;
-rwxr-sr-x 1 root tty 9452 Mar 11 11:26 /usr/bin/write
-rwxr-sr-x 1 root tty 9796 Mar 11 11:49 /usr/bin/wall
下一阶段工作是编辑全局配置文件/etc/rc.config,将下面脚本行中的“no”改成“yes”:
START_HTTPD=“yes”
START_FW=“yes”
START_SCANLOGD=“yes”