IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux之 系统安全及应用 -> 正文阅读

[系统运维]Linux之 系统安全及应用

前言

一,账号安全基本措施

(一)、系统账号清理

1、将非登录用户的 Shell 设为 /sbin/nologin

usermod  -s  /sbin/nologin  用户名    -------禁止用户登陆系统

2、锁定长期不使用的账号

usermod  -L  用户名      --------锁定用户账号        
passwd  -l   用户名     --------锁定用户密码
passwd   -S   用户名     -------查看用户账号是否被锁定

在这里插入图片描述

3、删除无用的账号

userdel   -r  用户名     -------添加 -r 选项时,表示连用户的宿主目录一并删除

4、锁定账号文件passwd、 shadow

chattr   +i   /etc/passwd   /etc/shadow      -----锁定文件
Isattr   /etc/passwd   /etc/shadow     -----查看文件状态
chattr  -i   /etc/passwd    /etc/shadow     -----解锁文件
当将passwd 和 shadow 锁定以后,就不能再创建用户和更改原有用户的密码了
当使用 chattr -i /etc/passwd /etc/shadow 命令解锁以后就可以正常操作了

在这里插入图片描述

(二)、密码安全控制

1、设置密码有效期

(1)、修改已有用户的密码有效期:chage   -M  30   wxb
在这里插入图片描述

(2)、修改新用户的密码有效期:vim   /etc/login.defs
(3)、设置用户的密码失效日期:usermod  -e  日期[yyyy-mm-dd格式]  用户  或  useradd  -e   日期[yyyy-mm-dd格式]  用户
2、要求用户下次登录时修改密码:chage -d 0 用户

chage  -M 是用来设置密码最大有效期的
在这里插入图片描述
使用chage -M wxb 命令将wxb 用户的密码有效期设置为30天,然后使用cat shadow 命令查看,发现设置成功。该命令是设置已经存在的用户的密码有效期的。

在这里插入图片描述

如果想要设置还未创建,但是将会创建的新的用户的密码有效期,就需要使用 vim /etc/login.defs 命令,然后更改 PASS_MAK_DAYS 的有效天数,默认是99999在这里插入图片描述
使用 chage -d 0 baiabi 设置用户下次登陆系统时需要修改密码

(三)、命令历史限制

1、减少记录的命令条数

[root@localhost -]# vim  /etc/profile 
export  HISSIZE=200   #在最后加上该句命令,意思是限制最多看200条历史命令记录
[root@localhost ~]# source  /etc/profile    #重新加载

在这里插入图片描述

2、登录时自动清空命令历史

~/.bashrc 文件中的命令会在每次打开新的 bash shell 时(也包括登录系统)被执行
vim ~/.bashrc     #编辑~/。bashrc文件
echo " " > ~/.bash_history       #在最后一行输入该命令。该命令意思是在每次登录时将" "重新定义到~/.bashrc文件中

在这里插入图片描述

(四)、终端自动注销

1、闲置600秒后自动注销

[root@localhost ~]# vim  /etc/profile
export TMOUT=600
[root@localhost ~]# source  /etc/profile   (永久生效)

[root@localhost ~]#export TMOUT=600   (临时生效)

在这里插入图片描述

二、使用su命令切换用户

(一)、用途及用法

1、用途: Substitute User,切换用户
2、格式: su - 目标用户

(二)、密码验证

1、root→任意用户,不验证密码
2、普通用户→其他用户,验证目标用户的密码

su - root       #带 - 选项表示将使用目标用户的登录Shell环境,登录shell环境之后就可以使用该用户的~/.bashrc配置文件
口令: 
whoami
root 

(三)、限制使用su命令的用户

1、将允许使用su命令的用户加入wheel组
gpasswd -a wangwu wheel
2、启用pam_wheel认证模块

vim /etc/pam.d/su     #pam.d是个认证模块
......
#auth required pam_wheel.so use_uid

3、查看加入wheel 组的用户有哪些
grep wheel /etc/group
创建新用户wanger ,将wanger 加入到wheel 组中,然后编辑 /etc/pam.d/su 这个文件 在这里插入图片描述
进入之后将方框中的“#”去掉在这里插入图片描述
保存退出
在这里插入图片描述
设置完以后发现只有加入了wheel 之后的用户才可以进入root用户在这里插入图片描述
使用 grep wheel /etc/group 来查看加入到wheel 组的用户有哪些

(四)、查看su操作记录

1、查看安全日志文件: cat /var/log/secure

三、Linux中的PAM安全认证

(一)、su命令的安全隐患

1、默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险。
2、为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

(二)、PAM(Pluggable Authentication Modules)可插拔式认证模块

1、是一种高效而且灵活便利的用户级别的认证方式
2、也是当前Linux服务器普遍使用的认证方式

详细解释:Linux-PAM,是linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式。PAM使用 /etc/pam.d/ 下的配置文件来管理对程序的认证方式。应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在 /lib64/security 下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的。

(三)、在 /etc/pam.d/su 文件里设置禁止用户使用su命令

vim  /etc/pam.d/su
auth sufficient pam_rootok. so
#auth required pam_wheel.so use_uid

启用 pam_wheel 认证以后,未加入到wheel组内的其他用户将无法使用su命令。在这里插入图片描述
1、以上两行是默认状态(即开启第一行,注释第二行) ,这种状态下是允许所有用户间使用su命令进行切换的。
2、两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则 root 使用 su 切换普通用户就不需要输入密码(pam_rootok.so 模块的主要作用是使 uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
3、如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令。
4、如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。

第一列代表PAM认证模块类型

auth:对用户身份进行识别,如提示输入密码,判断是否为root。
account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
password:使用用户信息来更新数据,如修改用户密码。
session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。

第二列代表PAM控制标记
required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。(起到密码保护的作用)
requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型)。
include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用 /etc/pam.d/system-auth (主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。

第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。
同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。

第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。
传递给模块的参数。参数可以有多个,之间用空格分隔开

(四)、PAM认证原理

1、一般遵循的顺序
Service (服务) →PAM (配置文件) →pam_*.so(认证模块)

2、首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
3、用户访问服务器时,服务器的某一个服务程序把用户的青求发送到PAM模块进行认证
4、不同的应用程序所对应的PAM模块是不同的
5、PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用

(五)、PAM认证的构成

1、查看某个程序是否支持PAM认证,可以用 Is 命令
示例:查看su是否支持PAM模块认证

ls  /etc/pam.d | grep su

在这里插入图片描述

2、查看su的PAM配置文件:cat /etc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段

  • 认证类型auth
  • 控制类型sufficient
  • РAM模块及其参数pam_rootk.so在这里插入图片描述

(六)、PAM安全认证流程

1、控制类型也称做Control Flags,用于PAM验证类型的返回结果
1)、required 验证失败时仍然继续,但返回Fail
2)、requisite验证失败则立即结束整个验证过程,返回Fai
3)、sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4)、optional 不用于验证,只显示信息
(通常用于session类型)
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 15:29:39  更:2021-08-20 15:30:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:53:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码