教你如何配置安全的SOLARIS系统.docx

上传人:b****4 文档编号:6859892 上传时间:2023-05-10 格式:DOCX 页数:13 大小:29.71KB
下载 相关 举报
教你如何配置安全的SOLARIS系统.docx_第1页
第1页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第2页
第2页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第3页
第3页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第4页
第4页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第5页
第5页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第6页
第6页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第7页
第7页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第8页
第8页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第9页
第9页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第10页
第10页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第11页
第11页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第12页
第12页 / 共13页
教你如何配置安全的SOLARIS系统.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

教你如何配置安全的SOLARIS系统.docx

《教你如何配置安全的SOLARIS系统.docx》由会员分享,可在线阅读,更多相关《教你如何配置安全的SOLARIS系统.docx(13页珍藏版)》请在冰点文库上搜索。

教你如何配置安全的SOLARIS系统.docx

教你如何配置安全的SOLARIS系统

教你如何配置安全的SOLARIS系统

一、帐号和口令安全策略

1.1更改口令文件、影像文件、组文件的权限  

  /etc/passwd必须所有用户都可读,root用户可写–rw—r—r—  

  /etc/shadow只有root可读–r-————-——  

  /etc/group必须所有用户都可读,root用户可写–rw—r—r—  

1.2修改不必要的系统帐号  

  移去或者锁定那些系统帐号,比如sys、uucp、nuucp、listen、lp、adm等等,简单的办法是在/etc/shadow的password域中放上NP字符.还可以考虑将/etc/passwd文件中的shell域设置成/bin/false  

1。

3修改口令策略  

  修改/etc/default/passwd文件  

  MAXWEEKS=4口令至少每隔4星期更改一次  

  MINWEEKS=1口令至多每隔1星期更改一次  

  WARNWEEKS=3修改口令后第三个星期会收到快要修改口令的信息PASSLENGTH=6用户口令长度不少于6个字符

二、用户授权安全策略

2.1移去组及其它用户对/etc的写权限。

  

  执行命令#chmod—Rgo-w/etc  

2.2禁止root远程登录  

  在/etc/default/login中设置  

  CONSOLE=/dev/concle  

2.3setuid和setgid特殊权限。

  

  Setuid是指设置程序的有效执行用户身份(uid)为该文件的属主,而不是调用该程序进程的用户身份。

Setgid与之类似.Setuid和setgid用1s—1显示出来为s权限,存在于主人和属组的执行权限的位置上.系统设置特殊权限,使用户执行某些命令时,具有root的执行权限,命令执行完成,root身份也随之消失。

因此特殊权限关系系统的安全,可执行命令#find/—perm—4000—print寻找系统中具有setuid权限的文件,存为列表文件,定时检查有没有这之外的文件被设置了setuid权限。

  

2。

4审计并日志所有以root身份的登陆情况  

  添加或编辑/etc/default/login文件如下:

  

  SYSLOG=YES  

  syslog记录root的登陆失败,成功的情况。

  

2.5设置远程登陆会话超时时间  

  添加或编辑/etc/default/login文件如下:

  

  TIMEOUT=300  

2。

6确定登陆需要密码验证  

  添加或编辑/etc/default/login文件如下:

  

  PASSREQ=YES  

2.7UMASK设置  

  umask命令设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入.profile文件,就可控制该用户后续所建文件的存取许可。

umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可.  

  安装配置完操作系统之后确认root的umask设置是077或者027,执行  

  /usr/bin/umask[—S]确认。

  

2.7。

1增加或修改/etc/default/login文件中如下行  

  UMASK=027  

2.7.2并增加上行到如下的文件中:

  

  /etc/。

login/etc/。

profile/etc/skel/local。

cshre  

  /etc/skel/local。

login/etc/skel/local.profile  

2。

8用户环境配置文件的PATH或者LD_LIBRARY_PATH中移去“.”。

  

  从如下的文件中移走”.",确认root的PATH环境变量设置是安全的,应该只包含/usr/bin:

