【Linux】系统安全及应用

目录

一、账号安全基本措施

1.系统账号清理

2.密码安全控制

3.历史命令安全管理

4.限制su切换用户

1)将信任的用户加入到wheel组中    

2)修改su的PAM认证配置文件

 5.ssh远程登录输入三次密码错误则锁定用户

 二、Linux中的PAM安全认证

1.su命令的安全隐患

2.PAM

3.PAM认证原理

4.PAM的配置文件

 三、使用sudo提权

1.使用sudo

2.配置sudo

3.使用别名进行授权


一、账号安全基本措施

1.系统账号清理

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

usermod -s /sbin/nologin 用户名

锁定长期不使用的账号

usermod -L 用户名
passwd -l 用户名
passwd -S 用户名

删除无用的账号

userdel [-r] 用户名

锁定账号文件passwd、shadow

chattr  +i  /etc/passwd /etc/shadow
lsattr  /etc/passwd  /etc/shadow        #锁定文件并查看状态
chattr  -i  /etc/passwd  /etc/shadow    #解锁文件

2.密码安全控制

设置密码有效期

要求用户下次登录时修改密码

参数说明
-m密码可更改的最小天数,为0时代表任何时候
-M密码保持有效的最大天数
-w用户密码到期前,提前收到警告信息的天数
-E账号到期的日期
-d上一次更改的日期
-i停滞时期。如果一个密码已过期这些天,那么此账号将不可用
[root@bogon ~]# useradd lisi
[root@bogon ~]# echo 123456 | passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@bogon ~]# chage -M 30 lisi        #密码有效期为30天

[root@bogon ~]# chage -M 99999 lisi        #99999代表密码永不过期

[root@bogon ~]# chage -d 0 lisi        #用户下次登录修改密码

3.历史命令安全管理

查看历史命令        history
限制历史命令数量    vim /etc/profile  -->  export HISTSIZE=XX  -->  source /etc/profile

清空历史命令        history -c      #临时清空
                            vim /etc/profile  -->  > ~/.bash_history 

4.限制su切换用户

1)将信任的用户加入到wheel组中    

gpasswd wheel -a 用户名

[root@bogon ~]# useradd zhangsan
[root@bogon ~]# gpasswd wheel -a zhangsan        #将用户加入到wheel组中,就可以实现su切换用户
正在将用户“zhangsan”加入到“wheel”组中
[root@bogon ~]# su zhangsan
[zhangsan@bogon root]$ su root
密码:
[root@bogon ~]#

2)修改su的PAM认证配置文件

vim /etc/pam.d/su -> 开启 auth   required   pam_wheel.so use_uid 的配置

 5.ssh远程登录输入三次密码错误则锁定用户

vim /etc/pam.d/sshd  
auth       required     pam_tally2.so  deny=3 unlock_time=600 even_deny_root root_unlock_time=600

 

 二、Linux中的PAM安全认证

1.su命令的安全隐患

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

2.PAM

(Pluggable Authentication Modules)可拔插式认证模块
        是一种高效而且灵活便利的用户级别的认证方式
        也是当前Linux服务器普遍使用的认证方式

3.PAM认证原理

        一般遵循的顺序:service(服务)->PAM(配置文件)->pam_*.so

        首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
        用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
        不同的应用程序所对应的PAM模块是不同的

4.PAM的配置文件

PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下顺序依次由PAM模块调用

第一列代表PAM认证模块类型
auth:认证模块接口,如验证用户身份、检查密码是否可以通过,并设置用户凭据
account:账户模块接口,检查指定账户是否满足当前验证条件,如用户是否有权访问所请求的服务,检查账户是否到期
password:密码模块接口,用于更改用户密码,以及强制使用强密码配置
session:会话模块接口,用于管理和配置用户会话。会话在用户成功认证之后启动生效

第二列代表PAM控制标记
required:模块结果必须成功才能继续认证,如果在此处测试失败,则继续测试引用在该模块接口的下一个模块,直到所有的模块测试完成,才将结果通知给用户。
requisite:模块结果必须成功才能继续认证,如果在此处测试失败,则会立即将失败结果通知给用户。
sufficient:模块结果如果测试失败,将被忽略。如果sufficient模块测试成功,并且之前的required模块没有发生故障,PAM会向应用程序返回通过的结果,不会再调用堆栈中其他模块。
optional:该模块返回的通过/失败结果被忽略。一般不用于验证,只是显示信息(通常用于 session 类型)。
include:与其他控制标志不同,include与模块结果的处理方式无关。该标志用于直接引用其他PAM模块的配置参数

第三列代表PAM模块

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

第四列代表PAM模块的参数

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

 三、使用sudo提权

1.使用sudo

用途:以其他用户身份(如root)执行授权的命令

用法:sudo 授权命令

2.配置sudo

vi  /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)

3.使用别名进行授权

User_Alias  大写别名=用户1, 用户2, ...
Host_Alias  大写别名=主机名1, 主机名2, ...
Cmnd_Alias  大写别名=命令路径1, 命令路径2, ...
用户别名  主机别名=命令别名

补充知识:
#设置sudo日志路径
Defaults logfile = "/var/log/sudo.log"
sudo -l           #普通用户查看有哪些sudo权限    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/562336.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

革命性创新,实景AI无人自动直播系统,轻松实现24小时日不落直播卖券。

革命性创新!实景AI无人自动直播系统,轻松实现24小时日不落直播卖券! 最近,越来越多的朋友纷纷关注到了AI自动直播带货的新玩法,并且也都想要开设自己的自动直播间。然而,对于这种自动讲解、自动回复的直播…

【Qt 学习笔记】Qt常用控件 | 显示类控件Label的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 显示类控件Label的使用及说明 文章编号:Qt 学…

