一.账号安全的基本措施
1.将用户设置为无法登录
chsh -s /sbin/nologin 用户名
2.锁定长期不使用账号
passwd -l 用户名 锁定用户密码
passwd -u 用户名 解锁用户密码
3.删除无用账号
userdel 用户名
4.chattr锁定重要账号文件
lsattr /etc/passwd /etc/shadow #查看文件的状态
chattr +i /etc/passwd /etc/shadow #锁定文件
chattr -i /etc/passwd /etc/shadow #解锁文件
二.密码安全控制
对于新建用户
可以修改 /etc/login.defs 文件里的内容来设置密码规
对于已有用户可以使用chage命令
chage
三.命令历史
1.临时修改用户历史命令条数
- export HISTSIZE=200
- #临时修改历史命令条数为200条
2.永久修改用户历史命令条数
- vim /etc/profile
- #进入配置文件
- export HISTSIZE=200
- #将全局历史命令条数由1000改为200
- source /etc/profile
- #刷新配置文件,使文件立即生效
3.退出当前终端清除命令
- vim .bash_logout
- echo " " > ~/.bash_history
4.开机后当前终端将命令清除
- vim .bashrc
- echo " " > ~/.bash_history
5.设置登录超时时间
- vim /etc/profile
- #进入配置文件
- export TMOUT=600
- #设置全局自动注销时间,声明600s没有操作就登出
- source /etc/profile
- #更新配置文件
四.切换和限制用户
1.su:切换用户
可以切换用户身份,并且以指定用户的身份执行命令
(1)切换用户方式
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
(2)密码验证
超级管理员切换普通用户,不需要密码
普通用户切换普通用户,需要密码
普通用户切换超级管理员,需要密码
(3)限制使用su命令的用户
将允许使用su命令的用户加入wheel组。
启用pam_wheel认证模块。则只有wheel组内的用户可以使用su命令切换用户(编辑/etc/pam.d/su文件)。
安全日志:/var/log/secure
2.PAM安全验证
二进制语言,两个不同的应用证明队对接
(1)su命令的风险
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。
(2)PAM原理
PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,
PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。
PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用.
(3)PAM相关文件
type:指模块类型,即功能 control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现 module-path: 用来指明本模块对应的程序文件的路径名 Arguments: 用来传递给该模块的参数
模块类型(module-type)
Auth 账号的认证和授权
Account 帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务的访问时间,限制用户的位置(例如:root用户只能从控制台登录)
Password 用户修改密码时密码复杂度检查机制等功能
Session 用户会话期间的控制,如:最多打开的文件数,最多的进程数等
-type 表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有用
Control: ( 控制位)
required :一票否决,表示本模块必须返回成功才能通过认证,但是如果该模块返回失败,失败结果也不会立即通知用户,而是要等到同一type中的所有模块全部执行完毕,再将失败结果返回给应用程序,即为必要条件
requisite :一票否决,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一type内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件
sufficient :一票通过,表明本模块返回成功则通过身份认证的要求,不必再执行同一type内的其它模块,但如果本模块返回失败可忽略,即为充分条件,优先于前面的
equired和requisiteoptional :表明本模块是可选的,它的成功与否不会对身份认证起关键作用,其返回值一般被忽略include: 调用其他的配置文件中定义的配置
optional 可选项
(4)使用PAM模块
- rpm -qi pam #查看pam详细信息
- rpm -ql pam #查看pam所有文件
(5)limit
功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间
3.sudo提权
用途:以其他用户身份(如root)执行授权的命令
用法:sudo 授权命令
(1)配置sudo
可以使用visudo(通常使用visudo,因为visudo可以自动检查语法是否输入错误)
也可以使用vim /etc/sudoers进行配置(此文件默认权限为440,保存时必须 wq!强制执行操作)
可以使用通配符“ * ”号任意值和“ !”号进行取反操作
权限生效后,输入密码后5分钟可以不用重新输入密码
(2)格式
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
kk ALL=(root) /sbin/ifconfig #举例
版权归原作者 河马的学习日记 所有, 如有侵权,请联系我们删除。