/sbin:

/usr/sbin,避免当前工作目录。

出现在PATH环境变量中,这有助于对抗特洛伊木马.  

  #echo$PATH|grep":

."确认  

  /.login/etc/.login   /etc/default/login   

  /。

cshrc/etc/skel/local.profile/etc/skel/local。

cshrc  

  /.profile /etc/skel/local。

login/etc/profile

三、网络与服务安全策略

3。

1关闭不用的服务  

3。

1。

1在inetd.conf中关闭不用的服务  

  首先复制/etc/inet/inetd。

conf。

#cp/etc/inet/inetd。

conf/etc/inet/inetd。

conf.backup然后用vi编辑器编辑inetd.conf文件,对于需要注释掉的服务在相应行开头标记“#"字符即可。

  

3.1.2在Services中关闭不用的服务  

  首先复制/etc/inet/services。

#cp/etc/inet/services/etc/inet/services。

backup  

然后用vi编辑器编辑Services文件,对于需要注释掉的服务在相应行开头标记“#”字符即可.  

在inetd.conf、services中进行修改后,找到inetd进程的ID号,用kill向其发送HUP信号进行刷新.举例如下。

  

  #ps—ef|grepinetd  

  #kill-HUP进程号或/usr/sbin/inetd–s–t  

  增加—t选项以加强网络访问控制  

3.1。

3根据需要关闭不用的服务  

  可关闭如下服务:

tftp、ypupdate(NIS程序)、dtspcd(邮件收发程序)、rquotad、name、uucp(网络实用系统)、snmp(简单网络管理协议)等。

  

3.2关闭系统的自启动服务  

  在系统/etc/rc*。

d的目录下,根据需要停用以下服务:

  

  sendmail把/etc/rc2。

d/S88sendmai更名为tc/rc2.d/X88sendmail  

  DNS将/etc/rc2.d/S72inetsv注释掉in.named一项  

  lp把/etc/rc2。

d/S80lp更名为/etc/rc2.d/X80lp  

  uucp把/etc/rc2.d/S70uucp更名为/etc/rc2。

d/x70uucp  

  snmp把/etc/rc3.d/S76snmpdx和/etc/rc3.d/S77dmi更名为/etc/rc3.d/s76snmpdx和/etc/rc3。

d/s77dmi  

  autoinstall把/etc/rc2.d/S72autoinstallg更名为/etc/rc2。

d/s72autoinstall  

3。

3加强FTP服务安全  

3。

3。

1禁止系统用户的FTP服务  

  把所有的系统账户加入到/etc/ftpusers(solaris9的该文件现更改为/etc/ftpd/ftpusers)文件:

  

  root、daemon、sys、bin、adm、lp、uucp、nuucp、listen、nobody  

3。

3。

2禁止FTP&服务暴露系统敏感信息  

  编辑/etc/default/ftpd文件,假如文件不存在就新建一个,在文件中的加进入下一项:

  BANNER=XXXX(XXXX可以任意改变为任何一个版本信息),将该系统版本信息屏蔽.  

3。

3。

3ftp服务会话日志记录  

  /etc/inet/inetd.conf中的ftpd为(记录)  

  ftpstreamtcpnowaitroot/usr/sbin/in.ftpdin。

ftpd–dl  

3.4加强Telnet服务安全  

3。

4.1禁止Telnet服务暴露系统敏感信息  

  防止telnetdbanner泄露信息,修改/etc/default/telnetd文件,加入以下一项:

BANNER=XXXX(XXXX可以任意改变为任何一个版本信息),将该系统版本信息屏蔽.  

3.4.2更改Telnet服务端口号  

  修改文件/etc/services的Telnet一项,将端口号改为非23,使用Telnet服务时需注明端口号.  

3。

