Solaris安全手册.docx

上传人:b****5 文档编号:30735450 上传时间:2023-08-20 格式:DOCX 页数:14 大小:22.79KB
下载 相关 举报
Solaris安全手册.docx_第1页
第1页 / 共14页
Solaris安全手册.docx_第2页
第2页 / 共14页
Solaris安全手册.docx_第3页
第3页 / 共14页
Solaris安全手册.docx_第4页
第4页 / 共14页
Solaris安全手册.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Solaris安全手册.docx

《Solaris安全手册.docx》由会员分享,可在线阅读,更多相关《Solaris安全手册.docx(14页珍藏版)》请在冰豆网上搜索。

Solaris安全手册.docx

Solaris安全手册

Solaris安全手册

发布日期:

1999-12-8

内容:

1,Preparation

2,InitialOSinstallation

3,Stripping/configuringOS:

1stpass

4,Connecttotestnetwork

5,Installingtools&sysadminsoftware

6,Stripping/configuringOS:

2ndpass

7,CreateTripwireimage,backup,test

8,Install,test,hardenapplications.

9,Installonlivenetwork,test

1.Preparation

最小限度保证安全的方法是只在主机上运行一个或两个服务。

使用一个机器比只

使用一个拥有所有权利的机器安全的多,因为这样可以隔离,方便查找问题所在。

总之:

在你的机器上运行你一些最必要的服务。

考虑拆除键盘,屏幕,这样可以

避免使用X11和知道命令行所示,在一个隔离的信任的网络段中进行测试。

明确你

的系统和硬件配置能产生什么样的结果,如在安装SUN的Disksuite时要考虑你是否

需要RPC服务,因为DISKSUITE必须使用RPC服务。

明确各种应用程序是怎样工作的

如:

使用什么端口和文件.

2,初始化安装操作系统。

连接串口控制台,开机,当出现OK提示时发送Stop-A信息(~#,~%b,或者F5,主要取决

于你使用tip,cu或者vt100终端),然后开始安装过程-"bootcdrom-install"使用最

小安装enduserbundle(除非你要额外的server/developer工具),设置主机名,终端,

IP参数,时区等等,不要激活NIS或者NFS及不要激活电源管理。

选择手工划分分区:

/usr和/opt和ROOT分离开来以便这些分区可以以只读方式挂(mount)起来。

考虑把大的

/var文件系统和拥有较多的数据量如(web,ftp)划分为独立的分区。

如果硬盘是2GB建议200MB/(+var),200MBswap,600MB/usr及1GB给/opt

如果硬盘是2GB建议300MB/(+var+opt),200MBswap,500MB/usr

给ROOT设置一个7到8字符大小写结合等比较强壮的密码,再重启动。

接着安全由SUN的安全补丁。

一般的在CD上就包含这些安全补丁包。

重启动及作为ROOT重

启动后,你可以使用showrev-p查看补丁列表。

3,配置操作系统

磁盘共享(mount):

为了减少木马和不授权的修改,在/etc/vfstab,在mount/时请使

用"remount,nosuid"选项;在/var上请带上"nosuid"选项;在/tmp后加上"size=100m,nosuid"选

项(允许/tmp只能使用100M空间及不允许执行SUID程序);如果软盘不需要的话再把"/dev/fd"行

注释掉。

(下面的命令假定你使用的是c-shell)使NFS无效:

rm/etc/rc2.d/{S73nfs.client,K28nfs.server}

/etc/rc3.d/S15nfs.server/etc/dfs/dfstab使Sendmail守护程序无效,虽然sendmail不是

作为一个守护程序来运行的,但两进制程序是依然存在的,EMAIL还可以通过它了发送(但不能接

受)。

设定只要一个主机来接受EMAIL,另必须使用smap或其他等同命令来把sendmail危险程度

降低到最底。

rm/etc/rc2.d/S88sendmail

再在cron行中增加处理邮件队列的命令:

0****/usr/lib/sendmail-q

在关闭一些其他的服务:

rm

/etc/rc2.d/{S74autofs,S,S71sysid.sys,S72autoinstall}

rm

/etc/rc2.d/{S93cacheos.finish,S73cachefs.daemon,S80PRESERVE}

rm/etc/rc2.d/{S85power,K07dmi}

rm/etc/rc3.d/S77dmi

Ifyouhaveserver/developerpackages:

