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)。 |