发新话题
打印

[转载]solaris 9 一般安全设置

[转载]solaris 9 一般安全设置

信息来源:黑白网络

1. 选择合适的安装。

  只安装需要的软件包。
  本例为solaris9
  
2. 安装系统补丁
  
  从sunsolve.sun.com下载补丁
  unzip 9_Recommended.zip
  cd 9_Recommended
  ./install_cluster
  
3. 最小化启动服务

  a. 禁止不需要启动的服务。一般情况下服务都可禁止启动

a.1 S01MOUNTFSYS
Mount all local filesystems ,不能禁止
a.2 S05RMTMPFILES
删除临时文件 需要启动
a.3 S20sysetup
系统设置 需要启动
a.4 S21perf
全部被注释掉了 。。。。。。
a.5 S30sysid.net
网络设置 需要启动
a.6 S40llc2
LLC2协议支持需要启动
a.7 S42ncakmod
ncakmod is used to start or stop the SolarisNetworkCache
 and Accelerator ("NCA") kernel module需要启动
a.8 S47pppd
ppp支持不需要启动
执行:mv S47pppd _S47pppd
a.9 S69inet
tcp/ip的配置 需要启动
a.10S70sckm
Sun fire 15000Key Management Daemon 不需要启动
执行:mv S70sckm _S70sckm
a.11 S70uucp
Unix-to-Unix Copy 不需要
mv S70uucp _S70uucp
a.12 S71ldap.client
- 启动LDAP客户端不需要
mv S71ldap.client _S71ldap.client
a.13S71rpc
S71rpc + 启动rpcbind服务 rpcbind (RPC Portmap服务),如果需要CDE的话,这个进程是必需的需要启动
a.14 S71sysid.sys
配置系统参数需要
a.15 S72autoinstall
当放入sun兼容的媒体介质时,会自动启动安装脚本不需要
mv S72autoinstall _S72autoinstall
a.16 S72directory
目录服务不需要
mv S72directory _S72directory
a.17 S72inetsvc
启动inet server,包含named/nis 如果不需要 named和nis服务,可以禁用不需要
mv S72inetsvc _S72inetsvc
a.18 S72slpd
打印服务不需要
mv S72slpd _S72slpd
 打印服务

a.19 S73cachefs.daemon
NFS缓存服务,可以提高NFS吞吐率不需要
mv S73cachefs.daemon _S73cachefs.daemon
a.20 S73mpsadm
cluster 服务管理进程?不需要
mv S73mpsadm _S73mpsadm
a.21 S73nfs.client
nfs客户端 不需要
mv S73nfs.client _S73nfs.client
a.22 S74autofs
 当使用NFS时,这个进程会自动加载或卸载无用的用户网络文件系统
 配置文件/etc/auto_home和auto_master
 但是当没有使用nfs时,这个进程会对系统管理造成一些负面影响不需要
 mv S74autofs _S74autofs
a.23 S74syslog
 系统日志服务进程需要
a.24 S74xntpd
 网络时间同步服务不需要
 mv S74xntpd _S74xntpd
a.25 S75cron
 自动执行脚本服务需要
a.26 S75flashprom
 看起来象一个flash更新脚本 需要
a.27 S75savecore
 核心内存转储脚本需要
a.28 S76nscd
 DNS名字缓存服务 不需要
 mv S76nscd _S76nscd
a.29 S77sf880dr
 针对V880机器的一个脚本不需要
 mvS77sf880dr _S77sf880dr
a.30 S80lp
 打印服务不需要
 mv S80lp _S80lp
a.31 S80spc
 还是打印服务不需要
 mvS80spc _S80spc
a.32 S85power
 电源管理需要
a.33 S88sendmail
 邮件服务不需要
 mv S88sendmail _S88sendmail
a.34 S88utmpd
 Theutmpd daemonmonitorsthe/var/adm/utmpxfile
 与帐号信息控制有关 ;守护程序在规则的时间间隔内监控 /etc/utmp 文件以获得用户进程项的有效性。根据进程表
 交叉校验该项的进程标识来除去/etc/utmp 文件中已终止的但未清除的用户进程。 需要
a.35S89PRESERVE
不知所云 需要
a.36 S90loc.ja.cssd
 看了脚本,不知到CS干吗需要吧
a.37 S90wbem
 WBEM,Solaris系统管理界面服务器,可以使用/usr/sadm/bin/smc
 启动客户端程序连接管理不需要
 mv S90wbem _S90wbem
a.38 S91afbinit S91gfbinit S91ifbinit S91jfbinit
 For systems with Elite3D Graphics没有显卡的基本就不要了不需要
 mv S91afbinit _S91afbinit
 mv S91gfbinit _S91gfbinit
 mv S91ifbinit _S91ifbinit
 mv S91jfbinit _S91jfbinit
a.39 S91zuluinit
 Find out how many zulu cards are installed on the system不需要
 mv S91zuluinit _S91zuluinit

