文章目录
账号安全控制
账号安全基本措施
系统账号清理
- 将非登录用户的Shell设为/sbin/nologin
- 锁定长期不使用的账号
- 删除无用的账号
- 锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow 锁定文件
chattr -i /etc/passwd /etc/shadow 解锁
Isattr /etc/passwd /etc/shadow 查看状态
userdel -r +无用账号名
密码安全控制
- 设置密码有效期
- 要求用户下次登录时修改密码
vi /etc/login.defs 适用于新建用户
修改PASS_MAX_DAYS 数值
PASS_MIN_LEN 5 密码复杂性 字母大小写 数字 字符 最小长度不低于18位
chage -M 30 lisi 适用于已有用户
chage -d 0 zhangsan 强制在下次登录时更改密码
选项
-d, – lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, – expiredate 过期日期 将帐户过期时间设为“过期日期”
-h, – help 显示此帮助信息并推出
-I, (大写的i)-- inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l, (小写L)-- list 显示帐户年龄信息
-m, – mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, I-maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R, – root CHROOT_DIR chroot 到的目录
-W, – warndays 警告天数 将过期警告天数设为“警告天数”
命令历史限制
- 减少记录的命令条数
- 注销时自动清空命令历史
[root@localhost ~]# vim /etc/profile
HISTSIZE=200
默认存1000条
[root@localhost ~]# vim ~/.bash_logout
history -c
clear
终端自动注销
- 闲置600秒后自动注销
使用su命令切换用户
用途及用法
用途
Substitute User 切换用户
格式
su - +目标用户
密码验证
root切换任意用户,不验证密码
普通用户切换其他用户,验证目标用户的密码
[app@localhost ~]$ su - root 带-选项表示将使用目标用户的登录Shell环境
口令:
[root@localhost ~]# whoami
root
限制使用su命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用pam_wheel认证模块
- 限制使用su命令的用户
root@localhost ~]# gpasswd -a test wheel
正在将用户“test”加入到“wheel”组中
[root@localhost ~]# vim /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
…
auth required pam_wheel.so use_uid
下图状态,仅root用户可以使用sudo命令
下图状态下,root和wheel组用户使用sudo命令
下状态仅wheel组用户可以使用sudo命令
Linux中的PAM安全认证
su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
- 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可插拔式认证模块
可配置的模块
- 是一种高效而且灵活便利的用户级别的认证方式
- 也是当前Linux服务器普遍使用的认证方式
PAM认证原理
- 一般遵循的顺序
- Service(服务)→PAM(配置文件)→pam _*. so
- 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
- 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
- 不同的应用程序所对应的PAM模块是不同的
模块位置
认证过程
认证的构成
查看某个程序是否支持PAM认证,用Is命令
例:Is /etc/pam.d | grep su 查看su是否支持PAM
查看su的PAM配置文件
cat /etc/pam.d/su:
- 每一行都是一个独立的认证过程
- 每一行可以区分为三个字段
- 认证类型
auth: 对用户身份进行识别,提示输入密码,就判断是否为root
account: 对账号各项属性进行检查,检查是否允许登录系统,帐号有没有已经过期,是否达到了最大用户数等等
password: 使用用户信息来更新数据,如修改用户密码
session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统
- 控制类型
required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败
sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,不影响这类型的返回值
optional: 不进行成功与否的返回,不用于验证,只是显示结果(通常用于session类型),
include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项
-
PAM模块及其参数
默认是在/lib64/security/目录下,要填写绝对路径。
同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。
pam认证流程
|
| 认证方式 | 模块 | 用户1 | 用户2 | 用户3 | 用户4 |
| — | — | — | — | — | — | — |
| auth | required | 模块1 | pass | fail | pass | pass |
| auth | sufficient | 模块2 | pass | pass | fail | pass |
| auth | required | 模块3 | pass | pass | pass | fail |
| | | 结果 | pass | fail | pass | pass |
提升权限
- Su命令的缺点
- sudo命令的用途及用法
用途
以其他用户身份(如root)执行授权的命令
用法
sudo +授权命令
配置sudo授权
visudo或者vi /etc/sudoers(文件的默认权限为440,保存时必须执行“:w!”命令来强制操作,否则 系统将提示为只读文件而拒绝保存)
格式
用户 +主机名列表=命令程序列表
sudo的选项
-l 列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的
-v 验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳
-u 指定以以某个用户执行特定操作
-k 删除时间戳,下一个sudo 命令要求用求提供密码
例
[root@localhost ~]# visudo
…
%wheel ALL=NOPASSWD: ALL 表示wheel组成员无需验证密码即可使用sudo执行任何命令
jerry localhost=/sbin/ifconfig
syrianer localhost=/sbin/,!/sbin/ifconfig,!/sbin/route可以使用通配符、取反符号!(优先级最高的是取反)
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum类似别名有 User_Alias Host_Alias
mike localhost=PKGTOOLS
- 查看su操作记录
- 要启动Defaults logfile配置
- 安全日志文件:/var/log/secure
[root@localhost ~]# visudo
Defaults logfile = “/var/log/sudo”
系统引导和登录控制
开关机安全控制
- 调整BIOS引导设置
- 将第一引导设备设为当前系统所在硬盘
- 禁止从其他设备(光盘、U盘、网络)引导系统
- 将安全级别设为setup,并设置管理员密码
- GRUB限制
- 使用grub2-mkpasswd-pbkdf2生成密钥
- 修改/etc/grub.d/00_header文件中,添加密码记录
- 生成新的grub.cfg配置文件
限制更改GRUB 引导参数
- 系统开机进入GRUB菜单时,按e键可查看并修改GRUB引导参数,对服务器是一个威胁
- 为GRUB菜单设置密码,只有正确的密码才被允许修改引导参数
格式
grub2-mkpasswd-pbkdf2 根据提示设置GRUB菜单的密码
PBKDF2 hash of your password is grub . pbkd … 省略部分内容为经过加密生成的密码字符串
或者
grub2-setpassword
开关机安全控制
- 调整BIOS引导设置
- 将第一引导设备设为当前系统所在硬盘
- 禁止从其他设备(光盘、U盘、网络)引导系统
- 将安全级别设为setup,并设置管理员密码
- GRUB限制
- 使用grub2-mkpasswd-pbkdf2生成密钥
- 修改/etc/grub.d/00_header文件中,添加密码记录
- 生成新的grub.cfg配置文件
防止意外需要备份文件
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
设置用户密码文件
vim /etc/grub.d/00_header 使用vim编辑器编辑
cat << EOF 按G再按o再输入这个
set superusers=“root” 设置用户名为root
password_pbkdf2 root grub.pbkd2 …设置密码,复制上门设置的密码字符串贴过来
EOF
生成行grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg 生成新的grub.cfg 文件
重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数
重启设备验证
重启设备
开机过程中按e,提示输入用户名密码
grub2-setpassword
输入密码就行
终端登录安全控制
- 限制root只在安全终端登录
- 安全终端配置:letc/securetty
[root@localhost ~]# vi /etc/securetty
…
#tty5 禁止root用户从终端tty5、tty6登录
#tty6
使用last查看登录情况
使用vi编辑器如下图所做就可以禁用tty5和tty6
终端登录安全控制
- 限制root只在安全终端登录
- 安全终端配置位置:/etc/securetty
- 禁止普通用户登录
- 建立/etc/nologin文件
- 删除nologin文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin 禁止普通用户登录
[root@localhost ~]# rm -rf /etc/nologin 取消上述登录限制
弱口令检测
John the Ripper,简称为 JR
- 一款密码分析工具,支持字典式的暴力破解
- 通过对shadow文件的口令分析,可以检测密码强度
- 官方网站:http://www.openwall.com/john/
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 系统安全及应用
发表评论 取消回复