电脑技术学习

使用Yassp工具包安装安全的Solaris系统 (一)

dn001
1、安装系统前的准备工作;
2、系统的初始化安装;
3、安装YASSP工具包;
4、在/etc/vfsab文件中对mount文件系统加以限制;
5、在Solaris;8中安装Sunscreen;EFS防火墙;
6、进一步增强系统的可靠性:路由、邮件、;解析及工具的设置;
7、补丁;
8、RPC;
9、日志、Cron、权限;
10、限制SUID类型的文件;
11、安装完整性检查工具:如Tripwire;
12、安装、检测并提高应用程序的可靠性;
13、开始工作;

1、安装系统前的准备工作;
*;简化:建议在一台主机上只运行一至两种服务。使用多台服务器,而不要只用一台超级服务器;

去完成所有的工作。这样便于应用的隔离,可靠性的提高,也易于排错及进行软/硬件地升级。切;

记,只运行必要的程序。;
*;硬件:考虑使用串囗终端安装系统。保证网络环境的可信以及封闭。;
*;保证安全地下载软件:在一个封闭的或者没有对外路由的网络环境中,通过ftp与网络内部其它;

主机传送文件。如果网络并不是完全封闭的,要在文件传输完成后,马上断开网络的连接,以减;

小遭到攻击的机会。添加一个以/tmp为HOME目录的非特权用户专门用来在主机间传送文件。;
*;清楚系统的用途、硬件的配置等。有时为了提高系统的可靠性可能会导致某些程序不能正常运;

行,如CDE/OpenWindows,Disksuite及Legato运行都需要RPC的支持,但是在用作为防火墙的主机;

上,要关闭RPC。;
*;理解各种应用的工作方式非常重要(比如应用如何使用端囗、设备及文件),这样才可以判断哪;

些方面需要加强及存在的风险。;

2、系统的初始化安装;
连接串囗终端,加电,按下Stop-A键使主机进入到OK提示符模式,使用boot;cdrom;-install命令;

开始安装过程。;
选择以最终用户包(end;user;bundle)或者核心包(core)模式进行安装,设置主机名,终端类型,;

IP地址,所在时区等,不要开启任何的命名服务,如NIS或NFS。不要打开电源管理或者mount远程;

文件系统。;
注:对于Solaris;8系统,使用F4功能键可以对最终用户包内的软件进行定制。;

分区注意的事项:;
*;对于syslog、web、新闻、代理服务器或者防火墙过滤主机,要为其/var文件系统建立一个独立;

的,较大磁盘空间的分区。将要存储大量数据的服务器,如web或ftp服务器,也应该使用独立的;

分区存储其数据。;
*;将/usr及/opt分区与根区分离,使得/usr及/opt分区可以使用只读(read-only)方式mount。;
*;如果一定要使用Disksuite工具,设置RAID及磁盘镜像,需要为其保留5MB的磁盘空间。使用;

Veritas的文件卷管理,还需要额外的两个分区。;
*;分区实例:;
2GB硬盘,不在本地记录日志,将在/opt下安装大量程序;
200MB;/(root+var),200MB;swap,400MB;/usr,1.2GB;on;/opt;
2GB硬盘,为程序保留最大空间,/var分区独立(使得日志文件不会把根区占满);
1.6GB;/(root+usr+opt),200MB;swap,200MB;/var;
9GB硬盘,主机提供服务;
200MB;/,500MB;swap,2GB;/usr,5GB;/opt,1GB;/var;

系统重启;

为root设置一个不易破解的囗令(7到8位,包含数字、字母及标点符号)。安装过程将保留在;

/var/sadm/install_data/install_log文件中。;
以最终用户包模式安装时,需要手工安装帮助文件(man;pages)。如果用核心包模式安装,为了使;

用帮助文件,还需要安装SUNWlibc包:;
cd;/cdrom/cdrom0/s0/Solaris_2.6/Product
pkgadd;-d;.;SUNWman;SUNWdtma;SUNWjvman;SUNWpmowm;SUNWolman;SUNWxwman;
cd;/cdrom/cdrom0/s0/Solaris_2.7/Product
pkgadd;-d;.;SUNWman;SUNWdtmaz;SUNWdtma;SUNWjvman;SUNWpmowm;SUNWxwman;
针对Solaris8系统,使用2号光盘安装标准帮助文件及java帮助;
cd;/cdrom/cdrom0/Solaris_*/Product
pkgadd;-d;.;SUNWman;SUNWjvman;SUNWj2man;

