1、帐号安全 1.1 锁定系统中的自建帐号
0 {. s) a$ C) p7 U 查看帐号:0 j) O$ c3 |7 Z+ A& q
#cat /etc/passwd, q+ z+ g0 p9 g
#cat /etc/shadow
B: a/ W/ w) o0 s! t 查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪帐户如:bin, sys,adm,uucp,lp, nuucp,hpdb, www, daemon等可根据需要锁定登陆。! e6 m" a) ^/ ~, M/ L9 ]
在修改之前先备份一下,省的出问题:
! f. u, }% O4 V6 L+ w8 U! v, w 备份方法:; I# J0 ~+ u+ c& Y$ r
#cp -p /etc/passwd /etc/passwd_bak8 `+ i# D1 M8 O: }* S$ g' {
#cp -p /etc/shadow /etc/shadow_bak5 {4 p/ O! }4 J+ U5 w
加固方法:
% s- x2 R- p1 m2 v T 使用命令passwd -l <用户名>锁定不必要的账号。5 U$ P+ a# @! E
使用命令passwd -u <用户名>解锁需要恢复的账号。
! S, ~ ?% {. a6 j4 i 风险:需要与管理员确认此项操作不会影响到业务系统的登录5 ]: ^2 O* A/ Z' p9 u$ W
1.2设置系统口令策略& \) e$ s7 T% \" P
查看密码策略设置:cat /etc/login.defs|grep PASS2 l8 } B n/ b, ` J! t
修改之前先备份一下: cp -p /etc/login.defs /etc/login.defs_bak! H/ D2 Q- e2 Z2 A1 y" m8 L
修改配置文件:vi /etc/login.defs
& X9 W1 h& w( X9 F8 T 文件内参数解释:
# P3 X1 @5 k) W9 l0 v! M- \ PASS_MAX_DAYS 90 #新建用户的密码最长使用天数7 ]& `: H+ R, x* M l
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数; _ g3 f: B. @4 `
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
: }* T7 }& t' i! h; A1 W# n PASS_MIN_LEN 0 #最小密码长度0
" P" [5 e9 `( ~/ u3 x' P# C6 d$ u PASS_MAX_LEN 9 #最大密码长度9
( C \$ Q3 `* I8 ?6 Y- D 1.3禁用root之外的超级用户. l7 u( R% Z* N6 j
查看口令文件:cat /etc/passwd* s% N* R4 @; \3 c# W& x& T$ i# r
属性解释:3 h% J9 w# J9 S7 e- K# U
login_name:用户名
7 m9 v1 _" H8 h( e6 @/ r" z password:
9 _. T- H+ J1 f# u& @6 N/ U' M加密
: Z$ [/ I( y5 z. b% A2 h8 T4 b后的用户密码5 W8 R9 w- P+ f% n8 d- [9 b
user_ID:用户ID,(1 ~ 6000) 若用户ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0。
5 Y B: ~$ `! M! C/ ?! v7 i group_ID:用户组ID2 ]7 M4 \: p1 |6 G: t( `
comment:用户全名或其它注释信息
+ ^' r A6 \4 g& v- _% o' @ home_dir:用户根目录1 W' `# s. f5 i" N" Q- ^0 f* _
command:用户登录后的执行命令
5 v" u3 I/ }7 l" g 加固方法与1.1的加固方法一样!) S! Q8 i) A) Z4 _/ y- f
1.4 限制能够su为root的用户; o' t+ U2 j1 s1 c. N) F. T
修改 /etc/pam.d/su 文件 先备份:cp -p /etc/pam.d/su /etc/pam.d/su_bak4 V I9 s( S; Z# _+ b2 Y, s2 ~5 E8 j
在头部添加:auth required /lib/security/pam_wheel.so group=wheel #只有wheel组的可以su
; g2 F4 j7 [+ [' l& u 将test用户加入wheel组:usermod -G wheel test
7 |: p O* V. g6 c7 K% O( u 排错方法:当0 s% ?1 \% B) |" l% b; x
系统
m: H/ X/ j% \% y4 ?; W6 b验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。如果是因为PAM验证故障,而引起root也无法登录,只能使用single user或者rescue模式进行排错。2 J: L8 U8 n6 A5 p- U
2、最小化服务
8 R# L+ w; W4 r- c) O3 v% s5 E% W: Q 2.1 停止或禁用与承载业务无关的服务- q2 G' [! E1 a3 v7 F
查看当前init级别 who -r 或者 runlevel1 ]% n/ U2 h* j6 ~5 D- N3 K$ d
查看所有服务的状态 chkconfig –list" _1 k0 J v' x9 P( i" q
设置服务在个init级别下开机是否启动 chkconfig –level <服务名> on|off|reset
9 j' q4 ^5 c/ u! Q% I: {9 h 注意:要安装chkconfig,radhat上面自带的有!
# K. l. Y8 w* k& M 3、数据访问控制
" u' q% B7 s3 N' q" w 修改umask的值 改变新建文件的安全属性6 b, [. c1 q4 @# y: r
备份:cp -p /etc/profile /etc/profile_bak8 L, _8 E R. E8 f" t) ?8 h' e& m
修改umask=027! ?4 n# {! J! K {( n; j( F; a$ e
作用:通过设置umask值,可以为新创建的文件和目录设置缺省权限
3 r% v1 a. p- G$ z 风险:会修改新建文件的默认权限,如果该服务器是WEB应用,则此项谨慎修改。0 `( d- |6 Q6 u& F6 I' B" W* j
具体解释:请百度。。。。
6 v7 \ e: {+ h0 ~; h4 L. ~ 4、网络访问控制
) f9 b3 H) v1 u7 r+ O( H" i2 V 4.1 使用SSH进行管理
" m' H- p8 r1 a+ w* c; c) g# c 查看服务是否开启: ps -aef|grep sshd
+ B: R# r- c0 `1 q% M4 u- L" H' L 开启服务:service sshd start. u5 s4 a, s4 A9 Z! n- e; _) x
关闭服务:service sshd stop! \ d- G! Q" q/ x" g0 J
重启服务:service sshd restart
: d. `; x; E5 e5 S1 u( H v; I9 S 4.2设置访问控制策略限制能够管理本机的IP地址3 _- H6 z, N$ P9 v) d" p- p, _
先备份文件:cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
4 x& D2 j* o2 o0 A2 U 修改文件:
: q8 Y6 K3 N- C# ~6 o- P: S1 { 添加:AllowUsers *@10.138.*.* #仅允许10.138.0.0/16网段所有用户通过ssh访问* q& s# L2 s$ S3 S
保存后,重启ssh。
! G6 W \) A; f 4.3 禁止root用户远程使用ssh
8 j* f1 ^) ~# ]& O* O& x2 q% x* U 修改文件/etc/ssh/sshd_config 将PermitRootLogin修改为yes
$ @. O! g4 t; Q 记得修改之前要备份
7 Y: ]0 z7 y# n( p& O+ U 4.4 限定信任主机( o+ T3 L/ i* w4 L, l6 D( p3 R, `
修改/etc/hosts.allow,添加一下代码:
7 \8 P5 p% z: F/ E, C sshd:192.168.0.100:allow //允许IP 192.168.0.100 登录# V* K5 D+ f5 M8 C7 F
sshd:192.168.10.:allow //允许IP 192.168.10. 网段登录$ [# U. k# E# H+ B0 K
修改/etc/hosts.deny,添加一下代码( Y G* d* z4 H% H; b
sshd:all:deny //禁止其他的所有IP登录% ]2 x5 U. O& h0 Z, G
4.5防止误使用Ctrl+Alt+Del重启系统, |6 T3 L; j. P) k d5 G
修改/etc/init/control-alt-delete.conf 文件,将最后一行:
! G& P1 ?& H# a5 ~$ e exec /sbin/shutdown -r now “Control-Alt-Delete pressed” 注释掉就可以了
) Z, s4 P+ e: y 5、用户鉴别- S* X2 k" Z/ v7 ~! @
5.1设置帐户锁定登录失败锁定次数、锁定时间: a5 }6 h/ y# L( M. ~+ i; w/ L/ H
修改文件/etc/pam.d/system-auth 添加一行:
( }! @1 F) h$ t. W. M0 r auth required pam_tally.so onerr=fail deny=6 unlock_time=300
) o. }0 @0 J, V #设置为密码连续错误6次锁定,锁定时间300秒 e9 O' W: H" ?& j) S' O6 I8 n* e
用户锁定后,解锁:faillog -u <用户名> -r' ?) `) f+ m9 P) f
风险:需要PAM包的支持;对pam文件的修改应仔细检查,一旦出现错误会导致无法登陆; 当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。
3 [7 j, h. C# ^/ u& r+ C 5.2 修改帐户TMOUT值,设置自动注销时间
7 `7 j& G0 L, ]2 L 修改/etc/profile文件3 E0 g. { s1 J6 Y8 b: _* s
在”HISTFILESIZE=”后面加入下面这行,添加:TMOUT=600 #表示无操作600秒后自动退出
% s8 J6 V% Z( s, C+ U9 z3 f( d4 e/ { 5.3设置Bash保留历史命令的条数( T, ?* Y+ i' O5 x
修改/etc/profile文件的HISTSIZE的值,自己设定
$ k- k6 U0 M: a. U/ v L9 a 6、审计策略; c- R6 L8 h I5 w; N2 {
6.1 配置系统日志策略配置文件
( J. Q3 _( P1 t0 a$ P8 N" p 查看syslog是否启动:ps -aef | grep syslog4 f, C! c7 L. D/ N) f
查看rsyslogd的配置,并确认日志文件是否存在:cat /etc/rsyslog.conf5 P& Z3 R) v/ L, s5 \/ x: U% j) e
6.2审计产生的数据分配合理的存储空间和存储时间
$ A9 Y% U1 b3 c2 w 查看系统轮询配置:cat /etc/logrotate.conf
1 @6 v( f7 a! K) `9 R- j+ s 一些属性:) U1 R. }. r& ^& ]+ s8 c
rotate 4 日志文件保存个数为4,当第5个产生后,删除最早的日志
. X! {; c9 @8 B4 L7 ~1 C8 t$ i T size 100k 每个日志的大小
& D. C% L, o2 e# M9 C* C6 x0 Z% N: |
转自江苏三艾网络 |
* Z8 T# v$ H6 u/ y E0 v |