发布日期:2015-10-08 11:48 来源: 标签: 系统维护 系统安全 Solaris操作系统 系统安全加固
本章节我们将学习Solaris操作系统安全加固,希望对大家有所帮助。

1补丁更新

 由SUN发布的Solaris系统补丁对于系统运行的安全性有非常重要的意义。建议由专人负责补丁的下载、记录、统计和管理工作,建立相应的补丁更新记录。

 实施步骤:

1.1 以root身份登陆系统

# su – root;

1.2 设置许可模式

# umask 022;

1.3 创建“patch”的目录,并确保“patch”目录所在的文件系统中有足够的磁盘空间。

# mkdir /var/tmp/patch

# cd /var/tmp/patch

1.4 采用匿名的方式登陆到sunsolve(sunsolve.sun.com)站。下载对应的操作系统版本的PatchReport文件,根据PatchReport文件下载对应的补丁文件,补丁文件包括Recommended补丁和独立补丁。

解压大补丁包

#unzip 7*Recommended.zip

1.5 重新启动计算机到Single(单用户)模式并安装所有补丁:

关闭系统;

#/usr/sbin/shutdown -y -g0 -i0;

启动到单用户模式;

ok boot –s;

输入root帐号的密码;

加载所有的文件系统;

#mountall;

进入刚才解压补丁后的目录:

#cd /var/tmp/patch/*.Recommended/;

输入命令安装补丁:./install_cluster

 注:可以忽略安装过程中的出错信息。大部分出错信息是报告该Solaris主机系统上没有安装一个特定的软件或已经安装过某个补丁的信息。重新启动计算机;Solaris的补丁是系统安全中重要组成部分,通常情况下安装补丁不会对系统造成任何不良的影响。

 安装过程中会出现若干安装错误提示,忽略不记。

 注意事项:

在安装系统补丁的过程中不能够使系统断电或非正常安装完毕而重新启动系统,这样可能会造成系统不能正常启动的严重后果。

 2禁止危险的Remote网络服务

实施步骤:

2.1 如果没有特别的需求,应该停止所有R系列服务。

建议在/etc/inet/inetd.conf文件中注释掉检测内容栏所列的行

① 进入inetd.conf目录

#cd /etc/inet

② 打开inetd.conf写权限

#chmod u+w /etc/inet/inetd.conf

③ 编辑inetd.conf

#vi /etc/inet/inetd.conf

在如下相应行首前加”#”

#login stream    tcp    nowait    root    /usr/sbin/in.rlogind   in.rlogind

#shell stream    tcp    nowait    root    /usr/sbin/in.rshd       in.rshd

#exec  stream    tcp    nowait    root    /usr/sbin/in.rexecd     in.rexecd

#comsat  dgram    ucp    wait     root    /usr/sbin/in.comsat     in.comsat

#talk  dgram    ucp    wait      root    /usr/sbin/in.talkd       in.talkd

④ 关闭inetd.conf写权限

#chmod u-w /etc/inet/inetd.conf

⑤ 重新启动inetd进程

#ps –ef | grep inetd,取得inetd对应的PID

#kill –HUP PID(PID为inetd进程号)

 如果管理员觉得有必要保留R系列服务,需要严格配置/etc/hosts.equiv,确保其为空,同时检测$HOME/.rhost文件,严禁出现像“++”这样的配置行。

① 查看hosts.equiv文件内容,确保内容为空。

#cat /etc/hosts.equiv

② 查找所有.rhost文件,保证文件内无“++“配置行

#find / -name .rhost 

 注意事项:

在更改此文件前,需要作好备份工作:

#cp -p /etc/inet/inetd.conf /etc/ inetd.conf.backup

如果系统不是绝对需要保留R系列服务的话,关闭了R系列服务不会对系统造成任何不良的影响。

 3 禁止无用的危险网络服务

实施步骤:

如果没有特别的需求,应该停止这些服务。

建议在/etc/inet/inetd.conf文件中注释掉检测内容栏所列的行,此项配置在重新启动inetd进程后生效。

① 进入inetd.conf目录

#cd /etc/inet

② 打开inetd.conf写权限

#chmod u+w /etc/inet/inetd.conf

③ 编辑inetd.conf

#vi /etc/inet/inetd.conf

在如下相应行首前加”#”

#printer  stream  tcp  nowait  root  /usr/lib/print/in.lpd   in.lpd

#finger   stream  tcp    nowait  nobody  /usr/sbin/in.fingerd  in.fingerd

#uucp    stream  tcp    nowait  root    /usr/sbin/in.uucpd    in.uucpd

#name    dgram  udp   wait    root    /usr/sbin/in.tnamed   in.tnamed

④ 关闭inetd.conf写权限

#chmod u-w /etc/inet/inetd.conf

⑤ 重新启动inetd进程:

#ps –ef | grep inetd,取得inetd对应的PID

#kill –HUP PID(PID为inetd进程号)。

如果本机不需要提供邮件服务,屏蔽上述脚本;

#mv /etc/rc2.d/S88sendmail /etc/rc2.d/s88sendmail

如果确实需要提供邮件服务,考虑禁用Solaris自带的sendmail,换用其他更新结构的邮件系统,如:qmail、postfix等;

 注意事项:

升级前备份邮件系统资料。

 4设置关键文件许可权限

实施步骤:

① 修改inetd.conf文件权限

#chmod 600 /etc/inet/inetd.conf

 5 telnet服务安全配置

实施步骤:

如果没有特别的需求,应该停止Telnet服务。