rm/etc/rc2.d/{S47asppp,S89bdconfig,S70uucp}

使RPC无效:

这一般来说是建议关闭此功能的,但一些程序如DISKSUITE会开启RPC服务,所以一般

建议不使用DISKSUITE工具。

如果你不想使RPC无效,则一定要使用信息包过滤器。

rm/etc/rc2.d/S71rpc

使打印服务无效(除非有一个本地打印机存在):

rm/etc/rc2.d/{S80lp,S80spc}

使namingServicesCachingDaemon(名字服务缓冲守护程序)服务无效:

mv/etc/rc2.d/S76nscd/etc/rc2.d/.S76nscd

使CDE程序无效(除非你坚持要使用图形控制台):

rm/etc/rc2.d/S99dtlogin

使NTP-NETWORKTIMEPROTOCOL无效(NTP会增加带宽和不安全的因素,建议使用

rdate到一台使用NTP的机器来获得精确时间):

rm/etc/rc2.d/S74xntpd

使SNMP无效:

rm/etc/rc2.d/K07snmpdx/etc/rc3.d/S76snmpdx

在Inetinit中是IPforwarding和sourecrouting(源路)由无效(假如有超过一个网络接口的

话)。

在/etc/init.d/inetinit中增加下面所示设置:

ndd-set/dev/ipip_forward_directed_broadcasts0

ndd-set/dev/ipip_forward_src_routed0

ndd-set/dev/ipip_forwarding0

根据RFC1948建议在/etc/default/inetinit中增加如下的生成初始化序列号设置来防止TCP序列号

预测攻击(ip欺骗):

TCP_STRONG_ISS=2

在/etc/system中增加如下设置来防止某些缓冲溢出攻击。

这些保护是那些需在堆栈中执行的攻击

方式。

但需要硬件的支持(只在sun4u/sun4d/sun4m系统中有效):

setnoexec_user_stack=1

setnoexec_user_stack_log=1

使用默认路由:

在/etc/defaultrouter中增加IP地址,或使用"route"在/etc/rc2.d/S99static_routes

中建立启动文件。

为了使动态路由无效:

touch/etc/notrouter

为了使多路广播(multicasting)无效请在/etc/init.d/inetsvc中注解掉

"routeadd224.0.0.0"周围的几行。

为了记录INETD连接的所有信息,在inetd低端的启动行中增加"-t"参数,

即:

:

/usr/sbin/inetd-s-t

在/etc/hosts中配置一些你想取舍的主机(一些你不想通过DNS解析的)。

/etc/inetd.conf:

先使所有服务无效;

配置你真正需要的服务,但必须使用FWTKnetacl或tcpwrappers来允许最小限度的IP地址访问和各种记录

4,连接并测试网络

系统通过上面的安全剥离和筛选,你必须肯定系统能正常工作,把它连接到一个安全隔离的网络。

重起并以ROOT身份登录控制台,检查控制台启动时的错误信息并根据需要进行修改。

5,安装系统管理工具软件

这部分将安装标准的工具和实用程序。

最重要的是SSH,这些工具必须在其他机器上编译和精心测试过的。

环境:

DNS客户端:

在/etc/resolv.conf中增加域名和DNS服务;

在/etc/nsswitch.conf中增加DNS入口的主机。

EMAIL:

如果主机不需要在子网外发送EMAIL,就不需要使用mailhost的别名。

否则的话必须编

辑/etc/mail/aliases,在/etc/hosts中设置mailhost,在/etc/mail/sendmail.cf取消Dj行的

注释并把它设置为Dj$w.YOURDOMAIN.COM.如果DNS没有配置,就在/etc/hosts中增加这太机器

的别名hostname.YOURDOMAIN.COM。

现在发送一封测试EMAIL:

mailx-v-stest_emailroot

/dev/null2>&1

#303***[-x/usr/lib/gss/gsscred_clean]&&

/usr/lib/gss/gsscred_clean

Pruningoflogin&otherlogs:

##Emptylogin/logoutrecordsatyearend

003112*/secure/wtrim.plwtmp

003112*/secure/wtrim.plwtmpx20

#Solaris2.xlogs:

04**6/secure/rotate_log-L/var/adm-c-m640-M

440-c-s-n30loginlog

04**6/secure/rotate_log-L/var/adm-c-m640-M

440-c-s-n30sulog

04**6/secure/rotate_log-L/var/adm-c-m640-M

440-c-s-n2vold.log

