账号安全基本措施
系统账号清理
将非登录用户的Shell设置为/sbin/nologin 用户名
锁定长期不使用的账号
- usermod -L用户名
- passwd -l用户名
- passwd -S 用户名
删除无用的账号
userdel —r 用户名
锁定账号文件
chattr +i /etc/passwd /etc/shadow
[root@localhost ~]# chattr +i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
----i----------- /etc/passwd
[root@localhost ~]# useradd mike //尝试创建用户,创建失败
useradd:无法打开 /etc/passwd
解锁文件
chattr -i /etc/passwd /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
查看文件状态
lsattr /etc/passwd /etc/shadow
[root@localhost ~]# lsattr /etc/shadow
---------------- /etc/shadow
密码安全控制
设置密码规则
- 设置密码有效期
- 要求用户下次登录时修改密码
对于新建用户——修改/etc/login.defs文件
修改/etc/login.defs文件,将密码最大有效期修改为30天。
[root@localhost ~]# vim /etc/login.defs
PASS_MAX_DAYS 30 //将密码最大有效期修改为30天
[root@localhost ~]# useradd nancy
[root@localhost ~]# grep "nancy" /etc/shadow
nancy:!!:19489:0:30:7:::
对于现有用户——chage命令
chage -M ,设置用户密码的有效期。
[root@localhost ~]# chage -M 999 nancy
[root@localhost ~]# grep "nancy" /etc/shadow
nancy:!!:19489:0:999:7:::
chage -d 0,强制要求用户下次登录时必须修改密码。
[root@localhost ~]# chage -d 0 nancy
[root@localhost ~]# su zyc
[zyc@localhost root]$ su nancy
密码:
您需要立即更改密码(root 强制)
为 nancy 更改 STRESS 密码。
(当前)UNIX 密码:
命令历史限制
一般使用两种方式控制命令历史:
- 减少记录的命令条数。
- 注销时自动清空命令历史,或登录时自动清空命令历史。
临时清空历史命令
[root@localhost ~]# history -c
临时修改历史命令条数。只针对当前用户,退出登录后失效。
[root@localhost ~]# HISTSIZE=200
永久修改历史命令条数。编辑配置文件,设置历史命令条数。
[root@localhost ~]# vim /etc/profile //设置历史命令条数记录为10条
HISTSIZE=10
[root@localhost ~]# source /etc/profile //刷新配置文件,使文件立即生效
注销时自动清空历史命令
[root@localhost ~]# vim .bash_logout
echo "" > ~/.bash_history
登录时自动清空历史命令
[root@localhost ~]# vim .bashrc
echo "" > ~/.bash_history
终端自动注销
编辑/etc/profile 文件,末行添加TMOUT=“”
[root@localhost ~]# vi /etc/profile
TMOUT=6
限制使用su命令的用户
通过修改/etc/pam.d/su 文件:
vim /etc/pam.d/su
[nancy@localhost ~]$ su zyc
密码:
su: 拒绝权限
[root@localhost ~]# gpasswd -a nancy wheel
正在将用户“nancy”加入到“wheel”组中
[root@localhost ~]# su nancy
[nancy@localhost root]$ su zyc
密码:
PAM安全认证
认证模块:
认证模块:用于验证用户身份,例如基于密码的认证方式。
授权模块:用于控制用户对系统资源的访问权限,例如文件权限、进程权限等。
账户管理模块:用于管理用户账户信息,例如密码过期策略、账户锁定策略等。
会话管理模块:用于管理用户会话,例如记录用户会话信息、强制注销用户会话等。
PAM工作原理
PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so
PAM认证构成
查看程序是否支持PAM认证可以用ls
查看su的PAM 配置文件
[root@localhost ~]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
每一行可以区分为三个字段: 认证类型 、控制类型 、PAM 模块及其参数 。
用户提权——sudo命令
用sudo添加虚拟网卡
[root@localhost ~]# su nancy
[nancy@localhost root]$ ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.88.100 netmask 255.255.255.0 broadcast 192.168.88.255
inet6 fe80::2c1f:36a2:c1b5:384c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f0:ab:d1 txqueuelen 1000 (Ethernet)
RX packets 12537 bytes 10517177 (10.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4907 bytes 549953 (537.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[nancy@localhost root]$ ifconfig ens33:0 193.168.88.120
SIOCSIFADDR: 不允许的操作
SIOCSIFFLAGS: 不允许的操作
[nancy@localhost root]$ sudo ifconfig ens33:0 193.168.88.120
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] nancy 的密码:
nancy 不在 sudoers 文件中。此事将被报告。
visudo进入配置文件
wq!强制退出
[nancy@localhost root]$ sudo ifconfig ens33:1 192.168.88.111/24
sudo别名给特定用户设置禁止命令
控制用户进行sudo操作时无法使用重启(reboot)、关机(poweroff)、切换init和无法删除
进入visudo
wq!强制退出
GRUB菜单加密
[root@localhost ~]# grub2-setpassword //使用命令直接设置GRUB密码
Enter password: //输入密码
Confirm password: //确认密码
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securetty
将终端tty5、tty6注释掉,禁止root用户从这两个终端登录。
[root@localhost ~]# vi /etc/securetty //编辑配置文件,将终端tty5、tty6注释掉
#tty5
#tty6
系统弱口令检测工具john破解简单密码:
将软件包john-1.8.0.tar.gz放入opt下并解压
安装软件编译工具
yum -y install gcc gcc-c++ make
切换到src子目录,进行编译安装
准备待破解的密码文件 切换到run子目录,执行暴力破解