Linux安全之账户安全

账户安全

Linux用户账户概述:

  1. 用户账号
    1. 超级用户root
    2. 系统用户
    3. 普通用户
  2. 组账号
    1. 基本组(私有组----每一个私有组里面只有一个用户)
    2. 附加组(公共组----每一个用户都可以加入到这个组里面)

UID和GID:

  1. UID(User IDentity,用户标识号)
  2. GID(Group IDentity,组标识号)

超级用户root的UID和GID:0 (固定为0的!)(一般情况下,一旦服务器上存在了一个不叫root 但是UID 是0 的账户,那么就很有可能出现了安全性问题,一般就是被入侵了,他是一个后门账号 )

系统用户UID和GID:1-999 (Linux的发行版本不同 这个范围也不太相同)

普通用户的UID和GID:1000-65535

用户账号文件

/etc/passwd:存放用户账号名、UID GID 宿主目录 登录shell

/etc/shadow:存放用户账号名、密码、密码天数、账户失效日期等

查看/etc/passwd里面的内容:分别对应如下的信息。

字段1:用户账号的名称

字段2:用户密码字串或者密码占位符“x”

字段3:用户账号的UID号

字段4:所属基本组账号的GID号

字段5:用户全名

字段6:宿主目录

字段7:登录shell信息 (可以看到上面的登录shell是/bin/bash 这个shell是允许我们远程登录的,但是一旦shell是/sbin/nologin的话,就是不允许远程登录的!)

查看/etc/shadow文件。

字段1:用户账号的名称

字段2:加密的密码字串信息

字段3:上次修改密码的时间(天数:从1970年1月1号到最近依次修改密码时间的间隔天数)

字段4:密码的最短有效天数,默认值为0

字段5:密码的最长有效天数,默认值为99999

字段6:提前多少天警告用户口令将过期,默认值为7

字段7:在密码过期之后多少天禁用此用户

字段8:账号失效时间,默认值为空

字段9:保留字段(未使用)

系统账号清理

将非登录用户的shell设为/sbin/nologin

usermod -s /sbin/nologin 用户名

锁定长期不使用的账号

  1. passwd -l 用户名
  2. usermod -L 用户名 (如果是解锁的话 参数就是-U 上面的命令就是-u)

删除无用的账号

userdel -r 用户名

锁定账号文件 passwd shadow

  1. chattr +i /etc/passwd /etc/shadow (+i 就是加锁 -i 就是去掉锁)
  2. chattr -i /etc/passwd /etc/shadow
  3. lsattr /etc/passwd /etc/shadow

检查后门账号:

awk -F: '$3==0{print $1}' /etc/passwd

(检查/etc/passwd中的第三列中等于0 的结果,然后将对应的第一列打印出来)

密码安全控制

  1. 设置密码有效期
  2. 修改/etc/login.defs文件中的"PASS_MAX_DAYS"的值(适用于新建用户,对于已经存在的用户不起作用)
    1. chage -M 30 用户名 (适用于已有用户)
  3. 要求用户下次登录时修改密码
    1. chage -d 0 zhangsan

历史命令限制

  1. 减少记录的命令条数:修改/etc/profile文件中的“HISTSIZE=”的值
  2. 注销时自动清空命令历史:修改用户宿主目录下的“.bash_logout”文件,在文件的末尾处追加2行
    1. history -c
    2. clear

终端自动注销

修改用户宿主目录下的“.bash_profile“文件,在文件末尾处追加1行:export TMOUT=时间(单位是秒)

su用户切换安全

限制使用su命令的用户

  1. 启用pam_wheel认证模块
    1. 修改”/etc/pam.d/su“文件,启用”auth required pam_wheel.so use_uid“
    2. 将允许使用su命令的用户加入wheel组
    3. gpasswd -a 用户名 wheel

sudo用户提权安全

查看除root账号意外,其他账号是否存在sudo权限

grep "ALL=(ALL)" /etc/sudoers | grep -v "#" |grep -v "^#"

这里一般就是出现的 root 和%wheel 出现其他的用户就需要额外的注意啦

配置sudo授权

记录格式:用户 主机名列表=命令程序列表

visudo

.....

%wheel		ALL=NOPASSWD:ALL
zhangsan	localhost=/sbin/ifconfig
lisi		localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
User_Alias  ADMINS=wangwu,zhaoliu		(这里就是要实现多个用户具备相同权限,起的别名)
Host_Alias  SERVERS=filesvr,websvr,ftpsvr	(共同享有的主机的范围)
Cmnd_Alias  NETCMD=/sbin/ifconfig,/sbin/route	(可以操作的命令)
ADMINS		SERVERS=NETCMD	
(最终就是wangwu zhaoliu 都对filesvr,websvr,ftpsvr 可以配置ip 以及路由接入等)

用户弱口令检测

检测工具

John the Ripper 简称JR

一款密码分析工具,支持字典是的暴力破解

通过对shadow文件的口令分析,可以检测密码的强度

官方网站:http://www.openwall.com/john/

检测弱口令账号

  1. 需要获得Linux/Unix服务器的shadow文件副本 (cp /etc/shadow /root/shadow.txt)
  2. JR的默认密码字典文件为password.lst (./john /root/shadow.txt)
  3. 可通过”--wordlist=“指定其他密码字典文件的路径

你可能感兴趣的:(渗透测试,linux,安全,bash,网络安全,学习)