使用Yassp工具包安装安全的Solaris系统 (二)
发布时间:2006-10-14 8:47:44   收集提供:gaoqian
4、在/etc/vfsab文件中对安装文件系统做限制 
在安装文件系统时,使用一些参数可以提高文件系统的安全性和鲁棒性。使用mount命令检查哪些 

参数生效,这些参数包括:nosuid、logging、noatime、size=xxxm、ro。 
Mount参数 
OS版本 
描 述 
用 途 
nosuid 
2.x 
关闭SUID程序及SUID设备 
不允许存在SUID的/var、 /home或者数据磁盘分区及设备(建议使用chroot environments).。如 

果/tmp分区 
不在磁盘上,此参数无效。 
logging 
2.7或者更高版本 
为分区记录transaction日志。可以大提高文件系统检查的速度,特别是针对大容量的磁盘。缺点 

是需要耗费时间进行写log的操作。 
/usr /opt /home分区 
建议除根区(如果使用了Veritas的VxVM)和对磁盘写性能要求非常高的分区外,都使用此参数。 
noatime 
2.7或者更高版本 
允许mount的文件系统,在每次访问文件时对文件节点号不做更新,这样可以显著提高某些服务, 

如对大量小文件进行频繁IO操作的web cache或者新闻服务。 
/var或者文件频繁存取的分区 (web缓存或news分区)。 
size=100m 
2.5.1 or later 
允许/tmp分区只使用100MB的交换空间。这个值通常取交换的30%。 
在mount /tmp时使用 
ro 
2.x 
只读。将文件系统mount成为只读只能对文件系统做有限制的保护(因为攻击者一旦取得root权限 

,他可以将文件系统重新mount成读写)。 
可以缩短系统启动时,执行fsck的时间,提高性能的同时,可以避免管理员无意中的错误(如误 

删除文件等)。 
/usr及/opt分区最好mount成为只读方式,但是将/usr分区mount成为只读方式的情况下,通常需 

要将/usr/local建立的另外的分区上。 

在编辑vfstab文件时要特别小心,对/ 及/usr分区的错误改动可能会导致系统不能引导。如果出 

现这种情况,使用安装光盘将以单用户模式引导后,mount上有错误的磁盘,更正vfstab文件后, 

reboot使改动生效。 
下面是vfstab文件的两个例子: 
一个只有/及/var的服务器,操作系统是Solaris2.8 
fd - /dev/fd fd - no - 
/proc - /proc proc - no - 
/dev/dsk/c0t3d0s1 - - swap - no logging 
/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 / ufs 1 no logging 
/dev/dsk/c0t3d0s7 /dev/rdsk/c0t3d0s7 /var ufs 1 no logging,nosuid,noatime 
swap - /tmp tmpfs - yes size=100m 
有较多分区的服务器 
fd - /dev/fd fd - no - 
/proc - /proc proc - no - 
swap - /tmp tmpfs - yes size=200m 
/dev/dsk/c0t8d0s0 /dev/rdsk/c0t8d0s0 / ufs 1 no logging 
/dev/dsk/c0t8d0s1 - - swap - no - 
/dev/dsk/c0t8d0s4 /dev/rdsk/c0t8d0s4 /usr ufs 1 no logging 
/dev/dsk/c0t8d0s6 /dev/rdsk/c0t8d0s6 /var ufs 1 no nosuid,noatime,logging 
/dev/dsk/c0t8d0s5 /dev/rdsk/c0t8d0s5 /opt ufs 2 yes logging 

5、在Solaris 8中安装Sunscreen EFS防火墙 
安装本地防火墙对系统进行保护。 
1. 在Solaris 8系统的iPlanet CD#2光盘上,带有Sunscreen EFS的限制版。也可以从Sun的主页 

下载此版本。 
2. 对于老版本的Solaris系统,可以使用Ipfilter作为本机防火墙。 

