当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 如何增强solaris安全

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 如何增强solaris安全


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 92 ::
收藏到网摘: n/a

本文介绍如何一步步加强Solaris SPARC/x86操作系统的安全性。这里介绍的内容并不适合于各种可能的安装情况,仅仅以最普遍的情况为基础进行讨论。本文内容稍加变化就可用于其他Unix系统。

注意

1) 在所有步骤未完之前保证本机系统和外部网络隔绝(注: 拔掉网线即可)

2) 只安装操作系统的核心部分以及那些非常必要的软件包

细节

1. 安装配置完操作系统之后确认root的umask设置是077或者027,执行/usr/bin/umask [-S] 确认。

2. 确认root的PATH环境变量设置是安全的,应该只包含/usr/bin:/sbin:/usr/sbin,避免当前工作目录.出现在PATH环境变量中,这有助于对抗特洛伊木马。

echo $PATH | grep ":." 确认

3. 检查/etc/rc2.d和/etc/rc3.d目录下的所有"S"打头的脚本文件,将那些启动不必要服务的脚本文件改名,确认新文件名不以"S"打头。重启动确认这些变动生效,检查/var/adm/messages日志文件,用ps -elf检查是否还有无关进程启动。

4. 编辑/etc/default/login文件,确认 CONSOLE=/dev/console 有效。为了阻止root用户远程ftp,在/etc/ftpusers文件中增加root帐号。

5. 删除/etc/hosts.equiv和/.rhosts文件,编辑/etc/inetd.conf文件,屏蔽所有r系列服务。ps -ef | grep inetd | awk '{print $2;}' | xargs kill -1迫使修改后的/etc/inetd.conf文件生效。

6. 删除、禁用或者注释掉不必要帐号,包括"sys"、"uucp"、"nuucp"和"listen"。

推荐的做法,将/etc/passwd文件中的口令域设置成"NP",比如

uucp:NP:5:5:uucp Admin:/usr/lib/uucp:

如果使用了/etc/shadow文件,就不要修改/etc/passwd文件,而应该修改/etc/shadow文件中的相应行

uucp:NP:6445::::::

还可以考虑将/etc/passwd文件中的shell域设置成/bin/false

7. /etc/logindevperm文件包含的配置信息用于设置登录相关设备(控制台、键盘等等)的权限,检查该文件中的权限设置,如果必要可以修改成期望值。关于该文件更多信息参看logindevperm(4)手册页。

8. /etc目录下的文件都不应该是同组可写的,通过chmod -R g-w /etc命令取消同组可写权限。

9. 缺省情况下,如果Solaris主机有多块网卡,它们之间的IP转发功能是打开的。对于Solaris 2.4(或者更低版本),在/etc/init.d/inetinit文件的最后增加一行

ndd -set /dev/ip ip_forwarding 0

对于Solaris 2.5(或者更高版本),简单地"touch /etc/notrouter"即可。注意,启动过程中IP转发功能关闭前Solaris主机依旧可以在多块网卡之间进行IP转发,存在小小的潜在安全隐患。

10.通过/etc/auto_*配置文件控制自动mount特性。为了禁止自动mount功能,删除/etc/auto_*配置文件(或者注释掉相关入口点),屏蔽/etc/rc2.d/S74autofs启动脚本。

11.NFS输出通过/etc/dfs/dfstab文件控制,应该删除该文件或者注释掉相关入口点。为了禁止NFS服务守护进程启动,将/etc/rc3.d/S15nfs.server改名。为了阻止本机成为NFS客户端,将/etc/rc2.d/S73nfs.client文件改名。在更改这些启动脚本文件名的时候,确认不以"S"字母打头。

12.仔细查/var/spool/cron/crontabs目录下各个系统帐号(adm、lp、root、sys,uucp)的定时任务文件。可以考虑编辑/etc/default/cron文件,设置如下CRONLOG=YES这将导致对所有定时任务做日志。

13.使用动态路由接受守护进程(比如in.routed、in.rdisc)的主机容易遭受路由相关的攻击,包括DoS和监听。尽可能采用静态路由,在启动脚本文件中用route命令增加静态路由,而不是采用动态路由接受守护进程。

14.为了防止基于ARP协议的攻击,在可能的情况下采用arp命令手工增加ARP入口点,删除不必要的ARP入口点。

15.rpcbind使得RPC客户端可以获得RPC服务的当前端口信息,不幸的是,标准RPC机制不安全,它采用"AUTH_UNIX"验证机制,依赖于远程客户端的IP地址和远程用户

UID进行身份识别,而这两者都是很容易伪造、欺骗、修改的。对于特定用途的服务器,比如WWW服务器、FTP服务器、邮件服务器等等,应该关闭对RPC的支持,这通过更改/etc/rc2.d/S71rpc启动脚本文件名实现。此时必须仔细验证剩余功能不受取消RPC支持的影响。

