1、帐号安全 1.1 锁定系统中的自建帐号5 _& u- u L" J2 o
查看帐号:2 y y6 z9 Z3 s8 l
#cat /etc/passwd
# p9 G3 I% G& }& U; a( F& \ #cat /etc/shadow
: {/ ~4 W- X! W 查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪帐户如:bin, sys,adm,uucp,lp, nuucp,hpdb, www, daemon等可根据需要锁定登陆。
* }+ i: j! F* g& R 在修改之前先备份一下,省的出问题:
5 [2 _# F& ?" j7 `* H 备份方法:
2 q+ L5 |4 z( Q: j7 E #cp -p /etc/passwd /etc/passwd_bak7 F) E0 I" @( u1 j$ d( C5 G- l
#cp -p /etc/shadow /etc/shadow_bak- J; R3 R/ Y5 F/ X1 C
加固方法:& ?) I9 Y3 A( [4 N6 [& W# Z
使用命令passwd -l <用户名>锁定不必要的账号。
! a5 X% D* `3 m- ~! ]1 s) d. j+ C 使用命令passwd -u <用户名>解锁需要恢复的账号。6 E0 G0 [5 p0 l
风险:需要与管理员确认此项操作不会影响到业务系统的登录
( M# G' V5 Y% ~7 h4 O 1.2设置系统口令策略* o" a& A5 Z; V- Z% \9 r) h
查看密码策略设置:cat /etc/login.defs|grep PASS
0 i* }& K6 {" s4 b" q" M) i 修改之前先备份一下: cp -p /etc/login.defs /etc/login.defs_bak
/ [. i, o' h; z ^5 h 修改配置文件:vi /etc/login.defs. ^! ]# x2 c1 L! s/ Y! e2 \; N0 H
文件内参数解释:# _+ p% |' f5 f \
PASS_MAX_DAYS 90 #新建用户的密码最长使用天数. g2 D1 l" M: p
PASS_MIN_DAYS 0 #新建用户的密码最短使用天数3 E' P, K$ s) h% f" `% k) \( X+ M/ u4 _$ o
PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数
$ x I* A( Y* Y2 b7 V# l! J PASS_MIN_LEN 0 #最小密码长度0
) C1 a1 t% S! w5 l0 c$ c) D PASS_MAX_LEN 9 #最大密码长度9' E: S& {* P$ w7 K3 y$ g+ M
1.3禁用root之外的超级用户
' S- B- H2 |# Z: L" A2 D9 p; B 查看口令文件:cat /etc/passwd
4 t' M2 a& m" C" ~1 b- C1 D 属性解释:; k3 Q/ q3 L0 b( g E4 G
login_name:用户名, }4 u* c" a2 ]8 G5 y* Y
password:
& L! W- n$ n. V3 H1 R8 L: B加密
8 ]; g* t% G, H# l( [* O5 H后的用户密码
% [+ q: L& N* A! H" U3 f user_ID:用户ID,(1 ~ 6000) 若用户ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0。' a9 u' t- g+ L# s- }" F
group_ID:用户组ID
9 t8 N" S* W3 R5 C/ M% C# j comment:用户全名或其它注释信息- G, j$ u: k8 w6 Y$ q' P* E
home_dir:用户根目录
6 i t3 a' y: m command:用户登录后的执行命令
- T1 j: G5 Z: i. m$ Z" h; ]' K 加固方法与1.1的加固方法一样!
, `7 z) F4 o6 c 1.4 限制能够su为root的用户4 _1 ~. e9 d( c; y
修改 /etc/pam.d/su 文件 先备份:cp -p /etc/pam.d/su /etc/pam.d/su_bak+ j7 Y2 w. R0 G, d) E
在头部添加:auth required /lib/security/pam_wheel.so group=wheel #只有wheel组的可以su0 c5 H& \2 F, }2 c3 t T4 m
将test用户加入wheel组:usermod -G wheel test
# Z) J: K* ^7 I* o& Q# w* B 排错方法:当
2 E$ @. b! H% }. |4 s# [( } |* _2 H系统. @) x5 o. J# ~. e( U5 z1 V
验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。如果是因为PAM验证故障,而引起root也无法登录,只能使用single user或者rescue模式进行排错。6 n1 v3 N# O* U& ^( K6 \
2、最小化服务+ f: r! p+ G' o6 j
2.1 停止或禁用与承载业务无关的服务
+ u0 n' _1 j6 O( O. [ 查看当前init级别 who -r 或者 runlevel5 H/ B7 r) I& s4 ^, \3 k
查看所有服务的状态 chkconfig –list# C% X2 @: e: {/ \9 Q# ]* U2 Z: e4 P. D
设置服务在个init级别下开机是否启动 chkconfig –level <服务名> on|off|reset
' @/ v, R4 C! k9 _# w( g3 J 注意:要安装chkconfig,radhat上面自带的有!, B5 G# S* Y+ G( L' g4 O% e
3、数据访问控制, z0 a) c( x# b- d
修改umask的值 改变新建文件的安全属性
: i* x, o6 Q3 M) _* e 备份:cp -p /etc/profile /etc/profile_bak3 q! J( K& n/ s* x
修改umask=027' t) c2 b' d# d4 E; E- M
作用:通过设置umask值,可以为新创建的文件和目录设置缺省权限
+ H9 T1 @+ A, [" B j 风险:会修改新建文件的默认权限,如果该服务器是WEB应用,则此项谨慎修改。: {6 x7 s% `* i3 I0 D7 ]
具体解释:请百度。。。。4 g: b+ {1 K' z
4、网络访问控制! [5 N8 p( K% O. ^/ S
4.1 使用SSH进行管理3 p9 L/ n) s* d- N) X' a; _ i/ Z5 e
查看服务是否开启: ps -aef|grep sshd4 ]' q/ Z1 t5 f# E- ]6 `3 a
开启服务:service sshd start, M+ o1 ^& o2 q
关闭服务:service sshd stop
1 w( I1 ?' U1 S& M1 l2 ] 重启服务:service sshd restart
' T; y4 L& O1 F6 P( d( I 4.2设置访问控制策略限制能够管理本机的IP地址
$ Q$ I, D. J- e5 M0 i 先备份文件:cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
. Z. e- f$ m- s3 K8 o 修改文件:! b1 a0 ]0 ?% F! V7 O9 [
添加:AllowUsers *@10.138.*.* #仅允许10.138.0.0/16网段所有用户通过ssh访问
0 B! s6 _2 j. W* ^& B$ o2 m 保存后,重启ssh。1 R. @ ~2 O4 Q* Z/ B
4.3 禁止root用户远程使用ssh8 K4 N4 v" g! s! W b
修改文件/etc/ssh/sshd_config 将PermitRootLogin修改为yes
6 i1 ^8 Q! s' p( U 记得修改之前要备份
2 H& ^3 g8 Y" q- G 4.4 限定信任主机) ]" o/ |! k2 U1 A
修改/etc/hosts.allow,添加一下代码:
, N/ N8 N G. k9 j( @, L8 W/ ?: J% z* i sshd:192.168.0.100:allow //允许IP 192.168.0.100 登录
( P/ R$ N) I/ `2 h, e sshd:192.168.10.:allow //允许IP 192.168.10. 网段登录
6 ^* p* @5 z# ~, Z4 z) k 修改/etc/hosts.deny,添加一下代码! ^. U6 g7 J& z
sshd:all:deny //禁止其他的所有IP登录( f q {! {, R( w
4.5防止误使用Ctrl+Alt+Del重启系统3 W9 e4 Y+ X2 P" J
修改/etc/init/control-alt-delete.conf 文件,将最后一行:
. j# n/ }* N$ M9 ]% g7 q exec /sbin/shutdown -r now “Control-Alt-Delete pressed” 注释掉就可以了
! c9 i4 _9 | g6 n, G+ f; l 5、用户鉴别
! f. O' y: O5 S ^ 5.1设置帐户锁定登录失败锁定次数、锁定时间
( I9 }, d, t1 H8 [+ h: Y; u 修改文件/etc/pam.d/system-auth 添加一行:$ z {1 J6 m( @' w0 V2 H* d" z
auth required pam_tally.so onerr=fail deny=6 unlock_time=300
) h5 s% c' A- |) c4 D #设置为密码连续错误6次锁定,锁定时间300秒
' ]2 \1 A' m2 X7 H! U! t- U5 Q3 @ 用户锁定后,解锁:faillog -u <用户名> -r* a( H2 t7 l/ M' r
风险:需要PAM包的支持;对pam文件的修改应仔细检查,一旦出现错误会导致无法登陆; 当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性。' y$ `7 G$ |, L" W8 o! c
5.2 修改帐户TMOUT值,设置自动注销时间3 K& K1 A' N. x4 z
修改/etc/profile文件
0 p( G/ F; Z- z6 s3 e 在”HISTFILESIZE=”后面加入下面这行,添加:TMOUT=600 #表示无操作600秒后自动退出
9 a2 k9 R" z- z- L 5.3设置Bash保留历史命令的条数' F. ^; ?+ N# F$ I6 } L: q
修改/etc/profile文件的HISTSIZE的值,自己设定
/ o6 B% F* p, L5 k, m8 T5 O3 S: R 6、审计策略
3 L7 J ^# K9 u) {8 n 6.1 配置系统日志策略配置文件
* d# J( d4 V4 \* a0 t$ R 查看syslog是否启动:ps -aef | grep syslog) ~# B2 b# m5 ` C- F5 z" P6 a
查看rsyslogd的配置,并确认日志文件是否存在:cat /etc/rsyslog.conf
6 K8 {- N/ u# o+ u 6.2审计产生的数据分配合理的存储空间和存储时间
! K8 A3 G6 `4 @- h 查看系统轮询配置:cat /etc/logrotate.conf( R$ z- ~1 }5 y- m! U6 P. @
一些属性:1 E( ]. y4 N+ q8 S' n# n( U& m
rotate 4 日志文件保存个数为4,当第5个产生后,删除最早的日志
% n4 R3 }1 o1 o ^7 K; @: m. z" F size 100k 每个日志的大小
. [5 P- q2 o2 S- p) P. y. N: M. I" n; j7 p: |
转自江苏三艾网络 |
5 O& }2 H- k7 L0 \ |