一、账户管理

1. 一个uid下多个用户、一个gid下多个用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@S959749 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin

通过查看uid是否有相同的账号来判断是否uid唯一。

cat /etc/group

root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm

通过检查/etc/group下最后一个冒号后用户名是否为多个来判断一个gid下是否存在多个用户,即gid唯一性检查。

2. Root权限账号、sudo权限账号、已禁用账号、无密码可sudo账号

Root权限账号

1
2
3
4
5
6
cat /etc/passwd
通过查看uid为0的账号来判断是否有Root权限。

cat /etc/group

通过查看root用户组里的用户来判断root组里的其他用户也是具有root权限的。

sudo权限账号、无密码可sudo的账号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat /etc/sudoers

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
通过读取/etc/sudoers配置文件,查看是否存在其他用户。
jay ALL=(ALL) NOPASSWD:ALL
分析是否存在 NOPASSWD字段

弱口令账号、已禁用账号

1
2
3
4
cat /etc/shadow

首先查看密码的加密方式$6$是用SHA-512加密,$1$ 表明是用MD5加密,$5$ 是用SHA-256加密,$2$ 是用Blowfish加密的;加密方式后是Sault。
然后通过本地弱口令密码表以相同的盐和加密方式,加密生成密文,与shadow文件的密文进行比对。
1
2
3
4
5
6
7
8
在这里可以把已锁定的账号也归为禁用账号:
usermod -L xxx 锁定
usermod -U xxx 解除锁定

检查/etc/passwd文件,第二个字段中默认的“x”是否变成其他字符,若变成其他字符,该账号就不能登录;
检查/etc/passwd文件,最后的shell是否为/sbin/nologin,若为/sbin/nologin也不能登录;
检查/etc/shadow文件,第二个密码字段前面是否存在一个“!”,若存在“!”,则该账号不能登录(usermod -L xxx);
检查/etc/shadow文件,判断最后两个冒号之间的数字(表示账号取消日期,从1970开始算起的第N天开始失效)。

密钥认证登录

1
2
3
4
5
基于密钥认证的配置
# vi /etc/ssh/sshd_config
PasswordAuthentication no //禁止使用基于口令认证的方式登陆
PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆
# /etc/init.d/sshd reload

二、Linux系统下的用户审计方法

待总结~