鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 操作系统维护 > solaris > >

Solaris系统安全加固列表

来源:互联网 作者:佚名 时间:2015-06-03 08:39
ps:由于现在不少Solaris安全加固列表都比较老了 在下根据资料和自己的实践总结的Solaris系统加固列表 难免会有不合适(影响服务)和错误以及不足之处 望各位不惜赐教(本来是word文档 发上来以后格式都乱了) 多谢lgx和ghoststone对此文的帮助 Solaris系统安

  ps:由于现在不少Solaris安全加固列表都比较老了在下根据资料和自己的实践总结的Solaris系统加固列表难免会有不合适(影响服务)和错误以及不足之处望各位不惜赐教(本来是word文档发上来以后格式都乱了)
  多谢lgx和ghoststone对此文的帮助
  
  Solaris系统安全加固列表
  王宇
  
  一安全理念
  安全的隐患更多来自于企业内部
  对于管理员的要求不要信任任何人
  分层保护策略假设某些安全保护层完全失效
  服务最小化
  为最坏的情况做打算
  
  二物理安全
  记录进出机房的人员名单考虑安装摄像机
  审查PROM是否被更换可以通过记录hostid进行比较
  每个系统的OpenBoot口令应该不一样口令方案不可预测
  系统安装完毕移除CDROM
  将版本介质放入不在本场地的介质储藏室中
  
  三账号与口令策略
  超级用户的PATH(在/profile中定义的)设置为
  PATH = /usr/bin:/sbin:/usr/sbin
  任何用户的PATH或者LD_LIBRARY_PATH中都不应该包含
  口令文件影像文件组文件
  /etc/passwd 必须所有用户都可读root用户可写 –rwr—r—
  /etc/shadow 只有root可读 –r
  /etc/group 必须所有用户都可读root用户可写 –rwr—r
  口令安全
  Solaris强制口令最少但是超级用户修改口令的时候不受这个限制
  强迫test账号每隔天修改一次口令
  #passwd –n test
  强迫test账号在下次登录的时候修改口令
  #passwd –f test
  禁止test账号修改口令
  #passwd –n –x test
  封锁test账号禁止登录
  #passwd –l test
  组口令
  用newgrp 命令临时改变gid
  由于sysadmin组可执行admintool必须要保护好增加组口令的过程
  删除不需要的成员(如果成员属于sysadmin改变组时不需要口令)
  #passwd (通常封锁的账号)
  提取/etc/shadow中user的口令字符串插入到/etc/group中sysadmin的口令字段
  封锁user账号
  修改口令策略
  /etc/default/passwd文件
  MAXWEEKS= 口令至少每隔星期更改一次
  MINWEEKS= 口令至多每隔星期更改一次
  WARNWEEKS= 修改口令后第三个星期会收到快要修改口令的信息
  PASSLENGTH= 用户口令长度不少于个字符
  限制使用su的组(只允许sysadmin组执行su命令)
  #chgrp sysadmin /bin/su
  #chmod orwx /bin/su
  su的纪录
  /etc/default/su文件
  SULOG=/var/adm/sulog
  SYSLOG=YES
  CONSOLE=/dev/console
  PATH=/usr/bin:
  SUPATH=/usr/sbin:/usr/bin
  禁止root远程登录
  /etc/default/login中设置CONSOLE=/dev/null
  在/etc/ftpusers里加上root
  在SSH 配置文件加permitRootLogin = no
  (Solaris 自带SSH缺省就禁止root登陆对 Solaris /etc/ftpusers 不再使用FTP配置文件都在 /etc/ftpd/ 下面如果 ftpd 启动时存在 /etc/ftpusers它会被移动到 /etc/ftpd/下)
  
  
  四系统加固
  为OpenBoot设置密码
  
  在Solaris中设置密码 # eeprom securitypassword
  在OpenBoot中设置密码 ok password
  在Solaris中设置安全级别(command) # eeprom securitymode=command
  在OpenBoot中设置安全级别(command) ok setenv securitymode command
  在OpenBoot中设置安全级别(full) ok setenv securitymode full
  
  取消不必须账号
  移去或者锁定那些不是必须的帐号比如sys\uucp\nuucp\listen等等简单的办法是在/etc/shadow的password域中放上NP字符
  (简单办法是 passwd l username)
  
  文件系统
  /etc目录中应该没有文件是组或者其他用户可写的
  find /etc/ type f –perm –g+w –print (查找组可写文件)
  find /etc/ type f –perm –o+w –print (查找其他用户可写文件)
  chmod –R gow /etc (改变任何错误的组/其他用户的写权限)
  /var/adm/utmp和/var/adm/utmpx文件的权限应该是
  
  XWindows手工锁定(当管理员离开电脑的时候)
  CDE中面板上的加锁图标
  OpenWindows中鼠标右键UtilitiesLock Screen
  
  /etc的存取权限
  用chmod R gw /etc命令来移去组用户对/etc的写权限
  
  打开数据包转发
  #ndd –set /dev/ip ip_forwarding (在系统作为路由器的情况中执行)
  关闭数据包转发
  #ndd –set /dev/ip ip_forwarding (建议把这条命令加入/etc/initd/inetinit中)
  忽略重定向数据包(否则有遭到DOS的隐患)
  #ndd –set /dev/ip ip_ignore_redirects (加入/etc/initd/inetinit)
  不发送重定向数据包
  #ndd –set /dev/ip ip_send_redirects (加入/etc/initd/inetinit)
  禁止转发定向广播(如果网桥连结则不禁止)
  #ndd –set /dev/ip ip_forward_directed_broadcasts (加入/etc/initd/inetinit)
  禁止转发在数据源设置了路由的数据包
  #ndd –set /dev/ip ip_forward_src_routed (加入/etc/initd/inetinit)
  
  利用/etc/notrouter关闭IP转发
  创建/etc/notrouter文件重启计算机(入侵者如果可以访问根目录可以使用ndd命令重新开启IP转发)
  /etc/inet/hosts中的配置
   Localhost (所有系统都有这一项)
   Loghost (syslog使用的)
   wy_solaris (主机IP和主机名)
  /etc/defaultrouter包含了默认路由器的名称或者IP
  如果使用了默认路由器在/etc/inet/hosts文件中必须包含路由器的名称因为如果设置了路由表系统将不会运行任何目录服务(DNSNIS或者NIS+)
  
  cron(任务在/var/spool/cron/crontabs/ 一般行为在/etc/default/cron)
  格式minute hour dayofmonth month dayofweek command
  (每项间用空格同一项两个数字间用逗号每项为数字或者星号)
  配置
  查看命令 crontab –l
  ()进入只有本用户可读的目录
  ()crontab –l > mycronfile
  ()编辑mycronfile
  ()crontab < mycronfile
  不要使用crontab –e命令因为它会在/tmp下建立所有用户都可读的crontab副本
  访问cron系统
  /etc/crond/cronallow (允许)
  /etc/crond/crondeny (不允许)
  存在cronallow其中没有某用户则不允许此用户访问cron系统
  存在crondeny其中没有某用户则允许此用户访问cron系统
  在/etc/default/cron里设置了CRONLOG=yes 来记录corn的动作
  PATH中不应包含/tmp~字样
  at(任务在/var/spool/cron/atjobs)
  /etc/crond/atallow和/etc/crond/atdeny和cron文件完全一样
  
  增加静态路由
  格式 route add net netaddress subnetmask router hops
  例如 route add net
  (要到达xx的网络需要将数据包送往路由器距离xx有一个跃点这个命令将增加到启动文件/etc/rcd/Sinetsvc)
  增加动态路由(会带来安全隐患)
  在/etc/rcd/Sinetsvc中增加和是的命令行
  运行inrouted或者inrdisc
  诊断工具snoop可以sniff只有root可以使用可以把snoop从不需要的UNIX机器上删除
  
  root的umask设置错误
  修改/etc/profile文件将umask设为或者
  
  堆栈缓冲溢出攻击防护设置
  在/etc/system里加上如下语句禁止缓冲溢出
  echo set noexec_user_stack= >> /etc/system
  echo set noexec_user_stack_log= >> /etc/system
  (对 Solaris 可以对单个程序设定堆栈不可执行属性前提是有该程序的源码例如# cc M /usr/lib/ld/mapnoexstk myprogramc)
  
  使IP forwarding和sourec routing(源路)由无效
  在Inetinit中使IP forwarding和sourec routing(源路)由无效(假如有超过一个网络接口的话)在/etc/initd/inetinit中增加下面所示设置:
  ndd set /dev/ip ip_forward_directed_broadcasts
  ndd set /dev/ip ip_forward_src_routed
  ndd set /dev/ip ip_forwarding
  
  防止TCP序列号预测攻击(ip欺骗)
  建议在/etc/default/inetinit中增加如下的生成初始化序列号设置来防止TCP序列号预测攻击(ip欺骗):TCP_STRONG_ISS=
  
  (如果有ftp服务)不要使用匿名ftp
  /etc/inet/nf中的ftpd为(记录)
  ftp stream tcp nowait root /usr/sbin/inftpd inftpd –dl
  决不能用root身份使用ftp(口令不加密)
  /etc/ftpusers中的增加超级用户(这里的账号禁止用ftp连接系统)
  FTP 服务暴露系统敏感信息
  编辑/etc/default/ftpd文件假如文件不存在就新建一个在文件中的加进以下
网友评论
<