三 使用Yassp工具包安装安全的Solaris系统

7、补丁;
系统在安装时会自动安装推荐补丁包,但是它并不包含所有的安全补丁 。定期检查最新的补丁,;

安装了最新安全补丁的系统要比没有安装的系统可靠的多 。;
补丁通常有标准补丁(Standard;patches)、推荐补丁(Recommended;patches)、安全补丁(;

Security;patches)、2000年补丁(Y2K;patches),patch;clusters是以上补丁的集成包 。单点;

补丁(Point;patches)是针对特定问题的补丁 。;

通过下列方法,了解已知的漏洞及相应的补丁程序:;
1.;订阅相关组织及公司(如CERT/First、SUN、Bugtraq)的邮件列表 。;
2.;订阅有关漏洞及补丁的邮件列表,如Security;Portal(Solaris;Digest)、;

SecurityFocus(Sunr的部分)或者SANS 。;
3.;定期使用工具,检查服务器上安装的补丁是否与Sun发布的最新补丁列表相一致 。;
4.;一至两月检查一次Sun推荐的补丁包,需要注意的是安装推荐补丁包时,如果对内核打补丁可;

能会导致一些应用的不正常 。;
5.;某些第三方的应用的补丁也需要加以关注 。;

注:安装补丁可能会改动Yassp的配置,因此在安装完补丁重启系统后,要仔细检查是否启动了不;

需要的进程 。;

针对补丁的工具;
*;GetApplyPatch和CheckPatches是两个管理Solaris补丁的Bshell的脚本工具 。;
1.CheckPatches使用showrev命令查看已经安装的补丁,并与Solaris的补丁报告相比较,列出需;

要安装的推荐及安全补丁 。补丁报告SolarisX.PatchReport通常在当前目录下,也可以使用-f参;

数通过FTP下载最新的补丁报告;
>./CheckPatches;-f;
2.GetApplyPatch:用来获得并安装最新的补丁,使用补丁号码作为执行脚本时的参数 。运行时,;

会提示是否下载,显示补丁的README文件,安装补丁后,删除安装目录 。使用"-b"参数以"batch;

mode"运行,则不做提示 。;
>./GetApplyPatch;108875-07;
CheckPatches.cron是一个自动运行的脚本,并将结果mail给管理员 。;
3.同时使用这两个脚本文件,获得需要的补丁并进行安装 。;
>./CheckPatches;|;./GetApplyPatch;
GetApplyPatch.cron可以用来自动执行,取得补丁并进行安装,但是关键任务的服务器上不推荐;

使用它 。;
4.其它的特点:;
*;带有man帮助文件;
*;支持Solaris;Intel及Sparc,通过测试;
*;可以设置ftp代理;
*;CheckPatches可以忽略无需安装的补丁 。比如,在Solaris8;x86系统中,运行CheckPatches后;

,提示需要下面的补丁:;
109897-03;SunOS;5.8_x86:;USB;patch;
109952-01;SunOS;5.8_x86:;jserver;buffer;overflow;
110417-02;SunOS;5.8_x86:;ATOK12;patch;
对于这些补丁,我们并不想安装 。创建Solaris8_x86.PatchReport.Except,在文件中加入上面三;

行,在次运行CheckPatches脚本时会将它们忽略 。;
*;也可以对CheckPatches的命令输出做过滤,如:;
./CheckPatches;|;egrep;-v;"109897|109952|110417";
*;Sunsolve提供的Patchdiag工具,与最新的Patchdiag.xref一起,可以检查系统缺少哪些补丁,;