a.40 S93cacheos.finish
 cache文件系统 不需要
 mv S93cacheos.finish _S93cacheos.finish
a.41 S94Wnn6
 日文输入系统 不需要
 mv S94Wnn6 _S94Wnn6
a.42 S94ncalogd
 NCA进程日志不需要
 mv S94ncalogd _S94ncalogd
a.43 S95IIim
 启动输入法守护进程 Solaris国际化支持的一部分,启动东亚语言输入法需要
a.44 S95svm.sync
 devfsadm ,devfs同步进程 监控系统硬件,使/dev与/devices设备文件同步 需要
a.45 S98efcode
 embedded FCode interpreter daemon, efdaemon is used on selected platforms as part of the processing of some
 dynamic reconfiguration events 不知道干吗的, 只好让他运行了
a.46 S99atsv
 可能是支持日文的,机器上没装, 不需要
a.47S99audit
 审计进程 需要
a.48S99dtlogin
 启动CDE登录进程 Solaris CDE图形界面启动进程 需要
a.49 S99rcapd
 跟资源回收有关的需要

rc3.d下面的
a.50 S13kdc.master S14kdc
 Kdc服务 不需要
 mv S13kdc.master_S13kdc.master
 mv S14kdc_S14kdc
a.51 S15nfs.server
 nfs服务 不需要
 mv S15nfs.server _S15nfs.server
a.52 S16boot.server
 远程启动服务不需要
 mv S16boot.server _S16boot.server
a.53S34dhcp
 dhcp服务不需要
 mv S34dhcp _S34dhcp
a.54 S50apache
 http服务不需要
 mv S50apache _S50apache
a.55 S50san_driverchk
 San驱动检查? 机器上没装不需要
 mv S50san_driverchk _S50san_driverchk
a.56 S76snmpdx
 启动snmp服务不需要
 mv S76snmpdx _S76snmpdx
a.57 S77dmi
 snmp的子服务不需要
 mv S77dmi _S77dmi
a.58 S80mipagent
 启动Mobile IP 代理不需要
 mv S80mipagent _S80mipagent
a.59S81volmgt
 软盘光驱的卷管理 需要
a.60S84appserv
 Sun one server的东东 不需要
 mv S84appserv _S84appserv
a.61 S89sshd
需要
a.62 S90samba
 需要挂载windows文件系统才需要不需要
 mv S90samba _S90samba
a.63 S86directorysnmp
 跟Sun Directory目录服务有关不需要
 mv S86directorysnmp _S86directorysnmp
a.64 S99JESsplash
 不知道干吗 不需要
 mv S99JESsplash _S99JESsplash










  
  b. 与a相关的配置文件也可去除,使系统更加易于审计
  
4. 关闭inetd服务

  a. ssh作为telnet和ftp来说更安全。
  b. ssh作为启动服务并一直运行的时候,再将inetd服务器完全关闭。
  c. 必须运行inetd服务的时候一定需要:
a.1. 只在inetd.conf里面保留需要服务的表项。
a.2. 对保留使用的inetd服务表项使用tcp wrappers (tcpd进程)。
a.3. 使用inetd -t 参数记录扩展的日志信息。

5. 调整内核

  5.1 减少arp过期时间
 ndd-set /dev/arparp_cleanup_interval 60000
 //ndd-set /dev/ip ip_ire_flush_interval 60000// solaris9 已经没有这个参数

  5.2 IP Forwarding (IP转发)

 a. 关闭IP转发
ndd -set /dev/ip ip_forwarding 0
 b. 严格限定多主宿主机,如果是多宿主机,还可以加上更严格的限定防止ip spoof的攻击
ndd -set /dev/ip ip_strict_dst_multihoming 1
 c. 转发包广播由于在转发状态下默认是允许的,为了防止被用来实施smurf攻击,关闭这一特性
ndd -set /dev/ip ip_forward_directed_broadcasts 0
  5.3 路由

 a. 关闭转发源路由包
ndd -set /dev/ip ip_forward_src_routed 0
  5.4 ICMP:网络控制信息协议
 a. 禁止响应Echo广播:
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
 b. 禁止响应时间戳广播
ndd -set /dev/ip ip_respond_to_timestamp_broadcast 0
 c. 禁止响应地址掩码广播
ndd -set /dev/ip ip_respond_to_address_mask_broadcast 0

  5.5 重定向错误
 a. 禁止接受重定向错误
ndd -set /dev/ip ip_ignore_redirect 1
 b. 禁止发送重定向错误报文
ndd -set /dev/ip ip_send_redirects 0
 c. 禁止时间戳响应
ndd -set /dev/ip ip_respond_to_timestamp 0

  5.6 SYN_flood攻击又称半开式连接攻击,
 a. 将默认的队列值从1024提高到4096来降低受到攻击时的危害
ndd -set /dev/tcp tcp_conn_req_max_q0 4096

  5.7 连接耗尽攻击
 a. 将核心以连接队列参数(默认是128)增大到1024来预防这种攻击
