第二步:安装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命令可以更新防火墙规则。这些规则会在每个系统启动周期中载入