建议在/etc/inet/inetd.conf文件中注释掉检测内容栏所列的行,此项配置在重新启动inetd进程后生效。

① 进入inetd.conf目录

#cd /etc/inet

② 打开inetd.conf写权限

#chmod u+w /etc/inet/inetd.conf

③ 编辑inetd.conf

#vi /etc/inet/inetd.conf

在如下相应行首前加”#”

#telnet  stream  tcp  nowait  root  /usr/sbin/in.telnetd  in.telnetd

④ 关闭inetd.conf写权限

#chmod u-w /etc/inet/inetd.conf

⑤ 重新启动inetd进程

#ps –ef | grep inetd,取得inetd对应的PID

#kill –HUP PID(PID为inetd进程号)。

 如果实际应用需要,无法关闭telnetd,则应该加强如下内容:

l 系统中各个账号口令的强度,(严禁使用账号名,生日等作口令。)口令应该大小写结合、至少8位长度、包含特殊字符等;

l 使用ssh或ssh2代替、包括加密TCP/Telnet服务;

l 使用Tcp Wrapper限制可以使用本机Telnet服务的客户端IP,同时修改Banner,隐藏系统信息;

 注意事项:

如果系统不是绝对需要保留Telnet服务的话,关闭了Telnet服务不会对系统造成任何不良的影响。

 6 ftp服务安全配置

实施步骤:

如果没有特别的需求,应该停止Ftp服务。

建议在/etc/inet/inetd.conf文件中注释掉检测内容栏所列的行,此项配置在重新启动inetd进程后生效。

① 进入inetd.conf目录

#cd /etc/inet

② 打开inetd.conf写权限

#chmod u+w /etc/inet/inetd.conf

③ 编辑inetd.conf

#vi /etc/inet/inetd.conf

在如下相应行首前加”#”

#ftp     stream  tcp    nowait  root  /usr/sbin/in.ftpd   in.ftpd

④ 关闭inetd.conf写权限

#chmod u-w /etc/inet/inetd.conf

⑤ 重启inetd进程

#ps –ef | grep inetd,取得inetd对应的PID

#kill –HUP PID(PID为inetd进程号)。

 如果因为实际应用需要,无法关闭ftpd,应该根据不同的需要加强ftpd的配置: 

① 创建/etc/ftpusers文件:

#touch /etc/ftpusers

② 编辑ftpusers文件

#vi /etc/ftpusers

把所有的系统账户加入到这个文件里, 使下述帐号无法通过FTP登陆系统: 

root daemon sys bin adm lp smtp uucp nuucp listen 

nobody noaccess news ingres audit admin sync nobody4 

③ 修改/etc/ftpuser文件的权限: 

# chmod 644 /etc/ftpusers 

 注意事项:

l 如果系统不是绝对需要保留Ftp服务的话,关闭了Ftp服务不会对系统造成任何不良的影响;

l 如果有运行Ftp服务器的需求,按照正常的配置方法配置后,同时不会对系统运行造成任何不良的影响。

 7 关闭动态路由

实施步骤:

创建notroute文件

#touch /etc/notroute

 8设置口令策略

实施步骤: 

① 编辑/etc/default/passwd,

#vi /etc/default/passwd

② 设置:PASSLENGTH=8 # 最短密码长度

 9禁止系统随带缺省不用的账号

实施步骤:

① 编辑/etc/shadow 

#chmod u+w /etc/shadow

#vi /etc/shadow

② 将需要禁止帐户的**用NP代替

noaccess:NP:60002:60002:No Access User:/:/sbin/noshell

#chmod u-w /etc/shadow

需要禁止的帐户有:

bin, daemon, adm, lp, smtp, sys, uucp, nuucp, noaccess

 10设置root用户的umask值

实施步骤:

① 键入umask命令查询umask值

#umask

② 检查/etc/default/login,确保umask为022

#vi /etc/default/login

 11 审计root用户的登录信息和失败登录日志

实施步骤:

① 修改login权限

#chmod u+w /etc/default/login

② 编辑文件

#vi /etc/default/login

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

SYSLOG= YES #syslog记录root的登陆失败,成功的情况。 

③ 关闭login文件写权限

#chmod u-w /etc/default/login

 12 防止遭受本地溢出和远程溢出攻击

实施步骤:

① 修改login权限

#chmod u+w /etc/system

② 编辑文件

#vi /etc/system

在/etc/system文件中加入:

set noexec_user_stack=1 ?防止在堆栈中执行 

set noexec_user_stack_log=1 ?当某人试图运行增加一个记录。

③ 关闭system文件写权限

#chmod u-w /etc/system

 在更改此文件前,需要作好备份工作:

#cp -p /etc/system /etc/system.backup

 注意事项:

此项设置能够满足对常规缓冲区溢出攻击程序的控制和记录工作,并且设置后不会对系统造成任何不良的影响,但是,随着现代缓冲区溢出攻击技术的日趋成熟,即使设置了不可执行堆栈,也不可能完全杜绝缓冲区溢出攻击。

 13禁止Root用户远程登陆

实施步骤:

① 编辑/etc/default/login

#vi /etc/default/login

增加下面的内容:

CONSOLE=/dev/console

相关评论

专题信息
    对系统进行安全加固的目的是通过深入了解系统的设计模型、当前的安全运行状况、曾经发生的安全事件、系统使用的安全策略,提出能够提高系统安全防御水平的加固建议。本教程就将讲解常用应用系统安全加固方法。