`
varsoft
  • 浏览: 2508285 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转] Solaris 服务器安全配置

阅读更多

Solaris 服务器安全配置

1.概述

Solaris的安全配置可以从以下几个方面来考虑:

1. 本地安全增强:

限制某些强大命令的访问

设置正确的文件权限

应用组和用户的概念

suid/sgid的文件最少

rw-rw-rw的文件最少等

2. 网络安全增强

使用安全的协议来管理

禁止所有不需要的服务

禁止系统间的信任关系

禁止不需要的帐号

增强认证需要的密码

保护存在危险的网络服务

限制访问等

3. 应用安全增强

限制用户的权限

限制进程所有者的权限

检查应用相关文件权限

限制访问其他系统资源

应用所依赖的suid/sgid文件最少

使用应用本身的安全特性

删除samples和其他无用的组件

4. 监控与警报

日志、完整性、入侵检测等一些使用工具等

2.用户管理

21 用户口令文件的权限管理

/etc/passwd 必须所有用户都可读,root用户可写 –rw-rr

/etc/shadow 只有root可读 –r--------

/etc/group 必须所有用户都可读,root用户可写 –rw-rr—

执行以下命令修改这些文件的读写权限:

chmod 644 /etc/passwd

chmod 600 /etc/shadow

chmod 644 /etc/group

22 禁止或删除不必要的系统帐号

移去或者锁定那些系统帐号,比如sysuucpnuucplistenlpadm等等,简单的办法是在/etc/shadowpassword域中放上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

23 修改口令策略

编辑/etc/default/passwd文件

MAXWEEKS=4 口令至少每隔4星期更改一次

MINWEEKS=1 口令至多每隔1星期更改一次

WARNWEEKS=3 修改口令后第三个星期会收到快要修改口令的信息

PASSLENGTH=6 用户口令长度不少于6个字符

24 限制使用su的组

只允许sysadmin组执行su命令

#chgrp sysadmin /bin/su

#chmod o-rwx /bin/su

25 su的纪录

编辑/etc/default/su文件,主要为了记录每个使用su命令切换用户的记录。

SULOG=/var/adm/sulog

SYSLOG=YES

CONSOLE=/dev/console

PATH=/usr/bin:

SUPATH=/usr/sbin:/usr/bin

26 禁止root远程登录

/etc/default/login中设置CONSOLE=/dev/null,将只允许普通用户在console登录然后suroot,当存在多个系统管理员的时候, 这种设置提供了更好的安全性。

/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.服务管理

31 关闭不使用的系统服务

检查/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

32 关闭系统内各种不使用的网络服务

检查系统提供的每一种网络服务是否是工作环境所必需的,如果不是,就屏蔽它。其中一部分在启动脚本中设置,另外一部分在/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

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

33 关于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.系统文件权限

41 /etc的存取权限

chmod -R g-w /etc命令来移去组用户对/etc的写权限。

42 限制.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

44 修改文件setuidsetgid的权限

Solaris上很多setuidsetgid程序只有root或者属主自己才会使用,完全可以取消setuidsetgid设置而不影响普通用户的工作。用如下命令找出系统中所有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

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

43 umask命令

umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入.profile文件,就可控制该用户后续所建文件的存取许可。umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可。

安装配置完操作系统之后确认rootumask设置是077或者027,执行/usr/bin/umask -S 确认,即查看当前用户的读写文件的默认权限。

5.系统优化

51 系统数据包转发参数:

打开数据包转发

#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

52 系统网络参数:

利用/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文件中必须包含路由器的名称,因为如果设置了路由表,系统将不会运行任何目录服务(DNSNIS或者NIS+),即系统在有数据包进行路由时直接路由,不需要有DNS或者NIS来指定。

53 堆栈缓冲溢出攻击防护设置

至少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

54 使IP forwardingsourec routing(源路)由无效

Inetinit中使IP forwardingsourec 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

55 防止TCP序列号预测攻击(ip欺骗)

建议在/etc/default/inetinit中增加如下的生成初始化序列号设置来防止TCP序列号预测攻击(ip欺骗):TCP_STRONG_ISS=2

56 使多路广播(multicasting)无效

为了使多路广播(multicasting)无效请在/etc/init.d/inetsvc中注解掉"route add 224.0.0.0"周围的几行。

57 设置正确的环境变量PATH

确认rootPATH环境变量设置是安全的,应该只包含/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

58只允许root进行电源管理

编辑/etc/default/sys-suspend:

PERMS=console-owner

改为 PERMS=-

并做 #/bin/chmod 0755 /usr/openwin/bin/sys-suspend

此项配置防止SYN Flood攻击

6.日志管理

61 配置系统syslog日志服务

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

62 日志查看:

目前使用solaris的系统管理员都知道在/var区下有个目录adm,在这个目录下有messagssyslogsulogutmp等诸多日志文件,它们记录着solaris系统产生的各种消息日志。

messages记载来自系统核心的各种运行日志,包括各种精灵,如认证,inetd等进程的消息及系统特殊状态,如温度超高等的系统消息,可以说它是系统最重要的日志之一。

sulog中记载着普通用户尝试su成为其它用户的纪录。它的格式为:发生时间 +/-(成功/失败) pts号 当前用户欲su成的用户。

su 04/15 1635 + 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这两个文件是不具可读性的,它们记录着当前登录在主机上的用户,管理员可以用wwho等命令来看,下面为who的输出结果,

margin: 0cm 0cm 0pt 42pt; line-height: 12

分享到:
评论

相关推荐

    为Solaris服务器配置款安全的防火墙.docx

    为Solaris服务器配置款安全的防火墙.docx

    为Solaris服务器配置款安全的防火墙.doc

    为Solaris服务器配置款安全的防火墙.doc

    solaris配置

    在IT行业中,Solaris操作系统是Sun Microsystems(现已被Oracle公司收购)开发的一款强大的UNIX系统,主要应用于服务器和工作站。本文将深入探讨Solaris的安装与配置过程,旨在为用户提供详尽的知识点指导。 首先,...

    sun ray for solaris安装和配置

    ### Sun Ray for Solaris 安装与配置知识点详解 #### 一、概述 - **产品简介**:Sun Ray Server Software (SRSS) 是一款由 Sun Microsystems 开发的远程桌面接入解决方案,它允许用户通过 Sun Ray 客户端设备访问...

    Solaris服务器配置高级入侵检测工具AIDE.doc

    通过以上步骤,可以在Solaris服务器上有效地配置AIDE,确保系统文件的完整性,提高系统的安全性。值得注意的是,除了AIDE,还有其他的入侵检测系统(IDS)和入侵防御系统(IPS),如Snort和Suricata,可以与AIDE结合...

    Solaris 10 配置 samba 服务

    6. 在Windows客户端上,通过IP地址访问Solaris服务器的共享资源 对于更安全的用户验证配置(security = user),需要在Samba配置文件中将`security = share`改回`security = user`,并创建或指定Samba用户。这要求...

    solaris时间服务器设置方法

    本篇将详细讲解如何在Solaris系统中配置NTP(Network Time Protocol,网络时间协议)服务器,确保系统时间与全球标准时间保持一致。 首先,我们要了解NTP的工作原理。NTP是一种用于同步网络中不同计算机时钟的协议...

    solaris时间同步配置

    在Solaris服务器上,首先需要创建或编辑`/etc/inet/ntp.conf`文件,该文件用于定义时间同步服务的相关设置。 ##### 2.2 修改 `ntp.conf` 文件 配置文件应包含以下内容: ``` server 127.127.1.0 prefer fudge 127...

    Solaris 10 配置管理

    在IT领域,操作系统是计算机硬件与软件应用之间的桥梁,而Solaris作为Sun Microsystems开发的一款Unix操作系统,因其稳定性和高性能,在企业级服务器环境中广泛应用。本文主要针对 Solaris 10 的配置管理进行深入...

    在solaris10下配置ssh及使用客户端FTP连接

    SSH(Secure Shell)是 Solaris 10 中的一个安全协议,用于远程登录和文件传输。 FTP(File Transfer Protocol)是另一个常用的文件传输协议。 本文将指导如何在 Solaris 10 下配置 SSH 服务,并使用客户端 FTP ...

    配置Solaris的 Samba服务器.docx

    《配置Solaris的Samba服务器》 在信息技术领域,跨平台的文件共享是日常工作中不可或缺的一部分。Samba作为一款开源软件,提供了Unix和Windows之间的文件和打印机共享服务,使得不同操作系统之间的协同工作变得可能...

    solaris 10安装oracle10g配置文档

    在本文中,我们将深入探讨如何在Solaris 10操作系统上安装和配置Oracle 10g数据库。Oracle 10g是一款强大的关系型数据库管理系统,它在企业级应用中广泛使用,而Solaris 10作为Sun Microsystems开发的UNIX操作系统,...

    Solaris10安装配置tomcat6

    在 Unix 系统,如 Solaris 10 上部署 Tomcat 是企业级服务器中间件的关键步骤。 **一、Tomcat 下载** 首先,你需要访问 Tomcat 的官方网站(http://tomcat.apache.org/download-60.cgi),根据你的操作系统选择合适...

    Solaris10基本配置与管理

    此外,`/etc/hosts`和`/etc/resolv.conf`文件分别用于静态DNS解析和DNS服务器配置。 4. **软件管理**:Solaris 10使用Pkg工具进行软件包的安装、更新和卸载。`pkgadd`、`pkgrm`和`pkginfo`是常用的命令,另外,`...

    (完整word版)中国移动SOLARIS操作系统安全配置规范V2.0.doc

    中国移动SOLARIS操作系统安全配置规范V2.0是一份详细的安全指南,旨在确保中国移动的SOLARIS操作系统环境能够遵循最佳实践,提高系统的安全性,防止未经授权的访问和潜在的安全威胁。以下是规范中的主要知识点: 1....

    hcpd服务器_Solaris

    根据提供的文件信息,“hcpd服务器_Solaris”,我们可以推断出该文档主要涉及的是在Solaris操作系统上配置和管理DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器的相关知识。接下来,我们将...

    Solaris SSH配置和原理

    ### Solaris SSH配置与原理详解 #### 一、引言 在现代网络安全环境中,使用SSH(Secure Shell)作为远程管理工具已经成为业界标准。Solaris操作系统虽然默认开启的是Telnet服务,但从安全角度来看,SSH提供了更为...

Global site tag (gtag.js) - Google Analytics