ndd -set /dev/tcp tcp_conn_req_max_q 1024

  5.8 防止IP 欺骗

 对于solaris系统Tcp协议实现的ISN生成有三种方式。
 0: 可预测的ISN
 1: 增强的ISN 随机生成
 2: RFC 1948描述的ISN生成方式
 所有版本的solaris默认生成方式值是1。2.5.1只有 0,1两种方式,2.6/7拥有0,1,2三种ISN生成方式。

 修改/etc/default/inetinit文件来提高ISN的生成强度。将 TCP_STRONG_ISS=1改为 TCP_STRONG_ISS=2重起系统生效。

  5.9 增加私有端口
 一般的情况下,1-1024端口被称为私有端口,只允许具有根权限的进程连接。但是有些大于1 024的端口,即使需要这样的限制,
 却无法定义,如NFS的服务器端口2049,当然还有一些其他定义的高于1024的私有端口。

 a. 自定义最小的非私有端口
ndd -set /dev/tcp tcp_smallest_nonpriv_port 2050
这样以来,0-2049都被定义为私有端口。
 b. 用来显示已经定义的扩展私有端口
ndd /dev/tcp tcp_extra_priv_ports
 c. 单独增加一个私有端口定义
ndd -set /dev/tcp tcp_extra_priv_ports_add 6112
 d. 删除私有端口定义
ndd -set /dev/tcp tcp_extra_priv_ports_del 6112
 e. 要注意的是,不要随便定义私有端口,因为有些非根权限的进程会使用这些端口。特别是改变最小非私有端口这个参数,
经常会引起问题。应仔细分析你的需求再用扩展私有端口定义的方式单独增加。
 f. ndd /dev/tcp tcp_extra_priv_ports执行结果(某系统)
2049
4045
9010
一共定义了3个私有端口
  5.10 其他内核参数的调整
a. – Enable stack protection直译为允许堆栈保护,应该使防止缓冲区溢出攻击
You should definitely add the following two lines to your /etc/system file:
set noexec_user_stack = 1
set noexec_user_stack_log = 1
b. – Prevent core dumps 避免核心内存转储
 coreadm -d process
c. – Set limits on processes

6. 增强日志记录

  Definitely tweak syslog.conf to capture
auth.info and daemon.notice msgs
? Create /var/adm/loginlog
? Additional levels of logging:
– System accounting (sar and friends)
– Process accounting
– Kernel level auditing (BSM)

7. 保护文件系统

? File systems should either be mounted
"nosuid" or "ro" (read-only)
? Set "logging" option on root file system
if you're running Solaris 8 or later
? Don't forget removable media devices:
– Turn off vold if possible
– Make sure rmmount.conf sets "nosuid"

8. 设置警告信息

  两个文件 /etc/motd ;/etc/issue
  – /etc/default/
  – EEPROM
  – GUI Login
  
9. 加强系统的访问控制

  9.1. 只允许root从console登陆
CONSOLE=/dev/console is set in /etc/default/login
sshd_config 里面设置 PermitRootLogin no
  9.2. 禁止或删除不用的帐号
对不需要登陆的帐号,可将/etc/passwd文件中的shell选项修改为/bin/false 或者/dev/null

  9.3. 创建/etc/ftpusers
在该文件中未指定的用户才能使用ftp服务
  9.4. 禁止.rhosts支持
a. 删除系统中的.rhosts文件
b. 使用ssh的情况下,保证sshd_config文件中("IgnoreRhosts yes")
c. /etc/pam_conf and remove any lines containing rhosts_auth, even if you've disabled rlogin/rcp.
  9.5. 限制对cron和at的访问
cron.allow and at.allow列出有权运行提交修改cron和at任务的用户
  9.6. 设置eeprom到安全模式
Setting "eeprom security-mode=command" will cause the machine to prompt for a password
before boot-level commands are accepted. This prevents attackers with physical access from booting from
alternate media (like a CD-ROM) and bypassing your system security.
  9.7. 限制xdmcp,设置锁定屏幕的屏保
If you're running X Windows on the machine, make sure to disable remote XDMCP access in
/etc/dt/config/Xaccess. You may also want to set a default locking screensaver timeout for your
users in /etc/dt/config/*/sys.resources.

10. 安装安全工具

  10.1 至少的安全工具
  

– SSH
– TCP Wrappers
– NTP
– fix-modes
  10.2 增强工具
– Tripwire, AIDE, etc.
– Logsentry (formerly Logcheck) or Swatch
– Host-based firewall, Portsentry, etc.


参考文章 : 都非常值得一读
http://www.deer-run.com/~hal/SolarisWebcast.pdf总体框架
http://fanqiang.chinaunix.net/safe/system/2002-12-02/2644.shtml网络参数调整部分
http://www.nsfocus.net/index.php ... do=view&mid=679
http://www.douzhe.com/article/print.php/638.html 最小化启动部分
益友网吧联盟  http://www.96-7.com

TOP

发新话题