16./etc/utmp的权限可以设置成0644,而不会影响系统正常运做。在Solaris 2.6/7上这是一个到/var/adm/utmp文件的符号链接,应该chmod 0644 /var/adm/utmp

17.Solaris上很多setuid、setgid程序只有root或者属主自己才会使用,完全可以取消setuid、setgid设置而不影响普通用户的工作。用如下命令找出系统中所有setuid过的程序

# find / -perm -4000 -print

考虑取消如下命令的setuid设置

以下为引用的内容:
 /usr/bin/tip

  /usr/bin/ct

  /usr/bin/cu

  /usr/bin/uuglist

  /usr/bin/uuname

  /usr/bin/uustat

  /usr/lib/exrecover

  /usr/bin/uux

  /usr/lib/accton

  /usr/lib/fs/ufs/ufsrestore

  /usr/bin/uucp

  /usr/lib/news/inews

  /usr/lib/fs/ufs/ufsdump

  /usr/lib/uucp/uuxqt

  /usr/lib/uucp/uucico

  /usr/lib/uucp/remote.unknown

  /usr/lib/uucp/uusched

  /usr/sbin/allocate

  类似的,用如下命令找出系统中所有setgid过的程序

  # find / -perm -2000 -print

考虑取消如下命令的setgid设置

以下为引用的内容:

  /usr/bin/mailx

  /usr/bin/netstat

  /usr/bin/nfsstat

  /usr/bin/write

  /usr/bin/ipcs

  /usr/lib/fs/ufs/ufsdump

  /usr/sbin/arp

  /usr/sbin/prtconf

  /usr/bin/swap

  /usr/sbin/sysdef

  /usr/sbin/wall

  /usr/sbin/dmesg

  /usr/openwin/bin/wsinfo

  /usr/openwin/bin/ff.core

  /usr/kvm/crash

  /usr/openwin/bin/mailtool

  /usr/openwin/bin/xload

  /usr/kvm/eeprom

  /usr/vmsys/bin/chkperm

创建一份系统中剩余setuid、setgid程序的列表,定期检查是否有变化,比如多出其他setuid、setgid程序来。

18.检查系统提供的每一种网络服务是否是工作环境所必需的,如果不是,就屏蔽它.其中一部分在启动脚本中设置,另外一部分在/etc/inetd.conf文件中配置,注释掉不必要的网络服务,ps -ef | grep inetd | awk '{print $2;}' | xargs kill -1

迫使修改后的/etc/inetd.conf文件生效。需要屏蔽的网络服务包括

tftp

systat

rexd

ypupdated

netstat

rstatd

rusersd

sprayd

walld

exec

comsat

rquotad

name

uucp

如果要求系统非常安全,应该用一个只包含了telnet和ftp(如果这两个服务是必需的)服务的inetd.conf代替标准的inetd.conf文件。

19.在漫长的Unix岁月中,in.fingerd暴露出某些安全问题,如果你确实需要提供finger服务,应该以nobody身份启动它,而不是root身份。考虑修改/etc/inetd.conf配置文件中的入口点以愚弄那些进行finger探测的人

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

finger stream tcp nowait nobody /bin/cat cat /etc/drexx-pgp.txt

20.缺省情况下,syslog提供了最小程度的系统日志功能,修改/etc/syslog.conf文件,使得syslog记录更多日志信息,根据日志重要程度分别记录到不同地方。任何与安全相关的日志信息应该加密后存放到文件中。不幸的是,必须重启syslog才能读取新的配置文件。

译者: syslogd(1M)手册页上说kill -HUP可以迫使重读/etc/syslog.conf文件,但是在Solaris 2.6/7的测试中的确发现某些情况下只有重启syslog才能让新配置文件生效,原因未明,建议如有可能先杀掉当前syslog进程,然后重启之。

21.用如下命令设置对EEPROM的口令保护

# /usr/sbin/eeprom security-mode=command

此时Stop-A进入ok状态后,只能执行boot和go命令,其余命令需要口令认证。不幸的是,这样做并不能真正保护机器的安全性,那些物理接近主机的人可以打开机箱替换EEPROM。一般来说,替换EEPROM的同时导致hostid变化,记录本机原始hostid,确认EEPROM未被替换。

译者: 显然这里的说法有误,在Stop-年进入ok状态后,可以手工修改hostid成任意所期望的值。

22.网卡混杂模式使得本机可以监听那些目标地址不是本机的报文。一般来说,运行snoop应用程序的时候,网卡进入混杂模式,如果你自己并没有运行snoop,而你的网卡已经进入混杂模式,很有可能一个黑客进入你的系统并正在监听本