天天加油 - 助您成才
Solaris安全手册
您正在看的Linux|Unix是:Solaris安全手册。
1. Preparation
最小限度保证安全的方法是只在主机上运行一个或两个服务。使用一个机器比只使用一个拥有所有权利的机器安全的多,因为这样可以隔离,方便查找问题所在。总之:在你的机器上运行你一些最必要的服务。考虑拆除键盘,屏幕,这样可以避免使用X11和知道命令行所示,在一个隔离的信任的网络段中进行测试。明确你的系统和硬件配置能产生什么样的结果,如在安装SUN的Disksuite时要考虑
你是否需要RPC服务,因为DISKSUITE必须使用RPC服务。明确各种应用程序是怎样工作的如:使用什么端口和文件.
2,初始化安装操作系统。
连接串口控制台,开机,当出现OK提示时发送Stop-A信息(~#,~%b,或者F5,主要取决于你使用tip,cu或者vt100终端),然后开始安装过程-boot cdrom - install
使用最小安装 end user bundle(除非你要额外的server/developer工具),设置主机名,终端,IP参数,时区等等,不要激活NIS或者NFS及不要激活电源管理。选择手工划分分区:把/usr和/opt和ROOT分离开来以便这些分区可以以只读方式挂(mount)起来。考虑把大的/var文件系统和拥有较多的数据量如(web,ftp)划分为独立的分区。
如果硬盘是2GB建议200MB / (+var), 200MB swap, 600MB /usr及 1GB 给 /opt
如果硬盘是2GB建议300MB / (+var+opt), 200MB swap, 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,S30sysid.net,S71sysid.sys,S72autoinstall}
rm /etc/rc2.d/{S93cacheos.finish,S73cachefs.daemon,S80PRESERVE}
rm /etc/rc2.d/{S85power,K07dmi}
rm /etc/rc3.d/S77dmi
If you have server/developer packages:
rm /etc/rc2.d/{S47asppp,S89bdconfig,S70uucp}
使RPC无效:这一般来说是建议关闭此功能的,但一些程序如DISKSUITE会开启RPC服务,所以一般建议不使用DISKSUITE工具。如果你不想使RPC无效,则一定要使用信息包过滤器。
rm /etc/rc2.d/S71rpc
使打印服务无效(除非有一个本地打印机存在):
rm /etc/rc2.d/{S80lp,S80spc}
使naming Services Caching Daemon(名字服务缓冲守护程序)服务无效:
mv /etc/rc2.d/S76nscd /etc/rc2.d/.S76nscd
使CDE程序无效(除非你坚持要使用图形控制台):
rm /etc/rc2.d/S99dtlogin
使NTP-NETWORK TIME PROTOCOL无效(NTP会增加带宽和不安全的因素,建议使用
rdate到一台使用NTP的机器来获得精确时间):
rm /etc/rc2.d/S74xntpd
使SNMP无效:
rm /etc/rc2.d/K07snmpdx /etc/rc3.d/S76snmpdx
在Inetinit中是IP forwarding和sourec routing(源路)由无效(假如有超过一个网络接口的话)。在/etc/init.d/inetinit中增加下面所示设置:
ndd -set /dev/ip ip_forward_directed_broadcasts 0
ndd -set /dev/ip ip_forward_src_routed 0
ndd -set /dev/ip ip_forwarding 0
根据RFC1948建议在/etc/default/inetinit中增加如下的生成初始化序列号设置来防止TCP序列号预测攻击(ip欺骗):
TCP_STRONG_ISS=2
在/etc/system中增加如下设置来防止某些缓冲溢出攻击。这些保护是那些需在堆栈中执行的攻击方式。但需要硬件的支持(只在sun4u/sun4d/sun4m系统中有效):
set noexec_user_stack=1
set noexec_user_stack_log=1
使用默认路由:在/etc/defaultrouter中增加IP地址,或使用route在/etc/rc2.d/S99static_routes中建立启动文件。为了使动态路由无效:
touch /etc/notrouter
为了使多路广播(multicasting)无效请在/etc/init.d/inetsvc中注解掉
route add 224.0.0.0周围的几行。
为了记录INETD连接的所有信息,在inetd低端的启动行中增加-t参数,
即:: /usr/sbin/inetd -s -t
在/etc/hosts中配置一些你想取舍的主机(一些你不想通过DNS解析的)。
/etc/inetd.conf:
先使所有服务无效;
配置你真正需要的服务,但必须使用FWTK netacl或tcp wrappers来允许最小限度的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 -s test_email root 在/.cshrc/.profile中设置别名,变量如:VISUAL, EDITOR和PATH,但不要包含'.'号。

