Linux——系统安全及应用

目录

  • 账号安全控制
    • 账号安全基本措施
      • 系统账号清理
      • 密码安全控制
      • 命令历史、自动注销
      • 终端自动注销
    • 用户切换与提权
      • su切换用户
    • sudo——提升执行权限
      • 单个用户用vim 编辑器添加sudo权限
    • PAM安全认证
      • 什么是PAM?
      • PAM认证原理
    • bash配置文件读取顺序
  • 开关机安全控制
    • BIOS引导设置
    • GRUB 限制
    • 禁止root用户登录

账号安全控制

账号安全基本措施

系统账号清理

将登录用户的Shell设为/sbin/nologin
锁定长期不使用的账号
删除无用的账号

示例:锁定账号文件passwd、shadow
Linux——系统安全及应用_第1张图片
锁定文件 /etc/passwd时无法创建新用户
锁定文件 /etc/shadow时无法修改密码
Linux——系统安全及应用_第2张图片

chattr -i /etc/passwd /etc/shadow ##解除锁定文件
lsattr /etc/passwd /etc/shadow ##显示文件信息
Linux——系统安全及应用_第3张图片

密码安全控制

设置密码有效期
示例1:
进入vim编辑器编辑默认密码有效期
在这里插入图片描述
修改之前
在这里插入图片描述
修改之后
在这里插入图片描述
chage -M 30 用户名——修改账户有效期 (仅对已有账户生效,对未创建的账户不生效)
Linux——系统安全及应用_第4张图片
示例2:强制下次登录时修改密码
Linux——系统安全及应用_第5张图片

命令历史、自动注销

命令历史限制
减少记录命令的条数
注销时自动情况命令历史

示例:
在这里插入图片描述
Linux——系统安全及应用_第6张图片
Linux——系统安全及应用_第7张图片
export HISTSIZE=450 当前用户历史记录保留450条
source /etc/profile 刷新配置文件,使文件立即生效
echo $HISTSZE 查看历史记录保留条数数量
Linux——系统安全及应用_第8张图片
注销时自动清空命令:
vim ~/.bashrc ##进入vim编辑器
echo " " > ~/.bash_history ##以空白文件覆盖历史记录
Linux——系统安全及应用_第9张图片

终端自动注销

闲置600秒后自动注销:
进入配置文件
在这里插入图片描述
全局声明超过60秒闲置后自动注销终端
Linux——系统安全及应用_第10张图片
刷新一下,查看登出时间
Linux——系统安全及应用_第11张图片
在这里插入图片描述
如果不在配置文件输入这条命令,那么是对当前用户生效
在这里插入图片描述

用户切换与提权

su切换用户

Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。使用权限:所有使用者。
选项:
-f:不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p:执行 su 时不改变环境变数
-c:变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s:指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell

用途及用法:
Substitute User,切换用户
格式: su - 目标用户(横杠“ - ”代表切换到目标用户的家目录)
在这里插入图片描述
root - - - >任意用户,不验证密码
普通用户- - - >其他用户,验证目标用户的密码
带 “ - ” 表示将使用目标用户的登录Shell环境
在这里插入图片描述
查看su操作记录
Linux——系统安全及应用_第12张图片
whoami确定当前用户是谁
在这里插入图片描述

sudo——提升执行权限

在 /etc/sudoers 中有出现的使用者。
vi /etc/sudoers (此文件的默认权限为440,保存退出时必须执行":wq!“命令来强制操作)
在这里插入图片描述
格式:
用户 主机名=命令程序列表
用户 主机名=(用户) 命令程序列表

用户: 直接授权指定的用户名,或采用”%组名”的形式(授权一个组的所有用户)。
主机名: 使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户): 用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令。
命令程序列表: 允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号","进行分隔。ALL则代表系统中的所有命令

单个用户用vim 编辑器添加sudo权限

vi sudo 进入编辑模式
Linux——系统安全及应用_第13张图片
sudo -l :查看当前用户拥有那些权利
Linux——系统安全及应用_第14张图片

PAM安全认证

什么是PAM?

PAM(Pluggable Authentication Modules)可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式;
也是当前Linux服务器普遍使用的认证方式。
PAM提供了对所有服务进行认证的中央机制,适用于login,远程登陆,su等应用
系统管理员通过PAM配置文件来制定不同的应用程序的不同认证策略

PAM认证原理

PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,
PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认 模块(位于/lib64/security/下)进行安全认证。
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。
PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。

查看su的PAM 配置文件
命令: cat /etc/pam.d/su
Linux——系统安全及应用_第15张图片
每一行都是独立的认证过程;每一行可以区分为三个字段:a. 认证类型;b. 控制类型;c. PAM模块及其参数

第一列代表PAM认证模块类型:
auth:对用户身份进行识别,如提示输入密码,判断是否为root
account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等
password:使用用户信息来更新数据,如修改用户密码
session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统
第二列代表PAM控制标记
required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败
requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败
sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值
optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session 类型)
include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项
第三列代表PAM模块
默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径
第四列代表PAM模块的参数
这个需要根据所使用的模块来添加

bash配置文件读取顺序

用户登录—>加载~/.bash_profile —>.bash_profile中的配置首先是使 ~/.bashrc生效
用户登出—>.bash_logout 运行logout配置文件

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并 从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc /bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读 取。
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,然后执行用户的.bashrc文件。交互式登录shell调用此文件。
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell 时,该文件被读取。这里可以设置别名。若删除此文件, 提示符会变成 -bash-4.2$,可以复制/etc/skel/.bashrc到自己的家目录下。交互式非登录shell调用此文件。
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
~/.bash_profile 是交互式、login 方式进入 bash 运行的;~/.bashrc 是交互式non-login 方式 进入 bash 运行的。通常二者设置大致相同,所以通常前者会调用后者。

开关机安全控制

BIOS引导设置

1.将第一引导设备设为当前系统所在硬盘

2.禁止从其他设备(光盘、U盘、网络)引导系统

3.将安全级别设为setup,并设置管理员密码

GRUB 限制

1.使用grub2-mkpasswd-pbkdf2生成密钥

2.修改/etc/grub.d/00_header文件,添加密码记录

3.生成新的grub.cfg配置文件

禁止root用户登录

在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统。
查看端口
进入编辑器开启或者关闭端口
Linux——系统安全及应用_第16张图片

你可能感兴趣的:(linux)