一、账号安全基本措施
1.1系统账号清理
1.1.1将非登录用户的shell设为/sbin/nologin
- usmod -s /sbin/nologin 用户名
1.1.2锁定长期不使用的账号
- usermod -L passwd -l
1.1.3删除无用的账号
- usermdel -r
1.1.4锁定账号文件文件chattr
选项 | 作用 |
---|---|
+i | 锁定文件 |
lsttr | 查看文件状态 |
-i | 解锁文件 |
1.1.5查看文件校验和md5sum
1.2密码安全控制
1.2.1设置密码有效期
- vim /etc/login.defs (仅适用新建的用户)
- chage -M 时间 用户名 (适用于已有的用户)
- chage -d 0 用户名 (强制用户在下次登录修改密码)
chage -M 时间 用户名 (适用于已有的用户)
chage -d 0 用户名 (强制用户在下次登录修改密码)
- 会把shadow文件的第三个字段修改为0
1.3历史命令限制
1.3.1 减少记录命令的条数
/etc/profile
1.3.1登录时自动清空历史命令
history -c,清空历史命令
在/etc/profile,设置
在/etc/bahsrc/设置
1.4终端自动注销
1.4.1闲置300秒后自动注销
在/etc/profile设置
二、使用su命令切换用户
2.1用途及用法
- 用途:切换用户
- 格式: su - 用户 (‘-’会自动切换为当前用户的家目录,及shell环境)
2.1.1密码验证
- root 切换任意用户,不验证密码
- 普通用户切换其他用户,验证目标用户密码
2.2限制用户使用su命令
(1)加入wheel组
(2)进入/etc/pam.d/su把第二行和第四行注释取消
三、PAM安全认证
- 是一种高效且灵活便利的用户级别的认证方式
- 也是当前LIinux服务器普遍使用的认证方式
3.1PAM认证原理
3.1.1一般遵循的顺序
- Service(服务)——PAM (配置文件)——pam_*.so
- 首先要确认哪一项服务,然后加载相应的PAM配置文件(/etc/pam.d),最后调用认证文件(/lib64/ )进行安全认证
- 用户访问服务器时,服务器的某个服务程序把用户的请求发送到PAM模块进行认证
- 不同的应用程序对应的PAM模块是不同的
3.2PAM认证构成
3.2.1第一列代表认证模块类型
- auth: 对用户身份进行识别,如提示输入密码,判断是否为root.
- agcount; 对账号各项属性进行检查,如是否允许登求系统,账号是否已经过期,是否达到最大用户数等。
- password: 使用用户信息来更新数据,如修改用户密码
- sssion: 定义登采前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂裁文件系统
3.2.2第二列代表PM控制标记
- required:表示需要这回一个成功值,如果这回失败,不会立刻将失败结果这回,而是继续进行同类型的下一证,所有此类型的模块都执行完成后,再这回失败
- requisite: 与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
- optional:不进行成功与否的返同,一般不用予验证,只是张示信息(通常用卡 aesaion 为型)
- include;表示在验证过程中调用其他的PM置文件。比如很多应用通过完整调用/etc/pam,d/ayatem-ath主要负责用户登录系统的认证工作)来实现认证而不需要承新退一步写配置项。
3.2.3第三列代表PAM模块,默认是在/1b64/security/日录下,如果不在此默认路径下,要填写绝对路径。
- 同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的校决类型编制了不同的执行质数。
3.2.4第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。
- 传递给模块的参数。参数可以有多个,之间用空格分隔开
四、使用sudo机制提升权限
4.1sudo命令的用途及用法
- 用途:以其它用户身份执行授权命令
- 用法: sudo 授权命令
- 记录格式: 用户 主机名=命令程序列表
- sudo -l (查看有哪些命令的权限)
4.2配置sudo授权
- 记录格式: 用户 主机名=命令程序列表
- %组名 主机名=程序列表
visudo或vim/etc/sudoers
4.3别名创建
User_Alias 大写的别名 = 用户,用户,用户
Host_Alias 大写的别名 = 主机,主机,、主机
Cmnd_Alias 大写的别名 = 程序,程序,程序
添加免密操作
用户 主机名=NOPASSWD: 程序命令列表