然后下载并安装这些补丁 。;
*;使用SecurityFocus的vulnerability;calculator工具,运行下面的命令;
(http://securityfocus.com/focus/sun/form.html);
>showrev;-p;|cut;-f2;-d";";|;xargs;
将结果粘贴到窗囗中,然后选择操作系统 。在得出结果的中选择与自己主机上的应用相关的内容;

进行修补 。;
*;FastPatch可以用来替代patchadd命令,它的执行速度更快 。;
*;Patchreport是另外一个用perl语言编写的非常全面的补丁检查工具 。;

8、RPC;
在关键任务主机,避免使用RPC服务 。RPC使用动态分配的端囗及非标准的存取控制方法 。但是,;

确有一些应用需要使用RPC,如CDE、Open;Windows、Disksuite及Legato;Networker 。;

如何提高Disksuite的安全性;
Disksuite是系统内置的工具,用来做磁盘镜象及设置RAID 。它需要RPC的支持(在inetd中运行的;

rpc.metamhd和rpc.metad) 。;
1.;尽量不运行Disksuite;
*;硬件RAID的好处在于不需要特殊的软件支持 。这对于对安全性要求较高的系统十分有利 。而且;

当出现问题时,你会发现Disksuite并不是太容易使用的 。;
*;对于象是系统盘等,数据并不会频繁变动的系统盘,作镜像(cold;mirroring)就足够了,使用;

脚本mirror_boot.sh可以完成此项工作 。;
2.;运行Disksuite,但是停止RPC服务 。停止inetd.conf中的"metad"服务会引起以下结果:;
*;"metatool"将不会工作,但是命令行工具还可以运行 。为了应付系统盘的灾难性错误,最好了;

解这些命令行工具 。;
*;Disksets-系统间共享的metadevices将不能使用 。;
3.;如果使用Disksuite和RPC,使用Wietse;Venema的RPCBIND 。;

*;Solaris8系统自带的Sunscreen;EFS;Lite;Firewall可以用来对rpc服务的存取进行限制 。;
*;IPfilter也可以用来做限制RPC服务访问的本地防火墙 。;
*;IPfilter可以在8以前的老版本的Solaris上运行,并且是免费的 。;
*;It"s;doesn"t;have;an;RPC;state;based;engine;though(so;it;can"t;filter;on;RPC;

program;names;or;allow;RPC;to;specific;destinations) 。;
*;But;it;can;be;used;to;allow;all;localhost;RPC;traffic(enough;for;some;RPC;

applications;such;as;Disksuite;or;CDE)and;deny;all;remote;traffice;except,say,HTTP;or;

whatever;service;is;provided;to;remote;hosts 。;
*;使用Wietse;Venema的rpcbind(包含在Yassp的tarball里),可以提供类似tcp;wrapper的访问控;

制和日志记录 。Rpcbind是一种“目录”服务用来定位某一种服务(通过RPC名或者RPC号) 。因为;

它并不是连接服务的中介,因此它并不能真正为RPC程序提供访问控制 。用端囗扫描器可以检测激;

活的RPC服务,除非内核被定制成过滤这些连接,否则并不能防止对服务的访问 。;

9、日志、Cron、许可;
配置日志及pruning:;
*;Syslog日志:Yassp使用修改过的/etc/syslog.conf配置,开启了更多的日志记录保存在;

/var/adm/messages中 。同时也安装了一个可选的/etc/syslog.conf.server,是为loghosts设计;

的并将不同的服务存在分开的log文件中 。;
*;Yassp关闭了root帐号cron中有关log的条目 。添加了运行"daily"脚本 。;





配置Syslog;
Syslog客户端:在/etc/hosts文件中指定log服务器 。;
*;测试log服务器是否正常;
logger;-p;auth.warn;"test;of;syslog",检查是否记录在log服务器里 。;
*;在log服务器及本地同时记录日志,取消/etc/syslog.conf中的下一行注释:;
*.err;auth.info;kern.debug;/var/adm/messages;
*;如果日志记录不能正常工作,可以参照syslog.conf中的例子及提示 。;
Syslog服务器(loghost):;
*;log服务器需要一块大的磁盘用来保存日志文件 。;
*;在Solaris8系统中,Yassp将以"-t"参数启动syslog,因此它将不接受其它主机的记录日志的请;

求 。如果想要设置集中的log服务器,需要在/etc/yassp.conf中设置SYSLOGFLAGS="" 。;
*;Yassp还安装了一个/etc/syslog.conf.server配置文件,是针对log服务器并将不同的服务产生;

的日志存于/var/log目录下不同的文件中 。用它覆盖配置文件并重新启动syslog:;
mv;/etc/syslog.conf;/etc/syslog.conf.client;
cp;/etc/syslog.conf.server;/etc/syslog.conf;
kill;-l;`cat;/etc/syslog.pid`;
*;使用rotate_log工具对日志进行管理和压缩,在root的cron中加入:;
##Prune;syslog;logs;weekly,keeping;the;last;6;months;or;so:;
55;23;*;*;6;/secure/rotate_log;-n;40;alertlog;
55;23;*;*;6;/secure/rotate_log;-n;40;authlog;
55;23;*;*;6;/secure/rotate_log;-n;40;cronlog;
55;23;*;*;6;/secure/rotate_log;-n;40;daemonlog;
55;23;*;*;6;/secure/rotate_log;-n;40;kernlog;
55;23;*;*;6;/secure/rotate_log;-n;40;local0log;
55;23;*;*;6;/secure/rotate_log;-n;40;local2log;
55;23;*;*;6;/secure/rotate_log;-n;40;local5log;
55;23;*;*;6;/secure/rotate_log;-n;40;newslog;
55;23;*;*;6;/secure/rotate_log;-n;40;userlog;
55;23;*;*;6;/secure/rotate_log;-n;40;lprlog;
55;23;*;*;6;/secure/rotate_log;-n;40;maillogd;
在root的cron中加入每年清理日志文件的条目;
##Empty;login/logout;records;at;year;end;
0;0;31;12;*;/secure/wtrim.pl;wtmp;20;
0;0;31;12;*;/secure/wtrim.pl;wtmpx;20;
#;
#Solaris;2.x;logs;
0;4;*;*;6;/secure/totate_log;-L;/var/adm;-n;30;loginlog;
0;4;*;*;6;/secure/rotate_log;-L;/var/adm;-n;30;sulog;
0;4;*;*;6;/secure/rotate_log;-L;/var/adm;-n;2;vold.log;
0;4;*;*;6;/secure/rotate_cron;

其它的需要在root的cron设置条目:;
每天与可靠的时间源进行时间同步,使用rdate(NTP会更加精确,但会带来相应的风险);
##Synchronise;the;time:;
0;*;*;*;*;/usr/bin/rdate;YOURTIMEHOST;>/dev/null;2>&1;
安装检查重要进程是否运行的脚本,monitor_processes.pl并在root的cron中加入:;
##Check;that;important;processes;are;running;during;office;hours:;
##[If;you;run;7x24,modify;accordingly];
0,30;8-19;*;*1-5;/secure/monitor_processes.pl;sshd;httpd;

每次安装新的程序后,最好在文件中记录下来,如:;
cat;>/etc/mods<