目录
1、账号安全基本措施
1.1 系统账号清理
1.1-1 将非登录用户的Shell设为/sbin/nologin
1.1-2 锁定长期不使用账户
1.1-3 删除无用账户
1.1-4 锁定账号文件passwd、shadow (chattr、sattr命令)
1.2、密码安全控制
1.2-1 设置密码有效期
1.3、命令历史限制
1.3-1 终端自动注销
2、使用su命令切换用户
2.1 用途及用法
2.2 密码验证
2.3 限制使用su命令用户
2.4、查看su操作记录
3、Linux中的PAM安全认证
3.1 su命令的安全隐患
3.2 PAM(Pluggable Authentication Modules)可插拔式认证模块
3.3 Linux--PAM 认证模块
3.4 PAM认证原理
3.5 PAM认证的构成
3.6 PAM安全认证流程
4、使用sudo机制提升权限
4.1 su命令的缺点
4.2 sudo命令的用途及用法
4.3 sudo命令的参数(用的少)
5、用户别名设置
5.1 用户别名的语法格式
6、启用sudo操作日志
6.1 创建sudo操作日志命令为:visudo
7、开关机安全控制
7.1 调整BIOS引导设置
7.2 GRUB限制
8、终端登录安全控制
8.1 限制root只在安全终端登录
8.2 禁止普通用户登录
9、系统弱口令检测
9.1 John the Ripper,简称JR
例:指定liuhui用户设置为/sbin/nologin
设置完成后用grep命令查看
例:锁定liuhui账户
用passwd -S命令来查看账户是否锁定
同理可以用usermod -U来解除锁定
会发现密码那没有感叹号了,没有感叹号了代表了这个账号可以使用了
注:用usermod锁定账户后是一个感叹号,而用passwd来锁死账户后是两个感叹号
用userdel -r 删除对你来说无用的用户,查看后会发现没有liuhui用户了
例:首先我们用lsattr命令来查看/etc/passwd,正常状态如下:
接下来用chattr +i命令锁定/etc/passwd文件,并在此查看
同理,解锁的话用chattr -i命令来完成解锁
ps:在日常中不想让别人创建用户和修改密码就可以用以上的命令将其文件锁住
例1:将其有效期设置为30天
我们现在新创一个lh用户并查看一下
例2:对于以前就存在的用户可以用chage -M命令来修改它的密码有效期
要求用户下次登录时修改密码
例:修改历史命令的保留个数
例2:用户登出时会清除里面的命令
注:文件的读取顺序
例:切换到 ls 用户
例:从lh用户切换到root用户
例:首先用 vim /etc/pam.d/su 命令来开启我的组成员
然后将 lh用户加入到组中
然后用cat命令查看组,lh 用户也在当中了
现在我们切换到普通用户 cyk 下进行用户切换,你会发现无法cyk用户无法切换到lh用户
注:以 .so 结尾的都是模块级别
Service(服务)——PAM(配置文件)——pam_*.so
查看某个程序是否支持PAM认证,可以ls命令
示例:查看su是否支持PAM模块认证
查看su的PAM配置文件:cat/etc/pam.d/su
认证类型、控制类型、PAM模块及参数
控制类型也称作Control Flags ,用于PAM验证类型的返回结果
使用su命令切换用户必须知道其用户的密码
visudo 或 vi /etc/sudoers(此文件默认权限为440,保存退出时必须执行“:wq!”来强制操作)
语法格式:用户 主机名=命令程序列表
用户 主机名 =(用户)命令程序列表
用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)
主机名:使用此规则的主机名。没有配置过主机名的可以使用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机。
(用户):用户能够以何种身份来执行命令
命令程序列表:允许授权用户通过sudo方式执行特权命令,需要填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。ALL则代表系统中所有命令
注:通配符“*”表示所有、取反符号“!”表示排除
-l:列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来检查和测试是不是配置正确
-v:验证用户的时间戳;如果用户运行sudo后,输入用户的密码之后,在短时间内可以不用输入口令来进行sudo操作(用-v可以跟踪最新的是时间戳)
-u:指定以某个用户进行操作
-k:删除时间戳,下一个sudo命令要求提供密码
例1:
我们首先创建fanlei用户,然后切换到fanlei 用户上进行用户创建,会发现fanlei用户的权限不够
接下来我们来给fanlei用户相应的权限可以创建tanrenzhi 这个用户
权限给了以后再切换到fanlei用户上,用sudo命令创建tanrenzhi用户并查看
当然,你也可以设置一下创建用户的时候不输入密码
例2:
首先我们创建一个sizu组,然后将用户fanlei,zzj添加到组中
接下来我给sizu组所有用户授权
然后我们切换到组中随意一个用户,比如zzj用户,然后输入ifconfig命令查看网卡并设置网卡
在普通用户下不用sudo命令的情况下是不可以设置网卡,但是我们在命令前面加上sudo命令就可以设置网卡
当时用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、主机、命令部分都可以为别名(必须大写),分别通过关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置。
1、User_Alias
用户别名:包含用户、用户组(%组名,使用%引导),还可以包含其他已经用户的别名
User_Alias OPERATORS=zhangsan,tom,lisi
2、Host_Alias
主机别名:主机名、IP、网络地址、其他主机别名。 !取反
Host_Alias MAILSVRS=smtp,pop
3、Cmnd_Alias
命令路径、目录(此目录内的所有命令)、其他事先定义过的别名命令
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum
注:
用户改成别名用户,目的是为了可以操作多个用户和组
主机名改成别名主机,目的是为了可以操作设置主机的多个名称或者主机取反
命令操作列表改成别名命令列表,目的是所有命令可以操作
例1:
设置完成后我们切换用户验证下
我们再切换到fanlei用户验证下,发现fanlei 用户没有权限
例2:
设置完成后我们切换用户进行验证
Defaults logfile = "/var/log/sudo"
sudo日志记录以备管理员查看,应在“/etc/sudoers/”文件中增加“Defaults logfile”设置,如果已启用sudo日志,则可以在/var/log/sudo文件中查看到用户的sudo操作记录。(另一个方式是/var/log/secure 日志可查看到sudo操作用户步骤)
这时候我们去/var/log查看一下,会发现sudo日志已经生成了
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器来说是一个重大威胁。
可以为RRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数
grub2-mkpasswd-pbkdf2——根据提示设置GRUB菜单密码
例:
首先我们生成一个秘钥,再把文件备份一下
然后使用vim进去修改
最后生成新的配置文件
例:
禁止普通用户登录
取消上述登录控制
9.2 安装JR工具
9.3 检测弱口令账号
9.4 密码文件的暴力破解