为LOGIN登录进程安装SSH。配置SSH守护程序(/etc/sshd_config)以便访问限制在带有known public keys的主机(/etc/ssh_known_hosts)并使rhosts认证无效。如果远程管理确实需要的话,使用.shosts要比.rhosts好的多。检查Inetd中的telnetd/ftpd是否仍然激活,如果是的话请在/etc/inetd.conf中注释掉,在进行SSH测试。

安装一些其他的一些必须工具如:gzip;traceroute;top(不带SUID);lsof.

安装和建立Perl5到/bin/perl.

在/secure中安装安全脚本如:rotate_cron, rotate_log, wtrim.pl, rdistd
并改变属性来保护/secure:chmod -R 700 /secure; chown -R root /secure
6,在次配置和筛选系统安全:
许多在CD中OS的补丁是不够及时的,因此从sunsolve.sun.ch中获取patchdiag
工具来查看安全补丁并下载安装这些补丁。

配置登录记录
在/etc/default/su中使SU记录有效。
使用以下方法使尝试登录失败记录有效:
touch /var/log/loginlog;
chmod 600 /var/log/loginlog;
chgrp sys /var/log/loginlog

SYSLOG记录:根据syslog.conf例子来分散LOG分析记录,即把多项服务的记录
分散到各个独立的LOG文件,有条件的话在(/etc/hosts)中指定一台机器作为loghost

syslog loghost
需要一个大的磁盘作为LOG记录的存储介质。
建立空的LOGS文件并设立相应的权限:

cd /var/log; touch daemonlog authlog kernlog userlog maillog lprlog
cronlog newslog locallog alertlog;

chmod 600 daemonlog authlog kernlog userlog maillog lprlog cronlog
newslog locallog alertlog;

kill -1 `pgrep syslogd`

使用rotate_log来修剪和压缩LOGS文件,在root cron中增加如下条目:
## Prune syslog logs weekly, keeping the last 6 months or so:
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 alertlog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 authlog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 20 cronlog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 daemonlog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 kernlog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 locallog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 20 newslog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 userlog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 10 lprlog
55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 20 maillog
# Reset syslog daemon
0,15,30 0 * * 0 kill -HUP `cat /etc/syslog.pid`

为了你自己使用上面的条目请在root cron中使其他的log修剪(pruning)无效:
#10 3 * * 0,4 /etc/cron.d/logchecker
#10 3 * * 0 /usr/lib/newsyslog
#15 3 * * 0 /usr/lib/fs/nfs/nfsfind
#1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
#30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean

Pruning of login & other logs:

## Empty login/logout records at year end
0 0 31 12 * /secure/wtrim.pl wtmp
0 0 31 12 * /secure/wtrim.pl wtmpx 20
# Solaris 2.x logs:
0 4 * * 6 /secure/rotate_log -L /var/adm -c -m 640 -M 440 -c -s -n 30 loginlog
0 4 * * 6 /secure/rotate_log -L /var/adm -c -m 640 -M 440 -c -s -n 30 sulog
0 4 * * 6 /secure/rotate_log -L /var/adm -c -m 640 -M 440 -c -s -n 2 vold.log
0 4 * * 6 /secure/rotate_cron

crons

删除不需要的crons:rm /var/spool/cron/crontabs/{lp,sys,adm}

Root cron 条目:
通过可信赖的来源使用rdate设定日期(你或许使用NTP协议,这将使时间精确一些,但正向上面所说的增加带宽和不必要的安全问题):
## Synchronise the time(同步时间):
0 * * * * /usr/bin/rdate YOURTIMEHOST >/dev/null 2>&1

