一帐号和口令安全策略
更改口令文件影像文件组文件的权限
/etc/passwd 必须所有用户都可读root用户可写 –rwr—r—
/etc/shadow 只有root可读 –r
/etc/group 必须所有用户都可读root用户可写 –rwr—r—
修改不必要的系统帐号
移去或者锁定那些系统帐号比如sysuucpnuucplistenlpadm等等简单的办法是在/etc/shadow的password域中放上NP字符还可以考虑将/etc/passwd文件中的shell域设置成/bin/false
修改口令策略
修改/etc/default/passwd文件
MAXWEEKS= 口令至少每隔星期更改一次
MINWEEKS= 口令至多每隔星期更改一次
WARNWEEKS= 修改口令后第三个星期会收到快要修改口令的信息 PASSLENGTH= 用户口令长度不少于个字符
二用户授权安全策略
移去组及其它用户对/etc的写权限
执行命令#chmod R gow /etc
禁止root远程登录
在/etc/default/login中设置
CONSOLE=/dev/concle
setuid和setgid特殊权限
Setuid是指设置程序的有效执行用户身份(uid)为该文件的属主而不是调用该程序进程的用户身份Setgid与之类似Setuid和setgid用s 显示出来为s权限存在于主人和属组的执行权限的位置上系统设置特殊权限使用户执行某些命令时具有root的执行权限 命令执行完成 root身份也随之消失因此特殊权限关系系统的安全可执行命令#find / perm print 寻找系统中具有setuid权限的文件存为列表文件定时检查有没有这之外的文件被设置了setuid权限
审计并日志所有以root身份的登陆情况
添加或编辑/etc/default/login文件如下
SYSLOG= YES
syslog记录root的登陆失败成功的情况
设置远程登陆会话超时时间
添加或编辑/etc/default/login文件如下
TIMEOUT=
确定登陆需要密码验证
添加或编辑/etc/default/login文件如下
PASSREQ= YES
UMASK设置
umask命令设置用户文件和目录的文件创建缺省屏蔽值若将此命令放入profile文件就可控制该用户后续所建文件的存取许可umask命令与chmod命令的作用正好相反它告诉系统在创建文件时不给予什么存取许可
安装配置完操作系统之后确认root的umask设置是或者执行
/usr/bin/umask [S] 确认
增加或修改/etc/default/login文件中如下行
UMASK=
并增加上行到如下的文件中
/etc/login /etc/profile /etc/skel/localcshre
/etc/skel/locallogin /etc/skel/localprofile
用户环境配置文件的PATH或者LD_LIBRARY_PATH中移去
从如下的文件中移走确认root的PATH环境变量设置是安全的应该只包含/usr/bin:/sbin:/usr/sbin
避免当前工作目录出现在PATH环境变量中这有助于对抗特洛伊木马
#echo $PATH | grep : 确认
/login /etc/login /etc/default/login
/cshrc /etc/skel/localprofile /etc/skel/localcshrc
/profile/etc/skel/locallogin /etc/profile
三网络与服务安全策略
关闭不用的服务
在nf中关闭不用的服务
首先复制/etc/inet/nf #cp /etc/inet/nf /etc/inet/nfbackup
然后用vi编辑器编辑nf文件
对于需要注释掉的服务在相应行开头标记#字符即可
在Services中关闭不用的服务
首先复制/etc/inet/services #cp /etc/inet/services /etc/inet/servicesbackup
然后用vi编辑器编辑Services文件对于需要注释掉的服务在相应行开头标记#字符即可
在nfservices中进行修改后找到inetd进程的ID号用kill向其发送HUP信号进行刷新举例如下
#ps ef | grep inetd
#kill HUP 进程号 或/usr/sbin/inetd –s –t
增加t选项以加强网络访问控制
根据需要关闭不用的服务
可关闭如下服务tftpypupdate(NIS程序) dtspcd(邮
件收发程序) rquotadnameuucp(网络实用系统)
snmp(简单网络管理协议)等
关闭系统的自启动服务
在系统/etc/rc*d的目录下根据需要停用以下服务:
sendmail 把/etc/rcd/Ssendmai更名为tc/rcd/Xsendmail
DNS 将/etc/rcd/Sinetsv注释掉innamed一项
lp 把/etc/rcd/Slp更名为 /etc/rcd/Xlp
uucp 把/etc/rcd/Suucp更名为/etc/rcd/xuucp
snmp 把/etc/rcd/Ssnmpdx和 /etc/rcd/Sdmi 更名 为/etc/rcd/ssnmpdx和/etc/rcd/sdmi
autoinstall 把/etc/rcd/Sautoinstallg更名为/etc/rcd/sautoinstall
加强FTP服务安全
禁止系统用户的FTP服务
把所有的系统账户加入到/etc/ftpusers(solaris 的该文件现更改为/etc/ftpd/ftpusers)文件
root daemonsysbinadmlpuucpnuucplistennobody
禁止FTP&服务暴露系统敏感信息
编辑/etc/default/ftpd文件假如文件不存在就新建一个在文件中的加进入下一项BANNER=XXXX(XXXX可以任意改变为任何一个版本信息)将该系统版本信息屏蔽
ftp服务会话日志记录
/etc/inet/nf中的ftpd为(记录)
ftp stream tcp nowait root /usr/sbin/inftpd inftpd –dl
加强Telnet服务安全
禁止Telnet服务暴露系统敏感信息
防止telnetd banner洩露信息 修改/etc/default/telnetd文件 加入以下一项BANNER=XXXX(XXXX可以任意改变为任何一个版本信息)将该系统版本信息屏蔽
更改Telnet服务端口号
修改文件/etc/services的Telnet一项将端口号改为非使用Telnet服务时需注明端口号
加强NFS服务安全
检查/etc/dfs/dfstab文件share语句缺省时共享目录为
可读可写加入o选项增加安全o rw可读可写
o ro只读可授权某系统和某用户
防止TCP序列号预测攻击(ip欺骗)
在/etc/default/inetinit中增加设置来防止TCP序列号预测攻击(ip欺骗)TCP_STRONG_ISS=
系统路由安全
如果Solaris机器有超过一块的网卡的话它将会在不同网卡间转发数据包这一行为可以在/etc/initd/inetinit中得到控制要在Solaris 或者更低版本机器下关闭它可以将ndd set /dev/ip ip_forwarding 添加于在inetinit文件未尾在Solaris 以上只要touch /etc/notrouter网络系统用静态路由比较安全
调整网络参数加强网络安全
使IP forwarding和sourec routing(源路)由无效
在Inetinit中使IP forwarding和sourec routing(源路)由无效(假如有超过一个网络接口的话)在/etc/initd/inetinit中增加下面所示设置:
禁止系统转发定向广播包
#ndd set /dev/ip ip_forward_directed_broadcasts
关闭原路由寻址 #ndd set /dev/ip ip_forward_src_routed
禁止系统转发IP包#ndd set /dev/ip ip_forwarding
缩短ARP的cache保存时间: (default is min)
#ndd set /dev/arp arp_cleanup_interval min
关闭echo广播来防止ping攻击( # default is )
#ndd set /dev/ip ip_respond_to_echo_broadcast
四防止堆栈缓沖益出安全策略
入侵者常常使用的一种利用系统漏洞的方式是堆栈溢出他们在堆栈里巧妙地插入一段代码利用它们的溢出来执行以获得对系统的某种权限要让你的系统在堆栈缓沖溢出攻击中更不易受侵害你可以在/etc/system里加上如下语句set noexec_user_stack=
set noexec_user_stack_log =
第一句可以防止在堆栈中执行插入的代码第二句则是在入侵者想运行exploit的时候会做记录
五日志系统安全策略
定时检查系统日志文件
Solaris系统通过syslogd进程运行日志系统配置文件/etc/nf可编辑此文件让日志系统记录更多信息需重启/usr/sbin/syslogd进程重读取配置文件通常日志系统的文件分别存放在两个位置/var/adm保存本地系统日志/var/log保存登录其它系统时日志
设置utmpx和wtmpx文件权限确保日志系统安全
文件/var/adm/utmpx记录了所有当前登录到系统中的用户文件/var/adm/wtmpx记录了系统所有的登录和注销这两个文件是以数据库的格式存在的设置权限#chmod /var/adm/utmpx
#chmod /var/adm/wtmpx
六其它系统安全设置
crontab命令
不要使用crontab –e命令因为它会在/tmp下建立所有用户都可读的crontab副本访问cron系统用如下的方法
编辑文件mycronfile
crontab6.1.2在/etc/default/cron文件中增加如下行: CRONLOG=YES 记录所有的crontab行