量身定制安全的Linux系统服务平台
上一篇 / 下一篇 2007-09-14 21:13:24 / 个人分类:linux study
5m"_e!N7e[9J R{0 LUPA开源社区3_MR{H w$Jc'W
原文:http://www.uplooking.com/content/view/3554/85/
bd)X*IiPg0&{&{3D}/Y r8|,~0量身定制安全的Linux系统服务平台 LUPA开源社区:z I FI"{*r5b
如何保证安全的最大化呢?量体裁衣,有的放矢,取舍得当是关键。现从以下几个方面加以详述。
控制文件的属性和权限
%[*mQ0x&{2Ty9b}0 LUPA开源社区P8L Z yQ-hf2at o密切关注文件的属性和权限设置是保证主机文件系统完整性的至关紧要的操作。 LUPA开源社区g)T$H$FsFN
LUPA开源社区1{9vCl-Y;}&U两种特殊的文件访问权限分别是SUID(八进制为4000)和SGID(八进制为2000)。设置这两种权限的文件,LUPA开源社区(CZUL b3x
LUPA开源社区Hs3cC7~,Po c{|"o将使其它用户在执行它们时拥有所有者的权限。也就是说,如果一个设置为SUID的程序,即使是普通用户
M$B4\f_4xq&G.}0$?1?;q.@%HQO^0使用也是作为root来运行的。因此,SUID/SGID文件是安全的隐患。 LUPA开源社区Do0}&u#oz~1fb Rs
LUPA开源社区.?{{"LaZSUID和SGID攻击方式的预防: LUPA开源社区8EWUE~#Q9t7W
LUPA开源社区BF#}:AJn2UtN1.严格审查系统内的文件权限。可以找出系统内使用SUID/SGID的文件,列出清单保存,做到心中有数。LUPA开源社区)Kzi~1R Kc
k+ZWLaTY(Y#Ep0命令如下:
?!~L8_Y-g/v0^0}!Z+HoE0[root#] find / -type f -perm +6000 -ls | less LUPA开源社区$FD/\s Ut
`*] ri ~p0[root#] find / -type f -perm +6000 > Suid-Sgid.txt LUPA开源社区O2c&Ot-y+e:Fv
LUPA开源社区!LOS P2Q-[2.对于一部分程序必须设置为SUID的,可以让它们自成一组,集中管理。但是绝对不允许在用户的家目
FKm oft)w0 LUPA开源社区H9u'~!Y:{Y录下有SUID程序存在。 LUPA开源社区]b)FB!xv{5Y
YO:o!@&iw03.确保重要的SUID脚本不可写。命令如下:
qy6Z1\7v+A'y{L08@3a"{ bl%H4f0[root#] find / -perm -2 ! -type l -ls
X-f h+]r#O0 LUPA开源社区P3h1Tp!})|cP4.对于并非绝对需要被设置成SUID的程序,改变它们的访问权限或者卸载程序。如:
e%aBRac0 LUPA开源社区 SZ!X&P1zn3]M']$b\L[root#] chmod -s [program] LUPA开源社区K"vK9J~R
LUPA开源社区 e _x^ o2^5.查找系统内所有不属于任何用户和组的文件。因为这些文件很容易被利用来获得入侵主机的权限,造
9Bc8Ob6j+Lg?0 LUPA开源社区gyI#j|2wD成潜在的威胁。命令如下: LUPA开源社区7RD1__;GU;h;s
:ro%d%Atm+EzKxb%e0[root#] find / -nouser -o -nogroup LUPA开源社区iwQV%P1v*L:Z Q!p
LUPA开源社区%E Q-f4N a?0q(Ac6.善于使用lsattr和chattr这两个ext2/3的属性命令。本文将主要讨论a属性和i属性,因为这两个属性LUPA开源社区f!r\0B8m lqG/e
LUPA开源社区S5T;ak,[4g-q f"DN对于提高文件系统的安全性和保障文件系统的完整性有很大的好处。a属性(Append-only),系统只允许
1A'csL#D5e0J"~,P.}hy-}6srp5OT+P)a0在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许
d*d'L)@r0 LUPA开源社区4q9U }6xC!F\在这个目录下建立和修改文件,而不允许删除任何文件。i属性(Immutable),系统不允许对这个文件进
`lHJ h AR7w\08D#T7LEL f0行任何的修改。如果目录具有这个属性,那么任何进程只能修改目录之下的文件,不允许建立和删除文件LUPA开源社区8A8|E*{W U(MM$KY;x
LUPA开源社区-WHl y@(h%v_。
RYr5Sas0eVO"~p }U0如果主机直接暴露在因特网或者位于其它危险(如其它非管理员亦可接触服务器)环境,有很多Shell账
\*lZ)ZX1tX0x J:O$y9IK5l0户或提供HTTP和FTP等网络服务,一般应该在安装配置完成后使用如下命令,便于保护这些重要目录: LUPA开源社区#Ba2Z _/N9U2U
LUPA开源社区-l FRm _/F%I(^ }G[root#] chattr -R +i /bin /boot /etc /lib /sbin
i&Bq4U^F]6Z_`|0 LUPA开源社区ymGvA,I)Y[root#] chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbin LUPA开源社区,s D2y9s Z
y^-KypL$N0[root#] chattr +a /var/log/messages /var/log/secure...... LUPA开源社区5nN;g'K?#d
LUPA开源社区!T)iwoK?如果很少对账户进行添加、变更或删除操作,把/home本身设置为Immutable属性也不会造成什么问题。
"^K3u/g2~0 LUPA开源社区0i_6B(Z DT在很多情况下,整个/usr目录树也应该具有不可改变属性。实际上,除了对/usr目录使用chattr -R +i LUPA开源社区8q-`3[ x_pD ]u5{0_
"{2[M[v}k r'r9}WZE0/usr/命令外,还可以在/etc/fstab文件中使用ro选项,使/usr目录所在的分区以只读的方式加载。
jje|8U9_AM0 LUPA开源社区KY AT:oT另外,把系统日志文件设置为只能添加属性(Append-only),将使入侵者无法擦除自己的踪迹,以便于执LUPA开源社区&]@G? i lWe
.I4E-o&y])W)y L0法人员取证、分析。 LUPA开源社区 _-n'e"A`|
LUPA开源社区:^NlqnI,W6M)j'V文件系统的完整性检查 LUPA开源社区#p;s ~ bO7pJ
LUPA开源社区(xI,Zm!B7`w完整性是安全系统的核心属性。管理员需要知道是否有文件被恶意改动过。攻击者可以用很多方法破坏文
lsK}]a0^ff0^;rA0件系统,例如,可以利用错误配置获得权限,也可以修改文件植入特洛伊木马和病毒。Linux中常用如下LUPA开源社区X},[go E:H8Hp
|"m tMQ7M0工具进行校验检查。
e,{6} q&ONscg0 LUPA开源社区2_@0Ia9f!iL1.md5sum
'`XqWb0 LUPA开源社区|0]}+ZO'b umd5sum 命令可以用来创建长度为128位的文件指纹信息。通过md5sum -c命令可以反向检查文件是否被修
lV ] LI$}l(`5x4^0 LUPA开源社区Z |6R%V R/q#I7j改过。黑客进入到系统后,会用修改后的文件来取代系统上某些特定的文件,如netstat命令等。于是当
9v}1aF#}0 LUPA开源社区1F%iB;I#v:d1Z5^;\使用 netstat -a命令查看系统状态时,不会显示系统攻击者存在的信息。攻击者还可能会替代所有可能LUPA开源社区1zCT YTb;|:y
gf0y:vkqx&k0泄露其存在的文件,一般来说包括: LUPA开源社区7P C oXB nrI
6G Z#_Mc_FeO0/bin/ps、/bin/netstat、/bin/login、/bin/ls、 LUPA开源社区n2`_A ?x
qDI7MS?0/usr/bin/top、/usr/bin/passwd、/usr/bin/top、 LUPA开源社区/{ kB\3j `
LUPA开源社区:_G I$m(}'LO a7g/sbin/portmap、/etc/xinetd.conf、/etc/services。 LUPA开源社区;^3v.qQO7a.b
LUPA开源社区3}vaBP`这些文件都是替代的对象。由于这些文件已经被取代,那么简单地利用ls命令是查看不出这些文件有什么
b`p1r#yEn#a0 LUPA开源社区KA0p&m$J破绽的。因此你需要用md5sum工具在系统安装前期为这些文件做好指纹认证并保存,以备日后检测所用。 LUPA开源社区%FK!hr8Hqy
`#e }} yppr02.RPM安装包 LUPA开源社区'n'\f(uC:m*o