文件权限
必须限制一些有关ROOT操作的权限或干脆使其无效:
chmod 0500 /usr/sbin/snoop /usr/sbin/devinfo
chmod o-r /var/spool/cron/crontabs/*
chmod 000 /bin/rdist
chmod o-rx /etc/security
chmod og-rwx /var/adm/vold.log
chmod u-s /usr/lib/sendmail #Except for mailgateways
chmod 400 /.shosts /etc/sshd_config /etc/ssh_known_hosts

再在登录信息上设置警告用户非授权登录的信息(如果要起诉侵入者你就需要这些信息)。如在Telnet和SSH,在/etc/motd中设置警告语句:
ATTENTION: You have logged onto a secured XXXX Corporation server.
Access by non YYYY administrators is forbidden.
For info contact YYYY@XXX.com

重新启动,通过SSH登录,现在使用ps -e来显示进程列表:
PID TTY TIME CMD
0 ? 0:00 sched
1 ? 0:00 init
2 ? 0:00 pageout
3 ? 0:09 fsflush
156 ? 0:00 ttymon
152 ? 0:00 sac
447 ? 0:06 sshd
88 ? 0:00 inetd
98 ? 0:00 cron
136 ? 0:00 utmpd
605 ? 0:00 syslogd
175 console 0:00 ttymon
469 pts/1 0:00 csh
466 ? 0:01 sshd
625 pts/1 0:00 ps
及使用netstat -a 将显示最小的网络连接(如只有SSH):
UDP
Local Address Remote Address State
-------------------- -------------------- -------
*.syslog Idle
*.* Unbound

TCP
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -------
*.* *.* 0 0 0 0 IDLE
*.22 *.* 0 0 0 0 LISTEN
*.* *.* 0 0 0 0 IDLE

7,建立Tripwire映象,备份和测试
-测试 SSH和标准工具是否能正常工作?检查LOG条目,检查控制台信息来了解系统是否按照你设想的计划实现。
-当所有工作运行的正常时,就freeze(冻结)/usr有可能的话冻结/opt:
在/etc/vfstab中增加ro选项以只读方式挂上(mount)/usr和/opt分区,这样减少

  • 上一篇教程:
  • 下一篇教程:
  • 排行

    1. 基本UNIX命令集介绍
    2. 认识SIS芯片组(下)
    3. 硬盘的大敌:电脑使用中的禁区
    4. 有线通和ADSL究竟哪个好?
    5. Linux并口网络解决方案
    6. 充分发挥CPU和主板的性能
    7. 如何在网页中插入表格
    8. 拨开迷雾:笔记本电脑购买三大秘技
    9. 菜鸟如何配置电脑全面指导
    10. 菜鸟如何配置电脑全面指导(三)
    11. 菜鸟如何配置电脑全面指导(五)
    12. 电脑闹钟轻松享受
    13. 未来的个人电脑什么样?
    14. 为重装系统而进行文件备份
    15. GIF89a的特性(二)
    16. 解决“文件怎么打不开了”顽症
    1. 认识SIS芯片组(下)
    2. 硬盘的大敌:电脑使用中的禁区
    3. 选购金典 对比LCD和CRT显示器的优
    4. 有线通和ADSL究竟哪个好?
    5. Linux并口网络解决方案
    6. 充分发挥CPU和主板的性能
    7. UNIX操作系统的版本与标准
    8. 基本UNIX命令集介绍
    9. 如何在网页中插入表格
    10. 数据库日常维护(参考)
    11. 拨开迷雾:笔记本电脑购买三大秘技
    12. 菜鸟如何配置电脑全面指导
    13. 菜鸟如何配置电脑全面指导(三)
    14. 菜鸟如何配置电脑全面指导(五)
    15. 谈谈光盘自动执行文件
    16. 电脑闹钟轻松享受
    1. 菜鸟如何配置电脑全面指导(三)
    2. 拨开迷雾:笔记本电脑购买三大秘技
    3. 菜鸟如何配置电脑全面指导
    4. 菜鸟如何配置电脑全面指导(五)
    5. 电脑闹钟轻松享受
    6. 为重装系统而进行文件备份
    7. GIF89a的特性(二)
    8. 解决“文件怎么打不开了”顽症
    9. 喷墨打印机使用说明书的妙用
    10. 移动硬盘故障的几种原因分析
    11. 常用驱动程序的安装以及注意事项
    12. 电脑日常保养注意事项
    13. 如何让硬盘工作在最佳状态
    14. Unix系统发展史
    15. 操作系统简述
    16. 我的系统我作主 Vista操作系统配

    最近更新

  • 推荐阅读
  • Linux|Unix《Solaris安全手册》Solaris安全手册
    关于我们 | 版权申明 | 广告服务 | 友情链接 | 网站地图 | 使用帮助 | ©2006-2008 TTADD.COM