Solaris 服务器安全配置
1.概述
Solaris的安全配置可以从以下几个方面来考虑:
1. 本地安全增强:
限制某些强大命令的访问
设置正确的文件权限
应用组和用户的概念
suid/sgid的文件最少
rw-rw-rw的文件最少等
2. 网络安全增强
使用安全的协议来管理
禁止所有不需要的服务
禁止系统间的信任关系
禁止不需要的帐号
增强认证需要的密码
保护存在危险的网络服务
限制访问等
3. 应用安全增强
限制用户的权限
限制进程所有者的权限
检查应用相关文件权限
限制访问其他系统资源
应用所依赖的suid/sgid文件最少
使用应用本身的安全特性
删除samples和其他无用的组件
4. 监控与警报
日志、完整性、入侵检测等一些使用工具等
2.用户管理
2.1 用户口令文件的权限管理
/etc/passwd 必须所有用户都可读,root用户可写 –rw-r—r—
/etc/shadow 只有root可读 –r--------
/etc/group 必须所有用户都可读,root用户可写 –rw-r—r—
执行以下命令修改这些文件的读写权限:
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
2.2 禁止或删除不必要的系统帐号
移去或者锁定那些系统帐号,比如sys、uucp、nuucp、listen、lp、adm等等,简单的办法是在/etc/shadow的password域中放上NP字符。还可以考虑将/etc/passwd文件中的shell域设置成/bin/false
具体操作方法:
userdel lp ##表示删除lp用户
禁用某个用户:
编辑/etc/password 和/etc/shadow文件,比如:
uucp:NP:5:5:uucpAdmin:/usr/lib/uucp:
uucp:NP:6445::::::
具体需要禁止的帐号有:
bin,daemon,adm,lp,smtp,sys,uucp,nuucp,nobody,noaccess
2.3 修改口令策略
编辑/etc/default/passwd文件
MAXWEEKS=4 口令至少每隔4星期更改一次
MINWEEKS=1 口令至多每隔1星期更改一次
WARNWEEKS=3 修改口令后第三个星期会收到快要修改口令的信息
PASSLENGTH=6 用户口令长度不少于6个字符
2.4 限制使用su的组
只允许sysadmin组执行su命令
#chgrp sysadmin /bin/su
#chmod o-rwx /bin/su
2.5 su的纪录
编辑/etc/default/su文件,主要为了记录每个使用su命令切换用户的记录。
SULOG=/var/adm/sulog
SYSLOG=YES
CONSOLE=/dev/console
PATH=/usr/bin:
SUPATH=/usr/sbin:/usr/bin
2.6 禁止root远程登录
在/etc/default/login中设置CONSOLE=/dev/null,将只允许普通用户在console登录然后su成root,当存在多个系统管理员的时候, 这种设置提供了更好的安全性。
在/etc/ftpusers里加上root,主要为了限制root用户直接使用ftp。
在SSH 配置文件加:permitRootLogin = no ,不允许root直接使用ssh登录系统。
(Solaris 9自带SSH,缺省就禁止root登陆,对 Solaris 9,/etc/ftpusers 不再使用,FTP配置文件都在 /etc/ftpd/ 下面。如果 ftpd 启动时存在 /etc/ftpusers,它会被移动到 /etc/ftpd/下)
3.服务管理
3.1 关闭不使用的系统服务
检查/etc/rc2.d和/etc/rc3.d目录下的所有"S"打头的脚本文件,将那些启动不必要服务的脚本文件改名,确认新文件名不以"S"打头。重启动确认这些变动生效,检查/var/adm/messages日志文件,用ps -elf检查是否还有无关进程启动。
在/etc/init.d/一般需要关闭的服务有:
sendmail
lp
rpc
snmpdx
keyserv
nscd
volmgt
uucp
dmi
autoinstall
3.2 关闭系统内各种不使用的网络服务
检查系统提供的每一种网络服务是否是工作环境所必需的,如果不是,就屏蔽它。其中一部分在启动脚本中设置,另外一部分在/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
in.fingerd
如果要求系统非常安全,应该用一个只包含了telnet和ftp(如果这两个服务是必需的)服务的inetd.conf代替标准的inetd.conf文件。
3.3 关于NFS服务
防火墙主机不应该使用NFS,无论是client还是server
如果必须将防火墙主机配置成NFS server,应该将输出的文件系统限制成只有特定主机才能访问。尽可能只读输出文件系统,比如,在/etc/dfs/dfstab文件中
share -F nfs -o ro=trusted_clients /logs
如果必须将防火墙主机配置成NFS client,记得总是使用"nosuid"选项做mount操 作,比如
mount -F nfs -o nosuid,bg trustserver:/home /trustserver_home
4.系统文件权限
4.1 /etc的存取权限
用chmod -R g-w /etc命令来移去组用户对/etc的写权限。
4.2 限制.rhosts、.netrc和/etc/hosts.equiv文件的使用
限制.rhosts、.netrc和/etc/hosts.equiv文件的使用。r系列命令使用这些文件来访问系统。要为这些文件加锁,先创建它们,然后修改其属性为零即可。这样除了root用户就没有其它用户能创建或修改它们了。
/usr/bin/touch /.rhosts /.netrc /etc/hosts.equiv
/usr/bin/chmod 0 /.rhosts /.netrc /etc/hosts.equiv
.rhosts文件可以作为一个典型的后门文件使用,在某用户的目录下存在.rhosts文件的话,任何用户都可以通过rlogin不需要口令以该用户的身份登录到系统。
运行下面的命令全局查找.rhosts文件
# find –name “.rhosts” –print
4.4 修改文件setuid和setgid的权限
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程序来。
4.3 umask命令
umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入.profile文件,就可控制该用户后续所建文件的存取许可。umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可。
安装配置完操作系统之后确认root的umask设置是077或者027,执行/usr/bin/umask -S 确认,即查看当前用户的读写文件的默认权限。
5.系统优化
5.1 系统数据包转发参数:
打开数据包转发
#ndd –set /dev/ip ip_forwarding 1 (在系统作为路由器的情况中执行)
关闭数据包转发
#ndd –set /dev/ip ip_forwarding 0 (建议把这条命令加入/etc/init.d/inetinit中)
忽略重定向数据包(否则有遭到DOS的隐患)
#ndd –set /dev/ip ip_ignore_redirects 1 (加入/etc/init.d/inetinit)
不发送重定向数据包
#ndd –set /dev/ip ip_send_redirects 0 (加入/etc/init.d/inetinit)
禁止转发定向广播(如果网桥连结则不禁止)
#ndd –set /dev/ip ip_forward_directed_broadcasts 0 (加入/etc/init.d/inetinit)
禁止转发在数据源设置了路由的数据包
#ndd –set /dev/ip ip_forward_src_routed 0 (加入/etc/init.d/inetinit)
5.2 系统网络参数:
利用/etc/notrouter关闭IP转发,创建/etc/notrouter文件,重启计算机(入侵者如果可以访问根目录,可以使用ndd命令重新开启IP转发)
编辑/etc/inet/hosts中的配置
127.0.0.1 Localhost (所有系统都有这一项)
192.168.0.13 Loghost (syslog使用的,指定syslog日志记录的主机机)
192.168.0.109 test_solaris(主机IP和主机名)
/etc/defaultrouter包含了默认路由器的名称或者IP
如果使用了默认路由器,在/etc/inet/hosts文件中必须包含路由器的名称,因为如果设置了路由表,系统将不会运行任何目录服务(DNS、NIS或者NIS+),即系统在有数据包进行路由时直接路由,不需要有DNS或者NIS来指定。
5.3 堆栈缓冲溢出攻击防护设置
至少90%以上的安全问题都是来自“堆栈溢出”。攻击者通过给一个以root身份运行的程序提供比它所预期的输入长得多的字符串,使被攻击程序无法处理而改变执行流程去执行攻击者指定的代码。
操作步骤:
以root用户登录。
对/etc/system文件做个拷贝:
cp /etc/system /etc/system.BACKUP
用编辑器编辑/etc/system文件
到文件的最后,插入以下几行:
set noexec_user_stack=1
set noexec_user_stack_log=1
保存文件,退出编辑器,一旦重启机器,这些改变就会生效。
(对 Solaris 9,可以对单个程序设定堆栈不可执行属性,前提是有该程序的源码,例如:# cc -M /usr/lib/ld/map.noexstk myprogram.c)
5.4 使IP forwarding和sourec routing(源路)由无效
在Inetinit中使IP forwarding和sourec routing(源路)由无效(假如有超过一个网络接口的话)。在/etc/init.d/inetinit中增加下面所示设置:
ndd -set /dev/ip ip_forward_directed_broadcasts 0
ndd -set /dev/ip ip_forward_src_routed 0
ndd -set /dev/ip ip_forwarding 0
5.5 防止TCP序列号预测攻击(ip欺骗)
建议在/etc/default/inetinit中增加如下的生成初始化序列号设置来防止TCP序列号预测攻击(ip欺骗):TCP_STRONG_ISS=2
5.6 使多路广播(multicasting)无效
为了使多路广播(multicasting)无效请在/etc/init.d/inetsvc中注解掉"route add 224.0.0.0"周围的几行。
5.7 设置正确的环境变量PATH
确认root的PATH环境变量设置是安全的,应该只包含/usr/bin:/sbin:/usr/sbin,
避免当前工作目录.出现在PATH环境变量中,这有助于对抗特洛伊木马。
echo $PATH | grep ":."
检查所有缺省启动脚本和root启动脚本,在所有路径变量中删除“.”路径, 包括以下文件:
/.login
/etc/.login
/etc/default/login
/.cshrc
/etc/skel/local.cshrc
/etc/skel/local.login
/etc/skel/local.profile
/.profile
/etc/profile
5.8只允许root进行电源管理
编辑/etc/default/sys-suspend:
将 PERMS=console-owner
改为 PERMS=-
并做 #/bin/chmod 0755 /usr/openwin/bin/sys-suspend
此项配置防止SYN Flood攻击
6.日志管理
6.1 配置系统syslog日志服务
缺省情况下,syslog提供了最小程度的系统日志功能,修改/etc/syslog.conf文件,使得syslog记录更多日志信息,根据日志重要程度分别记录到不同地方。任何与安全相关的日志信息应该加密后存放到文件中。不幸的是,必须重启syslog才能读取新的配置文件。
6.2 日志查看:
目前使用solaris的系统管理员都知道在/var区下有个目录adm,在这个目录下有messags,syslog,sulog,utmp等诸多日志文件,它们记录着solaris系统产生的各种消息日志。
messages记载来自系统核心的各种运行日志,包括各种精灵,如认证,inetd等进程的消息及系统特殊状态,如温度超高等的系统消息,可以说它是系统最重要的日志之一。
sulog中记载着普通用户尝试su成为其它用户的纪录。它的格式为:发生时间 +/-(成功/失败) pts号 当前用户欲su成的用户。
su 04/15 16:35 + pts/6 yiming-root
su 04/15 16:43 + pts/4 root-yiming
su 04/17 08:20 - pts/5 cheny-root
su 04/18 16:36 - pts/4 cheny-root
su 04/19 02:57 + pts/11 lizhao-root
utmp,utmpx这两个文件是不具可读性的,它们记录着当前登录在主机上的用户,管理员可以用w,who等命令来看,下面为who的输出结果,
margin: 0cm 0cm 0pt 42pt; line-height: 12
分享到:
相关推荐
为Solaris服务器配置款安全的防火墙.docx
为Solaris服务器配置款安全的防火墙.doc
在IT行业中,Solaris操作系统是Sun Microsystems(现已被Oracle公司收购)开发的一款强大的UNIX系统,主要应用于服务器和工作站。本文将深入探讨Solaris的安装与配置过程,旨在为用户提供详尽的知识点指导。 首先,...
### Sun Ray for Solaris 安装与配置知识点详解 #### 一、概述 - **产品简介**:Sun Ray Server Software (SRSS) 是一款由 Sun Microsystems 开发的远程桌面接入解决方案,它允许用户通过 Sun Ray 客户端设备访问...
通过以上步骤,可以在Solaris服务器上有效地配置AIDE,确保系统文件的完整性,提高系统的安全性。值得注意的是,除了AIDE,还有其他的入侵检测系统(IDS)和入侵防御系统(IPS),如Snort和Suricata,可以与AIDE结合...
6. 在Windows客户端上,通过IP地址访问Solaris服务器的共享资源 对于更安全的用户验证配置(security = user),需要在Samba配置文件中将`security = share`改回`security = user`,并创建或指定Samba用户。这要求...
本篇将详细讲解如何在Solaris系统中配置NTP(Network Time Protocol,网络时间协议)服务器,确保系统时间与全球标准时间保持一致。 首先,我们要了解NTP的工作原理。NTP是一种用于同步网络中不同计算机时钟的协议...
在Solaris服务器上,首先需要创建或编辑`/etc/inet/ntp.conf`文件,该文件用于定义时间同步服务的相关设置。 ##### 2.2 修改 `ntp.conf` 文件 配置文件应包含以下内容: ``` server 127.127.1.0 prefer fudge 127...
在IT领域,操作系统是计算机硬件与软件应用之间的桥梁,而Solaris作为Sun Microsystems开发的一款Unix操作系统,因其稳定性和高性能,在企业级服务器环境中广泛应用。本文主要针对 Solaris 10 的配置管理进行深入...
SSH(Secure Shell)是 Solaris 10 中的一个安全协议,用于远程登录和文件传输。 FTP(File Transfer Protocol)是另一个常用的文件传输协议。 本文将指导如何在 Solaris 10 下配置 SSH 服务,并使用客户端 FTP ...
《配置Solaris的Samba服务器》 在信息技术领域,跨平台的文件共享是日常工作中不可或缺的一部分。Samba作为一款开源软件,提供了Unix和Windows之间的文件和打印机共享服务,使得不同操作系统之间的协同工作变得可能...
在本文中,我们将深入探讨如何在Solaris 10操作系统上安装和配置Oracle 10g数据库。Oracle 10g是一款强大的关系型数据库管理系统,它在企业级应用中广泛使用,而Solaris 10作为Sun Microsystems开发的UNIX操作系统,...
在 Unix 系统,如 Solaris 10 上部署 Tomcat 是企业级服务器中间件的关键步骤。 **一、Tomcat 下载** 首先,你需要访问 Tomcat 的官方网站(http://tomcat.apache.org/download-60.cgi),根据你的操作系统选择合适...
此外,`/etc/hosts`和`/etc/resolv.conf`文件分别用于静态DNS解析和DNS服务器配置。 4. **软件管理**:Solaris 10使用Pkg工具进行软件包的安装、更新和卸载。`pkgadd`、`pkgrm`和`pkginfo`是常用的命令,另外,`...
中国移动SOLARIS操作系统安全配置规范V2.0是一份详细的安全指南,旨在确保中国移动的SOLARIS操作系统环境能够遵循最佳实践,提高系统的安全性,防止未经授权的访问和潜在的安全威胁。以下是规范中的主要知识点: 1....
根据提供的文件信息,“hcpd服务器_Solaris”,我们可以推断出该文档主要涉及的是在Solaris操作系统上配置和管理DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器的相关知识。接下来,我们将...
### Solaris SSH配置与原理详解 #### 一、引言 在现代网络安全环境中,使用SSH(Secure Shell)作为远程管理工具已经成为业界标准。Solaris操作系统虽然默认开启的是Telnet服务,但从安全角度来看,SSH提供了更为...