- 论坛徽章:
- 0
|
目 录
第1章 概述 5
1.1 概述 5
1.2 总体原则 5
第2章 Solaris安全设置建议 5
2.1 操作系统补丁 5
2.2 用户和口令 6
2.2.1 帐号设置 6
2.2.2 密码设置 6
2.2.3 root用户shell设置 7
2.2.4 不允许设置root远程登录 7
2.2.5 设置telnet登录超时时长 7
2.2.6 建立login的记录 7
2.3 网络服务 8
2.3.1 网络服务 8
2.3.2 关闭不必要服务 8
2.4 系统安全工具设定 9
2.4.1 取消rlogin/rsh服务 9
2.4.2 防止堆栈溢出 9
2.4.3 系统路径PATH 10
2.4.4 允许热插拔键盘鼠标 10
2.5 文件系统安全 10
2.5.1 文件权限设置 10
2.5.2 SUID位 11
2.6 网络安全 11
2.6.1 禁止动态路由 11
2.6.2 不提示telnet信息 11
2.6.3 不提示FTP信息 12
2.7 系统日志 12
关键词:
安全、补丁、服务、Solaris、UNIX
摘 要:
本文详细讨论了IP Hotel产品使用的Solaris操作系统的安全设置。
缩略语清单:
参考资料清单:
请参考以下网站:http://security.nsfocus.com
http://www.cns911.com
第1章 概述
“为了网络的安全,请您随手关门”
1.1 概述
当Solaris初始安装好后,默认并没有对系统安全进行设置,这个时候的系统,根本就不符合一般的商业电子信息安全标准,这些标准需要Server必须具有配置管理控制,网络访问控制,口令管理控制,以及屏幕加锁控制。本文将讨论关于Solaris 7服务器的系统安全设置和自检标准,主要针对IPHotel产品的应用,其他服务器也可以参考。
1.2 总体原则
道高一尺,魔高一丈。系统安全没有一劳永逸,不可能经过一次设置后就永远安全了,经常更换密码和及时更新系统补丁是系统管理员必须做的,有时还要多关注黑客信息,这方面没有权威,要知道,漏洞从来都不是CERT或DDN发现的。
本文总体原则:
1、保持最新系统补丁
2、关闭不需要的服务
3、删除不必要工具或修改权限
第2章 Solaris安全设置建议
2.1 操作系统补丁
操作系统往往都含有安全漏洞,而这些漏洞又往往为网络黑客所熟知。为了系统的安全,请及时更新操作系统补丁。
可以从以下位置获取:
1、sunsolve.sun.com
2、YF-FTP/apps/宽带产品软件包/2.受控软件/7.IP Hotel/SolarisPatch
从服务器上下载7_Recommended.zip文件到客户端
将7_Recommended.zip文件用ftp方式上传到IP Hotel、Portal服务器
在服务器上执行
#unzip 7_Recommended.zip
#cd 7_Recommended
# ./install_cluster
注意:操作系统打完补丁重启后才可以生效。系统重启请按流程操作,首先切断用户下线,退出数据库,然后再重启。对于tServer版本请使用/usr/shell/haltsys.ksh重启机器。
可以通过命令# uname -a查看系统所打的补丁
# uname -a
SunOS hotel 5.7 Generic_106541-21 sun4u sparc SUNW,Ultra-4
注意,没有打过补丁的,红色字体部分是09,这里红色部分为21,说明打的是最新的补丁。
2.2 用户和口令
口令的重要性每个人都知道,但是由于种种原因(主要是怕麻烦),还是有很多人把密码设置的很简单,比如root密码是root、admin、manager、12345、和主机名一样等,对于有心破坏的人来说,这种密码的设置跟没设一样。
2.2.1 帐号设置
IP Hotel服务器做到专机专用,除了系统正常运行和IPHotel服务器运行所需的帐户外,不要有其他帐户,正常的用户应该有也仅有:
root/daemon/bin/sys/adm/lp/uucp/nuucp/listen/nobody/noaccess/nobody4/sybase
其中sybase用户是安装sybase数据库管理系统时添加的。
可以使用#more /etc/passwd 查看用户列表。
2.2.2 密码设置
sybase用户和root用户的密码设置要求至少8位,必须包含以下元素:大写字母、小写字母、数字、符号、空格、下划线等的至少3项。
2.2.3 root用户shell设置
root用户的默认shell为/sbin/sh,绝对禁止修改此shell为其他shell。
2.2.4 不允许设置root远程登录
1)设置不允许root用户远程telnet:
编辑/etc/default/login
#vi /etc/default/login
# If CONSOLE is set, root can only login on that device.
# Comment this line out to allow remote login by root.
#
CONSOLE=/dev/console 【注意这一行前面不能有#,默认就是没有#】
2)设置不允许使用ftp的用户列表
编辑/etc/ftpusers
#vi /etc/ftpusers
在里面加上sybase、daemon、bin、sys、adm、lp、uucp、nuucp、listen、nobody、noaccess、nobody4,注意每个用户名都要单独列一行。
2.2.5 设置telnet登录超时时长
#vi /etc/default/login
修改TIMEOUT=120 (秒 0-900)
注意:TIMEOUT默认是被注释的,需把前面的#删除才能生效。
2.2.6 建立login的记录
#touch /var/adm/loginlog
#chmod 600 /var/adm/loginlog
#chgrp sys /var/adm/loginlog
loginlog这个文件记录了连续5次的错误登录,但是只对文字终端的错误有作用,对图形界面的错误登录是没有作用的。
2.3 网络服务
2.3.1 网络服务
有许多用不着的服务默认的处于使能状态,它们中可能存在一些漏洞,攻击者利用这些漏洞有时甚至不需要一个账户就能控制Server。关闭这些不需要的服务来保护系统,你可以用如下方法来关闭:
1、备份inetd.conf
#cp /etc/inetd.conf /etc/inetd.conf.bak
2、编辑/etc/inetd.conf文件
#vi /etc/inetd.conf
未被激活的服务是在前面被“#“符号注释掉的
建议注释掉所有的服务,只留下:
ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd
telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
rstatd/2-4 tli rpc/datagram_v wait root /usr/lib/netsvc/rstat/rpc.rstatd rpc.rstatd
fs stream tcp wait nobody /usr/openwin/lib/fs.auto fs
100083/1 tli rpc/tcp wait root /usr/dt/bin/rpc.ttdbserverd rpc.ttdbserverd
3、重启inet进程
#pkill -HUP inet
2.3.2 关闭不必要服务
关闭以下服务(重启后才能生效):
1、NFS
#mv /etc/rc2.d/K28nfs.server /etc/rc2.d/_K28nfs.server
#mv /etc/rc2.d/S73nfs.client /etc/rc2.d/_S73nfs.client
2、sendmail
#mv /etc/rc2.d/S88sendmail /etc/rc2.d/_S88sendmail
3、打印服务
#mv /etc/rc2.d/S80lp /etc/rc2.d/_S80lp
#mv /etc/rc2.d/S80spc /etc/rc2.d/_S80spc
4、SNMP
#mv /etc/rc2.d/K07snmpdx /etc/rc2.d/_K07snmpdx
#mv /etc/rc3.d/S76snmpdx /etc/rc3.d/_S76snmpdx
5、DMI服务
#mv /etc/rc3.d/S77dmi /etc/rc3.d/_S77dmi
2.4 系统安全工具设定
2.4.1 删除rlogin/rsh配置文件
安装完毕的系统应该没有/etc/hosts.equiv和/.rhosts以及各home目录下的.rhosts,如果发现有这些文件,使用rm命令删除它们。
2.4.2 防止堆栈溢出
至少90%以上的安全问题都是来自所谓的“堆栈溢出”。攻击者通过给一个以root身份运行的程序提供比它所预期的输入多得多的东西,使被攻击程序无法处理而改变执行流程去执行攻击者指定的代码。
Solaris 7具备把用户堆栈设成不可执行的能力,以使这种攻击不能得逞。要使能这个特点:
1)对/etc/system文件做个拷贝
#cp /etc/system /etc/system.bak
2)编辑/etc/system文件
#vi /etc/system
到文件的最后,插入以下几行:
set noexec_user_stack=1
set noexec_user_stack_log=1
2.4.3 系统路径PATH
绝对禁止把当前目录“.”放到PATH中,尤其是放在PATH的第一项。
通过以下命令查看当前PATH:
# echo $PATH
./:/usr/sbin:/usr/bin:/usr/j2sdk/bin:/usr/j2sdk/jre/bin:/usr/tomcat/bin:/usr/apache/bin
在 /etc/profile里查找PATH=…的字段,把前面的./删除即可。
重新登录即可生效。
2.4.4 允许热插拔键盘鼠标
#vi /etc/default/kbd
在文件中找到——#KEYBOARD_ABORT=disable这一行
将前边的#去掉,然后保存后推出。
然后:
#cd /usr/bin
#./kbd -a disable
#./kbd -i
这样即可 ,不用重起就可见效,重起以后不会丢失。
注意:设置了以上选项后,在系统运行时将不能使用STOP+A。
2.5 文件系统安全
2.5.1 文件权限设置
1)保证系统配置文件的所有人是root;
文件名 新权限 文件所有人owner
/etc/passwd和/etc/shadow 600 root
/etc/security 750 root:root
/var/adm/vold.log 660 root:root
/var/adm/spellhist 660 bin:bin
/var/adm/messages 660 root:root
/var/log/syslog 660 root:root
/var/adm/wtmp 660 adm:adm
/var/adm/wtmpx 660 adm:adm
/var/adm/utmp 640 root:bin
/var/adm/utmpx 640 root:bin
#chmod 600 /etc/passwd /etc/shadow
#chmod 750 /etc/security
#chmod 660 /var/adm/vold.log /var/adm/spellhist /var/adm/messages
#chmod 660 /var/adm/wtmp /var/adm/wtmpx /var/adm/utmp /var/adm/utmpx
#chmod 660 /var/log/syslog
2.5.2 SUID位
许多setgid和setuid程序都只是由root运行的,或者是由某些特定用户或组运行,那就可以将其setuid位 移去,下面是一个Solaris 7上setuid程序的列表,如果你的系统中有你所没见过的setuid程序,要小心。
在系统刚刚安装好或新安装软件后运行下列命令:
#mkdir /mylog 【新建一个目录来存放信息】
#find / -perm -4000 -print>/mylog/uidinfo.`hostname`
保存此文件。注意在系统升级或安装软件或移动带可执行程序系统目录后更新该文件。
可不定时手工或在系统crontab中定时安排运行下列指令:
#find / -perm -4000 -print>/mylog/uidinfo.now
#diff /mylog/uidinfo.`hostname` /mylog/uidinfo.now
若diff指令无输出,表明一切正常。否则,请查看有无被闯入痕迹。
下面是一个安装了sybase+IPHotel Server +Portal Server的suid文件列表,供参考:
2.6 网络安全
2.6.1 禁止动态路由
#touch /etc/notroute
2.6.2 不提示telnet信息
#touch /etc/default/telnetd 【login界面提示】
#echo "BANNER=" >/etc/default/telnetd
#chmod 444 /etc/default/telnetd
#rm /etc/motd 【进入系统后提示】
2.6.3 不提示FTP信息
#touch /etc/default/ftpd
#echo "BANNER=" >/etc/default/ftpd
#chmod 444 /etc/default/ftpd
2.7 系统日志
在日常维护中,时时检查系统日志是防范攻击的必不可少的步骤。以下列出常用的日志文件的说明:
文件名称 说明
/var/adm/lastlog 记载用户最后一次成功登录消息
/var/adm/loginlog 记录不良的尝试记录
/var/adm/messages 记录输出到系统主控台以及由syslog系统服务程序产生的消息,一般系统管理员在这里查看报警信息和错误信息
/var/adm/utmp 记录当前登录的每个用户
/var/adm/utmpx 扩展的utmp
/var/adm/wtmp 记录每一次用户登录和注销的信息
/var/adm/wtmpx 扩展的wtmp
/var/adm/sulog 记录使用su指令的情况
/var/cron/log 调度日志 |
|