系统安全与应用(1)

目录

1、账号安全管理

(1)禁止程序用户登录

(2)锁定禁用长期不使用的用户 

(3)删除无用的账号

(4)禁止账号和密码的修改

2、密码安全管理

设置密码有效期

1)针对已有用户

2)针对新建用户

3)强制用户下次登录修改密码

3、历史命令安全管理

(1)查看历史命令

(2)限制历史命令数量

(3)清空历史记录

(4)登录后自动清空

(5)自动注销

4、限制su切换用户

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

6、sudo提权


1、账号安全管理

(1)禁止程序用户登录

usermod -s /sbin/nologin 用户名

(2)锁定禁用长期不使用的用户 

    passwd -l 用户名       usermod -L 用户名        #查看锁定账号状态  passwd -S 用户名

(3)删除无用的账号

userdel -r 用户名

(4)禁止账号和密码的修改

chattr +i 文件名       #锁定文件状态

chattr -i 文件名        #解锁文件状态

lsattr 文件名            #查看文件状态

输出一个文件,然后锁定其文件状态,无法再往里编辑内容

锁定账号文件/etc/passwd,将无法添加账号,修改账号和删除账号等操作

锁定密码文件/etc/shadow,将无法修改其密码

2、密码安全管理

用户密码文件:/etc/shadow

设置密码有效期

1)针对已有用户

:chage -M 有效期天数 用户名

修改wangwu账号的有限期为30天,查看密码文件发现wangwu的第五个字段密码最长期限为30

2)针对新建用户

vi/etc/login.defs文件里修改PASS_MAX_DAYS  30

修改etc/login.defs文件里PASS_MAX_DAYS值为30,新建用户zhangsan并给其设置密码,查看zhangsan的密码文件,其第五个字段密码最长期限为30

要想使账号永不过期,只需将etc/login.defs文件里PASS_MAX_DAYS值修改为99999

3)强制用户下次登录修改密码

chage -d 0 用户名

3、历史命令安全管理

(1)查看历史命令

history  

(2)限制历史命令数量

vim /etc/profile -->export HISTSIZE=数量
source /etc/profile

使查看历史命令只能查看最近30条命令

(3)清空历史记录

history -c(临时清空)

(4)登录后自动清空

历史命令所在文件:vim .bash_history

vim /etc/profile--> echo > ~/.bash_history

编辑/etc/profile文件

重启后查看.bash_history文件

(5)自动注销

   vim /etc/profile  -->  export TMOUT=XX  -->  source /etc/profile

设置30秒不操作自动注销

4、限制su切换用户

1、将信任的用户加入到wheel组中:gpasswd wheel -a 用户名
2、修改su的PAM认证配置文件:vim /etc/pam.d/su ->开启第六行的配置

补充:PAM的介绍

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

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

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

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

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

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

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


控制标记的补充说明:
required:表示该行以及所涉及模块的成功是用户通过鉴别的【必要条件】。换句话说,只有当对应于应用程序的所有带required标记的模块全部成功后,该程序才能通过鉴别。同时,如果任何带required标记的模块出现了错误,PAM并不立刻将错误消息返回给应用程序,而是在所有此类型模块都调用完毕后才将错误消息返回调用他的程序。 
反正说白了,就是必须将所有的此类型模块都执行一次,其中任何一个模块验证出错,验证都会继续进行,并在执行完成之后才返回错误信息。这样做的目的就是不让用户知道自己被哪个模块拒绝,通过一种隐蔽的方式来保护系统服务。就像设置防火墙规则的时候将拒绝类的规则都设置为drop一样,以致于用户在访问网络不成功的时候无法准确判断到底是被拒绝还是目标网络不可达。

requisite:与required相仿,只有带此标记的模块返回成功后,用户才能通过鉴别。不同之处在于其一旦失败就不再执行堆中后面的其他模块,并且鉴别过程到此结束,同时也会立即返回错误信息。与上面的required相比,似乎要显得更光明正大一些。

sufficient:表示该行以及所涉及模块验证成功是用户通过鉴别的【充分条件】。也就是说只要标记为sufficient的模块一旦验证成功,那么PAM便立即向应用程序返回成功结果而不必尝试任何其他模块。即便后面的层叠模块使用了requisite或者required控制标志也是一样。当标记为sufficient的模块失败时,sufficient模块会当做optional对待。因此拥有sufficient标志位的配置项在执行验证出错的时候并不会导致整个验证失败,但执行验证成功之时则大门敞开。所以该控制位的使用务必慎重。

optional:他表示即便该行所涉及的模块验证失败用户仍能通过认证。在PAM体系中,带有该标记的模块失败后将继续处理下一模块。也就是说即使本行指定的模块验证失败,也允许用户享受应用程序提供的服务。使用该标志,PAM框架会忽略这个模块产生的验证错误,继续顺序执行下一个层叠模块。

PAM实例:
                                    用户1        用户2        用户3        用户4
auth       required     模块1        pass        fail        pass        pass
auth       sufficient   模块2        pass        pass        fail        pass
auth       required     模块3        pass        pass        pass        fail
  结果                                           pass        fail        pass        pass

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

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

在 /etc/pam.d/sshd 文件中添加auth       required     pam_tally2.so  deny=3 unlock_time=60 even_deny_root root_unlock_time=60

用别的虚拟机终端连接,连续输入三次错误密码会锁定用户,就算你输入正确密码也登不上去,只能等60秒后才能登录成功

6、sudo提权

visudo  vim/etc/sudoers(要用wq!强制保存)

#用户/组授权
用户名 主机名=程序列表     #命令要用绝对路径表示,支持通配符*表示所有,!表示取反
%组名 主机名=程序列表
用户名 主机名=NOPASSWD:程序列表   #NOPASSWD:表示sudo不要密码验证
#别名设置
User_Alies 大写的别名=用户1,用户2.....
Host_Alies 大写的别名=主机名1,主机名2....
Cmnd_Alies 大写的别名=命令路径1,命令路径2....
用户别名 主机别名=命令别名
sudo 授权命令

#设置sudo日志路径
Defaults logfile = "/var/log/sudo.log"


sudo -l           #普通用户查看有哪些sudo权限  

wangwu账户是没有临时修改网卡IP的权限

编辑/etc/sudoers文件,在里添加wangwu ALL=/sbin/ifconfig内容

我们再切换到wangwu用户,发现wanngwu用户可以通过sudo来临时修改网卡IP

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

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

相关文章

中颖51芯片学习9. PWM(12bit脉冲宽度调制)

中颖51芯片学习9. PWM(12bit脉冲宽度调制) 一、资源简介二、PWM工作流程三、寄存器介绍1. PWMx控制寄存器PWMxCON2. PWM0周期寄存器PWM0PH/L3. PWM1周期寄存器PWM1PH/L4. PWM0占空比控制寄存器PWM0DH/L5. PWM1占空比控制寄存器 PWM1DH/L6. 占空比寄存器与…

Next.js+React+Node系统实战,搞定SSR服务器渲染

Next.jsReactNode系统实战,搞定SSR服务器渲染 Next.js React Node.js 实战:实现服务器端渲染(SSR) 项目概述 在这个项目中,我们将探讨如何使用 Next.js、React 和 Node.js 来构建一个服务器渲染的 web 应用程序。通…

pytest使用 pytest-rerunfailures 插件实现失败用例重跑功能

使用 pytest 进行测试时,你可以通过安装并配置 pytest-rerunfailures 插件来实现失败用例重跑功能。以下是一个示例说明: 假设你有一个测试文件 test_example.py 包含如下测试用例: import pytestpytest.mark.parametrize("num",…

javaScript3

javaScript 一.对象1.概念2.创建对象的三种方法(1).字面量创建(利用{})(2)变量、属性、函数、方法的区别(3).new Object创建(4).构造函数 3.new关键字的执行过程4.遍历对象(for..in) 二.内置对象 一.对象 1.概念 一组无序的相关属性和方法的…

报错The chromedriver version cannot be discovered以及下载chromedriver.exe和查看其版本的命令

python3.8.10,win10。 谷歌浏览器版本(我写代码的时候还是123.0.x.x,没几天就自动更新到124.0.x.x了): 在使用selenium的时候,出现报错,The chromedriver version cannot be discovered。 &am…

【面试八股总结】Linux系统下的I/O多路复用

参考资料 :小林Coding、阿秀、代码随想录 I/O多路复用是⼀种在单个线程或进程中处理多个输入和输出操作的机制。它允许单个进程同时监视多个文件描述符(通常是套接字),一旦某个描述符就绪(一般是读就绪或者写就绪),能够…

为什么iPhone支持整页中文OCR应用很少?有什么好的解决方法?

iPhone上面没有支持中文整页OCR识别的app,这是一个值得探讨的问题。OCR,即光学字符识别,是一种将纸质文档或图片中的文字转化为可编辑文本的技术。随着科技的发展,OCR技术已经广泛应用于各个领域,包括文档处理、图像识…

C/C++ 入门(7)string类(STL)

个人主页:仍有未知等待探索-CSDN博客 专题分栏:C 请多多指教! 目录 一、标准库中的string 1、了解 2、string类常用接口说明 1、常见的构造函数 2、容量操作 ​编辑 3、访问及遍历操作 4、修改操作 5、非成员函数 二、string类实现 …

搭建知识库-DataWhale笔记

词向量及向量知识库介绍 词向量 词向量定义 在机器学习和自然语言处理(NLP)中,词向量(Embeddings)是一种将非结构化数据,如单词、句子或者整个文档,转化为实数向量的技术。这些实数向量可以被…

Unet网络架构讲解(从零到一,逐行编写并重点讲解数据维度变化)

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️感谢大家点赞👍&…

大珩PPT助手一键颜色设置

大珩PPT助手最新推出的一键设置文字颜色和背景色功能,为用户在创建演示文稿时带来了更便捷、高效的体验。这一功能使用户能够轻松调整演示文稿中文字的颜色和幻灯片的背景色,以满足不同场合和主题的需要。 以下是该功能的几个关键特点和优势&#xff1a…

恶意游戏并非传说:它们甚至在 Steam 上也存在

三月份,玩家们在在线平台上遇到了热门游戏的假克隆。在受害者中,有一位用户购买了一款假冒游戏《最后纪元》(Last Epoch),但玩了几个小时后却出现了 "蓝屏死机"。 在联系了技术支持后,Steam 将钱…

代码随想录算法训练营Day6 | 242.有效的字母异位词 ●349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和

基础: 1.哈希表是根据关键值进行直接访问的数据结构,时间复杂度是O(1),也就是通过数组的索引下标,直接访问数组中的元素哈希表的作用就是用来快速判断一个元素是否出现在集合里。 2.常见的哈希结构: 数组set &#…

CB2-2CARD之Debian(Bookworm)安装Gnome看CCTV

CB2-2CARD之Debian(Bookworm)安装Gnome看CCTV 1. 源由2. 需求3. Debian系统桌面3.1 系统安装3.2 磁盘扩容3.3 系统更新3.4 Gnome安装 4. 测试4.1 CCTV网页测试4.2 系统空闲测试4.3 Firefox CPU占用率测试 5. 总结 1. 源由 近些年来,随着国内…

arm架构,django4.2.7适配达梦8数据库

【Python相关包版本信息】 Django 4.2.7 django-dmPython 3.1.7 dmPython 2.5.5 【达梦数据库版本】 DM Database Server 64 V8 DB Version: 0x7000c 适配过程中发现的问题如下: 错误一:d…

Git | 分支管理

Git | 分支管理 文章目录 Git | 分支管理1、理解分支2、创建分支&&切换分支3、合并分支4、删除分支5、合并冲突6、分支管理策略合并分支模式实际工作中分支策略bug分支删除临时分支 1、理解分支 分支就类似分身。 在版本回退中,每次提交Git都会将修改以git…

快速部署stable diffusion@Ubuntu

Stable Diffusion可以根据文本描述生成相关的图像,是当前最热门的文生图模型。 在Ubuntu下,可以选择快速安装,或者手动一步步安装。 快速安装 使用文档中的方法,先下载一个sh文件,然后执行这个文件,就自动…

ChatGPT助力测试领域!探索人工智能编写测试用例的新前景

简介 测试用例是测试人员的核心工作内容,是测试人员思想的“实现类”,其充分体现了测试的思路,可以为后续的测试行为提供指导,是测试人员了解业务的重要根据和质量之根本。如果测试用例设计得不完成,出现了遗漏&#x…

git merge 和 git rebese的区别

git merge 和 git rebese的区别 拉取分支和合并代码会涉及两种选择,git merge 和 git rebase: rebase:变基,会有一个干净的分支,但是对于记录来源不够清楚merge:合并,git 分支看起来比较混乱&…

java-Arrays

一、Arrays的概述 Arrays是操作数组的工具类 二、Arrays的常用方法 Arrays的常用方法基本上都被static静态修饰,因此在使用这些方法时,可以直接通过类名调用 1.toString 语法:Arrays.toString(数组) 用于将数组的元素转换为一个字符串&a…