5加强NFS服务安全  

  检查/etc/dfs/dfstab文件share语句,缺省时共享目录为可读可写,加入“—o”选项增加安全,“—orw"可读可写,“—oro”只读,可授权某系统和某用户。

  

3。

6防止TCP序列号预测攻击(ip欺骗)  

  在/etc/default/inetinit中增加设置来防止TCP序列号预测攻击(ip欺骗)TCP_STRONG_ISS=2  

3.7系统路由安全  

  如果Solaris机器有超过一块的网卡的话,它将会在不同网卡间转发数据包,这一行为可以在/etc/init。

d/inetinit中得到控制。

要在Solaris2。

4或者更低版本机器下关闭它,可以将ndd—set/dev/ipip_forwarding0添加于在inetinit文件未尾.在Solaris2.5以上,只要touch/etc/notrouter。

网络系统用静态路由比较安全。

  

3.8调整网络参数,加强网络安全  

  使IPforwarding和sourecrouting(源路)由无效  

  在Inetinit中使IPforwarding和sourecrouting(源路)由无效(假如有超过一个网络接口的话)。

在/etc/init.d/inetinit中增加下面所示设置:

  

  禁止系统转发定向广播包  

  #ndd—set/dev/ipip_forward_directed_broadcasts0  

  关闭原路由寻址:

#ndd-set/dev/ipip_forward_src_routed0  

  禁止系统转发IP包:

#ndd—set/dev/ipip_forwarding0  

  缩短ARP的cache保存时间:

(defaultis5min)  

  #ndd—set/dev/arparp_cleanup_interval2min  

  关闭echo广播来防止ping攻击(#defaultis1)  

  #ndd—set/dev/ipip_respond_to_echo_broadcast0

四、防止堆栈缓冲益出安全策略

  入侵者常常使用的一种利用系统漏洞的方式是堆栈溢出,他们在堆栈里巧妙地插入一段代码,利用它们的溢出来执行,以获得对系统的某种权限。

要让你的系统在堆栈缓冲溢出攻击中更不易受侵害,你可以在/etc/system里加上如下语句:

setnoexec_user_stack=1  

setnoexec_user_stack_log=1  

  第一句可以防止在堆栈中执行插入的代码,第二句则是在入侵者想运行exploit的时候会做记录。

五、日志系统安全策略

5.1定时检查系统日志文件  

  Solaris系统通过syslogd进程运行日志系统,配置文件/etc/syslog.conf,可编辑此文件让日志系统记录更多信息,需重启/usr/sbin/syslogd进程,重读取配置文件。

通常日志系统的文件分别存放在两个位置,/var/adm保存本地系统日志,/var/log保存登录其它系统时日志。

  

5。

2设置utmpx和wtmpx文件权限,确保日志系统安全.  

  文件/var/adm/utmpx记录了所有当前登录到系统中的用户,文件/var/adm/wtmpx记录了系统所有的登录和注销.这两个文件是以数据库的格式存在的。

设置权限#chmod544/var/adm/utmpx  

        #chmod544/var/adm/wtmpx

六、其它系统安全设置

6。

1crontab命令  

6.1.1不要使用crontab–e命令,因为它会在/tmp下建立所有用户都可读的crontab副本访问cron系统。

用如下的方法:

  

编辑文件:

mycronfile  

crontab

6.1。

2在/etc/default/cron文件中增加如下行:

CRONLOG=YES记录所有的crontab行为  

6。

2对su的纪录  

  创建/etc/default/su文件  

  SULOG=/var/adm/sulog  

  SYSLOG=YES  

  CONSOLE=/dev/console  

  PATH=/usr/bin:

  

  SUPATH=/usr/sbin:

/usr/bin  

6.3为OpenBoot设置密码  

  在Solaris中设置密码  

  #eepromsecurity-password  

  在OpenBoot中设置密码  

  okpassword  

  在Solaris中设置安全级别(command)  

  #eepromsecurity—mode=command  

  在OpenBoot中设置安全级别(command)  

  oksetenvsecurity—modecommand  

  在OpenBoot中设置安全级别(full)  

  oksetenvsecurity-modefull  

6。

4限制.rhosts和/etc/hosts.equiv文件的使用  

  配置文件具有两种功能:

r系列命令使用这些文件来访问系统;在某用户的目录下存在。

rhosts文件或/etc/hosts.equiv文件配有某系统,任何用户都可以通过rlogin不需要口令以该用户的身份登录到系统。

因此要为这些文件加锁,先创建它们,然后修改其属性为零即可。

这样除了root用户就没有其它用户能创建或修改它们了。

  

  /usr/bin/touch   /。

rhosts /etc/hosts.equiv  

  /usr/bin/chmod 0 /。

rhosts /etc/hosts.equiv  

  。

rhosts文件可以作为一个典型的后门文件使用,运行下面的命令全局查找。

rhosts文件  

#find-name“。

rhosts"—print  

6.5给系统打补丁  

  象其它的系统一样,Solaris系统也有它的漏洞,其中的一些从性质上来说是相当严重的。

SUN公司长期向客户提供各种版本的最新补丁,放在http:

//网站.可用#showrev–p命令检查系统已打的补丁或到/var/sadm/patch目录下查已打过的补丁号,用patchadd命令给系统打补丁。

  

七、Setuid设置和Solaris操作系统安全

  在Solaris中,文件除了读、写、执行权限外,还有一些特殊权限。

Setuid和setgid是其中的一类.它与Solaris系统的安全关系紧密。

  

  Setuid是指设置程序的有效的执行用户身份(uid)为该文件的主人,而不是调用该程序的进程的uid。

Setgid与之类似。

Setuid和setgid用ls–l显示出来为s权限,存在于主人和属组的执行权限的位置上。

  

  这种权限的设置方法如下:

  

  只设setuid:

chmod4xxxfilename(xxx为一般读、写、执行权限)  

  只设setgid:

chmod2xxxfilename  

  同时设setuid和setgid:

chmod6xxxfilename  

  取消两种权限:

chmod0xxxfilename  

  这种权限怎么用?

  

  举个例子来说,假如某一命令(程序)的主人是root用户,并且该文件有setuid属性,但是该文件的读、写、执行权限的属性表明普通用户user1可以执行该命令,那么就表示:

当该用户执行该命令时,他具有root的执行身份,并获得相应的权限。

一旦该命令执行完成,该身份也随之消失。

  

  为什么系统中需要有这样的权限呢?

请执行以下操作:

  

  7.1。

$ls–l/etc/shadow/bin/passwd  

      —r—sr—sr-x3rootsys9979219992月12/bin/passwd  

      -r-——-————1rootsys2611月313:

12/etc/shadow  

  /etc/shadow文件由于存有用户的加密口令信息,对系统的安全至关重要,因此权限很严,只有root凭其对系统的至高无上的权限才得以对/etc/shadow可读可写。

但是系统必须允许普通用户也能修改自己的口令。

要让他们对/etc/shadow可写,又不能可读,而且可写又不能允许他们改别人的口令,怎么办?

系统就采取这样一个办法:

做一个程序,也就是/bin/passwd,通过它可以在不显示文件内容的情况下直接修改/etc/shadow文件.可是这个程序怎么能有这样的权限?

因为系统赋予它setuid权限,而且它属于root.这样,用户在使用/bin/passwd改口令时就有root权限.由于/bin/passwd命令本身功能的局限性,用户并不能用它做更多的不利于系统安全的事。

  

  7.2。

用普通用户身份修改口令  

  $passwd  

    Enterloginpassword:

****  

    Newpassword:

******  

    Re—enternewpassword:

******  

    Passwd(SYSTEM):

passwdsuccessfullychangedforxxx。

  

    可以成功。

  

  7.3。

用超级用户修改/bin/passwd的权限  

  #chmod0555/bin/passwd  

  7.4.再重复2,是否还成功?

当然不。

  

  7。

5.把/bin/passwd的权限恢复原状。

  

    #chmod6555/bin/passwd  

  对此可以打一个生动的比喻:

有一个绝密机关,不得已必须有一些不能见这些秘密的人进来做一些事情。

于是授权一些特殊的“车辆”(没有窗户,门紧闭,所以看不到外面。

只有一个小洞允许乘坐的人伸出一只手臂),带着所乘坐的人开到要去的地方,允许它办完事情马上带他出来.这样是不是很安全?

不一定。

如果“车辆”没有经过精挑细选是有很多“门窗”,那系统可就危险了。

  

  这种安全威胁在Solaris中也有可能出现。

比如做一下下面这个实验:

  

  7。

6.$vi/etc/shadow  

    /etc/shadow:

Permissiondenied。

  

  7。

7.用超级用户身份  

  #chmod6555/bin/vi  

  #chownroot/bin/vi  

  7。

8。

这次再用普通用户身份试一试第6步,有什么结果?

这次你能以普通用户身份修改      /etc/shadow了!

但是  

$more/etc/shadow仍然不成功,说明在执行/bin/passwd时有超级用户权限,平时仍是普通用户身份。

  

  再来看一个令人不安的情况:

  

  7.9.用超级用户身份  

  #chmod6555/bin/ksh  

  #chownroot/bin/ksh  

  7.10。

用普通用户身份  

  $ksh  

  #  

  发生了什么情况?

普通用户不需要root口令就变成了root!

  

  好可怕。

如果有一个用户曾有一次获得超级用户权限,并通过类似的方式给自己设置了后门(也可能放了一个类似的文件在他自己的家目录中),以后他就可以随时变成超级用户了。

  

怎么能避免setuid的不安全影响,又利用其方便的地方?

这里有几点建议:

  

关键目录应严格控制写权限。

比如/,/usr等.  

  对不管是root帐号还是普通用户帐号的保密都有足够的重视.最好不要设置类似于guest、public、test之类公用的容易猜出口令的帐号。

  

  对系统中应该具有setuid权限的文件作一列表,定时检查有没有这之外的文件被设置了setuid权限。

  

  下面有一个自己编的小程序与大家分享。

  

  程序功能描述:

检查有没有/usr/secu/masterlist文件记录之外的其它文件被设置了setuid权限  

  事先要求:

在系统调试完成,所有需要安装的软件安装好以后,执行下面命令生成检查对照文件  

  #mkdir–p/usr/secu  

  #find/—perm–4000–print>/usr/secu/masterlist  

  程序:

  

  cd/tmp  

  [—fsecrcheck]&&rmsecrcheckfind/—perm—4000—print〉secrcheckforfin`catsecrcheck`dogrep—w$f/usr/secu/masterlist〉/dev/nullif["$?

”!

="0"];thenecho$fisnotinlist  

  fidone  

  rmsecrcheck在需要对系统做检查时,执行本shell程序。

也可以放在定时进程中定时检查。

程序由于需要在整个文件系统中做查找操作,需要比较长的时间。

  

    请您作完本文中的实验后,别忘把文件的权限改回原状。

八、Solaris系统安全之审计

作为C2安全等级操作系统(公安部二级),Solaris最主要的安全功能之一就是审计功能,本文将简单介绍Solaris审计功能的使用和启动。

目的:

纪录系统和用户事件,并对审计过程自身进行保护。

这里值得注意的就是纪录事件的细度。

Solaris提供了很强大的审计功能,甚至可以纪录每一条调试信息,但是这样做是不明智的,因为很多信息对用户没用,而且会使系统性能下降。

审计细度需要管理员根据用途和需要自行订制.  

实现:

  

  8.1。

查看日志  

  1)history文件  

  通常在根目录下,隐藏文件,记录了root执行的命令  

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2