此外,还需要安装一些常用的工具,如解压缩及其它shell。;
pkgadd;-d;.;SUNWgzip;SUNWbash;SUNWbzip;SUNWtcsh;SUNWzlib;

升级索引,以便使用“man;-k;keyword”命令时,搜索相关的帮助:;
/usr/lib/makewhatis;/usr/man
/usr/lib/makewhatis;/usr/openwin/man

使用核心包模式安装的用户,还需要安装其它常用的软件包,如:;
Terminfo:SUNWter;
Accounting:SUNWaccr;SUNWaccu;
NTP:SUNWntpr;SUNWntpu;
UCB;tools:SUNWscpu;
Man;pages;tools:SUNWlibC;SUNWdoc。;

下载并安装Sun的最新推荐安装补丁包到/opt/install目录:;
2.6;SPARC;2.6_Recommended.tar.Z;
7;SPARC;7_Recommended.zip;
7;Intel;7_x86_Recommended.zip;
8;SPARC;8_Recommended.zip;
8;Intel;8_x86_Recommended.zip;

*;安装补丁之前,阅读README文件并保存系统已经安装的补丁列表,解压缩补丁包文件。;
cd;/opt/install;;
showrev;-p;>;patches.before;;
unzip;-q;8_*Recommended.zip;
注:如果只安装了核心包,showrev命令将不能使用,使用patchadd;-p命令代替。;
在Solaris7系统中使用patchadd命令,需要对命令做以下改动:;
cd;/usr/sbin
mv;patchadd;patchadd-orig
sed;s//xpg4//;patchadd-orig;>;patchadd
chown;root:bin;patchadd
chmod;555;patchadd

*;进入解压缩补丁包后产生的目录,使用下面两种方法执行安装角本文件:;
a);在新安装的系统中,使用带有nosave参数的安装命令,可以节省磁盘空间:;
cd;8_*Recommended;./install_cluster;-nosave;
b);在需要可能进行反安装补丁文件的系统中,使用如下命令进行补丁的安装,这时将在;

/var/sadm/pathc目录下保留备份文件。补丁只可以逐个加以删除,系统没有提供;

"deinstall_cluster"的命令。;
./install_cluster;
*;检查实际安装了哪些补丁;
cd;..
showrev;-p;>;patches.after
diff;patches.after;patches.before
*;查看安装日志文件,返回值8代表没有安装,返回值2表示补丁安装正常。;
more;/var/sadm/install_data/Solaris_*Recommended_log;

重新启动系统,以root登录。;