04**6/secure/rotate_cron

crons

删除不需要的crons:

rm

/var/spool/cron/crontabs/{lp,sys,adm}

Rootcron条目:

通过可信赖的来源使用rdate设定日期(你或许使用NTP协议,这将使时间精确一些,但

正向上面所说的增加带宽和不必要的安全问题):

##Synchronisethetime(同步时间):

0****/usr/bin/rdateYOURTIMEHOST>/dev/null2>&1

文件权限

必须限制一些有关ROOT操作的权限或干脆使其无效:

chmod0500/usr/sbin/snoop/usr/sbin/devinfo

chmodo-r/var/spool/cron/crontabs/*

chmod000/bin/rdist

chmodo-rx/etc/security

chmodog-rwx/var/adm/vold.log

chmodu-s/usr/lib/sendmail#Exceptfor

mailgateways

chmod400/.shosts/etc/sshd_config/etc/ssh_known_hosts

再在登录信息上设置警告用户非授权登录的信息(如果要起诉侵入者你就需要这些信息)。

在Telnet和SSH,在/etc/motd中设置警告语句:

ATTENTION:

YouhaveloggedontoasecuredXXXX

Corporationserver.

AccessbynonYYYYadministratorsisforbidden.

ForinfocontactYYYY@XXX.com

重新启动,通过SSH登录,现在使用ps-e来显示进程列表:

PIDTTYTIMECMD

0?

0:

00sched

1?

0:

00init

2?

0:

00pageout

3?

0:

09fsflush

156?

0:

00ttymon

152?

0:

00sac

447?

0:

06sshd

88?

0:

00inetd

98?

0:

00cron

136?

0:

00utmpd

605?

0:

00syslogd

175console0:

00ttymon

469pts/10:

00csh

466?

0:

01sshd

625pts/10:

00ps

及使用netstat-a将显示最小的网络连接(如只有SSH):

UDP

LocalAddressRemoteAddressState

-----------------------------------------------

*.syslogIdle

*.*Unbound

TCP

LocalAddressRemoteAddressSwindSend-QRwindRecv-Q

State

---------------------------------------------------

------------------

*.**.*0000IDLE

*.22*.*0000LISTEN

*.**.*0000IDLE

7,建立Tripwire映象,备份和测试

-测试SSH和标准工具是否能正常工作?

检查LOG条目,检查控制台信息来了解系统是

否按照你设想的计划实现。

-当所有工作运行的正常时,就freeze(冻结)/usr有可能的话冻结/opt:

在/etc/vfstab中增加"ro"选项以只读方式挂上(mount)/usr和/opt分区,这样减少木马

程序和非认证的修改。

以nosuid方式mount其他分区。

重启-如果CD-ROMS不需要的话,是卷管理无效,使用如下命令可以在你需要时重新启用:

mv/etc/rc2.d/S92volmgt/etc/rc2.d/.S92volmgt

-最后安全TRIPWIRE(或者其他使用hashing算法的文件检查工具),初始化它的数据库和运

行常规的检查来检测文件的改变。

如果可能的话使TRIPWIRE的数据库安装在另一个机器上

或一次性写入介质。

如果还需要更安全的措施,那么就拷贝TRIPWIRE和它的数据库并使用SSH

远程运行。

这将使入侵者很难知道TRIPWIRE在使用。

8,安装,测试应用程序

应该考虑把应用程序安装在独立的分区或者在/opt分区,如果使用/opt,在安装时必须以读写

方式来挂起此分区,在安装和测试后必须再设置回只读方式。

根据服务器的功能,选择你所需

要的如:

ftpd,BIND,proxies等等,在安装应用程序时遵照以下的规则来安装:

--在应用程序启动之前umask是否设置好如(如:

022)

--应用程序是不是能以非ROOT身份运行?

是否很好的设置密码若最少8位加标点,字符大小写.

--注意是否所有文件的权限设置正确,即是不是只能有应用程序用户自己拥有读写权限,有没

有全局能读写的文件

--当应用程序在写LOG记录时是否安全?

有没有可能把密码写到安装LOG中去(不用感到好笑,

这很普遍)下面是一些安装常用服务所需要的安全问题

1,FTP服务(ftp)

-如果你使用WesternUniversitywu-ftpd,必须知道它存在一些历史BUG,如

(请参看CERTadvisoriesCA-93:

06,CA-94:

07,

CA-95:

16andAuscertAA-97.03andAA-1999.02),最起码使用V2.6.0或以后的版本。

2,配置/etc/ftpusers的系统帐号使其不能用来FTP,如使以ROOT身份登录FTP无效,把"root"增

加到/etc/ftpusers.要想把所有系统帐号加入到你的新系统中去可使用如下方法:

awk-F:

'{print$1}'/etc/passwd>/etc/ftpusers

-FTP可以通过/etc/ftpusers选择性的激活每个用户;也可以使用下面的方法:

对于那些不能通过FTP访问此机器的,提供他们一些不正规的SHELL(如BASH和TCSH),但不把新

的SHELL加入到/etc/shells,这样FTP访问将被拒绝。

相反,要把一个非标准的SHELL加入到

/etc/shells才能使FTP正常工作。

-使LOGGING有效:

把"-l"选项增加到/etc/inetd.conf中去,另外"-d"选项将增加debug输出。

-FTP可以限制IP地址或基于tcpwrappers的主机名。

-如果需要匿名FTP访问,必须非常谨慎,一个chroot的环境是必须的。

具体请参看in.ftpd手册。

避免允许上传文件权利。

如果需要上传文件的权利,需不允许下载上

载了的文件,隐藏上载文件名及不允许他们覆盖方式操作。

-使用FTP强烈建议使用chroot.

-把FTP数据放在独立的磁盘分区,以nosuid方式mount。

2,DNS服务:

-使用最新的BIND(BerkeleyInternetNameServer)来代替SUN的named,BIND有很多好的特征,

若容易DEBUG和当有安全问题发现时很快更新。

具体请参看网站:

www.isc.org/view.cgi?

/products/BIND/index.phtml.

-使用8.1.2或以后的版本

-使用测试工具www.uniplus.ch/direct/testtool/dnstest.html来测试DNS。

-使用nslookup和dig来检查服务结果。

-如果在DNS客户端存在问题检查/etc/nsswitch.conf和/etc/resolv.conf,使用nslookup-d2来

获得DEBUG的信息。

尝试杀掉nscd守护程序。

-如果服务器端有问题使用named-d来读consoleLOG,一般这LOG在syslog文件中的"daemon"段。

-要获得name服务的统计使用

kill-ABRT`cat/etc/named.pid`将会把统计信息记录到

/usr/tmp/named.stats.

-要查看改变设置后的配置信息使用HUP信号

kill-HUP`cat/etc/named.pid`

更多的请参看

3,有关chroot环境请参看如下网站:

以下准备正式运行系统

如果可能请使用多人进行最后测试,以便忘记某些重要的东西。

使用网络漏洞扫描器扫描系统,

保证只有你想使用的服务在运行。

如商用扫描器IIS和免费扫描器nmap或Satan.

检查/opt和/usr分区是否为只读状态。

初始化Tripwire(或等同的检查工具)

最后测试什么在工作,什么是禁止的,检查console/log条目,

开始时经常查看LOG记录。

9,系统正式运行

详细检查;使用不同的人以不同的观点及在不同的网络点登录测试应用软件。

10,常规维护

下面是根据你系统的重要程度决定你要每小时,每天,每星期,每个月要做的事情:

-检查SUN公司的pathdiag来不断升级系统,特别注意系统内核的补丁。

-检查所有错误和不寻常的活动记录:

syslog(/var/adm/messagesor/var/log/*,dependingon

syslog.conf),

/var/cron/log,last,/var/adm/sulog,/var/adm/loginlog,

application/serverlogs.

-运行tripwire

-注意一些新的漏洞及安全建议,订阅CERT,CIAC的安全公告和供应商的安全列表如(Sun,Microsoft)

其他附加信息:

FreeTools

SSHnotes:

TCPWrapperswww.cert.org/ftp/tools/tcp_wrappers

SMAP&FWTKwww.fwtk.org

Top,gzip,lsof,traceroute,perl:

Rdist

Sampletoolsforanalysinglogs:

Logcheck

Swatch

ftp:

//ftp.stanford.edu/general/security-tools/swatch

SecurityPortalResearchCentre:

Firewallproducts

Firewallwhitepapers

Tripwire:

CommercialVersion(startsat

$495.-/server)

FreeversionV1.2www.cert.org/ftp/tools/tripwire(last

updatedin1994).

Sunworldsecuritycolumns

PaddedCells:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1