一个安全WEB服务器的安装(3)

第二步:安装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, seccheck, 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"

这样就会保证Apache、Scanlogd和SuSE防火墙在计算机启动时自动执行。现在我们继续配置本地防火墙,将/etc/rc.config.d/firewall.rc.config(个别变量的细节描述在这个文件中可以找到)文件中的对应行改成下面的形式:

FW_DEV_WORLD="eth0" # query no. 2
FW_SERVICES_EXTERNAL_TCP="www https" # query no. 9
FW_SERVICES_TRUSTED_NETS="1.1.1.0/24" # query no. 10 - 1.1.1.0 is the net where the administrators connect from.
FW_TRUSTED_SERVICES_TCP="ssh" # query no. 10
/sbin/SuSEfirewall命令可以更新防火墙规则。这些规则会在每个系统启动周期中载入

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus