系统安全及应用

发布于:2024-05-06 ⋅ 阅读:(38) ⋅ 点赞:(0)

账号安全基本措施

将用户设置为无法登录
usermod -s /sbin/nologin
锁定用户
usermod -L 用户名    #锁定账号
usermod -U 用户名    #解锁账号
passwd -l 用户名    #锁定账号
passwd -u 用户名    #解锁账号
删除账户
userdel -r 用户名
锁定配置文件

chattr +i /etc/passwd /etc/shadow    
# +i选项可以让文件处于只读状态,不可被删除修改等
chattr -i /etc/passwd    
#-I即为去除I属性
lsattr /etc/passwd    
 #可以查看配置文件的属性权限

chattr有两个属性:-a 让文件或目录只可以被追加; -i 让文件只可被读

可以用于写一个病毒的同名文件并且把它锁起来

密码安全控制

设置密码规则

在中/etc/login.defs设置

PASS_MAX_DAYS   #密码最大有效天数
PASS_MIN_DAYS   #修改一次密码最少间隔天数
PASS_MIN_LEN    #密码最小长度
 如果配置好了之后PASS_chage [选项] 用户名
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
chage -d  0 zhangsan
#强制张三下一次登录一定修改密码(密码需符合复杂性要求)
chage -M 30 lisi
#设置密码有效期为30天
cat /etc/shadow|tail -1
lisi:!!:19055:0:30:7:::
第5字段WARN_AGE   #密码过期前多少天提醒 

命令历史
如此即可

vim ~/.bashrc        #进入个人登录配置文件
echo " " > ~/.bash_history     #每次登录就把history文件清空

或者修改命令上限,只要上限够少倒也不至于被看出来最近干的啥

修改历史命令记录最大条数
vim /etc/profile
HISTSIZE=200        #修改最大条数为200

切换用户

su [options...] [-] [user [args...]]

非登录式切换:su UserName

即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换

登录式切换:su - UserName

会读取目标用户的配置文件,切换至自已的家目录,即完全切换

sudo

 sudo 即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。

配置文件位置/etc/sudoers

此处修改

格式为用户名 地址 最后是可以执行的命令的位置,此处存在root的安全隐患也就是名字为root的用户拥有过高的权限。

由于通配符的使用此处可能会产生bug所以可以使用/xxx* ,!/xxx* *的格式

PAM安全认证

什么是PAM

PAM:Pluggable Authentication Modules,插件式的验证模块,Sun公司于1995 年开发的一种与认证相关的通用框架机制。

PAM工作原理

1.使用者执行/usr/bin/passwd 程序,并输入密码
2.passwd开始调用PAM模块,PAM模块会搜寻passwd程序的PAM相关设置文件,这个设置文件一般是在/etc/pam.d/里边的与程序同名的文件,即PAM会搜寻/etc/pam.d/passwd此设置文件
3.经由/etc/pam.d/passwd设定文件的数据,取用PAM所提供的相关模块来进行验证
4.将验证结果回传给passwd这个程序,而passwd这个程序会根据PAM回传的结果决定下一个动作(重新输入密

  1. 主配置文件夹:/etc/security/,只有功能强大的pam模块才有主配置文件
  2. 次要配置文件夹(优先级大于主配置文件):/etc/pam.d/

码或者通过验证)

 type 类型

- auth 用户身份认证
- account 帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务的访问时间,限制用户的位置(例如:root用户只能从控制台登录)
- password 用户修改密码时密码复杂度检查机制等功能
- session 用户会话期间的控制,如:最多打开的文件数,最多的进程数等
- -type 表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有用

Control:  ( 控制位)

- required :一票否决,表示本模块必须返回成功才能通过认证,但是如果该模块返回失败,失败结果也不会立即通知用户,而是要等到同一type中的所有模块全部执行完毕,再将失败结果返回给应用程序,即为必要条件
- requisite :一票否决,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一type内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件
- sufficient :一票通过,表明本模块返回成功则通过身份认证的要求,不必再执行同一type内的其它模块,但如果本模块返回失败可忽略,即为充分条件,优先于前面的
- equired和requisiteoptional :表明本模块是可选的,它的成功与否不会对身份认证起关键作用,其返回值一般被忽略include: 调用其他的配置文件中定义的配置
- optional   可选项 

control 总结:

1)required 验证失败时仍然继续,但返回 Fail 
2)requisite 验证失败则立即结束整个验证过程,返回 Fail 
3)sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续 
4)optional 不用于验证,只是显示信息(通常用于 session 类型)