该用户从未签到
|
8 k3 k B% Q, p) A/ I; K
系统安全性对于用户来说至关重要,Linux用户也不例外。笔者就自己使用Linux的经历,总结了一些增强Linux安全防护的小窍门,在此介绍给大家。
Q0 k5 O, Q. c* o1.为LILO增加开机口令 / V# h5 s: l) s& P4 S
在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下: 0 f5 e+ l9 s/ k# q
boot=/dev/hda
: a* F& C4 ^3 C6 b* {4 |. {map=/boot/map 6 o/ w& u; G; M g5 ~
install=/boot/boot.b
/ w$ g) S o5 B1 }0 w1 @time-out=60 #等待1分钟 7 w( z2 |9 F* x; ]# g% W
prompt ' n i8 N$ I" X, e6 O# ^8 F' G; G
default=linux
; O ]5 L4 V' W1 ~" r3 }3 {password=
% M$ h) O& K: W#口令设置 " X" x# l3 M1 ~; L
image=/boot/vmlinuz-2.2.14-12
5 c8 ?6 U; y/ r4 m! D" Vlabel=linux
6 T9 w' @; H2 t$ J$ F% X, F: hinitrd=/boot/initrd-2.2.14-12.img
- n7 ?6 u7 D1 u: }root=/dev/hda6
( l- B; I- U, D' I, gread-only
: x5 I8 ?3 m, w. W% V0 X此时需注意,由于在LILO中口令是以明码方式存放的,所以还需要将
1 g9 ], s' \) m6 S6 alilo.conf的文件属性设置为只有root可以读写。
0 T( ~5 d1 o! w4 J. N# l" D* F6 h' r# chmod 600 /etc/lilo.conf
0 _) z' ^ O7 k6 f当然,还需要进行如下设置,使 5 a m B* W/ d! `/ g7 r$ p1 O% e" ^
lilo.conf的修改生效。 4 I& T" H, c; L1 Y6 q0 c
# /sbin/lilo -v : k1 A& ?. c' p2 h& W2 z; O& s
2.设置口令最小长度和 6 M! ^% n1 {7 E4 G5 C9 P' K
最短使用时间
) C) Q, H! |0 I4 [口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN。同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS。
; E: m+ R* ]5 k$ i, t1 S6 G G3.用户超时注销 $ ?5 t* s% G% n @2 p5 u
如果用户离开时忘记注销账户,则可能给系统安全带来隐患。可修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。
' R; A( W5 C# t) i! H编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行: 6 B2 w' z" A R0 T5 E; o0 z0 i _# i
TMOUT=600
6 q8 ]: Z0 E% [+ {8 \则所有用户将在10分钟无操作后自动注销。 H& u- K- q& m- P5 g8 \* H
4.禁止访问重要文件 : ]/ g7 q# s! `- Q/ i
对于系统中的某些关键性文件如inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。
8 o2 p* ]6 `# i# w首先改变文件属性为600: 8 ]2 J. I5 g" Q) O8 n5 o
# chmod 600 /etc/inetd.conf
8 y/ q* y9 _% I( @' p, V1 C保证文件的属主为root,然后还可以将其设置为不能改变:
' N/ y$ `% J4 A; R# chattr +i /etc/inetd.conf
: i" ?! c. v! m5 U+ b这样,对该文件的任何改变都将被禁止。 + S0 l' M) i( o' @0 W& f6 J! Y
只有root重新设置复位标志后才能进行修改:
- N! {: u4 t% z7 Q# chattr -i /etc/inetd.conf " }- J) S$ g8 T; @( `
5.允许和禁止远程访问 2 q8 n1 k; r D
在Linux中可通过/etc/hosts.allow 和/etc/hosts.deny 这2个文件允许和禁止远程主机对本地服务的访问。通常的做法是: " Y/ {1 @& w* s5 A2 p4 C! U
(1)编辑hosts.deny文件,加入下列行:
0 ~, I, A/ J7 M4 _- `8 M: {# Deny access to everyone.
" ]& t( R& @$ O$ _% V' Z3 w4 ^5 o; g5 ^9 xALL: ALL@ALL " h& e I6 ~7 p6 e3 F1 q& X4 t: h
则所有服务对所有外部主机禁止,除非由hosts.allow文件指明允许。 ( \1 ]/ b" |8 G9 [2 J) o
(2)编辑hosts.allow 文件,可加入下列行: ) C0 P( g7 h4 C# V3 k9 y
#Just an example: : W' ]4 X; I0 G- ?
ftp: 202.84.17.11 xinhuanet.com + H" W) ]7 z# Z% x4 t4 _+ r: V
则将允许IP地址为202.84.17.11和主机名为xinhuanet.com的机器作为Client访问FTP服务。
: k" O; C. Q# t* z3 ~$ q# r(3)设置完成后,可用tcpdchk检查设置是否正确。 0 q9 j9 D. d! I# [4 T' ]8 X
6.限制Shell命令记录大小 7 U9 u0 A# w: J$ Q7 A
默认情况下,bash shell会在文件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同,默认记录条数不同)。系统中每个用户的主目录下都有一个这样的文件。在此笔者强烈建议限制该文件的大小。
9 j" }9 I9 @/ M. H! D/ v您可以编辑/etc/profile文件,修改其中的选项如下: HISTFILESIZE=30或HISTSIZE=30 0 k: R, a" S, U- _# L
7.注销时删除命令记录
1 x: s8 N# N/ X% {& S( W8 }编辑/etc/skel/.bash_logout文件,增加如下行: / N; `3 r# e' @( o( \6 U) D8 h" d+ t
rm -f $HOME/.bash_history 3 G$ Q& p# d( {" t0 |0 B
这样,系统中的所有用户在注销时都会删除其命令记录。 4 h9 H, h4 p* \! `+ K2 z
如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件,增加相同的一行即可。
+ ~9 X( ?/ o+ h5 m; p8.禁止不必要的SUID程序
, t5 F; T2 n9 F$ m _2 K; OSUID可以使普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。
8 a. {3 y, H6 b& N$ `$ r% J) ^* ]- X找出root所属的带s位的程序:
& }+ o# s9 O( m* m! e# ~; W# find / -type f \( -perm -04000 -o -perm -02000 \) -print |less
# l, W2 ^. d; ~8 A+ x% o+ H- C2 [禁止其中不必要的程序:
; i! w0 `( E s% e" [# chmod a-s program_name 9 A& c/ T: n: d" ^: W d# Q
9.检查开机时显示的信息
( ~4 S5 q1 n+ Q4 u1 o" QLinux系统启动时,屏幕上会滚过一大串开机信息。如果开机时发现有问题,需要在系统启动后进行检查,可输入下列命令: 7 P( L- K% T1 q; I, z
#dmesg >bootmessage
$ W2 t" i8 h& m该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。 ' D5 e( r+ U4 D- C2 l2 ~
10.磁盘空间的维护
# o! N# Y! S' P9 n经常检查磁盘空间对维护Linux的文件系统非常必要。而Linux中对磁盘空间维护使用最多的命令就是df和du了。
- [# B; e+ _+ H4 `3 l' ? zdf命令主要检查文件系统的使用情况,通常的用法是:
* w" b7 P: U% H& U5 X# p, |#df -k - s) |; ^5 b' m
Filesystem 1k-blocks Used Available Use% Mounted on u3 D5 e) r+ n$ m
/dev/hda3 1967156 1797786 67688 96% /
/ [3 A7 S4 D: q* Hdu命令检查文件、目录和子目录占用磁盘空间的情况,通常带-s选项使用,只显示需检查目录占用磁盘空间的总计,而不会显示下面的子目录占用磁盘的情况。
+ T+ ~ z/ l' c3 d. _% du -s /usr/X11R6/*
, _! F; v; H" y- C3 i" F. \2 O34490 /usr/X11R6/bin
( f" S, O( G& G8 @1 /usr/X11R6/doc : J8 d [& ~- x4 N d1 F* w
3354 /usr/X11R6/include |
|