3、安装YASSP工具包;
安装YASSP(Yet;Another;Solaris;Security;Package,目前的版本是Yassp;beta#15)加强Solaris;

系统的安全性,它包含多个编译好的安全工具。;
注:安装YASSP后,所有有改动过的文件将在/yassp.bk/Before_DATE目录中保留备份。;

将YASSP安全工具的安装过程记录到文件中,提供日后查询:;
script;-a;/yasspinstall.log;
下载yassp.tar.gz文件,保存到/opt/install目录中,切断网络连接。;
ifconfig;hme0;down;
解压缩软件包,产生yassp目录;
gunzip;<;yassp.tar.gz;|;tar;xf;-;
cd;yassp;;ls;-l;
Yassp包文件详细清单;
drwxr-xr-x;2;7644;7001;512;Nov;20;06:54;RCS;
-r--------;1;7644;100;14482;Nov;20;06:54;README;
-r--r--r--;1;7644;100;8418;Nov;20;06:52;WhatIsNew;
-rw-r--r--;1;7644;7001;66;May;21;2000;admin;
-rw-r--r--;1;7644;100;61952;Nov;20;01:20;aubtocsin;
lrwxrwxrwx;1;7644;100;9;Nov;22;10:13;aubtocsin_i386;->;aubtocsin;
lrwxrwxrwx;1;7644;100;9;Nov;22;10:13;aubtocsin_sparc;->;aubtocsin;
-rw-r--r--;1;7644;100;136192;Nov;20;06:54;gnugzip_i386;
-rw-r--r--;1;7644;100;147456;Nov;20;06:54;gnugzip_sparc;
-rw-r--r--;1;7644;100;903168;Nov;20;06:54;gnurcs_i386;
-rw-r--r--;1;7644;100;1021952;Nov;20;06:54;gnurcs_sparc;
drwxr--r--;3;7644;100;512;Nov;20;06:53;html_doc;
-r-xr-xr-x;1;7644;100;5323;Nov;20;05:25;install.sh;
-rw-r--r--;1;7644;100;3180544;Nov;20;06:54;openssh_i386;
-rw-r--r--;1;7644;100;4121600;Nov;20;06:54;openssh_sparc;
-rw-r--r--;1;7644;100;26624;Nov;20;06:54;parcdaily;
lrwxrwxrwx;1;7644;100;9;Nov;22;10:12;parcdaily_i386;->;parcdaily;
lrwxrwxrwx;1;7644;100;9;Nov;22;10:12;parcdaily_sparc;->;parcdaily;
-rw-r--r--;1;7644;100;231936;Nov;20;06:54;prftripw_i386;
-rw-r--r--;1;7644;100;293888;Nov;20;06:54;prftripw_sparc;
-rw-r--r--;1;7644;100;1290240;Nov;20;06:54;secclean;
lrwxrwxrwx;1;7644;100;8;Nov;22;10:12;secclean_i386;->;secclean;
lrwxrwxrwx;1;7644;100;8;Nov;22;10:12;secclean_sparc;->;secclean;
-rw-r--r--;1;7644;100;271360;Nov;20;06:54;wvtcpd_i386;
-rw-r--r--;1;7644;100;609792;Nov;20;06:54;wvtcpd_sparc;
执行安装文件;
./install.sh;
依据提示安装下列工具:SECclean;GNUrcs;GNUgzip;PARCdaily;WVtcpd(包括rpcbind);PRFtripw;

OPENssh;
SECclean是一个脚本文件,它通过对文件权限的配置,tcp/ip的调整,关闭不必要的服务加;

强系统的可靠性。;

Yassp;beta#15中的问题:;
1.;SSH:;
*;Yassp在Solaris7及以前版本的系统中不安装SSH,只在Solaris8中安装。;
*;Scp的服务器端需要如下设置:;
chmod;755;/usr/local;/opt/local;
ln;-s;/usr/local/bin/scp;/usr/bin/scp;
2.;Solaris;8;10/00版本的系统中,有一个新的守护进程'picld',是一种对客户端发布特定平台;

信息的机制,picld进程负责维护及控制客户及内插模块对PICL(Platform;Information;and;

Control;Library)信息的访问。;
关闭此进程;
mv;/etc/rcS.d/S95picld;/etc/rcS.d/.S95picld;
mv;/etc/init.d/picld;/etc/init.d/.picld;
3.;Tocsin是Yassp内含的入侵检测工具,用来侦听网络数据包,缺省情况下不安装。;
pkgadd;-d;aubtocsin;

配置YASSP;
安装完YASSP后,首先浏览一下/etc/yassp.conf配置文件,带有注释,很容易理解。查看;

yassp.conf及yassp的man;pages帮助。一般情况下,除了SSH,不需要改动什么。;
1.;帐号;
*;守护进程及用户(DEF_UMASK)的缺省umask值都被设置成为077,禁止组及全局访问。在某些情;

况下,可能需要将umask值改为027,使组可读。;
*;cleanup_passwd脚本会关闭/usr/passwd文件中的用户帐号,但是不会删除他们。Yassp.conf文;

件中的USERDENIED变量包含缺省的列表。加入非标准的应用帐号。;
*;如果确定删除某些帐号,将其加入yassp.conf文件中的USEDELETED变量项中,并从新执行;

cleanup_passwd。;
注:此操作可能会产生无主文件或导致错误,如删除uucp将使tip命令不能使用。;
*;ROOTALLOWED变量包含所有UID为0的帐号列表,cleanup_passwd会关闭所有列表之外的UID为0的;

帐号。;
2.;Cron:;
*;非root用户需要使用at/cron命令时,需要编辑/etc/cron.d目录下的allow/deny文件。;
*;root的cron列表将会被替换。如果在安装yassp之前,你已经在cron中添加了条目,这些条目需;

要重新加入,旧的cron列表备份于/yassp.bk目录中。;
*;yassp的daily脚本用来整理日志记录,在cron中将其注释掉。;
3.;SSH:Yassp将同时安装SSH的客户及服务器端;
*;最新版本的SSH可以被“tcp;wrapper"保护,因此使用前,要在/etc/hosts.allow文件中放开,;

缺省是全部关闭。;
*;SSH服务对所有主机开放,编辑/etc/hosts.allow加入;
sshd;:;ALL;
*;允许X11转发使用SSH,编辑/etc/hosts.allow加入;
sshdfwd-X11;:;LOCAL;
*;提示:在hosts.allow/deny,SSH的规则中不要使用反向finger查询。;
*;在SSH中,通常使用'scp'传送文件。';sftp'使用于新的SSH2中,如果需要,在;

/etc/sshd_config中打开它,当然,由于这是一项新的功能,因此有可能会存在问题。Subsystem;

sftp;/opt/local/libexec/sftp-server;
*;不接受RSA用户认识,而只允许使用囗令。;
RSAAuthentication;no;
*;检查服务器(/etc/sshd_config)及客户端(/etc/ssh_config)其它的设置,如设置只允许特定;

的用户使用SSH,禁止用守护进程的帐号使用SSH。;
4.;Syslog:在Solaris8系统中,Yassp会以‘-t'参数启动syslog,因此它将不接受其它主机;

syslog连接。因此,如果你想使用一台中心log服务器,需要设置;
SYSLOGFLAGS="";
5.;如果需要启动INETD服务,设置RUNINETD值为YES,并在/etc/inetd.conf中开放相应的服务。;

缺省情况下,yassp会关闭所有的服务。如果确实需要,使用tcp;wrapper,编辑;

/etc/hosts.allow和/etc/hosts.deny文件中对访问服务进行限制。;
6.;nscd守护进程;
*;不启动nscd进程,有些应用,如Netscape的http代理服务将不能工作,设置NETSCAPE或者NSCD;

变量可以设置激活nscd进程。;
*;关闭nscd进程将加重nameserver的负载,因此,通过调整resolv.conf文件中nameserver的顺序;

,可以达到平衡负载的目的。;
7.;编辑登录的标语文件,对非法的用户访问提出警告。对于telnet和SSH,登录前的文件为;

/etc/issue,登录后的文件是/etc/motd;
8.;Yassp更改/etc/system文件内的参数对Solaris系统进行调整。;
*;Yassp增加对文件描述的字节限制,rlim_fd_max=1024、rlim_fd_cur=256。有些应用也许会需;

要更大的值,根据需要改动。;
*;将小于8的soft-limit增加到256对一些应用会有帮助。Hard-limit不需要改变,仍为1024。系;

统管理员需要知道哪些应用需要更多的hard-limit值,并对/etc/system做相应的改动。;
*;设置sys:coredumpsize=0从而不产生corefiles。当然有时候,管理员需要corefiles进行分析;

,但是也要注意corefiles可能会泄露敏感的信息。;
*;其它的设置:;
*Increase;SVR4;style;ptys;
set;pt_cnt=128;
*Attempt;to;prevent;and;log;stack-smashing;attacks;
set;noexec_user_stack=1;
set;noexec_user_stack_log=1;
*enable;advanced;memory;paging;technique;
*NOT;NEEDED;ON;Solaris;8:set;priority_paging=1;

set;tcp:tcp_conn_hash_size=16348;
*If;the;NFS_PORTMON;variable;is;set,then;clients;are;required;to;use;
*privileged;ports(portsSet;nfssrv:nfs_portmon=1;
*max;users;processes;in;here;too;
set;maxuprc=150;

关闭记录动作,删除yassp安装目录;
#exit;
Script;done,file;is;/yasspinstall.log;
#cd;;rm;-rf;/opt/install/yassp;

重新启动,使改动生效;
#reboot;

重新启动后,检查控制台上的错误信息,如果有,更正之。以root登录,检查网络联接情况,应;

该只有ssh和syslog(Solaris7及以前版本)在监听:;
netstat;-a;

UDP:;IPv4;
Local;Address;Remote;Address;State;
--------------------;--------------------;-------;
*.*;Unbound;
TCP:;IPv4;
Local;Address;Remote;Address;Swind;Send-Q;Rwind;Recv-Q;State;
--------------------;--------------------;-----;------;-----;------;-------;
*.*;*.*;0;0;24576;0;IDLE;
*.ssh;*.*;0;0;32768;0;LISTEN;
*.*;*.*;0;0;32768;0;IDLE;

--------------------------------------------------------------------------------;

标签: