查看: 10945|回复: 0

如何配置安全的SOLARIS系统

[复制链接]
发表于 2006-9-9 19:27:49 | 显示全部楼层 |阅读模式
一、帐号和口令安全策略  
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 -R go-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.7 UMASK设置  
    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 | grep inetd  
    #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(solaris 9的该文件现更改为/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为(记录)  
    ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd –dl  

3.4加强Telnet服务安全  
3.4.1禁止Telnet服务暴露系统敏感信息  
    防止telnetd banner泄露信息 ,修改/etc/default/telnetd文件 ,加入以下一项:BANNER=XXXX(XXXX可以任意改变为任何一个版本信息),将该系统版本信息屏蔽.  

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

3.5加强NFS服务安全  
    检查/etc/dfs/dfstab文件share语句,缺省时共享目录为可读可写,加入“-o”选项增加安全,“-o rw”可读可写,“-o ro”只读,可授权某系统和某用户。  

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

3.7系统路由安全  
    如果Solaris机器有超过一块的网卡的话,它将会在不同网卡间转发数据包,这一行为可以在/etc/init.d/inetinit中得到控制。要在Solaris 2.4或者更低版本机器下关闭它,可以将ndd -set /dev/ip ip_forwarding 0添加于在inetinit文件未尾。在Solaris 2.5以上,只要touch /etc/notrouter.网络系统用静态路由比较安全。  

3.8调整网络参数,加强网络安全  
    使IP forwarding和sourec routing(源路)由无效  
    在Inetinit中使IP forwarding和sourec routing(源路)由无效(假如有超过一个网络接口的话)。在/etc/init.d/inetinit中增加下面所示设置:  
    禁止系统转发定向广播包  
    #ndd -set /dev/ip ip_forward_directed_broadcasts 0  
    关闭原路由寻址 :#ndd -set /dev/ip ip_forward_src_routed 0  
    禁止系统转发IP包:#ndd -set /dev/ip ip_forwarding 0  
    缩短ARP的cache保存时间: (default is 5 min)  
    #ndd -set /dev/arp arp_cleanup_interval 2 min  
    关闭echo广播来防止ping攻击( # default is 1 )  
    #ndd -set /dev/ip ip_respond_to_echo_broadcast 0

四、防止堆栈缓冲益出安全策略  
    入侵者常常使用的一种利用系统漏洞的方式是堆栈溢出,他们在堆栈里巧妙地插入一段代码,利用它们的溢出来执行,以获得对系统的某种权限。要让你的系统在堆栈缓冲溢出攻击中更不易受侵害,你可以在/etc/system里加上如下语句:set noexec_user_stack=1  
set noexec_user_stack_log =1  
    第一句可以防止在堆栈中执行插入的代码,第二句则是在入侵者想运行exploit的时候会做记录。

五、日志系统安全策略  
5.1定时检查系统日志文件  
    Solaris系统通过syslogd进程运行日志系统,配置文件/etc/syslog.conf,可编辑此文件让日志系统记录更多信息,需重启/usr/sbin/syslogd进程,重读取配置文件。通常日志系统的文件分别存放在两个位置,/var/adm保存本地系统日志,/var/log保存登录其它系统时日志
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表