|
9 A8 r. C0 I0 ~. M5 i3 ?: \8 m# J
系统安全性对于用户来说至关重要,Linux用户也不例外。笔者就自己使用Linux的经历,总结了一些增强Linux安全防护的小窍门,在此介绍给大家。
1 w! B+ c0 N, B1.为LILO增加开机口令
2 v5 C, G8 r, N" @( h在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下: 1 R* x, b, c f' R8 N D% i) X6 O
boot=/dev/hda
$ r6 c/ [9 ~+ v5 x" v+ Ymap=/boot/map
: S- D- Y4 C- a/ g4 A! Q) Sinstall=/boot/boot.b
: q. R% [+ [1 n8 M- ptime-out=60 #等待1分钟 ( J, a1 T4 w0 |: L" n) z
prompt 8 ^( o! v9 K( b' X4 V' x% ^
default=linux
3 V. u% Q8 n: U0 tpassword= 6 K" S4 ~, P! ]
#口令设置
( U5 u4 ^) v7 `! Rimage=/boot/vmlinuz-2.2.14-12
; |3 b- Z& h7 U P* c) mlabel=linux - K5 c) A( v7 h: Q) k
initrd=/boot/initrd-2.2.14-12.img ! q5 o# l8 h. P$ m2 E/ O1 K2 }
root=/dev/hda6 6 K2 A: X0 s7 B8 X
read-only 7 X- j! T( a6 q0 F
此时需注意,由于在LILO中口令是以明码方式存放的,所以还需要将
. [ p- x3 }4 b6 ?- o3 h# xlilo.conf的文件属性设置为只有root可以读写。 / b8 ?0 `% {% [9 K
# chmod 600 /etc/lilo.conf 7 s5 P3 R2 M# E3 D3 Z1 K8 P
当然,还需要进行如下设置,使 % s, P! ?. |( @& Z' ]
lilo.conf的修改生效。
4 b' o' D1 F: S4 R- ^: H# /sbin/lilo -v
' F# Q* g. M, {* c2.设置口令最小长度和
& x2 z6 c; t8 F5 S+ O最短使用时间
5 @8 H0 q9 b }* y, C9 P, w口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN。同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS。
0 `, @/ i4 I& o' z% b3.用户超时注销 ( T+ j: `! [( h" m. ~& [
如果用户离开时忘记注销账户,则可能给系统安全带来隐患。可修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。
. q( ^1 ]- Q6 T1 q: {: V. ^- e2 A编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行: 6 j f& M$ f" v8 S
TMOUT=600 2 \) r6 o: g& c4 L
则所有用户将在10分钟无操作后自动注销。
0 [. o" \0 f, @. z4.禁止访问重要文件
* R5 I" q* p: E8 A7 i u5 v& G对于系统中的某些关键性文件如inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。 3 U7 w! Y6 @ O; n
首先改变文件属性为600: & L& d7 b' F& W
# chmod 600 /etc/inetd.conf
! ~) p" c% |* b( ~保证文件的属主为root,然后还可以将其设置为不能改变:
. T9 H3 s/ {& R) w/ {1 ]# chattr +i /etc/inetd.conf . w* l1 s4 e1 v2 h/ I6 x3 o
这样,对该文件的任何改变都将被禁止。 / L0 P# u) g W6 \' a+ r
只有root重新设置复位标志后才能进行修改: 1 D! u$ c& I( S7 a, ~( N! A6 ^) D0 _
# chattr -i /etc/inetd.conf
- W3 a4 |$ l: D9 J! \! m5.允许和禁止远程访问 2 a/ H" w- f( V5 {3 i+ F
在Linux中可通过/etc/hosts.allow 和/etc/hosts.deny 这2个文件允许和禁止远程主机对本地服务的访问。通常的做法是:
8 G9 k3 \9 H% q6 d9 i% Q$ `. ?0 ?. m(1)编辑hosts.deny文件,加入下列行: 7 x8 r4 f) @! b: m( u# P$ F
# Deny access to everyone. " ^1 g2 X6 Y/ P4 {8 t: J, O5 v
ALL: ALL@ALL
% Y0 ?* Y; u( i0 t" z则所有服务对所有外部主机禁止,除非由hosts.allow文件指明允许。
9 A+ J" ?( U" Q ?3 f(2)编辑hosts.allow 文件,可加入下列行:
4 l* j" i7 E! K* h2 Q2 [#Just an example: ! W V% Z \2 G- O4 y
ftp: 202.84.17.11 xinhuanet.com
% C2 ^6 A5 H C2 ~" C则将允许IP地址为202.84.17.11和主机名为xinhuanet.com的机器作为Client访问FTP服务。 # X7 O& v( O) f4 l) p
(3)设置完成后,可用tcpdchk检查设置是否正确。 M2 I+ I- w, {1 U) i
6.限制Shell命令记录大小
0 `! q7 C' Z/ L: E; F默认情况下,bash shell会在文件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同,默认记录条数不同)。系统中每个用户的主目录下都有一个这样的文件。在此笔者强烈建议限制该文件的大小。 # w. M" |% P/ k) f
您可以编辑/etc/profile文件,修改其中的选项如下: HISTFILESIZE=30或HISTSIZE=30
+ X- t( u4 A# v/ t5 e7.注销时删除命令记录 ) N' @) \. U# f
编辑/etc/skel/.bash_logout文件,增加如下行: . h$ _% p) K' H! E) U( s
rm -f $HOME/.bash_history ) Z8 r1 o$ l) x9 m; o! b
这样,系统中的所有用户在注销时都会删除其命令记录。 ' f9 {" Z* b3 [; {$ g# K8 z
如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件,增加相同的一行即可。
3 p ]+ R0 t8 u+ r7 X8.禁止不必要的SUID程序
- N" s f! l [( ?; LSUID可以使普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。
. t. G) W, J" B( x4 z找出root所属的带s位的程序:
/ [9 u1 Y( p/ |3 Y! G# find / -type f \( -perm -04000 -o -perm -02000 \) -print |less & f) K6 Z# p; [0 f* g
禁止其中不必要的程序:
5 } Z7 L0 W+ s& A! H! n+ Q2 w' t1 ?# chmod a-s program_name
( c0 a; w6 o" x d% |9.检查开机时显示的信息
1 }; A- m( m |% p6 XLinux系统启动时,屏幕上会滚过一大串开机信息。如果开机时发现有问题,需要在系统启动后进行检查,可输入下列命令:
8 f2 M# ?2 P7 Z3 g3 `9 O; W+ p#dmesg >bootmessage
I+ B h* `8 r该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。
* S6 r: e- s0 i; ]# p10.磁盘空间的维护
( O0 l5 Q- V1 F" ]( l经常检查磁盘空间对维护Linux的文件系统非常必要。而Linux中对磁盘空间维护使用最多的命令就是df和du了。
; E) r) H) i* \df命令主要检查文件系统的使用情况,通常的用法是:
2 h U/ M8 w" f7 L3 t#df -k ) S$ k3 L+ Z" H( h8 w/ n" w- H. P% T
Filesystem 1k-blocks Used Available Use% Mounted on 6 ?$ K- u5 ~; }
/dev/hda3 1967156 1797786 67688 96% /
1 e# ?9 [1 Y- q$ kdu命令检查文件、目录和子目录占用磁盘空间的情况,通常带-s选项使用,只显示需检查目录占用磁盘空间的总计,而不会显示下面的子目录占用磁盘的情况。
7 f. s$ [! e7 g8 T# Z0 i* h+ X' x% du -s /usr/X11R6/*
: n1 \8 n% ]$ J* a" }; c% ?34490 /usr/X11R6/bin # c0 X2 P3 J D2 |; d" k
1 /usr/X11R6/doc 9 g+ _1 a0 L+ |
3354 /usr/X11R6/include |
|