教你如何配置安全的SOLARIS系统.docx
《教你如何配置安全的SOLARIS系统.docx》由会员分享,可在线阅读,更多相关《教你如何配置安全的SOLARIS系统.docx(7页珍藏版)》请在冰点文库上搜索。
教你如何配置安全的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/.pro
/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.pro
/.pro/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根据需要关闭不用的服务
可关闭如下服务:
t(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/(solaris9的该文件现更改为/etc/)文件:
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为(记录)
tcpnowaitroot/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
crontab6.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公司长期向客户提供各种版本的最新补丁,放在网站。
可用#showrev–p命令检查系统已打的补丁或到/var/sadm/patch目录下查已打过的补丁号,用patchadd命令给系统打补丁。