- 论坛徽章:
- 0
|
二 系统安全性实施步骤\r\n\r\n2.1 操作系统Recommended patches Cluster 的安装\r\n\r\n1、 补丁前必须作全系统的备份,包括操作系统、应用软件、数据库数据的备份,假如不具备备份条件的至少要备份应用软件和数据库数据;\r\n2、 必须确保补丁不影响正常的在线服务,也就是打完补丁后机器重起服务必须能正常启动;\r\n3、 假如系统是主备Cluster架构的主机系统,先对备机进行补丁和关闭相关服务,并将服务切换到备机观察服务能够正常服务,才能对主机进行打补丁。\r\n\r\n2.2 关闭无用的系统服务\r\n\r\n安装时可以打开某些必要的服务,但安装完毕后应在inetd.conf中注释所有服务。\r\n安装调试阶段的inetd.conf范本:\r\nftp stream tcp nowait root /usr/local/tcp_wrapper/tcpd in.ftpd\r\ntelnet stream tcp nowait root /usr/local/tcp_wrapper/tcpd in.telnetd\r\n\r\n\r\n2.3 移除不需要的服务进程的启动(/etc/rc)\r\n\r\n/etc/rc2.d\r\n\r\nmv S47asppp s47asppp\r\nmv S73nfs.client s73nfs.client\r\nmv S76nscd s76nscd\r\nmv S85power s85power\r\nmv S70uucp s70uucp\r\nmv S72autoinstall s72autoinstall\r\nmv S74autofs s74autofs\r\nmv S80lp s80lp\r\nmv S88sendmail s88sendmail\r\nmv S74xntpd s74xntpd\r\nmv K21dhcp k21dhcp\r\nmv K28nfs.server k28nfs.server\r\nmv S71ldcp.client s71ldap.client\r\nmv S71sysid.sys s71sysid.sys\r\nmv S72slpd s72slpd\r\nmv S73cachefs.daemon s73cachefs.daemon\r\nmv S75flashprom s75flashprom\r\nmv S76ACT_dumpscript s76ACT_dumpscript\r\nmv S80spc s80spc\r\nmv S85power s85power\r\nmv S93cacheos.finish s93cacheos.finish\r\nmv S89bdconfig s89bdconfig\r\nmv S99dtlogin s99dtlogin\r\n\r\n/etc/rc3.d\r\n\r\nmv S76snmpdx s76snmpdx\r\nmv S15nfs.server s15nfs.server\r\nmv S77dmi s77dmi\r\nmv S34dhcp s34dhcp\r\nmv S50apache s50apache\r\n\r\n2.4设置系统文件,防止堆栈溢出漏洞\r\n在/etc/system增加以下\r\n\r\nset noexec_user_stack=1\r\nset noexec_user_stack_log=1\r\n\r\n2.5 打开系统性能监控日志\r\n\r\nroot@hnboss1 # cat /etc/rc2.d/S21perf\r\n\r\n#ident \"@(#)perf.sh 1.7 97/12/08 SMI\"\r\n# Uncomment the following lines to enable system activity data gathering.\r\n# You will also need to uncomment the sa entries in the system crontab\r\n# /var/spool/cron/crontabs/sys. Refer to the sar(1) and sadc(1m) man pages\r\n# for more information.\r\n\r\n if [ -z \"$_INIT_RUN_LEVEL\" ]; then\r\n set -- `/usr/bin/who -r`\r\n _INIT_RUN_LEVEL=\"$7\"\r\n _INIT_RUN_NPREV=\"$8\"\r\n _INIT_PREV_LEVEL=\"$9\"\r\n fi\r\n\r\n if [ $_INIT_RUN_LEVEL -ge 2 -a $_INIT_RUN_LEVEL -le 4 -a \\\r\n $_INIT_RUN_NPREV -eq 0 -a \\( $_INIT_PREV_LEVEL = 1 -o \\\r\n $_INIT_PREV_LEVEL = S \\) ]; then\r\n /usr/bin/su sys -c \"/usr/lib/sa/sadc /var/adm/sa/sa`date +%d`\"\r\n fi\r\n\r\n\r\n\r\nroot@hnboss1 # cat /var/spool/cron/crontabs/sys\r\n#ident \"@(#)sys 1.5 92/07/14 SMI\" /* SVr4.0 1.2 */\r\n#\r\n# The sys crontab should be used to do performance collection. See cron\r\n# and performance manual pages for details on startup.\r\n#\r\n0 * * * 0-6 /usr/lib/sa/sa1\r\n20,40 8-17 * * 1-5 /usr/lib/sa/sa1\r\n5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A\r\n\r\n\r\n2.6 配置Coreadm和Dumpadm:\r\n\r\nhnboss1主机dumpadm.conf文件配置样板:\r\n\r\ncat /etc/dumpadm.conf\r\n\r\nDUMPADM_DEVICE=/dev/dsk/c0t0d0s1\r\nDUMPADM_SAVDIR=/var/crash/hnboss1\r\nDUMPADM_CONTENT=kernel\r\nDUMPADM_ENABLE=yes \r\n\r\n\r\nCoreadm.conf文件配置样板:\r\n\r\n root@qmccjf2 # cat coreadm.conf\r\n#\r\n# coreadm.conf\r\n#\r\n# Parameters for system core file configuration.\r\n# Do NOT edit this file by hand -- use coreadm(1) instead.\r\n#\r\nCOREADM_GLOB_PATTERN=/export/home/core/core.%f.%p.%u\r\nCOREADM_INIT_PATTERN=core.%f.%p.%u\r\nCOREADM_GLOB_ENABLED=yes\r\nCOREADM_PROC_ENABLED=no\r\nCOREADM_GLOB_SETID_ENABLED=yes\r\nCOREADM_PROC_SETID_ENABLED=no\r\nCOREADM_GLOB_LOG_ENABLED=yes\r\n\r\n\r\n\r\n\r\n2.7 察看系统中有哪些SUID和SGID文件,将这些文件备份,便于以后查看比较。用下面的命令可以实现:\r\n\r\nfind / -type f \\( -perm -4000 -o -perm -2000 \\) -ls >; /var/suid.file.20030626\r\n\r\n\r\n2.8 Unix system V版本中,可以把不成功的登录行为记录在/var/adm/loginlog中。要登记不成功的注册行为,可以用下列命令建立/var/adm/loginlog文件:\r\n \r\n#touch /var/adm/loginlog \r\n#chmod 600 /var/adm/loginlog\r\n#chown root /var/adm/loginlog\r\n\r\n2.9 创建notroute文件\r\n#touch /etc/notroute\r\n\r\n2.10 Acct设置\r\n1. Install /etc/init.d/acct as the startup script for Run Level 2. \r\n\r\n# ln /etc/init.d/acct /etc/rc2.d/S22acct\r\n2. Install /etc/init.d/acct as the stop script for Run Level 0.\r\n\r\n# ln /etc/init.d/acct /etc/rc0.d/K22acct\r\n3. Add the following lines to the adm crontab file to start the ckpacct, runacct, and monacct programs automatically.\r\n\r\n# EDITOR=vi; export EDITOR\r\n# crontab -e adm\r\n0 * * * * /usr/lib/acct/ckpacct\r\n30 2 * * * /usr/lib/acct/runacct 2>; /var/adm/acct/nite/fd2log\r\n30 7 1 * * /usr/lib/acct/monacct\r\n4. Add the following line to the root crontab file to start the dodisk program automatically.\r\n\r\n# crontab -e\r\n30 22 * * 4 /usr/lib/acct/dodisk\r\n\r\n\r\n2.11 安装设置SSH\r\n\r\n\r\n2.12 如果没有必要保留,删除/etc/hosts.equiv, /.rhosts.\r\n #rm /etc/hosts.equiv\r\n #rm /.rhosts\r\n\r\n2.13 编辑/etc/default/passwd,设置:\r\n\r\nPASSLENGTH=8 # 最短密码长度\r\n\r\n\r\n2.14 用的crontabs,主要包括lp、uucp等;\r\n对root的crontabs文件作重点检测,查看内容是否有非法内容。\r\n在/etc/default/cron文件中增加如下行: CRONLOG=YES\r\n\r\n\r\n2.15 在/etc/init.d/inetsvc文件中增加如下相关内容:\r\n# Run inetd in \"standalone\" mode (-s flag) so that it doesn\'t have\r\n# to submit to the will of SAF. Why did we ever let them change inetd?\r\n/usr/sbin/inetd -s -t &\r\n\r\n2.15 将/etc/default/inetinit文件中的TCP_STRONG_ISS=1 改为\r\n\r\ntcp_strong_ISS=2\r\n\r\n2.17 network paramater\r\n在/etc/rc2.d/S69inet中做如下参数调整:\r\n 缩短ARP的cache保存时间: \r\nndd -set /dev/arp arp_cleanup_interval 60000 /* 1 min (default is 5 min)*/ \r\n 关闭echo广播来防止ping攻击 \r\nndd -set /dev/ip ip_respond_to_echo_broadcast 0 # default is 1 \r\n 关闭原路由寻址 \r\nndd -set /dev/ip ip_forward_src_routed 0 # default is 1 \r\n 禁止系统转发IP包 \r\nndd -set /dev/ip ip_forwarding 0 # default is 1 \r\n 禁止系统转发定向广播包 \r\nndd -set /dev/ip ip_forward_directed_broadcasts 0 # default is 1 \r\n 使系统忽略重定向IP包 \r\nndd -set /dev/ip ip_ignore_redirect 1 # default is 0 \r\n 使系统限制多宿主机 \r\nndd -set /dev/ip ip_strict_dst_multihoming 1 # default is 0 \r\n 再次确保系统关闭ICMP广播响应 \r\nndd -set /dev/ip ip_respond_to_address_mask_broadcast 0 # default is 1 \r\n 关闭系统对ICMP时戳请求的响应 \r\nndd -set /dev/ip ip_respond_to_timestamp 0 # default is 1 \r\n 关闭系统对ICMP时戳广播的响应 \r\nndd -set /dev/ip ip_respond_to_timestamp_broadcast 0 # default is 1 \r\n 禁止系统发送ICMP重定向包 \r\nndd -set /dev/ip ip_send_redirects 0 # default is 1\r\n 关闭响应地址掩码广播\r\nndd -set /dev/ip ip_respond_to_address_mask_broadcast 0 #default is 1 \r\n 提高未连接队列的大小\r\nndd -set /dev/tcp tcp_conn_req_max_q0 4096\r\n 提高已连接队列的大小\r\nndd -set /dev/tcp tcp_conn_req_max_q 1024\r\n上述配置在系统重新启动后生效。\r\n\r\n2.18 创建/etc/ftpusers文件:\r\n把所有的系统账户加入到这个文件里: \r\nroot daemon sys bin adm lp uucp nuucp listen nobody \r\n\r\n2.19 审计并日志所有以root身份的登陆情况 \r\n添加或编辑/etc/default/login文件如下入口: \r\nSYSLOG= YES \r\n#syslog记录root的登陆失败,成功的情况。 \r\n\r\n2.20设置远程登陆会话超时时间 \r\n添加或编辑/etc/default/login文件如下入口: \r\nTIMEOUT= 300 \r\n\r\n2.21确定登陆需要密码验证 \r\n添加或编辑/etc/default/login文件如下入口: \r\nPASSREQ= YES \r\n\r\n2.22 禁止Stop-‘A’键\r\n在/etc/default/kbd中,改变或加入“KEYBOARD_ABORT=disable”。\r\n此项防止启动后,按stop-A或L1-A得到ok提示符,使用启动盘可以进入单用户模式,防止攻击者物理接触机器。 |
|