C语言枚举类型详解

下午好诶,今天小眼神给大家带来一篇C语言枚举类型详解的文章~ 目录 一、枚举类型的声明 二、枚举类型的优点 三、枚举类型的使用 一、枚举类型的声明 枚举顾名思义就是 一 一 列 举 。 比如: 一周从周一到周日共有七天,可以一一列举。 性…

Next.js多页布局getLayout使用方法

目录 官网解释 直接上代码使用方法展示 1.page页面​编辑 2._app.js页面,也放在pages中​编辑 效果展示 有getLayout展示getLayout返回的页面布局 无getLayout展示默认布局 官网解释 如果需要多个布局,可以添加一个属性getLayout添加到您的页面,允…

xpath的使用以及原理-元素定位

# 查找文本框输入文本 driver.find_element(By.CLASS_NAME,"nav-search-input").send_keys("i_cecream查找到了") #查找到之后点击 driver.find_element(By.CLASS_NAME,"nav-search-btn").click()time.sleep(30)selenium4的解析。 client调用se…

【draw.io的使用心得介绍】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

webpack-babel2

浏览器的兼容性问题 浏览器的兼容性问题不知包括随屏幕大小而变化,还包括针对浏览器支持的特性(如css特性,js特性) 做处理。 目前市场上有很多浏览器:Chrome,Safari,IE,Edge等,要根据它们的市场占有率来决…

数据分析(1)

数据分析基础(1) 为了让刚开始学习的朋友对数据分析有一个清晰的整体认识,因此笔者在此对数分进行一个较为详细的介绍有助于大家更好的在宏观层面进行理解,避免在后续学习中产生迷茫。 数据分析的概念 定义:数据分析…

Linux系统-进程和计划任务管理

一.程序和进程 1.程序 保持在硬盘、光盘等介质中的可执行代码和数据文件中静态保存的代码 2.进程 在CPU及内存中运行的程序代码动态执行的代码父、子进程每个程序可以创建一个或多个进程 3.进程特征 动态性:进程是程序的一次执行过程,是临时的&…

项目小游戏-贪吃蛇

目录 1.游戏开始 - GameStart 1.1cmd命令窗口 调节窗口命令 ​编辑更改窗口命名 ​编辑 1.2 Win32 API win32 API 的介绍: ​编辑 获取控制台坐标COORD 获取控制台句柄: 获取缓冲台光标信息: 获取虚拟键位: 本地初始化 setlocale(); 游戏开始的具体实现&#xff1a…

Cyber Weekly #3

赛博新闻 1、Meta发布最强开源模型Llama3[1] 4月19日凌晨,Meta Llama 3发布,模型包含8B和70B两种参数规模(400B还在训练中),Llama 3使用了超过 15T token的训练数据,8B版本数据更新截止至2023年3月&#…

属性文件出现问号,更改配置文件的编码格式

场景 场景:配置了properties文件,结果涉及到中文的部分都是问号原因:因为配置文件的默认编码格式iso的,这种编码格式下压根没有中文解决方案:使用IDEA将全局编码格式设置为utf-8 第一步:File->Settings-…

SRS WebRTC Whip 和 Whep 部署体验问题

whip 報錯 404 webrtc推流 小窗口一闪而过,然后查看f12回复404的报错信息 chrome版本: 正在检查更新 版本 123.0.6312.123(正式版本) (64 位) centos 7.9 源码安装部署, 代码分支5.0 完全按…

判断完数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int n 0;int i 1;int j 0;int result 1;//提示用户&#xff1b;printf("请输入一个…

指针专题(3)

1.前言 本节我们书接上文&#xff0c;继续进行指针专题的学习&#xff0c;夯实指针的基础&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习 2.字符指针变量 我们知道&#xff0c;字符指针的形式为char*&#xff0c;我们可以取出一个字符的地址&#xff0c;并且…

游戏测试之常见控制技能(下)

备注&#xff1a;未经博主允许禁止转载 个人笔记&#xff08;整理不易&#xff0c;有帮助&#xff0c;收藏点赞评论&#xff0c;爱你们&#xff01;&#xff01;&#xff01;你的支持是我写作的动力&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_w…

4月21敲一篇猜数字游戏,封装函数,void,无限循环,快去体验体验

今天敲一篇猜数字游戏 目录 今天敲一篇猜数字游戏 1.打开先学goto语句&#xff1a; 2.开干&#xff1a; 首次我们学习随机数&#xff1a; 讲解一下&#xff1a; 改用srand; 加入时间变量&#xff1a; 获取时间&#xff1a;哈​编辑 3.我本来想已近够完美了&#xff0…

Redis 逻辑过期策略设计思路

引言&#xff1a; 当我们平常使用Redis缓存的时候&#xff0c;会出现一种场景&#xff0c; redis的key到过期时间了&#xff0c;总是需要到数据库里面去查一遍数据再set回redis&#xff0c;这个时候如果数据库响应比较慢&#xff0c;那么就会造成用户等待&#xff0c;如果刚好…

rancher-rke2 修改--service-cluster-ip-range

一、场景 因为需要部署新版本的ingress-nginx&#xff0c;而部署ingress-nginx的时候需要使用hostnetowrk以及nodeport的端口为80和443&#xff0c;service-node-port-range 默认为30000开始,部署会报错。 二、产生修改的需求 1、api-servier的配置文件位置 默认是没有的&…

【C++】双指针算法:移动零

学完了数据结构和C的STL库&#xff0c;我们需要开始学习算法了。有了前面的基础知识储备&#xff0c;再好好学习算法&#xff0c;有系统&#xff0c;有规律的刷题&#xff0c;总结&#xff0c;咱们的编程能力就会有质的飞跃&#xff01; 1.题目 我们用一个例题来讲解这个算法。…