Sunscreen EFS可以保护网络通信,下面使用命令行对防火墙规则的设置作简单介绍。 
* 防火墙的安装:在最终用户模式安装Solaris8系统,安装防火墙时,如果提示没有安装 

SUNWsprot,需要用Solaris2号光盘先行安装: 
pkgadd -d /cdrom/sol_8_sparc_2/Solaris_8/Product SUNWsprot 
再使用iPlanet CD#2光盘,启动Sunscreen安装工具: 
/cdrom/cdrom0/SunScreen/screenInstaller 
除了Naming services=DNS(不使用NIS)外,其它选项都使用缺省设置。 
配置:设置简单的防火墙规则,找到正在运行的防火墙规则,显示缺省规则并对其进行编辑。 
#cd /opt/SUNWicg/SunScreen/bin; 
#./ssadm active 
Active configuration:www default Initial.2 
#./ssadm edit Initial 
edit>list rule 
1 "common""*""*"ALLOW 
edit>list address 
"*"RANGE 0.0.0.0 255.255.255.255 
"le0.net"RANGE 176.17.17.0 176.17.17.255 
"localhost"HOST 
"smtp-server"HOST 1.1.1.1 
"www_le0"GROUP{}{} 
edit>list service common 
"commom"GROUP"tcp all""udp all""syslog""dns""rpc all""nfs prog""icmp 

all""rip""ftp""real audio""pmap udp all""pmap tcp all""rpc tcp 

all""nis""archie""traceroute""ping" 
可以看出,缺省的规则让很少的服务通过。 

我们假设在设置一台HTTPD服务器(在80端囗),并使用SSH进行管理。允许使用ping和 

traceroute命令进行初步的错误检查。我们需要如下设置防火墙的规则: 
#./ssadm edit Initial 
edit>add service ssh SINGLE FORWARD "tcp" PORT 22 
edit>add service myhttp GROUP ping traceroute ssh www 
edit>replace rule 1 ALLOW myhttp"*""*" 
edit>list rule 
1 "myhttp""*""*"ALLOW 
edit>save 
edit>verify 
Configuration verified successfully(not activated) 
edit>quit 
www#./ssadm activate Initial 
Configuration activated successfully on www 
* 在一台管理机上,允许使用ssh和smtp(用来email报警),可以对外使用ping/traceroute,进行 

检查,为降低风险,只响应其它管理主机的ping/traceroute请求。允许通过HTTPS及使用dns查询 

。 
# cd /opt/SUNWicg/SunScreen/bin; 
# ./ssadm edit Initial 
edit> add address mgt_net RANGE 176.17.17.0 176.17.17.255 
edit> add service mgt GROUP ping traceroute ssh 
edit> add service https SINGLE FORWARD"tcp" PORT 443 
edit> add service outgoing GROUP ping traceroute dns 
edit> 
edit> replace rule 1 ALLOW www "*" localhost 
edit> replace rule 2 ALLOW https "*" localhost 
edit> replace rule 3 ALLOW mgt mgt_net localhost 
edit> replace rule 4 ALLOW outgoing localhost "*" 
edit> replace rule 5 ALLOW smtp localhost mgt_net 
edit> 
edit> save 
edit> verify 
Configuration verified successfully (not activated). 
# ./ssadm activate Initial 
Configuration activated successfully on www. 
检查网络连接,确定改动的规则已经生效。如果要恢复初始设置,将所有的规则删除后,加入下 

面一行: 
replace rule 1 ALLOW "common""*""*" 

最后,关闭防火墙的远程图形管理功能,只使用"ssadm"命令行工具进行管理。 
注释掉/etc/rc2.d/S63sunscreen文件中的下面一行: 
$SS_LIBDIR/run_httpd start efshttpd 
在/opt/SUNWicg/SunScreen/lib/ss_boot中,注释掉: 
$SS_LIBDIR/ssadmserver star>/dev/console 2>&1 

