|
|
楼主 |
发表于 2022-10-30 00:19:15
|
显示全部楼层
常规检查------系统版本信息8 V9 b; a6 t6 g
. [5 R1 Z- D! x: m7 D# j* Z' H" g复制代码
7 I5 O8 V8 U7 T) |$ lsb_release -a
/ H' Z- n/ }# @7 ?) K) W' _6 o* i1 nLSB Version: core-2.0-ia32:core-2.0-noarch:core-3.core... ]& x9 E/ h7 u# I2 W* _) U
Distributor ID: Ubuntu
* z$ |7 p3 n, g! L" |Description: Ubuntu 12.10
1 j V3 R* v; Q& sRelease: 12.102 X: U' @( i0 e. {3 U1 Q
Codename: quantal
# r5 l2 K0 [: S5 t- ]" J5 a复制代码
" F0 n; d1 S3 m- A系统安装软件包列表5 y' C/ b( E+ x
% O/ H# ~8 [8 B5 `! a9 v
$ rpm -qa #Fedora/Redhat系统适用
3 D N& G5 q( e. r8 F7 V4 [7 u1 o, ?- M4 N+ j: W# F& n
$ dpkg -l #Ubuntu系统适用
' O% L ^5 n. H, Y系统进程运行状态
* M: y) [& i! N1 ?$ m$ G, g. _6 w' j+ B. J4 S9 V
复制代码% h) V- U4 e! P* q: A- n# O- a2 \% H
$ top
4 T, g; {$ r3 ?) R$ m
. U+ _/ ?4 G. R+ b }4 {: ~1 top - 15:34:24 up 23:44, 10 users, load average: 0.52, 0.56, 0.59
: R( P9 I% X* R$ J9 @2 Tasks: 245 total, 2 running, 241 sleeping, 1 stopped, 1 zombie
9 m( S- ]; P( ^1 R x% M3 %Cpu(s): 14.3 us, 3.4 sy, 0.0 ni, 82.0 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st, P# s! E, B) X5 C! z8 T! X
4 KiB Mem: 3924136 total, 3220824 used, 703312 free, 296052 buffers
$ H+ U3 R; C' z: Z5 KiB Swap: 0 total, 0 used, 0 free, 1488240 cached2 ?& e0 Z/ I! L! j. r7 x& K
67 C6 a: K e8 u; Z- p* |# Z; @" y0 g
7 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND+ d1 K6 w; N. h7 J1 E$ W. P, t; H
8 14846 good 20 0 733m 158m 43m S 33.8 4.1 71:54.21 firefox
- L: p4 \8 T0 m/ E* k9 1309 root 20 0 98.6m 29m 6616 S 14.6 0.8 39:01.19 Xorg
/ H! C* r/ A( @* r10 ... z- ~7 n7 y( a1 ]9 U1 E% g
复制代码
k- [$ A4 F1 m7 M! k8 K/ M. j说明:
6 P. ^! d! }9 Q9 P% L, B6 ^ A" p \; B' ]
第1行,与命令w输出的含义相同
, B0 `# i: T& Q& T; _* C第2行,进程总数245
$ p$ C- H+ V2 [* T' E! p第3行,CPU使用情况,用户态(us)占用率14.3%,内核态占用率3.4(sy)- Q$ g% J* ~6 T4 ^8 b
第4,5行,内存使用情况,物理内存4G,空闲703M,交换分区大小为0
- h4 {4 p; L) |3 l% h7 X8 y第6,7,8行等,进程列表及实时运行状态# l& N0 R2 n* H4 T
9 ?5 o# {' W1 W: Y5 v* {3 d8 s
7 h& z. U s9 `, R
. ]8 X# J" t8 u4 k+ t6 E/ B: N6 F) ?0 X7 L
系统运行级查看! x4 b3 a% \3 g/ a
7 x& q: `' s9 p
$ runlevel
7 v4 `8 d* \& y5 p# {: f PUbuntu系统服务管理和配置实现特殊,所以Linux通用的服务管理命令chkconfig等不支持,经初步试用发现命令update-rc.d还很初级,可能达不到预期效果。; S' [2 h9 X( t3 H1 ]
1 N% u, c2 j- u, }1 [8 A停止ssh服务0 G) L+ ?. O( d1 ?5 z1 Z# F
& p) @8 j: a7 J8 n! `, g, K
$ sudo update-rc.d ssh disable) s3 O3 b6 ~2 g
启用ssh服务
; p- A$ B2 \0 n p& f4 u1 j4 Q ~6 X% a' B9 }
$ sudo update-rc.d ssh enable5 a6 E$ h; N' i+ s) F( Y8 C# v% g
7 B- q' |4 T, z
) B/ Z. g& v* i2 U* G! B0 ^
帐号安全-----系统用户登陆情况检查7 a( u1 j* I2 a
0 U, y; \6 ^2 v9 a8 `& q
复制代码
/ q0 v7 O: I2 w% w$ w7 l. T+ \- M0 V' x$ \' n7 a. ^; _
15:09:17 up 23:18, 4 users, load average: 0.77, 0.59, 0.639 w _# B) D: U4 C! ~" e# S
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT2 L. v, n1 K' D L; C5 {
demo pts/2 192.168.1.100 15:12 1:16 0.30s 0.09s -bash
3 _, C3 a+ ?' O! c5 ~) ngooo tty7 :0 三15 23:18m 36:49 2.22s gnome-session --session=ubuntu/ O# t* l9 ~& F+ Q& E3 I% I7 y# V
gooo pts/0 :0 三15 23:57 9.24s 9.01s /usr/bin/firefox
\* e8 U) p: T( q复制代码
4 q* B5 M" w% P/ ^% u说明:# g( ?: Q0 c/ x( N, H6 R
- i% y7 C. V3 c系统当前时间:15:09:17
$ K5 F2 `, W; T, @" N系统已运行时间:23:186 r0 ]9 q; r0 W( d" z
系统平均负载:0.77, 0.59, 0.63 (over the last 1, 5 and 15 minutes)3 z: |/ w; ?% W2 f# R
已登陆用户:4个
! k' ^% c6 _* k/ u- V# ademo用户通过网络在图形下的terminal(pts指虚拟终端)登陆,登陆时间15:12,IP地址为192.168.1.100;
3 ~4 ]! j1 \: lgooo用户的第一个登陆在控制台七(即Ctrl+Alt+F5),为当前gnome图形桌面的登陆用户;! Z2 O4 O( K1 V9 b
gooo用户的第二个登陆在图形下的terminal,正在运行firefox; T" p* w! C/ p. g3 [$ Y9 e. E
注意:如果发现有不明用户登陆系统,可通过命令”pkill -kill -t TTYName”将其踢掉,如踢掉demo用户的命令如下:5 k9 J2 L& X- ?. E, D
& x' c6 w j( O$ sudo pkill -kill -t pts/2! {3 R6 g7 g. s g6 d. d' S
, R& v5 E A, G& G, C: V D) `
7 Q' X) p8 y, [4 ?
检查系统中保存帐号列表的文件中是否有异常帐号。1 m$ _8 x* L& v: b* [9 c. U* }
" I T. D6 W" c0 ^0 L! ~. I复制代码: _/ i% z& M8 H# E/ `! |
$ cat /etc/passwd8 W! V8 c+ r0 ~
root:x:0:0:root:/root:/bin/bash
# ?1 ~$ |9 g6 K. Ldaemon:x:1:1:daemon:/usr/sbin:/bin/sh
2 y' m+ f2 E8 p" x# H `bin:x:2:2:bin:/bin:/bin/sh
% @( Y8 |# x9 A8 V9 b2 zsys:x:3:3:sys:/dev:/bin/sh, t8 N) ]' c" V+ }& J' D$ |1 ?+ B
sync:x:4:65534:sync:/bin:/bin/sync
' z- Q9 M6 Y; q* ]8 \4 ]4 A...! u! l, [8 L0 M% K. v, f
*test:x:0:1001:cs2c,,,,:/home/test:/bin/bash*
/ a2 {% Z9 _4 i5 C7 Z复制代码- ?$ ]" p7 e0 s' R3 r& O
要特别注意类似test(最后一行)的帐号,这个帐号UID被设为0,意味这个用户权限与root完全相同,而且在Ubuntu下可以直接登陆(Ubuntu下默认是不允许root登陆系统的),非常危险。
: Y- S/ D- W/ ~+ e" U2 {7 [# I2 D, b1 i5 t1 l
p: A+ b/ R8 \" W' `. Q6 g# w) B. [6 w- K. [, f
帐号历史活动记录
" w5 a, m, j8 V6 A3 R) y! F u0 r/ W& m8 ^- c8 q# a$ s
last命令显示系统最近三次用户登陆情况,如果不指定-n参数,默认显示所有。
2 e" [, Z% q5 A2 e- O) w% s1 T6 r2 S W# ^
$ sudo last -n 39 g" G" Z1 K% e. u8 t: F, k" e
9 k" ~9 @+ o u1 J7 s
+ T. Z1 w2 U7 l3 z" f用户名 终端 来源 登录时间 - 关闭时间(持续时间)2 {3 T- @/ P; f% t, V7 X6 h
( J% _% W; S! l4 @gooo pts/2 192.168.1.100 Thu Aug 15 15:58 - 16:07 (00:08)
1 X: d3 W8 B' |2 T. k6 F: Pgooo tty5 Thu Aug 15 15:12 - 16:09 (00:57)
& Y' G- Y4 ]! mgooo pts/7 :0 Thu Aug 15 15:06 still logged in( ^0 w9 Q" a i" u
& p7 o2 c( p1 G7 O" k( e. C* U7 T' I+ e& c7 x# q! }
lastb命令显示系统最近三次用户登陆失败的情况,如果不指定-n参数,默认显示所有。ubuntu系统下lastb默认不记录通过远程ssh登陆的失败记录,问题还在查找。
5 K7 e, z7 Y' K3 h. S. \- S
2 D: V- F/ |, J. C" b! R$ sudo lastb -n 3
5 Q* |3 P' [& g& p用户名 终端 来源 登录时间 - 关闭时间(持续时间)
+ \2 Q; S: b3 \2 L! u5 E4 Q7 ^UNKNOWN tty6 Thu Aug 15 16:04 - 16:04 (00:00) 8 I0 S8 K2 m% t# a6 B# \
root tty6 Thu Aug 15 16:04 - 16:04 (00:00)
% r3 u8 H# d) E( }" i5 Y! gaureport是一个更加强大的系统审计信息查询工具,基于audit daemon,auditd根据配置规则记录相关系统活动,如用户口令修改记录、进程运行记录等信息,通过aureport工具可以查询audit日志。
( F* w0 y3 _, G# `
! }) e1 h3 l4 k% v: u' G$ s- }$ man aureport
- J/ W. L! G; M, A
) L* q" p) W) F: H9 P9 q3 N' [9 ~2 O
) a/ Q6 @; U" @: w' b! i
9 y& m$ E/ ~. B3 \ ^% ^
% J3 x( ]8 G, D3 w网络安全----服务端口开放检查7 M, l \4 a% Q' B
4 }4 w" {7 x! K3 J8 x
复制代码
/ R, d% u. q( P9 I/ e' z+ C$ sudo netstat -anpt
' R# z/ _5 J5 L, t. E6 Q* m: N) q3 x: G0 k- |) Z! U$ M* ]
1 Active Internet connections (servers and established)- V$ ~# S% t3 z; B0 r
2 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name; l* ~9 C v1 H5 L
3 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 825/sshd
9 a0 J9 _& S2 N- B+ `7 f# V* c3 v4 tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 12489/cupsd % T9 ~! E% O) s8 ]+ b$ a
5 tcp 1 0 192.168.1.106:45268 91.189.92.11:443 CLOSE_WAIT * M/ `6 Q. ^; ]+ f" o
6 tcp 0 0 192.168.1.106:22 192.168.1.109:42066 ESTABLISHED 24652/sshd: : e0 F: R+ x$ ]& k. d9 O
7 tcp 0 0 192.168.1.106:55095 192.168.1.108:22 ESTABLISHED 25221/ssh 6 A: N$ C$ o& \" d2 j
8 tcp 0 0 192.168.1.106:32872 122.193.23.59:80 TIME_WAIT -
% o/ n2 E0 ?* |7 T6 r6 {9 tcp 0 0 192.168.1.106:46298 184.25.111.231:80 TIME_WAIT - 0 k! m& a l2 W. c8 x6 e
10 udp 0 0 0.0.0.0:17500 0.0.0.0:* 2579/drop7 z$ u" E- q7 L; S2 j; {7 p) b
11 tcp6 0 0 ::1:631 :::* LISTEN 12489/cupsd . k/ \0 y% Q1 P. S+ {' C
复制代码$ L) J9 Q5 T+ Q% d$ r1 R
说明:
% s* z0 i6 w* t1 h$ q( [$ K* z4 }9 a
命令说明(A):
5 N# }9 T- T; n4 o; M1 R: f& U) D
“-a” 显示所有;
+ G+ M) p2 S) y“-n” IP地址和端口号以数字方式显示,默认为别名方式;+ e5 `) i4 c& W
“-p” 显示PID和进程名;% P7 J; A2 D4 q4 u( R
“-t” 显示TCP协议;
/ r6 }* w% O( ]6 j, \“-u” 显示UDP协议。& z1 s2 t$ g j$ O" N8 E
第3行,sshd服务(进程ID为825)开启了tcp协议的22号端口,不限制接入IP地址;
, Y- e; {8 [8 q. b第4行,cupsd服务开启了tcp协议的631端口,限制仅允许本地访问;2 ]' T7 X# G6 L( v8 ?
第5行,本机正在访问91.189.92.11的443端口;
7 f6 v7 ?% G' z& t! N第6行,远程主机192.168.1.109已经通过ssh服务远程登陆本机(192.168.1.106);
, g1 Q- |, @6 C. ?# F- O第7行,本机已经通过ssh服务远程登陆远程主机192.168.1.109;
3 W! f7 L7 {7 e- b- ?6 ?第8,9行,本机正在访问122.193.23.59和184.25.111.231两个网站;
) [* s8 b! a" a第10行,未知服务(drop进程,PID2579)开启了udp协议的17500端口,不限制接入IP地址;
( m, R Y+ j2 i5 A) @/ ^. e第11行,cupsd服务开启了tcp6协议(IPv6协议)的631端口,限制仅允许本地访问;& y+ M# m2 q7 f: z% c, o
4 F6 ]/ O P3 h. B4 d
5 U4 T% k3 s: s2 L! [* _% V: I: K5 `; i
! {! }0 A: V3 z, S% O* E
4 X7 ^ b8 w7 c9 m# I下面是网络链路安全检查-----默认网关检查1 b9 k5 I$ Y! m Y; a
y! @. @& d% m2 v, D
$ route -n
1 i- B$ S+ f: z2 U网络设备节点情况
. Y5 P$ A% {7 m
3 i- Z# D* h( }* D1 M- P4 s$ ifconfig -a
* W6 K$ q; w# W- t# l- V& k0 o实时网络连接状态和流量情况) L* Z1 M. s3 W( o+ q
! ^( P' o I* a9 @, {
$ sudo iptstate -C; }3 C. y# z! p9 x! p
ARP解析列表缓存显示。如果192.168.1.1是网关IP,而后面的MAC地址与实际不符,那应该是被ARP欺骗了!
9 w5 I4 V1 W d1 ^. L! g
+ Q, L0 h0 F1 S5 q5 C1 [- n$ arp -a
; Y- V% \+ y$ N6 x1 I* l2 ~4 [
9 G4 P @2 v( x* b, P7 \4 W8 ?? (192.168.1.1) at 00:23:9e:xx:xx:xx [ether] on eth0
n- Y0 T Z2 |' C- d+ J防火墙规则情况
" j: R% M$ J: _( l' X3 b# `% } P. e7 W
$ sudo iptables --list4 l0 ?! l& ?7 c! V7 O0 |! Z
7 K: y$ z# W8 D! G3 t+ R5 D- j
* G! R1 u& d. r) G* f7 p
% j6 T. W* ?+ i4 U) q/ [- p# i l+ ]. y
数据安全5 o8 Y+ y/ |8 y0 N
" L/ i8 T& }. W$ `
如果有人入侵了你的系统,修改了系统启动脚本,还替换了一些关键程序来掩盖他的行踪,这该然后办?关键是你还不确定入侵是否发生过。 DEB包校验完整性校验: G: k; F; `$ a( L8 i* b2 D. q1 \
* E. C3 {6 F' \7 [1 s/ J
Ubuntu系统默认不支持系统已安装包的完整性校验(个人结论),网上查到debsums这个包支持。
& o; { ?: W* v; V7 H6 k8 T: ~0 T$ ~: p( M* @( v
$ sudo apt-get install debsums5 K- L5 ? a7 ?0 t0 B( M
$ debsums sysv-rc #校验包sysv-rc
$ v- S+ P8 H# m4 z" P$ w$ debsums #校验系统中所有包; U$ F7 Q/ A/ L$ Y8 o
1 p4 O% S- U/ ]. i8 ~! f
% ~& M; x, w. V$ q y
+ X1 p! Q+ I& }, O9 S" ~# A3 ?5 A5 p' L; H
; C) T5 D; Y0 q. S# m6 ]" p9 V: Z
) G5 }5 E$ r2 J" I" F( Y8 m系统日志安全1 T t4 x4 D# g* v8 o M. r
3 l* v( E @* c* t
通过分析日志记录是查找系统安全隐患的重要手段,Linux系统下日志默认集中保存在目录/var/log下,下面主要列举几个主要的日志文件。" @ I6 q, j1 L3 F8 _+ H$ ^4 F
- P# Z/ X) W1 _: @, S p$ H9 l
用户帐号认证日志,内容包括帐号登陆记录、权限转换(su/sudo)、修改口令等操作。# c3 W! M6 ^, Q$ k% |7 j
) C4 f4 R) k" i; X% u. e% U# n5 T
$ sudo vim /var/log/secure " |! o% b; D: D& A
$ z D9 h2 k6 G5 H$ sudo vim /var/log/auth.log #Ubuntu系统适用
3 J1 |; w6 I7 O系统启动日志(即显示一行行OK的那个画面的内容)" `' n# k, S' R/ n5 G$ C8 I \
/ x+ W1 q2 ^/ @- w8 q/ O7 Q& E$ sudo vim /var/log/boot.log
0 u p% @8 _6 m j- P5 t/ j i8 M内核启动初始化日志
0 q( D- w& {* W; ~
8 w( V8 ]% h/ y( a) a+ _; X" d, f$ sudo vim /var/log/dmesg
T3 `1 _# q5 ]7 j R系统服务和核心组件日志(如networkmanager/gnome-session等)+ ]) `5 v {5 H" H: a
4 m8 N( S* g* l1 ^' Z3 d$ sudo vim /var/log/messages
5 }. D" |5 q9 k7 L# A7 H9 E7 L8 n# g8 `, d: g, M
$ sudo vim /var/log/syslog #Ubuntu系统适用
. p- S. E& f( X! X hXorg图形系统日志3 A' U0 ~! N1 Q$ y. U7 M
0 P4 s! l y' C1 _, q; a$ sudo vim /var/log/Xorg.0.log9 k9 Z$ e+ k2 `4 C- y! Z: Z
在线软件包操作日志,内容包括install/remove/update等记录。
" B/ `! e/ |$ S1 ^
! f: f7 `% q1 ]& a, G) ~$ sudo vim /var/log/yum.log #Fedora/Redhat系统适用
" w! J/ ~( o% r7 W9 y1 [
7 N! A8 F9 S- l7 C7 N e$ sudo vim /var/log/apt.log #Ubuntu系统适用! n* N7 k! D/ Y- _0 @( b: C$ G2 j
& y% ~( Z, @/ L% c' N N, S4 t! A h r; q) t7 _* y5 o0 N, v
|
|