静静聆听音乐,它能给你无比的精神享受;同时淡淡的碧螺春香能让你陶醉*-*

系统安全配置

上一篇 / 下一篇  2007-12-26 15:51:47

查看( 87 ) / 评论( 0 )
教你如何配置安全的SOLARIS系统
og9z f9~5R0 一、帐号和口令安全策略
#]2I1x1hAg c+W6\0 1.1更改口令文件、影像文件、组文件的权限
VT@WjI!T&t0    /etc/passwd 必须所有用户都可读,root用户可写 –rw-r—r—
7J{foxy0    /etc/shadow 只有root可读 –r--------
b/~GH%gJ([a1c"e0    /etc/group 必须所有用户都可读,root用户可写 –rw-r—r—
}0vS,U;|P0
_Y:@Qi j.v|^0 1.2修改不必要的系统帐号 IXPUB技术博客I0X H?ko9H:H
   移去或者锁定那些系统帐号,比如sys、uucp、nuucp、listen、lp、adm等等,简单的办法是在/etc/shadow的password域中放上NP字符。还可以考虑将/etc/passwd文件中的shell域设置成/bin/false
`ZmV8\(q,[yl0 IXPUB技术博客;}P%s?9Z.q^"H
1.3修改口令策略
"n fx \IP8lH3r#Y t0    修改/etc/default/passwd文件
M!QC\ n;m5Q0    MAXWEEKS=4 口令至少每隔4星期更改一次 IXPUB技术博客I]-@6f F-L
   MINWEEKS=1 口令至多每隔1星期更改一次
m5?P@T V5K@&G0    WARNWEEKS=3 修改口令后第三个星期会收到快要修改口令的信息 PASSLENGTH=6 用户口令长度不少于6个字符 IXPUB技术博客-tAY%P+ge4r
IXPUB技术博客']5TU JlX
二、用户授权安全策略
+nf d Ca)~tt#|3@i0 2.1移去组及其它用户对/etc的写权限。 IXPUB技术博客nI}6q)Qk)?B7dr
   执行命令#chmod -R go-w /etc
`)@8W:s%]z|q0
\$h*A/vuFA'G7D0 2.2禁止root远程登录 IXPUB技术博客XGP(CTc
   在/etc/default/login中设置 IXPUB技术博客 @M5X(m5C8urW
   CONSOLE=/dev/concle
/jv!{l"Z"T0
#}.w6i+{`)GY4l4t1?0 2.3setuid和setgid特殊权限。 IXPUB技术博客c,}:XT!seCLR.Y
   Setuid是指设置程序的有效执行用户身份(uid)为该文件的属主,而不是调用该程序进程的用户身份。Setgid与之类似。Setuid和setgid用1s -1显示出来为s权限,存在于主人和属组的执行权限的位置上。系统设置特殊权限,使用户执行某些命令时,具有root的执行权限, 命令执行完成, root身份也随之消失。因此特殊权限关系系统的安全,可执行命令#find / -perm -4000 -print 寻找系统中具有setuid权限的文件,存为列表文件,定时检查有没有这之外的文件被设置了setuid权限。
V;V _m2u;pa_Z0
K!g"[3F*o\6mF0 2.4审计并日志所有以root身份的登陆情况 IXPUB技术博客2?6[hBlnU6sDR`G
   添加或编辑/etc/default/login文件如下: IXPUB技术博客7J K3QPJb
   SYSLOG= YES
*} t2yuT!ij0    syslog记录root的登陆失败,成功的情况。
| FJ X/_@3n M ~ A0
1^ Zs g`0 2.5设置远程登陆会话超时时间 IXPUB技术博客uUF([0h%x
   添加或编辑/etc/default/login文件如下:
w-By+gB yr&y0    TIMEOUT= 300
Y,O N(It3e"r` oV!F z0
W g+kybl#uLkm~3S0 2.6确定登陆需要密码验证 IXPUB技术博客%W3DC8MI~
   添加或编辑/etc/default/login文件如下: IXPUB技术博客Q(C6e c4v/`0tJ
   PASSREQ= YES IXPUB技术博客2C}9t#e6c g Np+V$TZ
IXPUB技术博客r9H%C#nJl
2.7 UMASK设置
%_ O`@ h e.k6jB[/yy0    umask命令设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入.profile文件,就可控制该用户后续所建文件的存取许可.umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可.
[A"~+\6ekZ0    安装配置完操作系统之后确认root的umask设置是077或者027,执行 IXPUB技术博客2D&j&AU @Lj0L w
   /usr/bin/umask [-S] 确认。 IXPUB技术博客W/uE5g0w b)~#~5o

8HQcC6| R;O0
6i(Y,s(J+e |.seS}0 2.7.1增加或修改/etc/default/login文件中如下行 IXPUB技术博客 i%p)eM$]!wo7z:lU+l
   UMASK=027 IXPUB技术博客!o]b%F$JK`*z S&r
IXPUB技术博客#O$w|^ O]j
2.7.2并增加上行到如下的文件中:
iw#QhiC0    /etc/.login /etc/.profile /etc/skel/local.cshre
[8~'edNl B2Wy6]a0    /etc/skel/local.login /etc/skel/local.profile IXPUB技术博客5wC+|ot)HOn
IXPUB技术博客*vz yx;i4I.D b6B
2.8用户环境配置文件的PATH或者LD_LIBRARY_PATH中移去“.” 。
8N`,Oc&?s W0    从如下的文件中移走”.”,确认root的PATH环境变量设置是安全的,应该只包含/usr/bin:/sbin:/usr/sbin,避免当前工作目录.出现在PATH环境变量中,这有助于对抗特洛伊木马。
"KR4SQR0~?0    #echo $PATH | grep ":." 确认 IXPUB技术博客6p8}}1RE*DM
IXPUB技术博客4NE?[UHN/K
   /.login /etc/.login     /etc/default/login   IXPUB技术博客1zZwPHU3X
   /.cshrc /etc/skel/local.profile /etc/skel/local.cshrc IXPUB技术博客9eC9gFY!X1f`
   /.profile /etc/skel/local.login /etc/profile
1P Em*E.Dr1o0 IXPUB技术博客wTefG!L'D,}b
三、网络与服务安全策略 IXPUB技术博客T3E4e De(C
3.1关闭不用的服务 IXPUB技术博客uaT} o1ojK2e
3.1.1在inetd.conf中关闭不用的服务
Q W)dI.s[P/F6] W0    首先复制/etc/inet/inetd.conf。 #cp /etc/inet/inetd.conf /etc/inet/inetd.conf.backup然后用vi编辑器编辑inetd.conf文件,对于需要注释掉的服务在相应行开头标记“#”字符即可。
-HM's/g)UE/MZu:z5K1{0
N/Tqt%kVV(s0 3.1.2在Services中关闭不用的服务 IXPUB技术博客&?'\Zs)@&n)f
   首先复制/etc/inet/services。 #cp /etc/inet/services /etc/inet/services.backup IXPUB技术博客7D$gp*y u4j}M
然后用vi编辑器编辑Services文件,对于需要注释掉的服务在相应行开头标记“#”字符即可。 IXPUB技术博客3R_x%^A)S g Z
在inetd.conf、services中进行修改后,找到inetd进程的ID号,用kill向其发送HUP信号进行刷新。举例如下。 IXPUB技术博客q4mL1HK
   #ps -ef | grep inetd
0B%GKDE&x_D"o'`(v0    #kill -HUP 进程号 或/usr/sbin/inetd –s –t IXPUB技术博客:Z8C|QdE8Sf*`
   增加-t选项以加强网络访问控制
2ii^-|IK]w0 IXPUB技术博客o\AOV1C-b(D4n
3.1.3根据需要关闭不用的服务
w {"g^,`*f`0    可关闭如下服务:tftp、ypupdate(NIS程序)、 dtspcd(邮件收发程序) 、rquotad、name、uucp(网络实用系统)、snmp(简单网络管理协议)等。
]#g+Bs NX w&{0?#G0
_(ML4YL6E,Z?~H$n0 3.2关闭系统的自启动服务
;MFm eJ"v6r0    在系统/etc/rc*.d的目录下,根据需要停用以下服务: IXPUB技术博客0?$\ V)k/~+L v
   sendmail 把/etc/rc2.d/S88sendmai更名为tc/rc2.d/X88sendmail IXPUB技术博客BVX{O%Bb
   DNS 将/etc/rc2.d/S72inetsv注释掉in.named一项
8S5GJjoWRm3~%x0    lp 把/etc/rc2.d/S80lp更名为 /etc/rc2.d/X80lp
#S im@(t,f0    uucp 把/etc/rc2.d/S70uucp更名为/etc/rc2.d/x70uucp IXPUB技术博客!gE"L3}r}?lk
   snmp把/etc/rc3.d/S76snmpdx和 /etc/rc3.d/S77dmi 更名 为/etc/rc3.d/s76snmpdx和/etc/rc3.d/s77dmi IXPUB技术博客6M^ H${/g-d8D
   autoinstall 把/etc/rc2.d/S72autoinstallg更名为/etc/rc2.d/s72autoinstall IXPUB技术博客 \ |Dj:YrH

qk&TI&m;e&QNQdz0 3.3加强FTP服务安全 IXPUB技术博客#eD~~^\*df
3.3.1禁止系统用户的FTP服务 IXPUB技术博客cYkV T@
   把所有的系统账户加入到/etc/ftpusers(solaris 9的该文件现更改为/etc/ftpd/ftpusers)文件:
P.@7w4gc2ek0    root 、daemon、sys、bin、adm、lp、uucp、nuucp、listen、nobody
&Ka7{#sm}:s%R7o0
qe7e E\0 3.3.2禁止FTP&服务暴露系统敏感信息 IXPUB技术博客0k[8Y2GW3e'Py.H }
   编辑/etc/default/ftpd文件,假如文件不存在就新建一个,在文件中的加进入下一项:    BANNER=XXXX(XXXX可以任意改变为任何一个版本信息),将该系统版本信息屏蔽.
;xj g#`m0 IXPUB技术博客;R0s1f%Hs'c;qm-[q
3.3.3ftp服务会话日志记录 IXPUB技术博客 wnW/ba
   /etc/inet/inetd.conf中的ftpd为(记录)
:u+K0F@.kEtWd0    ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd –dl IXPUB技术博客!Q.G lp/b-~
IXPUB技术博客#y9fLk2h6p%s_+S;S
3.4加强Telnet服务安全 IXPUB技术博客+f0_&]d,N5F)F7}5X s5]#{
3.4.1禁止Telnet服务暴露系统敏感信息
$OTa"ia0    防止telnetd banner泄露信息 ,修改/etc/default/telnetd文件 ,加入以下一项:BANNER=XXXX(XXXX可以任意改变为任何一个版本信息),将该系统版本信息屏蔽.
ra p6O;`3n0 IXPUB技术博客[H+~F2{?7A
3.4.2更改Telnet服务端口号
X6T'l!HtB(W)Z U0    修改文件/etc/services的Telnet一项,将端口号改为非23,使用Telnet服务时需注明端口号。
#Fo+oNN x0
![mW0?(O~0 3.5加强NFS服务安全
'ZC&Sb,t0    检查/etc/dfs/dfstab文件share语句,缺省时共享目录为可读可写,加入“-o”选项增加安全,“-o rw”可读可写,“-o ro”只读,可授权某系统和某用户。
4ytms|;QD0 IXPUB技术博客7a D zu9J B
3.6防止TCP序列号预测攻击(ip欺骗)
Q9]%R h g;DN X^B|0    在/etc/default/inetinit中增加设置来防止TCP序列号预测攻击(ip欺骗)TCP_STRONG_ISS=2
/b)N/b W|Q0f(St0 IXPUB技术博客QP1a[N2h$BB4p
3.7系统路由安全 IXPUB技术博客9f4ILe4p6v
   如果Solaris机器有超过一块的网卡的话,它将会在不同网卡间转发数据包,这一行为可以在/etc/init.d/inetinit中得到控制。要在Solaris 2.4或者更低版本机器下关闭它,可以将ndd -set /dev/ip ip_forwarding 0添加于在inetinit文件未尾。在Solaris 2.5以上,只要touch /etc/notrouter.网络系统用静态路由比较安全。 IXPUB技术博客0oql%e$L8kv
IXPUB技术博客Pa-T3d^`$r9?
3.8调整网络参数,加强网络安全 IXPUB技术博客1R _ F6r/Jyl2S'M u _6y
   使IP forwarding和sourec routing(源路)由无效 IXPUB技术博客*r6t(\2J,D7g1q
   在Inetinit中使IP forwarding和sourec routing(源路)由无效(假如有超过一个网络接口的话)。在/etc/init.d/inetinit中增加下面所示设置:
x'?p'h*k#_0    禁止系统转发定向广播包
fW;XXb0    #ndd -set /dev/ip ip_forward_directed_broadcasts 0 IXPUB技术博客%`hjzl5_Bj u#A
   关闭原路由寻址 :#ndd -set /dev/ip ip_forward_src_routed 0 IXPUB技术博客(ut Y!s\/N!J#e
   禁止系统转发IP包:#ndd -set /dev/ip ip_forwarding 0 IXPUB技术博客1q#?wmwsHw
   缩短ARP的cache保存时间: (default is 5 min)
/Jj]7T d#mU9n];nV0    #ndd -set /dev/arp arp_cleanup_interval 2 min
&\7C?8^3q6P(y0    关闭echo广播来防止ping攻击( # default is 1 )
&xR2Xg ZR?!s0    #ndd -set /dev/ip ip_respond_to_echo_broadcast 0 IXPUB技术博客*p9La.Wa@]
IXPUB技术博客bz qv{g0jE2s
四、防止堆栈缓冲益出安全策略 IXPUB技术博客?{X Q,kf&{mU6U
   入侵者常常使用的一种利用系统漏洞的方式是堆栈溢出,他们在堆栈里巧妙地插入一段代码,利用它们的溢出来执行,以获得对系统的某种权限。要让你的系统在堆栈缓冲溢出攻击中更不易受侵害,你可以在/etc/system里加上如下语句:set noexec_user_stack=1
!N[M3q%K_T0 set noexec_user_stack_log =1 IXPUB技术博客lv4}g6H?QS&@9D
   第一句可以防止在堆栈中执行插入的代码,第二句则是在入侵者想运行exploit的时候会做记录。 IXPUB技术博客NRPrC;Q1C-MWw

[:?(YKR\{-v9c3N m0 五、日志系统安全策略
/zbu Kd5Y1} AL0 5.1定时检查系统日志文件 IXPUB技术博客3H X%I*`N
   Solaris系统通过syslogd进程运行日志系统,配置文件/etc/syslog.conf,可编辑此文件让日志系统记录更多信息,需重启/usr/sbin/syslogd进程,重读取配置文件。通常日志系统的文件分别存放在两个位置,/var/adm保存本地系统日志,/var/log保存登录其它系统时日志。
vzI"aG @X$V6?I0
p D}L&}F$u0 5.2设置utmpx和wtmpx文件权限,确保日志系统安全。
d3B/xml"n? Y0    文件/var/adm/utmpx记录了所有当前登录到系统中的用户,文件/var/adm/wtmpx记录了系统所有的登录和注销。这两个文件是以数据库的格式存在的。 IXPUB技术博客,T W n.qC7p@
设置权限#chmod 544 /var/adm/utmpx
aq2LO(^Q/u-K0^ZZK0            #chmod 544 /var/adm/wtmpx
4t!h$j&R(UCE{0 IXPUB技术博客5K9k7K,^igRZ
六、其它系统安全设置 IXPUB技术博客$t ?xz {-cE g3kA nb-I ^
6.1 crontab命令
_9w!]5H2P8[+Qw0 6.1.1不要使用crontab –e命令,因为它会在/tmp下建立所有用户都可读的crontab副本访问cron系统。用如下的方法:
H:c"v&xx0 编辑文件:mycronfile IXPUB技术博客N7F[+C8{Z6\
crontab
7Gu} d8xxI0 IXPUB技术博客x?(Z7^E#W
6.1.2在/etc/default/cron文件中增加如下行: CRONLOG=YES 记录所有的crontab行为
+j)`4k5?&kE[E5H#s0 IXPUB技术博客wQ/I0ai"vm R9H\_]
6.2对su的纪录 IXPUB技术博客MT.d/QCh
   创建/etc/default/su文件
wiG$E8_wy"c_(I L%F0    SULOG=/var/adm/sulog IXPUB技术博客-[L0n@ i5Oy6m
   SYSLOG=YES
0K,p+t$z [8~k'wCw0    CONSOLE=/dev/console IXPUB技术博客V7h Q7b8b
   PATH=/usr/bin:
4P~3S_G{0    SUPATH=/usr/sbin:/usr/bin
%dvq'Yu0 IXPUB技术博客-Q&AT7Ad+JUt
6.3为OpenBoot设置密码
;U"zCa&XZ0    在Solaris中设置密码
a"Sa:k.dY3uk U(D0    #eeprom security-password
kY0om^h0    在OpenBoot中设置密码 IXPUB技术博客{i8P _vM f:d
   ok password
Tk:X2lo|t0    在Solaris中设置安全级别(command)
Ib9s&ct9{o%o$z0    #eeprom security-mode=command IXPUB技术博客0u8~d1Mc
   在OpenBoot中设置安全级别(command) IXPUB技术博客'f-tH!JvKt9uCG'T4S
   ok setenv security-mode command IXPUB技术博客i@8}y |dT
   在OpenBoot中设置安全级别(full) IXPUB技术博客(IC hQ9A!hkJ9`
   ok setenv security-mode full IXPUB技术博客bzY6c cv uY9KWp
IXPUB技术博客I\#w^'D
6.4限制.rhosts和/etc/hosts.equiv文件的使用 IXPUB技术博客"[m+hp ^Vg
   配置文件具有两种功能:r系列命令使用这些文件来访问系统;在某用户的目录下存在.rhosts文件或/etc/hosts.equiv文件配有某系统,任何用户都可以通过rlogin不需要口令以该用户的身份登录到系统。因此要为这些文件加锁,先创建它们,然后修改其属性为零即可。这样除了root用户就没有其它用户能创建或修改它们了。 IXPUB技术博客z-R_zN-u5?}{
   /usr/bin/touch   /.rhosts /etc/hosts.equiv IXPUB技术博客I+YZ4o&{-i-jP A d
   /usr/bin/chmod 0 /.rhosts /etc/hosts.equiv IXPUB技术博客/c5H+e|!]FD
   .rhosts文件可以作为一个典型的后门文件使用,运行下面的命令全局查找.rhosts文件 IXPUB技术博客^+ZT^4Z d
#find -name“.rhosts”-print IXPUB技术博客#?1Dc }D;K6S

x h.F PrJ Y0 6.5给系统打补丁 IXPUB技术博客&^2v|9qG1Q4i
   象其它的系统一样,Solaris系统也有它的漏洞,其中的一些从性质上来说是相当严重的。SUN公司长期向客户提供各种版本的最新补丁,放在http://sunsolve.sun.com网站。可用#showrev –p命令检查系统已打的补丁或到/var/sadm/patch目录下查已打过的补丁号,用patchadd命令给系统打补丁。
&z:|-r#C%\7r0 七、Setuid设置和Solaris操作系统安全
z7tDjJC0 http://bbs.chinaunix.net/forum/v ... mp;highlight=Setuid
k%s Eg(TIHu5l!^0    在Solaris中,文件除了读、写、执行权限外,还有一些特殊权限。 Setuid和setgid是其中的一类。它与Solaris系统的安全关系紧密。
9}9A&PS9b0    Setuid是指设置程序的有效的执行用户身份(uid)为该文件的主人,而不是调用该程序的进程的uid。Setgid与之类似。Setuid和setgid用ls –l显示出来为s权限,存在于主人和属组的执行权限的位置上。
$^K$N K%rxs`X0    这种权限的设置方法如下:
F+TNIi^E0    只设setuid: chmod 4xxx filename (xxx为一般读、写、执行权限) IXPUB技术博客%X?%J a*u3?5V E9D
   只设setgid: chmod 2xxx filename IXPUB技术博客*z2P4fZb:@
   同时设setuid和setgid: chmod 6xxx filename
R;Q"Uw MU y~tS0    取消两种权限: chmod 0xxx filename
'wQl0Y3dr0F0    这种权限怎么用?
6g-sc_!v+A&a*T,Ti0    举个例子来说,假如某一命令(程序)的主人是root用户,并且该文件有setuid属性,但是该文件的读、写、执行权限的属性表明普通用户user1可以执行该命令,那么就表示:当该用户执行该命令时,他具有root的执行身份,并获得相应的权限。一旦该命令执行完成,该身份也随之消失。
N Q8a+d1@ T7V0    为什么系统中需要有这样的权限呢?请执行以下操作:
W_|p#s ES/Z0    7.1. $ ls –l /etc/shadow /bin/passwd IXPUB技术博客0}3r/cu%`[
       -r-sr-sr-x 3 root sys 99792 1999 2月 12 /bin/passwd
k-y\FD0        -r-------- 1 root sys 261 1月 3 13:12 /etc/shadow IXPUB技术博客{rgWVGb e;V
   /etc/shadow文件由于存有用户的加密口令信息,对系统的安全至关重要,因此权限很严,只有root凭其对系统的至高无上的权限才得以对/etc/shadow可读可写。但是系统必须允许普通用户也能修改自己的口令。要让他们对/etc/shadow可写,又不能可读,而且可写又不能允许他们改别人的口令,怎么办?系统就采取这样一个办法:做一个程序, 也就是/bin/passwd,通过它可以在不显示文件内容的情况下直接修改/etc/shadow文件。可是这个程序怎么能有这样的权限?因为系统赋予它setuid权限,而且它属于root.这样,用户在使用/bin/passwd改口令时就有root权限.由于/bin/passwd命令本身功能的局限性,用户并不能用它做更多的不利于系统安全的事。
%[EJ8U~,I:| ?0    7.2. 用普通用户身份修改口令
t O;W-r1vM1a/zG^0    $ passwd
MK yIu o|2I0      Enter login password: ****
a6C,]1TemY0      New password:******
e;pz2r*ks0      Re-enter new password:******
;OcW(p*s7I;Z0      Passwd(SYSTEM): passwd successfully changed for xxx .
p"@U Sf:]0      可以成功。 IXPUB技术博客u2H4X;FDX
   7.3. 用超级用户修改/bin/passwd的权限 IXPUB技术博客e w#[8Vh`P
   # chmod 0555 /bin/passwd
K E!`Y3s*xD @?)h0    7.4. 再重复2,是否还成功?当然不。 IXPUB技术博客AF&a:Z8DV&f Q1la+AkCO
   7.5.把/bin/passwd的权限恢复原状。 IXPUB技术博客5`;O/z"[A+vL ^
    # chmod 6555 /bin/passwd IXPUB技术博客 ~E5n9tE1}f
IXPUB技术博客 |?fy(h+uh9YNzU T;A
   对此可以打一个生动的比喻:有一个绝密机关,不得已必须有一些不能见这些秘密的人进来做一些事情。于是授权一些特殊的“车辆”(没有窗户,门紧闭,所以看不到外面。只有一个小洞允许乘坐的人伸出一只手臂),带着所乘坐的人开到要去的地方,允许它办完事情马上带他出来。这样是不是很安全?不一定。如果“车辆”没有经过精挑细选是有很多“门窗”,那系统可就危险了。
y LZ2l/q[2q+R0    这种安全威胁在Solaris中也有可能出现。比如做一下下面这个实验: IXPUB技术博客/B;Ccx B0`` `:PY
   7.6. $ vi /etc/shadow
R"HCN,h0     /etc/shadow: Permission denied. IXPUB技术博客e(mpw%`
   7.7. 用超级用户身份
0q/K~UrL0    # chmod 6555 /bin/vi
#C"Pt@6H4VR1` B ];qq0    # chown root /bin/vi
(E,j#T+I6q:oU$|${0    7.8. 这次再用普通用户身份试一试第6步,有什么结果?这次你能以普通用户身份修改         /etc/shadow了!!但是 IXPUB技术博客;U!A#m&d+}6\)H*t3M
$ more /etc/shadow仍然不成功,说明在执行/bin/passwd时有超级用户权限,平时仍是普通用户身份。 IXPUB技术博客M6j&^a(HT'\m2f
   再来看一个令人不安的情况:
!?&JOc8Q3Z2L'Nm;t ~0    7.9.用超级用户身份
l TnnK;A-b0    # chmod 6555 /bin/ksh IXPUB技术博客h"a5z(AX.o8?
   # chown root /bin/ksh IXPUB技术博客cl7X TW*v O
   7.10. 用普通用户身份
#Q y4cN%r.y(b'C+s `SZ9D0    $ ksh IXPUB技术博客jg.ee}
   # IXPUB技术博客JKO7c`U \)I#@
   发生了什么情况??普通用户不需要root口令就变成了root!!! IXPUB技术博客N{ZMeh
   好可怕。如果有一个用户曾有一次获得超级用户权限,并通过类似的方式给自己设置了后门(也可能放了一个类似的文件在他自己的家目录中),以后他就可以随时变成超级用户了。 IXPUB技术博客EP8p"^ `|6i X @
怎么能避免setuid的不安全影响,又利用其方便的地方?这里有几点建议:
qZ h,t-n`}7?-e9y0 关键目录应严格控制写权限。比如/,/usr等。 IXPUB技术博客 xR"dsT$xrw&ls]z
   对不管是root帐号还是普通用户帐号的保密都有足够的重视。最好不要设置类似于guest、public、test之类公用的容易猜出口令的帐号。 IXPUB技术博客!~-`9W?(t^8K
   对系统中应该具有setuid权限的文件作一列表,定时检查有没有这之外的文件被设置了setuid权限。
2YwS[.VRYd4Id0    下面有一个自己编的小程序与大家分享。
:@"]ghN R$k0    程序功能描述:检查有没有/usr/secu/masterlist文件记录之外的其它文件被设置了setuid权限
"W l#X1O:c"O:O-S a0    事先要求:在系统调试完成,所有需要安装的软件安装好以后,执行下面命令生成检查对照文件
`1q`~.~k Uk*I0    # mkdir –p /usr/secu
/{&o%W+@+k0    # find / -perm –4000 –print > /usr/secu/masterlist
{u3`$a z1k6h0    程序: IXPUB技术博客8v;[azz5jM
   cd /tmp IXPUB技术博客2d_2@9P B9D)G!XQ
   [ -f secrcheck ] && rm secrcheck find / -perm -4000 -print >secrcheck for f in `cat secrcheck` do grep -w $f /usr/secu/masterlist >/dev/null if [ "$?" != "0" ]; then echo $f is not in list
MgA QV ~0    fi done
0yh(T1kHW0    rm secrcheck 在需要对系统做检查时,执行本shell程序。也可以放在定时进程中定时检查。程序由于需要在整个文件系统中做查找操作,需要比较长的时间。
,T5f7q"Q9iyt3l0     请您作完本文中的实验后,别忘把文件的权限改回原状。
&Qe+j4^*r^!A:Z6`0
q&LB3M2~ fgn0 八、Solaris系统安全之审计 IXPUB技术博客2k[ GV7EMLOA
作为C2安全等级操作系统(公安部二级),Solaris最主要的安全功能之一就是审计功能,本文将简单介绍Solaris审计功能的使用和启动。 IXPUB技术博客 m.H \/b9pD(d,x
目的:纪录系统和用户事件,并对审计过程自身进行保护。这里值得注意的就是纪录事件的细度。Solaris提供了很强大的审计功能,甚至可以纪录每一条调试信息,但是这样做是不明智的,因为很多信息对用户没用,而且会使系统性能下降。审计细度需要管理员根据用途和需要自行订制。
#tZJ*b!w9U2f0 实现:
%O_*d)bn? ?0    8.1. 查看日志 IXPUB技术博客} B/k(_*gR,w;^
   1) history文件
x C8DHSn0    通常在根目录下,隐藏文件,记录了root执行的命令
Y4Rk'ss3p v0    2) /var/adm IXPUB技术博客F nCJ f0Z9q
   messages:记载来自系统核心的各种运行日志,可以记载的内容是由/etc/syslog.conf决定的 IXPUB技术博客C$fYGd2Na N N\~A
   sulog:记载着普通用户尝试su成为其它用户的纪录。它的格式为: 发生时间 +/-(成功/失败) pts号 IXPUB技术博客5h4d zTQ
   utmpx:这两个文件是不具可读性的,它们记录着当前登录在主机上的用户,管理员可以用w,who等命令来看 IXPUB技术博客5Ql1| PJ9M!zU$W
   wtmpx:相当于历史纪录,记录着所有登录过主机的用户,时间,来源等内容,可用last命令来看 IXPUB技术博客uEtk'Yi:xo
   3) /var/log IXPUB技术博客5~M!B0vaV+g F
   syslog文件,这个文件的内容一般是纪录mail事件的 IXPUB技术博客m7J6x#^F9o(J

"b)~Z;m W l({&~*D7A0    8.2. syslog
Am^M/cl0    1) 实时错误检查: IXPUB技术博客Rl!FziM3M6^Xy*n
   tail –f /var/adm/messages IXPUB技术博客qJ(JII#C+\
   -f在监视器上允许看见每条记录 /var/adm/messages记录事件路径 IXPUB技术博客*fF6l p@+y2I
   2) /etc/syslog.conf语法: IXPUB技术博客l$`l } Hz:ZA/s9|z
   *.err;kern.debug;deamon.notice;mail.crit /var/adm/messages
eeOa9Y3RJ0 IXPUB技术博客e8t [tF)Q
   工具认可的值
ky2r#N\6qvs!R0    值 描述
F4O @V&[0F \AB0    user 用户进程产生的消息。这是来自没有在文件列表中的设备的消息的默认优先级 IXPUB技术博客S4tc&a No M1\
   kern 由内核产生的消息 IXPUB技术博客J zL;[ O
   mail 邮件系统
ob| |}Cd+p0    daemon 系统守护进程 IXPUB技术博客#m;T_ c0ROS D
   auth 授权系统,如login、su IXPUB技术博客Yzs'Zi,t
   lpr 行式打印机假脱机系统
QF-q1W(C^,Lp0    news 网络新闻系统USENET保留值
m&v\IJ0    uucp 为UUCP系统保留值,目前UUCP不使用syslog机制 IXPUB技术博客m Z5C;{7PhT
   cron Cron/at工具;crontab、at、cron IXPUB技术博客&wNgXu
   local0-7 为本地使用保留 IXPUB技术博客lrl1LN? qE)]W
   mark 内部用于由syslog产生的时间戳消息 IXPUB技术博客:pnD I.o:l-A{;q
   * 除标记工具之外的所有工具
3eT*|9z J8jmD\0    级别认可的值(按重要性降序排列)
(fj9U r!nc0    emerg 用于通常必须广播给所有用户的恐慌情况
xU-D Ug5Z`:Og0    alert 必须立即被修正的情况,例如被损坏的系统数据库 IXPUB技术博客.V:}` },d7r
   crit 用户对关键情况的告警,例如设备错误
P.ke(Vta6q8A\0    err 用于其他错误
fD!a/U0wm s}@0    warning 用于所有的警告信息
-Vp O5L6n*vI:X0    notice 用于没有错误但是可能需要特别处理的情况。
~.S(vmP)d9UV0    info 通知消息
ol5q(E [5D-S Ny0    debug 用于通常只在调试时才使用的消息 IXPUB技术博客yE$u h M+N&Dm
   none 不发送从指出的设备发来的消息到选定文件中
P9nu xA&t6w0    3) 例如如果要纪录登录信息(telnet),可以这样做: IXPUB技术博客(thJzcm m#W8mN
   /etc/default/login中:SYSLOG=YES IXPUB技术博客(u"Dc v:Vz%Q
   /etc/syslog.conf中添加:auth.notice /export/home/wangyu/log
-J,|Q-l3h[.@0    (把日志记录在/export/home/wangyu/log文件中,中间不是空格,是Tab)
7cl W#l-d9d)N^"\!t0    重新启动syslog守护进程
pDRy G"qyn0    当telnet上去的时候,我们看到/export/home/wangyu/log中有: IXPUB技术博客 pHA8@"o8m"F
   Sep 11 10:07:25 hlstar login: [ID 254462 auth.notice] ROOT LOGIN /dev/pts/1     FROM 192.168.0.9
V*B%m[(O/S0
F V6w)b+G'Tm;QMg&u0    8.3. Loghost IXPUB技术博客HU)r}ro
   编辑/etc/syslog.conf,语法:
FD+Q4}Cx9fV0    *.err;kern.debug;deamon.notice;mail.crit @loghost
$`YDHl2L3p sJ0    (记录登录信息)
9E"b\tb]3J0    重新启动syslog守护进程
J#u:x#cY%Z0    假设这次我们使用linux做日志主机:
qXiY UA`vh0     [root@wangyu root]#/sbin/setup IXPUB技术博客:I:uRk)G9e
   打开配置界面-->firewall configuration-->custom-->other ports: IXPUB技术博客 x$f1`2M:q
   写入 syslog:udp IXPUB技术博客9Q t%QH_*?O
   重新启动防火墙
G'c ]&i&v,k&@bKmY0    /etc/init.d/iptables restart或者/etc/init.d/ipchains restart
l$Q9me4x:{7y e$y[W0    设置loghost接收网络日志数据,修改/etc/sysconfig/syslog配置文件:
SA9rP(c1San0    修改 SYSLOGD_OPTIONS="-m 0" 为 SYSLOGD_OPTIONS="-r -m 0"
!i|-NTwH#mTa$s.iO0    重新启动syslog守护进程 IXPUB技术博客.f7GP B9O
   此时/var/log/messages最下端附近会看到类似下面的信息
"dM,D:Kk2W(O0    Aug 11 21:20:30 logserver syslogd 1.3-3: restart. (remote reception) IXPUB技术博客o_&X(W/pD^1Y
   当telnet上去的时候,我们看到/var/log/messages中有类似下面的信息: IXPUB技术博客!f(a4XF6d4Z6W
   Sep 5 11:08:31 mastadon login: [ID 507249 auth.notice] Login failure on /dev/pts/3 from 192.168.0.9, root IXPUB技术博客 d/T?8v#Wv?
IXPUB技术博客 j(pg)f:K oo
   8.4. 记帐 IXPUB技术博客 a$t*?}:p
   Solaris操作系统可以通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的 IXPUB技术博客"O-k#OV+T
   运行/usr/lib/acct/accton [路径][文件名] IXPUB技术博客Ep _Yu!R N9j"Q
   (如/usr/lib/acct/accton /export/home/wangyu/test,将日志记录到test中)
A c(BV d)v8T0    查看的时候将文件移动到/var/adm目录下,改名为pacct
7\1fhb)J_d7E"hj@0    执行查看命令lastcomm(比如查看用户root,用命令lastcomm root) IXPUB技术博客a#\%SD}+k8q0T

.[TNb} Y$c0_0    8.5. BSM(以下部分节减自freedemon的“SecU Solaris p2.3 BSM审计系统”,详见    http://bbs.nsfocus.net/index.php?act=ST&f=10&t=147174
)\QskV8b%Cn&p0    1) 开启BSM:
+C"AG&g?d'B0    # init 1 (重新引导或改变运行级别到单用户状态) IXPUB技术博客qDIJi(V;C
   #/etc/security/bsmconv (运行BSM初始化脚本,开启审计功能) IXPUB技术博客4HD? M1q)DfPW:zZ
   # reboot (重新启动系统,或者Ctrl+D改变到多用户状态) IXPUB技术博客~1uuz;Q?
   2) 关闭BSM审计功能:
;U;KT5Zd)t/} | yk0    # init 1 IXPUB技术博客/A)_:L.`5D&Y5e)A
   # /etc/security/bsmunconv
GD2}.qxbeJ0    # reboot IXPUB技术博客5{;ssV,E,`3},d
   3) 配置文件的功能: IXPUB技术博客!h u b@:u_;W
   BSM所有的配置文件都存放在/etc/security目录下( (4)代表详细信息察看man (4) :
J&s'@ d3WxYFC\0    audit_class(4)
*v#e2pA Y/j ]'m$_0    审计类别定义
&GS2{v.^,n @@Lp0    audit_control(4)
Ru6a? wB2pkG0    审计进程控制信息 IXPUB技术博客mnK i\4@omH;Kt
   audit_data(4) IXPUB技术博客/O!xP3C.Ojk![4@l
   审计进程当前信息
0Y9M{.U v5JD0    audit.log(4)审计日志格式 IXPUB技术博客9UU jw8zV2|+gY
   audit_event(4) IXPUB技术博客:}7D*Aj2F:gq:\c
   时间定义到类别的映射文件 IXPUB技术博客S `P)Y&xH
   audit_user(4) IXPUB技术博客4U&qWnA"f r
   按用户审计时的用户定义文件
/a,J2? |GE"Oe0    除了上面的配置文件之外,系统中还有一些用于BSM管理的脚本。
U!\6u d*n,V,X)O^0    audit_startup(1M)
3NP nW W%K] a%D0    启动BSM进程运行。
m1p9e7k6ypN)h$\0    auditconfig(1M)
3h,Rbq*yo0    读取配置文件,重新配置audit进程。
c9P0[(? r%wTO0    auditd(1M)
bv-JXQR \"G0    审计监控服务。
b&}3MI }(e ~Dw0    auditreduce(1M)
T1B-Nm0T0    审计事件日志管理,可以调整日志格式,生成时间周期等信息。 IXPUB技术博客g.@9MLm]BX,B
   auditstat(1M)
6n6@ p#tlU$@0    先是内核审计进程状态。 IXPUB技术博客Z-^(O4i'z-k5b5y5q,u
   bsmconv(1M) IXPUB技术博客!D5o9p#n*xx"U
   开启BSM功能。
,pNfAS%[;xp R0    bsmunconv(1M) IXPUB技术博客-O'{VH'}tvx*d(r
   关闭BSM功能。 IXPUB技术博客fT[o+s0zC)t
   praudit(1M)
!k6ob.w.x6ubv;~0    打印BSM审计日志内容。 IXPUB技术博客],s h-V.MQ r
   4) BSM应用
p/A/k!|W%Z0    在默认配置情况下,BSM每天(24小时)会生成一个以当天日期为名字的审计日志,存放在    /var/audit目录下,这个文件具有自己的数据结构,所以直接查看时是乱码,必须使用系统命令 praudit来查看。
_&[LT}B0    # praudit /var/audit/xxxxxx.xxxxxx.log IXPUB技术博客b@;_D/_
   另一个可能用到的命令是auditreduce ,这个命令允许管理员对审计日志做一些设置,例如调整审计事件集或调整审计日志生成周期等等。auditreduce和praudit是系统中BSM管理最基本的两个命令,组合起来可以完成相当多的功能: IXPUB技术博客8ZJ\j8XI'D:O.\$j
   用管道联合两个命令,会显示系统中所有的历史审计事件。 IXPUB技术博客 XZ\1u @ z#J~W
   # auditreduce | praudit
/Hd;X5WP+E4O-z0    再加上lp,将把所有审计事件直接打印出来。
s"bf.\5VK1? bz0    # auditreduce | praudit | lp
0Q-O!V"dW-L&LC1T Gy7~0    如果系统中有相当多的审计信息的话,查找将是非常困难的事情,这条命令可以按照yymmdd的时间格式显示目标时间段内的审计事件,范例为显示April 13, 1990, 用户fred的登录类别审计事件集。 IXPUB技术博客 B:@-h(S{ k CLXHm
   # auditreduce -d 900413 -u fred -c lo | praudit
#v8GY { j#E)F0    过滤目标时间所有的登录日志信息(Class:lo),并且输出到一个单独的日志文件中: IXPUB技术博客 [nE.dE
   # auditreduce -c lo -d 870413 -O /usr/audit_summary/logins IXPUB技术博客l0mH_N%pQ rq
   auditreduce的 -b 和 -a 选项允许用户按照 yyyymmdd00:00:00 的时间格式制定一个时间段(Before & After)。
e8]J}o7T ~u0    # auditreduce -a 91071500:00:00 | praudit
8j0D2{-^4||#Z!v!S0    # auditreduce -b 91071500:00:00 | praudit
%KTecmp,Z:f+Dy3n0    5) 管理工具:
bqi)}jk ~)PG6N0    eXpert-BSMTM
$F1\~ZO0    一个很强大的商业BSM分析工具,不过目前也可以免费使用,支持Solaris 7/8 (Sparc|Intel)平台,可以在下面地址下载。
&mizsxx*?0 http://www.sdl.sri.com/projects/ ... t-BSM/download.html IXPUB技术博客~8t$X'W7S WM
   Sun WBEM
`rmd#U:EW4_0    Solaris内置的图形界面管理工具,也就是AdminConsole,在WBEM 2.3之后的版本支持对BSM信息的管理。可以用下面命令开启:
Y9I(R.[DfS,D0    # /usr/sadm/bin/wbemadmin (第一次运行时会安装一系列的管理脚本) IXPUB技术博客F#W lfa d,c-{
   # /usr/sadm/bin/smc (开启管理终端) IXPUB技术博客`2Zb SUh?4`
IXPUB技术博客3S/QvT6a9mF,yba
   以上,对Solaris审计系统进行了配置,相信大部分用户行为和入侵行为都被记录下来了,并且对日志自身也进行了一定保护。如果管理员能及时分析日志,相信可以捕获大部分入侵企图和行为。
|z)D\3X9D/y:V o0 网友评论
M(w!}K7o&@%s iO7d)F0 标题:十、附加
)DrP*[G2e d0 内容:配置更安全的NFS
0z#Pcu wIh\0
ac_ z {)mn-a0 NFS version 4支持传统的NFS协议RFC 1813,但新用General Security Service (GSS)架构实现更安全的RPC,如启用安全模式共享文件系统: IXPUB技术博客$R\l$? r*YSeH;M

:q&e;[ox2V$\'f|a0
)E5F*UQ8g0 # share -F nfs -o sec=krb5 /export/oracle
'_ @E z%A0 IXPUB技术博客pr/y/M;?Q5J|
再用snoop对比跟踪网上的RPC调用: IXPUB技术博客(_lxy2dZ5]/u
IXPUB技术博客{p [{7R ?[$a

,@d}OI~$y/tM0 NFS version 3 NFS version 4 IXPUB技术博客tz9toEn|a
IXPUB技术博客-^BV^]J
-> LOOKUP "export" ->OPEN "export/oracle"
C[ B%z%^0g0 <- OK READ IXPUB技术博客iv+?8|VT'mo0R
->LOOKUP "oracle" <- OPEN OK IXPUB技术博客,J{`'s d vl
<- OK READ OK IXPUB技术博客QpK9tk
-> ACCESS "oracle" (sends data)
r&s h.Y5Tz-M~0 <- OK
w zp"M,EY @ Mo0 -> READ "oracle" IXPUB技术博客jLFJK u;Bbs({
<- OK IXPUB技术博客5ydur(i.Nu
(sends data)
my[b*~fn0 IXPUB技术博客o.AVJ j"p;D
IXPUB技术博客 j(LX|r"lTV Z
2. 指定加密算法对文件数字签名 IXPUB技术博客:mz'@ _v.N]qX

4yRH3_OgK0 如列出Solaris数字签名的加密算法: IXPUB技术博客e%l9O9ngH&w
IXPUB技术博客1i R5o]UM/ZMEO }z.W
# digest -l IXPUB技术博客R w%R"Ij r|KA
sha1 IXPUB技术博客'I/i[^)[}2f
md5 IXPUB技术博客S'M:Bpl.W {(b

a(yT*T+ky n/wOj_2}d0 如选用md5对制定文件数字签名: IXPUB技术博客zkij.nPy5V
IXPUB技术博客p6S _3^2kxW
# digest -a md5 /etc/hosts
/g:[:jGG Hn `f9l0 50d8ab70777f0bd203f660cd9c0d6ad5 IXPUB技术博客6oTFL2p
IXPUB技术博客8GE,Vs*]!j
可在文件传递的任何时间比较文件的数字签名:
g7A,ab'I?,n0
:pS yH7U0 # digest -v -a md5 /etc/hosts
)\uJ9u9\Rr3q0 md5 (/etc/hosts) = 50d8ab70777f0bd203f660cd9c0d6ad5 IXPUB技术博客eY ZR_2~+cY7a){3X

#n]-C%\*o-e0
.jH/\ e_FS0 3. 利用加密算法对备份的数据加密,使系统磁带对盗窃者无用
OG Ir AXV [0
zlmX$he"_%V3D0 列出Solaris中可用的加密算法:
,ah B-@"L O BZ*Re0
*l9P@4f6yq0 # encrypt -l
d7doNi'Y)F'w0 算法 密钥大小: 最小 最大 (位) IXPUB技术博客(xw0{:r$D#W
------------------------------------------
w;bw%w oZ7dC0 aes 128 128 IXPUB技术博客_O8lk6zl,Qu? X)|
arcfour 8 128
q8j%UH6LTz0 des 64 64 IXPUB技术博客|I&`6W%A
3des 192 192 IXPUB技术博客T9|5G _#BN7J0G+o%K
IXPUB技术博客 f;Rlv oa|G+x(c
鉴于1998年美国有人就已穷举攻破56位密钥DES,所以选用DES加密备份和恢复,试试国人水平:
:Z5W%~B I_i0 IXPUB技术博客 o o-c)h%ITC
# ufsdump 0f - /oracle | encrypt -a des -k /etc/mykeys/backup.k | dd of=/dev/rmt/0
2w nH8b r{/_ s6KEz0 IXPUB技术博客4iA j!m ~3Mg
# decrypt -a des -k /etc/mykeys/backup -i /dev/rmt/0 | ufsrestore vf -
5D y]7d$H0 东方蜘蛛 评论于 2005年07月10日01时07分IXPUB技术博客p2W7j(w|jt
IXPUB技术博客-v}p"Et kAe
标题:九、文件/系统完整性管理BART
'a4Q!U|9qC7P6PJ0 内容:Basic Audit Reporting Tool工具帮助快速可靠的检查已部署的系统,创建已配置好的系统上的文件列表manifest,在系统上发现文件一级的改变,所以在配置好系统后应尽快建立系统或关键目录的文件列表manifest,并按系统的变化经常更新。
z bHKeXpT]1ur0 IXPUB技术博客'pc'i9Z5BXf)[U
如,/etc目录往往存放系统的重要配置信息, IXPUB技术博客 V-wE M E7qf
IXPUB技术博客&?O^1gw-T v ln O
2005年05月20日建立/etc的文件列表manifest:
0\0qL,J [.aL.hH VS0
0@L0K(AV!Oq:d k0 # bart create -R /etc > etc2005-05-20
[viXPLu0f"Z&j0
t+} L O/AX mg0?0 2005年05月30日建立/etc的文件列表manifest: IXPUB技术博客x"}@ZS.Ay
IXPUB技术博客0n!CBj5ID0BC
# bart create -R /etc > etc2005-05-30
x2`B$t;m;W0
0p:IJ5LSiuc0
8E a"O&B"D*K:LNx0 如在2005年05月20日到05月30日,发觉/etc目录不安全,可能有人改过,可进行对比:
+@6^ vu tma?5K;j-d0
^3sE%zQ`5{3_+j0 # bart compare etc20050520 etc20050530
0a2|Ki{"a0 /inet/hosts:
m-b2cYL0H1r0 size control:742 test:758
H&h$a5p+fp e!u5Q0 mtime control:42883bc8 test:42997c6e
zvIMU/f)G/N \0 contents control:360be0aaa88e730ee1681c4d9afa20e3 test:50d8ab70777f0bd203f660cd9c0d6ad5
5R0M5~-A;G!gA.gN0 IXPUB技术博客+}3iI2G/}n US6T,oo
随即可发现,有人改变/etc/hosts文件。 IXPUB技术博客 @ZCch
IXPUB技术博客F yw3tn i#y
那会不会有人改变了/etc的文件列表manifest呢,文件可读: IXPUB技术博客6~3f$i.HMRg Pw Z
IXPUB技术博客%k AV${K]fm
# grep host etc20050530 IXPUB技术博客q;t1C;a~?.e
。。。
hw5@/as)I$KR0 /inet/hosts F 758 100444 user::r--,group::r--,mask:r--,other:r-- 42997c6e 0 3 50d8ab70777f0bd203f660cd9c0d6ad5
2K/s]h~bl0 。。。

TAG:

我来说两句

(可选)

日历

« 2008-10-02  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 8771
  • 日志数: 218
  • 影音数: 12
  • 建立时间: 2007-08-04
  • 更新时间: 2008-02-19

RSS订阅

Open Toolbar