6、进一步增强系统的可靠性:路由、邮件、 解析及工具的设置 
到此,系统已经进行了初步的加固,以root方式登录。 
* 设置路由 
* 对于缺省路由,将网关的IP地址添加到/etc/defaultrouter文件中。 
* 对于静态路由,使用route命令创建/etc/init.d/static_routes文件及 

/etc/rc2.d/S99static_routes符号连接 
* 清空路由表,为特定网络指定路由,如: 
route -f add net 129.97 `cat /etc/defaultrouter` 
* 如果需要运行路由守护进程(不建议使用),要清楚其工作原理,否则它可能会导致你网络通信 

的不正常。使用'-q'参数的“安静”模式(quiet mode),或者在使用ifconfig命令配置网络接囗 

设备时,使用'private'参数,告诉网络接囗设备不要对外广播路由信息。运行“安静”模式,要 

在/etc/yassp.conf文件中设置SUNSTARTUP=YES并确定没有设置缺省路由。 
* 配置/etc/hosts文件,添加不想通过DNS解晰的服务器名。 
* DNS客户端:(对于关键任务的主机不要设置)在/etc/resolv.conf文件中添加域名及DNS服务器 

名,在/etc/nsswitch.conf文件中hosts行添加DNS条目。 
* 环境的设置:在/.cshrc /.profile:设置aliases和变量(如VISUAL,EDITOR和PATH,路径的环境 

变量中不要包括当前路径".")。 
* 使用useradd工具在系统中添加新的用户。首次运行后,会产生/etc/sadm/defadduser缺省新加 

用户设置。可以编辑此文件,对新增用户做缺省的设置。 
* 邮件客户端的设置:如果不对外网外送邮件,则不需要配置mailhost alias(在/etc/hosts文 

件中),如果不需要任何形式的邮件服务,删除/etc/lib/sendmail程序。否则: 
* 编辑/etc/mail/aliases文件,至少将mailer-daemon、根及其它系统帐户指向其真实地址。 
* 在/etc/hosts文件中加入带有IP地址的邮件服务器条目,alias用mailhost。 
* 将完整的域名添加到/etc/hosts中,设置hostname.YOURDOMAIN.COM的alias。 
* 在/etc/mail/sendmail.cf文件中作如下设置,确保所有的外发邮件通过邮件主机发送(前面两 

行在Solaris8中无需设置): 
Dj$w.YOURDOMAIN.COM. 
DSmailhost 
DRmailhost 
Dhmailhost 
O FallbackMXhost=mailhost 
* 在root的cron中加入如下条目,将缓存的邮件在工作时间内每小时发送一次 
0 6-22 * * 1-5 /usr/lib/sendmail -q 
* 发送一封测试邮件,对配置进行检查 
mailx -v -s test_email root * Email服务器:设置Email服务器(运行SMTP服务),在这里不做详细介绍。 

Reboot,查错 
安装相应的工具及脚本,确保程序已经在其它主机上编辑测试通过。 
* 将安全工具安装在/secure目录中,如下面会用到的:rotate_cron,rotate_log,wtrim.pl, 

rdistd,Saveit,Weekly。然后将/secure目录模式设置为: 
chmod 700 /secure;chown -R root /resure 
* 在Solaris8系统的附件光盘上,如Software Companion光盘带有许多常用的工具,如PPP、 

samba、wu-ftp(出于安全性考虑,避免使用)、Development/Libraries、Development/Tools、 

X11应用、vim/emacs、Windows管理器等。使用图形化的安装工具或者通过SSH和X11隧道登录到服 

务器上,进入相应的目录,使用pkgadd命令进行安装。 
* 安装其它的常用工具,如traceroute、top或者lsof(不要设置SUID位)。 
* 安装perl,并建立/bin/perl符号链接(ln -s /usr/local/bin/perl /bin/perl)。 
Solaris8系统已经内置了一个版本的perl,但最好删除它(pkgrm SUNWpl5u SUNWpl5p SUNWpl5m 

),从Sunfreeware.com下载最新的版本进行安装(pkgadd -d perl-5.6.0-sol8.sparc-local)。 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50