针对solaris7,8操作系统的一个完全的安全配置手册,供系统管理员参考。
Solaris安全配置流程1 一,solaris系统安装3 系统patch3 建立/var分区3 二,系统4 eeprom安全4 置核心大小为零4 三,用户管理4 禁止所有的系统账户(system accounts)4 用强壮的密码设置程序5 设置默认的密码参数5 设置密码的最大生存周期5 设定离用户密码过期的天数,当系统启动时提醒用户。5 设定最小用户密码长度6 防止远程的root登陆6 纪录所有root的登陆情况6 设置登陆会话超时时间6 设置默认的屏蔽掩码6 设置root的umask6 确定登陆需要密码验证7 设置shell的环境变量7 检查每个用户的密码档设置7 去掉所有path环境变量里的“.”7 限制su命令,添加可以su的用户到sugroup里7 四,inetd超级进程8 注释掉所有确实不需要的服务8 对inetd的服务实现TCP wrapper8 加固inetd8 关于xinetd8 五,系统启动服务(rc.X)9 去掉不需要的启动服务9 禁止DMI服务9 禁止默认的mounting suid features9 检查所有的.rhosts文件10 禁止基于rhosts的用户认证10 检查信任关系10 启动服务脚本的屏蔽掩码10 六,网络接口的调整和安全11 缩短ARP缓存的存在周期11 缩短条目在arp-table里刷新的时间11 禁止回应广播的的请求来防止一些特殊的具有危害性的ping包11 启动时禁止源路由11 防止系统在启动时启动ip转发11 设置系统禁止ip包转发12 设置系统精确的多路寻址12 保证系统不响应icmp网络掩码请求12 防止系统响应icmp的时间戳请求12 防止系统响应icmp时间戳广播12 防止系统发送icmp转发信息13 改变TCP初始序列号生成参数13 设置in.routed在静态模式13 禁止路由13 八,小型服务14 1,NFS14 2,NIS,NIS+15 3,MAIL15 4,FTP16 5,TELNET17 九,X-Windows17 十,文件许可权限18 去掉不用的suid文件18 去掉不用的sgid程序18 删除一切/etc目录下的组用户可写的文件19 移除/etc目录下一切对用户可写的文件19 改变所有文件的rw-rw-rw权限为rw-r-r-19 改变文件的rwxrwx???19 找出可写的目录20 确定所有应用服务的启动脚本的用户属主和用户组是root20 打开cron程序的记账20 检查utmp,utmpx的权限20 寻找没有用户关联的文件21 寻找没有组关联的文件21 检查/var/cron的权限21 十一,登录和记账21 设置cronlogfile的保存空间为2m21 记账所有的inetd服务22 修改syslog.conf文件22 安装tripwire22 IDS22 日志文件观察者(swatch)22 禁止telnet远程管理,用ssh23 十二,其他23 设置启动标示23
一 solaris系统安装 系统patch 解决方案: 连接站点http://sunsolve.sun.com寻找solaris的最新补丁路径 showrev -p [安装的补丁列表命令] 建立/var分区 解决方法: /var分区是存放logfile以及系统变动文件的文件系统,因为它的易变化性,以及在系统运作过程中的不断扩大,所以不要把/var文件系统包括再root分区里,以免有恶意程序恶意扩大日志文件来dos根分区。 1)在系统安装之初解决这个问题。 2)划分较小的独立的文件系统给/var 3)并挂接在/下。
二 系统 eeprom安全 安全层面:本地 解决方法: 先解释一下openboot安全级别: none 不需要任何口令 command 除了boot和go之外的所有命令都需要口令。 Full 除了go命令之外的所有openboot命令都需要openboot口令 好!用# eeprom security-mode=command命令来改变openboot的安全级别到command级。当然,你首先得要用# eeprom security-password命令来给openboot设置强壮口令。 为什么要这样做:因为能够访问openboot的用户可以从几乎所有的scsi设备(外部硬盘或cdrom)上引导系统,这样用户如果从他们自己的媒体来引导系统的话,就等于完全控制了系统。同样,用户能够用stop-A停止系统,可以修改所有openboot环境变量。这是非常危险的事情。
置核心大小为零 安全层面:本地 解决方法: 添加行到:/etc/system文件里: set sys:coredumpsize = 0 我建议这样做,因为你需要去分析内核,这样做可以防止由于你的误操作而损坏你的硬盘。 参考脚本: disable-core.sh
三 用户管理 禁止所有的系统账户(system accounts) 安全层面:本地 解决方法: 编辑/etc/passwd文件使所有系统账户没有shell。如:noaccess:x 60002:60002:No Access User:/:/sbin/noshell noshell.c应该这样写: #include <stdio.h> void main() { printf(“sorry!no shell with this account\n”); return 0; } gcc -o ./noshell ./noshell. c cp /sbin/noshell /sbin/noshell.solaris cp ~/noshell /sbin/noshell 禁止不需要的系统账户,在/etc/shadow文件中用NP标志放在那些用户的密码段,这样那些用户就被禁止了。 基本的sys V unix系统账户: bin, daemon,adm,lp,smtp,sys,uucp,nuucp,nobody,noaccess 用强壮的密码设置程序 安全层面:远程 解决方法: 对于所有用户账户而言都应该用强壮的密码,在solaris下有一个叫npasswd的工具运行的很好,利用npasswd代替passwd程序来让用户设置密码,它附带了一个配置文件,可以让用户设定密码的长度,字符,期限等控制信息。 设置默认的密码参数 安全层面:本地 解决方法: 添加或编辑/etc/default/passwd文件如下入口: PWMIN= 1 #密码可以被改变的最小时段 设置密码的最大生存周期 安全层面:本地 解决方法: 添加或编辑/etc/default/passwd文件如下入口: PWMAX= 13 #密码的最大生存周期 设定离用户密码过期的天数,当系统启动时提醒用户。 安全层面:本地 解决方法: 添加或编辑/etc/default/passwd文件如下入口: PWWARN= 4 设定最小用户密码长度 安全层面:本地 解决方法: 添加或编辑/etc/default/passwd文件如下入口: PWLEN= 8 #设定最小用户密码长度为8位 防止远程的root登陆 安全层面:本地 解决方法: 添加或编辑/etc/default/login文件如下入口: LCONSOLE=/dev/console #这样root只能从/dev/console这个设备登陆 纪录所有root的登陆情况 安全层面:本地 解决方法: 添加或编辑/etc/default/login文件如下入口: LSYSLOG= YES #syslog纪录root的登陆失败,成功的情况 设置登陆会话超时时间 安全层面:本地 解决方法: 添加或编辑/etc/default/login文件如下入口: LTIMEOUT= 120 设置默认的屏蔽掩码 安全层面:本地 解决方法: 添加或编辑/etc/default/login文件如下入口: LUMASK= 027 #这将设定标准掩码为:750,也可以将这行加到/etc/.login /etc/profile /etc/skel/local.cshrc /etc/skel/local.login /etc/skel/local.profile这些文件里 设置root的umask 安全层面:本地 解决方法: 确定root的umask是027或077 检查root的.profile 确定登陆需要密码验证 安全层面:本地 解决方法: 添加或编辑/etc/default/login文件如下入口: LPASSREQ= YES 设置shell的环境变量 安全层面:本地 解决方法: 添加或编辑/etc/default/login文件如下入口: LALTSHELL= YES 检查每个用户的密码档设置 安全层面:本地 解决方法: 检查/etc/passwd;/etc/shadow文件里的每个用户的加密行,如: user:lRs.8R9EfQXx.:11137:0:10000:::: 加密段有无被修改的迹象 去掉所有path环境变量里的“.” 安全层面:本地 解决方法: 从用户及root的初始化脚本中的path变量里去除“.”,比如如下脚本: /.login /etc/.login /etc/default/login /.cshrc /etc/skel/local.cshrc /etc/skel/local.login /etc/skel/local.profile /.profile /etc/profile 限制su命令,添加可以su的用户到sugroup里 安全层面:本地 解决方法: 1)在/etc/group文件里建立一个特殊的组 2)使你的admin账号在这个组里 3)改变/bin/su的权限为:r-sr-sr-x 1 root sugroup # chmod 550 /bin/su # chmod +s /bin/su # chown root:sugroup /bin/su # ls -al /bin/su -r-sr-s--- 1 root sugroup 18360 Jan 15 1998 /bin/su # grep sugroup /etc/group sugroup::600:root,httpadm,wsphere 只有是sugroup组里的用户才可以使用su命令
四 inetd超级进程 注释掉所有确实不需要的服务 安全层面:远程 解决方法: 用grep -v “^#”/etc/inetd.conf命令来察看你当前没有注释的服务 去掉一切你不是真正需要的服务,并且是那些没有注释的服务保护在tcp_wrapper之下。 对inetd的服务实现TCP wrapper 安全层面:远程 解决方法: 编译安装tcpd到/usr/local/bin目录下,编辑/etc/inetd.conf如下: ftp stream tcp nowait root /usr/local/bin/ tcpd in.ftpd telnet stream tcp nowait root /usr/local/bin/ tcpd in.telnetd 加固inetd 安全层面:远程 解决方法: 检查/etc/hosts.deny和/etc/hosts.allow文件,确定如下格式: /etc/hosts.deny ALL:ALL 开启的服务: /etc/hosts.allow <service>:<source-ip> 关于xinetd 安全层面:本地 解决方法: xinetd有这比inetd更强大的灵活性和安全性,所以尽量用xinetd来代替inetd。
五 系统启动服务(rc.X) 去掉不需要的启动服务 安全层面:远程 解决方法: 用mv命令来去掉不需要的启动服务,一个例子如下: mv /etc/rc3.d/S92volmgt /etc/rc2.d/not_usedS92volmgt 这样vlomgt这个服务就被禁止启动了 下面一些服务最好禁止启动(不过具体情况具体决定): snmpdx autofs(Automounter) volmgt(Volume Deamon) lpsched(LP print service) nscd (Name Service Cache Daemon) Sendmail Keyserv 禁止rpcbind服务,如果它不是一定需要的话。(以上列表可以代表所有不需要的服务,但具体情况请进入到rc.X目录里自行决定哪些服务需要,哪些不需要) 禁止DMI服务 安全层面:远程 解决方法: 禁止所有的dmi服务:mv /etc/rc3.d/S??dmi /etc/rc3.d/D??dmi DMI服务通过/etc/init.d/init.dmi里的几个bin文件来运行: /usr/lib/dmi/dmispd /usr/lib/dmi/snmpXdmid /etc/dmi/ciagent/ciinvoke 禁止默认的mounting suid features 安全层面:远程 解决方法: 在/etc/rmmount.Conf文件里添加行: mount hsfs -o nosuid mount ufs -o nosuid 检查所有的.rhosts文件 安全层面:远程 解决方法: .rhosts文件允许用户或远程主机访问系统而不经过密码验证。假如一台远程的主机被攻破,这将成为极大的安全隐患。建议禁止任何.rhosts文件。 禁止基于rhosts的用户认证 安全层面:远程 解决方法: 更改并删除/etc/pam.conf文件里的: rlogin auth sufficient /usr/lib/security/pam_rhosts_auth.so.1 改变rsh行: rsh auth required /usr/lib/security/pam_unix.so.1 参考脚本: pam-rhosts-2. 6.sh 检查信任关系 安全层面:远程 解决方法: 确定/etc/hosts.equiv文件为空。 启动服务脚本的屏蔽掩码 安全层面:远程 解决方法: 在每个rc.X目录中建立S00umask文件: /etc/rc0.d/S00umask.sh /etc/rc1.d/S00umask.sh /etc/rc2.d/S00umask.sh /etc/rc3.d/S00umask.sh /etc/rcS.d/S00umask.sh /etc/init.d/umask 参考脚本: add-umask.sh
六 网络接口的调整和安全 缩短ARP缓存的存在周期 安全层面:远程 解决方法: 在/etc/rc2.d/S??inet脚本中添加如下: ndd -set /dev/arp arp_cleanup_interval 60000 /* 1 min (default is 5 min)*/ 缩短条目在arp-table里刷新的时间 安全层面:远程 解决方法: 在/etc/rc2.d/S??inet脚本中添加如下: ndd -set /dev/ip ip_ire_flush_interval 60000 /* 1 min (default is 20 min)*/ 禁止回应广播的的请求来防止一些特殊的具有危害性的ping包 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_respond_to_echo_broadcast 0 # default is 1 启动时禁止源路由 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_forward_src_routed 0 # default is 1 防止系统在启动时启动ip转发 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_forwarding 0 # default is 1 设置系统禁止ip包转发 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_ignore_redirect 1 # default is 0 (adds it into /etc/init.d/nddconfig) 设置系统精确的多路寻址 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_strict_dst_multihoming 1 # default is 0 (adds it into /etc/init.d/nddconfig) 保证系统不响应icmp网络掩码请求 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_respond_to_address_mask_broadcast= 0 # default is 0 (adds it into /etc/init.d/nddconfig) 防止系统响应icmp的时间戳请求 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_ip_respond_to_timestamp= 0 # default is 1 (adds it into /etc/init.d/nddconfig) 防止系统响应icmp时间戳广播 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_ip_respond_to_timestamp_broadcast= 0 # default is 1 (adds it into /etc/init.d/nddconfig) 防止系统发送icmp转发信息 安全层面:远程 解决方法: 添加或修改/etc/rc2.d/S??inet如下: ndd -set /dev/ip ip_send_redirects= 0 # default is 1 (adds it into /etc/init.d/nddconfig) 改变TCP初始序列号生成参数 安全层面:远程 解决方法: 改变/etc/default/inetinit文件的条目: TCP_STRONG_ISS= 2 设置in.routed在静态模式 安全层面:远程 解决方法: 按如下步骤建立in.routed -q(静态模式): mv /usr/sbin/in.routed to /usr/sbin/in.routed.orig 建立/usr/sbin/in.routed如下内容: #! /bin/sh /usr/sbin/in.routed.orig -q 更改这个文件的权限: chmod 0755 /usr/sbin/in.routed #动态的路由模式容易遭受到恶意的路由信息的亲篇和攻击,所以建议宁愿用静态路由,(路由的增加通过启动文件的route命令)也不建议用动态路由守护进程 禁止路由 安全层面:远程 解决方法: touch /etc/notrouter
八,小型服务 1,NFS 移除NFS 安全层面:远程 解决方法: 建议在DMZ中不要运行NFS服务,所以如果它运行着的话,建议移除它。如下步骤: 移除/etc/dfs/dfstab中的所有共享定义 杀掉NFS守护进程:lockd, nfsd, statd, mountd 重命名NFS的启动脚本:/etc/rc3.d/S??nfs.server 和 /etc/rc2.d/S??nfs.client
设置NFS的特定tcp端口 安全层面:远程 解决方法: 执行如下命令: ndd -set /dev/tcp tcp_extra_priv_ports_add 2049
设置NFS的特定udp端口 安全层面:远程 解决方法: 执行如下命令: ndd -set /dev/udp udp_extra_priv_ports_add 2049
开启NFS端口监听 安全层面:远程 解决方法: 添加行到/etc/system文件: set nfssrv: nfs_portmon = 1 set nfs: nfs_portmon = 1 确定你的/etc/system文件的访问权限为644: # chmod 644 /etc/system
一些nfs相关的服务 安全层面:远程 解决方法: 关掉如下服务: nfsd mountd rpc.boot in.rarpd rpld 2,NIS,NIS+ 去除NIS,NIS+ 安全层面:远程 解决方法: 我们建议不要运行NIS,NIS+服务,所以按一下步骤移除它: 在文件/etc/domainname里移除域名: 你可以察看NIS大体的服务列表: # pkginfo |grep NIS # pkgrm <NIS-Package> system SUNWypr NIS Server for Solaris (root) system SUNWypu NIS Server for Solaris (usr)
移除NIS,NIS+,DNS Lookup 安全层面:远程 解决方法: 编辑/etc/nsswitch.conf如下: passwd: files group: files hosts: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files publickey: files netgroup: files automount: files aliases: files services: files sendmailvars: files 如果需要dns的话,可以再次修改这个文件 3,MAIL 停止绑定在25端口的sendmail服务 安全层面:本地 解决方法: 禁止sendmail服务,你的用户依然可以发信。意思是,sendmail仍然安装了,只是不要作为守护进程存在,你可以在sendmail.cf文件里限制你的用户的权限。 mv /etc/rc2.d/S88sendmail /etc/rc2.d/not_usedS88sendmail
注释所有的并行邮件别名 安全层面:远程 解决方法: 检查 /ect/aliases |可以并列。用#号注解。
限制sendmail的expn和vrfy两个命令来收集系统信息 安全层面:远程 解决方法: 在/etc/senmmail.cf文件中修改如下限制远程连接25端口使用expn和vrfy命令: # O PrivacyOptions=authwarnings, goaway Opgoaway # O PrivacyOptions=noexpn, novrfy, authwarnings O LogLevel=5
隐藏smtp版本信息 安全层面:远程 解决方法: 在/etc/mail/sendmail.cf文件里找到smtp版本信息,修改如下: # SMTP login message
禁止邮件转发 安全层面:远程 解决方法: 普通用户不可以选择转发者,而root可以通过/usr/local/forward/.forward.$u来控制邮件转发,修改/etc/sendmail.cf如下行: O ForwardPath=/usr/local/forward/.forward.$u 设置/usr/local/forward正确的权限
接收邮件 安全层面:本地 解决方法: 如果真要在自己的系统上接收外来的邮件(监听在25端口)。我们建议利用spam或smtpd/smtpfwdd来保证邮件服务的安全(加上anti-spam,安全配置)。
4,FTP 安全FTP 安全层面:远程 解决方法: 建立或修改/etc/default/ftpd文件增加屏蔽码和ftp标志信息: UMASK= 077 BANNER="/bin/cat /etc/ftp-banner" 修改/etc/default/ftpd权限: chmod 644 /etc/default/ftpd
建立ftp标示信息 安全层面:远程 解决方法: 建立/etc/ftp-banner文件满足如下: 例如:This system is for authorized users only. Monitoring may occur 修改/etc/ftp-banner文件的权限: chmod 644 /etc/ftp-banner
创建/etc/ftpusers文件 安全层面:远程: 解决方法: 创建/etc/ftpusers文件,把所有的系统账户加入到这个文件里 例如如下账户: root daemon sys bin adm lp smtp uucp nuucp listen nobody noaccess news ingres audit admin sync nobody4 修改/etc/ftpuser文件的权限: chmod 644 /etc/ftpusers 5,TELNET 防止telnet程序现实系统版本信息 安全层面:远程 解决方法: 移除/etc/default/telnetd文件里的信息: Banner=”” 加入/etc/default/telnetd文件不存在,按如下步骤操作: touch /etc/default/telnetd echo "BANNER=\"\"">> /etc/default/telnetd chmod 444 /etc/default/telnetd 九,X-Windows 设置CDE为不接受任何XDMCP登陆连接 安全层面:远程 解决方法: 假如/usr/dt/config/Xaccess存在,则如下操作: cat <<EOF >/usr/dt/config/Xaccess # disable all XDMCP connections !* EOF 假如/etc/dt/config/Xaccess存在,则如下操作: cat <<EOF >/etc/dt/config/Xaccess # disable all XDMCP connections !* EOF 十,文件许可权限 去掉不用的suid文件 安全层面:本地 解决方法: 许多运行在solaris上的suid程序都只属于root,检查这些程序,有没有是属于其他用户的: 步骤: 1)找出所有的suid程序 2)创建备3)份目录(如:/opt/backup/usr/local/bin) 4)把这些suid程序备5)份在以上目录里 6)把这些程序用tar打成包(使find程序在备7)份目录里找不8)到这些程序) 9)删掉备10)份目录 11)去掉所有的suid程序的s权位 12)只保留一些必须的suid程序。如:passwd,13)su等 14)再次执行一遍find程序,15)看看输出情况 必须用到的一些命令: find / -type f\( -perm -4000 \) |xargs ls -a find / -type f\( -perm -4000 \) |xargs chmod -s
去掉不用的sgid程序 安全层面:本地 解决方法: 许多运行在solaris上的sgid程序都只属于root,检查这些程序,有没有是属于其他用户的: 1)出所有的sgid程序 2)创建备3)份目录(如:/opt/backup/usr/local/bin) 4)把这些sgid程序备5)份在以上目录里 6)把这些程序用tar打成包(使find程序在备7)份目录里找不8)到这些程序) 9)删掉备10)份目录 11)去掉所有的sgid程序的s权位 12)只保留一些必须的sgid程序。如:passwd,13)su等 14)再次执行一遍find程序,15)看看输出情况 必须用到的一些命令: find / -type f\( -perm -2000 \) |xargs ls -a find / -type f\( -perm -2000 \) |xargs chmod -s
删除一切/etc目录下的组用户可写的文件 安全层面:本地 解决方法: 检查/etc目录下所有的组可写文件: find /etc -type f\( -perm 20 \) | xargs ls -las 不需要组的可写权限,修改如下: find /etc -type f\( -perm 20 \) | xargs chmod g-w
移除/etc目录下一切对用户可写的文件 安全层面:本地 解决方法: 检查/etc目录下对用户可写文件: find /etc -type f\( -perm 2 \) | xargs ls -las 不需要用户的可写权限,修改如下: find /etc -type f\( -perm 2 \) | xargs chmod g-w 改变所有文件的rw-rw-rw权限为rw-r-r- 安全层面:本地 解决方法: 首先列出文件: find / -type f -perm 666 |xargs ls -al > perm-666-before-change.txt 改变权限: find / -type f -perm 666 |xargs chmod 644 find / -type f -perm 666 |xargs ls -al > perm-666-after-change.txt 改变文件的rwxrwx??? 安全层面:本地 解决方法: 首先列出文件: find / -type f -perm 777 |xargs ls -al > perm-777-before-change.txt 改变权限: find / -type f -perm 777 |xargs chmod 755 find / -type f -perm 777 |xargs ls -al > perm-777-after-change.txt 找出可写的目录 安全层面: 本地 解决方法: find / -type d\( -perm 2 \) 改变你所需要的权限设置
确定所有应用服务的启动脚本的用户属主和用户组是root (这些可以影响补丁的程序和出错信息) 安全层面:本地 解决方法: 检查启动脚本的文件属主: find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xargs ls -al > rc-files-before-change.txt 改变这些文件的文件属主: find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xargs chown root:root find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xargs ls -al > rc-files-after-change.txt ls -al /etc/ init. d > etc-init.d-before.change.txt chown root:root /etc/ nit.d ls -al /etc/init.d > etc-init.d-after-change.txt 经过这样的改变,所有的rcX.d里的脚本的文件属主都为root,所有的/etc/init.d目录里的脚本的文件属主文件组都是root了,为了防止特洛伊木马。 打开cron程序的记账 安全层面:本地 解决方法: 确定/etc/default/cron文件里有如下行: CRONLOG=YES 检查utmp,utmpx的权限 安全层面:本地 解决方法: 检查/var/adm目录下的文件权限: find /var/adm -type f\( -perm 2 \) | xargs ls -las 修改文件: chmod 644 /var/adm/utmp 寻找没有用户关联的文件 安全层面:本地 解决方法: find / -type f -nouser 如下步骤: 1) find / -type f -nouser > files-nouser-before-change 2) find / -type f -nouser | xargs chwon nobody:nobody 3) find / -type f -nouser > files-nouser-after-change 寻找没有组关联的文件 安全层面:本地 解决方法: find / -type f -nogroup 如下步骤: 1) find / -type f -nogroup > files-nogroup-before-change 2) find / -type f -nogroup | xargs chgrp nobody 3) find / -type f -nogroup > files-nogroup-after-change 检查/var/cron的权限 安全层面:本地 解决方法: 如果/etc/cron文件的文件属主不是root,组不是sys,修改该文件的权限: chmod 700 /var/cron && chown root /var/cron && chgrp sys /var/cron 十一,登录和记账 设置cronlogfile的保存空间为2m 安全层面:本地 解决方法: 修改/etc/cron.d/logchecker如下: LIMIT=4096 记账所有的inetd服务 安全层面:本地 解决方法: 修改/etc/init.d/inetsvc文件如下: /usr/sbin/ifconfig -au netmask + broadcast + /usr/ bin/inetd -s -t 假如你运行了named,dhcpd, multicast,你必须作如上改动 修改syslog.conf文件 安全层面:远程 解决方法: 编辑/etc/syslog.conf文件,让日志进程纪录更多的系统信息。 添加如下行: *.debug /var/adm/compass.messages 安装tripwire 安全层面:远程 解决方法: tripwire是一个特洛伊木马检查程序,他工作在提供的二进制文件的md5码的数据库以及你的配置上,建议每6个小时运行一次tripwire。 IDS 安全层面:远程 解决方法: 建议安装运行snort工具来监测你的网络可能收到的如下攻击: - cgi-scan - portscans - virus 根据你的需要参看/root/config/snort.rules文件。 日志文件观察者(swatch) 安全层面:远程 解决方法: 建议安装运行swatch工具来监测你的日志文件,你可以在你的系统上启动多个监测进程,例如: - /var/adm/compass.messages - /var /adm/snort_portscan.log - /opt/AppServer/WebSphere/log/???? Swatch是一个用perl写的工具,所以你必须安装PERL MODULES。 禁止telnet远程管理,用ssh 安全层面:远程 解决方法: 安装openssl,openssh的最新版本来代替telnetd,密切关注最新版本的security report。 十二,其他 设置启动标示 安全层面:本地 解决方法: 修改/etc/default/telnetd文件设置启动banner,格式如下: BANNER=”…..” 创建/etc/issue文件编辑启动信息。 |