分享
 
 
 

Solaris 篇(下)

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

接上篇《Linux 服务器安全配置》,下面把关于solaris的内容继续奉献给大家!

在这里特别感谢大家对我的支持和鼓舞!谢谢!!^_^

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:uucp Admin:/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的输出结果,

yiming pts/29 Jun 12 09:24 (11.22.33.44)

yiming pts/28 Jun 12 08:41 (11.22.33.43)

guest pts/30 Jun 12 09:26 (penetrate.hacker.com)

root pts/19 Jun 12 08:19 (:0.0)

7.系统补丁7.1 检查补丁列表用命令showrev -p显示当前安装到系统中补丁,检查Sun的安全相关的补丁列表。下载安装所有相关安全补丁。定期重新检查补丁列表。并非所有机器都需要安装所有安全补丁,但是那些敏感的、暴露出来公共访问的主机,应该时刻安装最新安全补丁。

7.2 SUN公司Solaris补丁获取方法: 1、从http://sunsolve.sun.com/获取Sun安全补丁

2、国内教育网:http://www.ccert.edu.cn

7.3 补丁安装方法: Cd /solari_package

pkgadd –d .

8.IpFilter防火墙配置8.1 ipfilter说明:8.1.1 ipfilter概念:IP-Filter是目前比较流行的防火墙软件,它目前拥有多种平台的版本(包括:FreeBSD、NetBSD、Solaris、IRIX、HP-UX、Linux、OpenBSD等版本),并且功能强大,安装配置相对比较简单。可以用它来构建功能强大的软件防火墙。

IPFILTER 基于内核模式的防火墙和 NAT 机制,这些机制可以通过用户模式运行的接口程序中进行控制。防火墙规则可以使用 ipf 工具来动态地设置和删除。 NAT 规则可以通过 ipnat工具来维护。 ipfstat工具则可以用来显示 IPFILTER 内核部分的统计数据。 最后, 使用 ipmon程序可以把 IPFILTER 的动作记录到系统日志文件中。

IPF 最初是使用一组 “以最后匹配的规则为准” 的策略来实现的,这种方式只能支持无状态的规则。 随着时代的进步, IPF 被逐渐增强, 并加入了 “quick” 选项, 以及支持状态的 “keep state” 选项, 这使得规则处理逻辑变得更富有现代气息。 IPF 的官方文档介绍了传统的规则编写方法和文件处理逻辑。新增的功能只是作为一些附加的选项出现,如果能完全理解这些功能, 则对于建立更安全的防火墙就很有好处。

8.1.2 ipfilter安装: A、Ipfilter安装包获取方法:

需要gcc编译安装类型的包:

http://coombs.anu.edu.au/~avalon/ip-filter.html

http://ipfilter.wormulon.net

pkg安装包下载:

http://www.aub.aau.dk/~kl/builds/ipf-4.1.3

B、需要编译安装的安装方法:(一般在安装的INSTALL中有详细说明)

1、将下载的IP-Filter的源码文件ip-fil3.4.17.tar.gz放到/tmp目录下,执行

gzip -d ip-fil3.4.17.tar.gz

tar –xvf ip-fil3.4.17.tar

cd ip_fil3.4.17

make sunos5

对下载的源码包进行编译。当IP Filter编译成功之后,安装过程使用的是solaris常用的打包的方式进行的,它会在/var/spool/pkg目录下创建相应的package文件。

2、在安装目录下输入make solaris来编译所有需要的二进制文件,注意不能使用GNU make来编译。

3、进入到安装目录的SunOS5目录下,执行make package命令,此命令会在SunOS5/<arch>/root目录下创建一个名为“ipf.pkg”的打包文件,同时自动启动pkgadd进程,如果通过手动启动打包进程则需键入:pkgadd -d ipf.pkg来进行。

4、安装结束后会将IP Filter安装到/opt/ipf目录下,同时在/etc/opt/ipf创建一个名为“ipf.conf”的过滤配置文件,初始时该文件为空的。

5、IP Filter的启动方式是通过运行/etc/init.d/ipfboot来启动的,执行ipfboot start启动IP Filter。

6、建立IP Filter的配置文件,/opt/ipf/bin/mkfilters可以产生基本的配置文件。产生方法是通过执行下面的命令:

#/opt/ipf/bin/mkfilters > /etc/opt/ipf/ipf.conf。

7、每次添加或修改ipf.conf文件后都需要重新启动一遍ipfboot,来重新读入配置文件,具体方法如下:/etc/init.d/ipfboot reload。

C、pkg安装包的安装方法:

pkgadd –d ipf-4.1.3_sparc-5.9.pkg

8.2 ipfilter实例:# 默认规则, 关闭阻止所有的包, 关闭所有的通路, 再一步一步打开允许的通道.

# 如果内核设置了 IPFILTER_DEFAULT_BLOCK, 可以省略.

block in all

block out all

# 允许内网的信息自由通过.

pass in quick on dc0 from 192.168.0.0/24 to any

pass out quick on dc0 from any to 192.168.0.0/24

# 允许本机的信息自由通过.

pass in quick on lo0 all

pass out quick on lo0 all

# 禁止外网的无效地址通过

block in quick on tun0 all with ipopts

block in quick on tun0 all with short

block in quick on tun0 all with frag

block in quick on tun0 proto tcp all flags FUP

block in quick on tun0 from 255.255.255.255/32 to any

block in quick on tun0 from 192.168.0.0/16 to any

block in quick on tun0 from 10.0.0.0/8 to any

block in quick on tun0 from 172.16.0.0/12 to any

block in quick on tun0 from 127.0.0.0/8 to any

block in quick on tun0 from 0.0.0.0/8 to any

block in quick on tun0 from 192.0.2.0/14 to any

block in quick on tun0 from 204.152.64.0/23 to any

block in quick on tun0 from 224.0.0.0/3 to any

# 对外网信息的处理, 允许内网包发送到外网, 并且允许外网对这些包的回应信息通过

pass out quick on tun0 proto tcp from any to any flags S/SAFR keep state keep frags

pass out quick on tun0 proto udp from any to any keep state keep frags

pass out quick on tun0 proto icmp from any to any keep state keep frags

#允许对内部网ping的包进入

pass in quick on tun0 proto icmp from any to 20.20.20.0/24 icmp-type 0

pass in quick on tun0 proto icmp from any to 20.20.20.0/24 icmp-type 3

pass in quick on tun0 proto icmp from any to 20.20.20.0/24 icmp-type 8

pass in quick on tun0 proto icmp from any to 20.20.20.0/24 icmp-type 11

#允许22和80端口对外访问,即允许端口为22和80的地址允许通过

pass in quick on tun0 proto tcp from any to any port = 22 flags S keep state

pass in quick on tun0 proto tcp from any to any port = 80 flags S keep state

#允许访问本机ftp服务

#pass in quick on tun0 proto tcp from any to any port = ftp flags S/SA keep state

#pass in quick on tun0 proto tcp from any to any port = ftp-data flags S/SA keep state

#允许DNS服务的包通过

pass in quick on tun0 proto tcp from any to any port = 53 flags S keep state

pass in quick on tun0 proto udp from any to any port = 53 keep state

pass in on tun0 proto udp from any port = 53 to any

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有