系统安全

194 阅读5分钟

账户安全控制

系统账户操作

锁定系统

grub2-setpassword

给系统设置密码,是为了防止别人随意登录系统删改文件等 image.png

锁定账户

  • passwd -l 用户
  • usermod -L 用户 两个都是锁定账户

image.png

解锁用户

  • passwd -u 用户名
  • usermod -U 用户名 image.png

删除用户

userdel -r 用户名

image.png

image.png

  • 查看用户信息

cat /etc/passwd

image.png

锁定文件

chattr +i 文件名/文件路径

  • 强制锁定,能读但是不能修改
  • 也可以一次性强制锁定多个文件

image.png image.png

image.png

image.png

image.png

解锁文件

chattr -i 文件名/文件路径

image.png

image.png

复习

  • 更改已有用户shell环境 usermod -s shell类型 用户名

image.png

image.png

image.png

密码安全控制

对于新建用户

第一种

vim /etc/login.defs

  • 修改文件的内容来设置密码规则
  • 加上 PASS_MAX_DAYS 30

image.png

第二种

tail -5 /etc/shadow 修改密码有效期,这个是修改所有用户的

对已有用户修改用chage命令

chage 选项 用户名

选项

选项功能
-m密码可更改的最小天数。为0时候表示任何时候都可以更改密码
-M密码保持有效的最大天数
-w用户密码到期前,提前收到警告信息的天数
-E账号到期的日期。过了这天,账户将不可用
-d上一次更改的日期
-i停滞时期。如果一个密码已过期这些天,那么此账号将不可用
-l列出当前的设置。由非特权用户来确定他们的密码或账号何时过期

image.png

image.png

历史命令

清除历史命令

linux中的history默认存储的历史命令为1000条

第一种

可以使用命令清除,但是命令清除是一次性的,还会在出现,不会彻底

  • history -c
  • clear

image.png

image.png

  • 重启一下

image.png

第二种

  • 修改配置文件
  • vim /etc/profile
  • 在文件后面加上
  • export HISTSIZE=数量

image.png

  • 本身是不带export的
  • export表示全部生效

image.png

image.png

  • 修改完成后需要重启才可以生效
  • reboot image.png

开机后执行清空

  • 编辑文件
  • vim .bashrc
  • 在文件里面加入
  • echo " " >~/.bash_history

image.png 还是同样重启生效

image.png

关机自动清除命令

  • 编辑文件
  • vim .bash_logout

image.png

image.png 还是重启,让命令生效

image.png

切换用户

su 用户名

  • 表示不切换当前环境,只切换用户,会保留上个用户的一些信息 su - 用户名
  • 表示完全切换,不保留上个用户的信息

普通切换规则

  • 超级管理员切换普通用户不需要密码
  • 普通用户切换普通用户需要密码
  • 普通用户切换超级管理员需要密码

注意:UID为0的才是超级管理员root并不是超级管理员,只是root的UID为0而已,如果将rootUID改为别的,将其他用户UID改为0,那么root就不是超级管理员(一般没人改这个玩意) image.png

image.png

image.png

限制使用su命令的用户

  • 编辑su配置文件
  • vim /etc/pam.d/su

只开启第二行,表示只允许root用户切换(也就是没有修改,所有用户切换,需要密码)

image.png

注释掉第二行,打开第六行

  • 表示会拒绝,权限不够 image.png

image.png

将第二行和第六行都打开

  • 都打开表示只允许wheel组中的用户使用su切换
  • 将用户加入wheel组里面就可以不需要使用密码
  • gpasswd -a 用户 wheel将用户加入wheel组里面 image.png

image.png 由于lulu是普通用户,所以没有权限添加wheel组,所以需要开启另一个终端

image.png

image.png

PAM插件式的验证

让服务去调用

  • pam认证模块文件在:/usr/lib64/security/
  • pam配置文件在:/etc/pam.d/*
  • 最后调用的认证模块文件在:/lib/security

编辑配置文件时候,出现认证类型

  • auth:表示身份认证 (带-表示可选项,不作为条件)
  • account:表示账户是否在有效期内
  • session:表示会话
  • password:表示密码规则

image.png

控制位conctrl,决定能否通过

  • required:一票否决,不会立刻返回结果,会往下进行,最后再否定
  • requisite:一票否决,直接否决,不往下执行
  • optional:可选项,不作为条件,可有可无
  • sufficient:一票通过

image.png

认证模块,模块需要加 .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:无错误提示,并且保存时候还需要加上强制

image.png 普通用户使用某命令要加上:sudo

image.png 最后面*,谨慎使用,如果加上就可以看见账户和密码的明文

别名

别名格式:必须大写字母,数字可以使用但是不能放在开头

sudo别名类型:

  • user_alias(用户)
  • runas_slias(代表用户)
  • host_alisa(登陆主机)
  • cmnd_alisa(命令)

编辑:visudo

image.png

开关机安全控制

BIOS设置密码

先进入急救系统,这边就不进去了

Snipaste_2022-10-10_09-20-41.png 设置好后,再次进入BIOS时候就需要输入密码才可以进入

grub设置密码

一句命令直接设置密码

grub2-setpassword

image.png 重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。

终端登录安全控制

  • 限制root登录

**touch /etc/nologin **

  • 直接限制
  • 解除 rm -rf nologin

image.png

nmap扫描

选项

选项功能
-p指定扫描端口
-n禁止使用反向DNS解析
-sT使用TCP扫描
-sT使用FIN扫描
-sU使用UDP扫描
-sP使用ICMP扫描
-sS使用TCP的SYN扫描