该用户从未签到
|
& ?+ ?- P3 M9 ~7 ]: T( y( k6 i0 n: t2 o
系统安全性对于用户来说至关重要,Linux用户也不例外。笔者就自己使用Linux的经历,总结了一些增强Linux安全防护的小窍门,在此介绍给大家。
6 Q1 @2 W4 Z- q) ?1.为LILO增加开机口令
( a. u) t3 O$ K3 J6 g7 ^在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下:
# z6 _* ]+ C0 L. Q* E+ i1 `& d ?; pboot=/dev/hda 4 Q9 e) L( |4 w% v
map=/boot/map : h; R. w2 n2 _# t. P
install=/boot/boot.b
: _- t5 {# ] L( ^time-out=60 #等待1分钟 0 a( y2 `$ d# R9 H
prompt
D3 X. O1 q3 M0 e. {" Qdefault=linux
0 N4 n- t! X! O" B$ @: \* rpassword= & ]/ W! b, G, D4 S5 m) c4 Z
#口令设置
% I8 ]4 M3 [. z3 Yimage=/boot/vmlinuz-2.2.14-12
5 U" i3 G3 ^) }; h8 ^+ P5 s: Nlabel=linux
! d1 t( ]- I9 winitrd=/boot/initrd-2.2.14-12.img # O, b7 i# D" `5 z2 P( W
root=/dev/hda6
% _7 K* Q0 T1 [, E; ^% l! Q: dread-only 8 ?4 f0 Q# _- j$ `* O; X% x
此时需注意,由于在LILO中口令是以明码方式存放的,所以还需要将
! k* y" s2 t, T8 I! R( |) R1 tlilo.conf的文件属性设置为只有root可以读写。 5 S$ Z4 Q8 L( w9 K
# chmod 600 /etc/lilo.conf ' P5 c* v3 {3 [, Q8 l o
当然,还需要进行如下设置,使 ) t2 q- B. w" b- l
lilo.conf的修改生效。 # q8 S! P$ G4 g- M2 j; M5 G
# /sbin/lilo -v
# J' X: j+ Q3 {$ X* ]5 H/ c2.设置口令最小长度和 ( ]$ _7 m4 T- f0 R' U1 X3 l1 n
最短使用时间
" O& J# ^# K% u$ Z$ ?口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN。同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS。 ! C6 H7 [# J! g5 B9 [6 a$ H
3.用户超时注销
9 n. D1 v# ^3 M, [ V如果用户离开时忘记注销账户,则可能给系统安全带来隐患。可修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。 + P3 t$ h8 ^. J2 S9 @2 C
编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行: * ?- f# @4 Q# W$ Q1 f9 T
TMOUT=600
9 _' @# d0 @, v/ I则所有用户将在10分钟无操作后自动注销。
" L- r4 \# ^; L% T# F4.禁止访问重要文件
3 m5 `/ e: [' ~9 Q6 D* p对于系统中的某些关键性文件如inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。
0 T/ A# i! d4 j7 T" B7 c5 Z8 d首先改变文件属性为600:
( d! \) H, \% b) w, F# chmod 600 /etc/inetd.conf
0 L5 Q3 l3 t7 x保证文件的属主为root,然后还可以将其设置为不能改变: C9 \: z f3 k7 N: _ {7 z; c; K5 F
# chattr +i /etc/inetd.conf 3 _! I! a9 q8 F. e# L
这样,对该文件的任何改变都将被禁止。 ! ?" F" a q ]: K* q( Q
只有root重新设置复位标志后才能进行修改: / n5 W( g9 |9 T
# chattr -i /etc/inetd.conf / b4 ]2 f. i. {) [6 k
5.允许和禁止远程访问
6 x0 _* |; H- H& e B! Y' J9 k1 @7 T在Linux中可通过/etc/hosts.allow 和/etc/hosts.deny 这2个文件允许和禁止远程主机对本地服务的访问。通常的做法是: + I; w/ D5 @3 h7 C, Y! w
(1)编辑hosts.deny文件,加入下列行:
! r8 |- T$ d: t. @! H7 q3 p! c# Deny access to everyone. ! H* f* G+ \' Z, g _# |2 p
ALL: ALL@ALL
0 I3 @) Z8 U3 ^* Q& n Z! T' K( A* u则所有服务对所有外部主机禁止,除非由hosts.allow文件指明允许。
( c3 ~3 M: n, `* Z(2)编辑hosts.allow 文件,可加入下列行: 6 p& B3 {# C+ |* R
#Just an example: ! x$ Q @- H0 b# l" U
ftp: 202.84.17.11 xinhuanet.com
, w8 h0 E/ w& r0 k/ B b则将允许IP地址为202.84.17.11和主机名为xinhuanet.com的机器作为Client访问FTP服务。
E3 a' v4 K: x(3)设置完成后,可用tcpdchk检查设置是否正确。 ; _# f% R$ `. M" F
6.限制Shell命令记录大小
- i1 b1 `' Z9 I% O w# K# }& B默认情况下,bash shell会在文件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同,默认记录条数不同)。系统中每个用户的主目录下都有一个这样的文件。在此笔者强烈建议限制该文件的大小。 4 Z |1 P. {. E+ G4 {5 _
您可以编辑/etc/profile文件,修改其中的选项如下: HISTFILESIZE=30或HISTSIZE=30
+ O# P8 S0 {$ k7.注销时删除命令记录
6 j/ ^: z# G( w9 Z/ t1 a4 J2 C编辑/etc/skel/.bash_logout文件,增加如下行: ) Z3 x$ S( P" L& T$ [0 _# \1 w
rm -f $HOME/.bash_history ! k! ^6 J8 U& e) j0 A& {; d
这样,系统中的所有用户在注销时都会删除其命令记录。 0 X" V# } Y8 w
如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件,增加相同的一行即可。
" g9 a; u1 m$ \0 v+ F# i8.禁止不必要的SUID程序 6 m g1 ^( d y
SUID可以使普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。 7 r9 ` e: Y; N8 V6 O
找出root所属的带s位的程序: # d* d M( y: }( l% t
# find / -type f \( -perm -04000 -o -perm -02000 \) -print |less
& K e& |5 q: t" p& W禁止其中不必要的程序: + o+ P/ l3 H4 f8 g& R
# chmod a-s program_name
: @; ^: R6 |( N1 C/ z9.检查开机时显示的信息 * l& h4 T2 a2 Y1 R# a8 r
Linux系统启动时,屏幕上会滚过一大串开机信息。如果开机时发现有问题,需要在系统启动后进行检查,可输入下列命令: " ~# r6 D0 Q$ u1 n
#dmesg >bootmessage 2 u" b4 z9 _5 z+ R& G
该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。
8 M* f$ V: ?9 [4 m% F( \) q4 D. ]10.磁盘空间的维护 5 P" ~. A4 e/ a" l4 q/ g( |
经常检查磁盘空间对维护Linux的文件系统非常必要。而Linux中对磁盘空间维护使用最多的命令就是df和du了。
& ^" X+ s! Z2 ^2 q* m1 J% L5 Ddf命令主要检查文件系统的使用情况,通常的用法是:
: l% A1 f) r- C; C. I' d#df -k 0 y, [ ?$ j. O& h8 K+ G) f( \: s
Filesystem 1k-blocks Used Available Use% Mounted on : h V; ], Q9 u7 R) f% ?8 U
/dev/hda3 1967156 1797786 67688 96% /
* Z% q8 ~! j0 ~" e( zdu命令检查文件、目录和子目录占用磁盘空间的情况,通常带-s选项使用,只显示需检查目录占用磁盘空间的总计,而不会显示下面的子目录占用磁盘的情况。 / S- h( e1 y7 v: z
% du -s /usr/X11R6/*
; ?2 _- ~5 y+ h3 W/ c34490 /usr/X11R6/bin 2 d* @1 F( u& E j% X: G
1 /usr/X11R6/doc 5 R+ _4 t+ q( t9 h4 n+ |/ u
3354 /usr/X11R6/include |
|