账户安全控制
系统账户操作
锁定系统
grub2-setpassword
给系统设置密码,是为了防止别人随意登录系统删改文件等
锁定账户
- passwd -l 用户
- usermod -L 用户 两个都是锁定账户
解锁用户
- passwd -u 用户名
- usermod -U 用户名
删除用户
userdel -r 用户名
- 查看用户信息
cat /etc/passwd
锁定文件
chattr +i 文件名/文件路径
- 强制锁定,能读但是不能修改
- 也可以一次性强制锁定多个文件
解锁文件
chattr -i 文件名/文件路径
复习
- 更改已有用户shell环境 usermod -s shell类型 用户名
密码安全控制
对于新建用户
第一种
vim /etc/login.defs
- 修改文件的内容来设置密码规则
- 加上 PASS_MAX_DAYS 30
第二种
tail -5 /etc/shadow 修改密码有效期,这个是修改所有用户的
对已有用户修改用chage命令
chage 选项 用户名
选项
| 选项 | 功能 |
|---|---|
| -m | 密码可更改的最小天数。为0时候表示任何时候都可以更改密码 |
| -M | 密码保持有效的最大天数 |
| -w | 用户密码到期前,提前收到警告信息的天数 |
| -E | 账号到期的日期。过了这天,账户将不可用 |
| -d | 上一次更改的日期 |
| -i | 停滞时期。如果一个密码已过期这些天,那么此账号将不可用 |
| -l | 列出当前的设置。由非特权用户来确定他们的密码或账号何时过期 |
历史命令
清除历史命令
linux中的history默认存储的历史命令为1000条
第一种
可以使用命令清除,但是命令清除是一次性的,还会在出现,不会彻底
- history -c
- clear
- 重启一下
第二种
- 修改配置文件
- vim /etc/profile
- 在文件后面加上
- export HISTSIZE=数量
- 本身是不带export的
- export表示全部生效
- 修改完成后需要重启才可以生效
- reboot
开机后执行清空
- 编辑文件
- vim .bashrc
- 在文件里面加入
- echo " " >~/.bash_history
还是同样重启生效
关机自动清除命令
- 编辑文件
- vim .bash_logout
还是重启,让命令生效
切换用户
su 用户名
- 表示不切换当前环境,只切换用户,会保留上个用户的一些信息 su - 用户名
- 表示完全切换,不保留上个用户的信息
普通切换规则
- 超级管理员切换普通用户不需要密码
- 普通用户切换普通用户需要密码
- 普通用户切换超级管理员需要密码
注意:UID为0的才是超级管理员,root并不是超级管理员,只是root的UID为0而已,如果将rootUID改为别的,将其他用户UID改为0,那么root就不是超级管理员(一般没人改这个玩意)
限制使用su命令的用户
- 编辑su配置文件
- vim /etc/pam.d/su
只开启第二行,表示只允许root用户切换(也就是没有修改,所有用户切换,需要密码)
注释掉第二行,打开第六行
- 表示会拒绝,权限不够
将第二行和第六行都打开
- 都打开表示只允许wheel组中的用户使用su切换
- 将用户加入wheel组里面就可以不需要使用密码
- gpasswd -a 用户 wheel将用户加入wheel组里面
由于lulu是普通用户,所以没有权限添加wheel组,所以需要开启另一个终端
PAM插件式的验证
让服务去调用
- pam认证模块文件在:/usr/lib64/security/
- pam配置文件在:/etc/pam.d/*
- 最后调用的认证模块文件在:/lib/security
编辑配置文件时候,出现认证类型
- auth:表示身份认证 (带-表示可选项,不作为条件)
- account:表示账户是否在有效期内
- session:表示会话
- password:表示密码规则
控制位conctrl,决定能否通过
- required:一票否决,不会立刻返回结果,会往下进行,最后再否定
- requisite:一票否决,直接否决,不往下执行
- optional:可选项,不作为条件,可有可无
- sufficient:一票通过
认证模块,模块需要加 .so
一共有61个模块
只要 /lib/security 下有的模块都可以使用成功
- 拓展:remote是远程调用
shell模块作用(可以使用man pam_shells查看作用)
- 检查有效shell
- 查看/etc/shells里面是否有用户的shell,如果不让使用
- 查看用户shell:cat /etc/passwd | grep 'bash$'
- tail -n 3
- 查看最后三行的用户shell文件
怎么使用pam模块
- 先确定用户使用的服务程序是什么
- 例:su就是切换用户程序
- 写配置文件 /etc/pam.d/* #位置
- 在修改su的登录shell
- 将shells里面的那个删除,在使用su就会切换不了
扩展sudo
配置文件位置:visudo 或者vi /etc/sudo
区别
- visudo:有错误提示
- /etc/sudo:无错误提示,并且保存时候还需要加上强制
普通用户使用某命令要加上:sudo
最后面*,谨慎使用,如果加上就可以看见账户和密码的明文
别名
别名格式:必须大写字母,数字可以使用但是不能放在开头
sudo别名类型:
- user_alias(用户)
- runas_slias(代表用户)
- host_alisa(登陆主机)
- cmnd_alisa(命令)
编辑:visudo
开关机安全控制
BIOS设置密码
先进入急救系统,这边就不进去了
设置好后,再次进入BIOS时候就需要输入密码才可以进入
grub设置密码
一句命令直接设置密码
grub2-setpassword
重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。
终端登录安全控制
- 限制root登录
**touch /etc/nologin **
- 直接限制
- 解除 rm -rf nologin
nmap扫描
选项
| 选项 | 功能 |
|---|---|
| -p | 指定扫描端口 |
| -n | 禁止使用反向DNS解析 |
| -sT | 使用TCP扫描 |
| -sT | 使用FIN扫描 |
| -sU | 使用UDP扫描 |
| -sP | 使用ICMP扫描 |
| -sS | 使用TCP的SYN扫描 |