Linux系统安全及其应用

news2024/11/15 21:52:51

文章目录

    • 一、用户账号安全管理
      • 1.1 系统账号的清理
      • 1.2 对用户账号的操作
        • 1.2.1 锁定和解锁用户
        • 1.2.2 删除无用账号
      • 1.3 对重要文件进行锁定
      • 1.4 密码安全控制
        • 1.4.1 新建用户
        • 1.4.2 已有用户
    • 二、历史命令管理
      • 2.1 历史命令限制
      • 2.2 自动清空历史命令
    • 三、设置终端登录的安全管理
      • 3.1 设置终端登录超时
      • 3.2 禁止普通用户登录
    • 四、对用户切换进行限制
      • 4.1 su命令
      • 4.2 限制普通用户使用`su`
        • 4.2.1 wheel组
        • 4.2.2 PAM安全认证
    • 五、授权用户管理
      • 5.1 sudo命令配置
      • 5.2 使用别名批量设置普通用户权限
    • 六、其他
      • 6.1 开关机安全控制
      • 6.2 弱口令扫描工具
    • 七、总结
      • 你会做哪些系统加固?

一、用户账号安全管理

1.1 系统账号的清理

将不需要登录的用户的登录shell设置为/sbin/nologin。

usermod -s /sbin/nologin 用户  	//需要管理员权限

1.2 对用户账号的操作

1.2.1 锁定和解锁用户
usermod -L 用户	//锁定用户
passwd -l 用户	//锁定用户

usermod -U 用户	//解锁用户	
passwd -u 用户	//解锁用户
1.2.2 删除无用账号
userdel -r 用户	//删除用户及家目录

1.3 对重要文件进行锁定

如:passwd shadow fstab ifcfg-ens33等文件

lsattr 文件	//查看文件状态锁定(全- 表示没有状态,有i表示被锁定)
chattr +i 文件	//锁定文件,可多个
chattr -i 文件	//解锁文件

1.4 密码安全控制

1.4.1 新建用户

/etc/login.defs 文件中修改新建用户配置

在第25行,可以改变密码有效期,只对新建用户有效

在这里插入图片描述

1.4.2 已有用户
chage -M 30 用户	//改变已有用户密码有效期为30天
chage -d 0 用户	//使用户密码失效,下次登录时需要重设密码

二、历史命令管理

2.1 历史命令限制

history			//查看历史命令
history -c		//临时清空历史命令

永久限制历史命令数量:编辑 /etc/profile进行全局配置,第46行,HISTSIZE 设置为60-80条,保存退出并source,使立即生效

在这里插入图片描述

2.2 自动清空历史命令

vim ~/.bash_logout
echo "" > ~/.bash_history		//注销时自动清空历史命令 

vim ~/.bashrc
echo "" > ~/.bash_history		//登录时自动清空历史命令

三、设置终端登录的安全管理

3.1 设置终端登录超时

vim /etc/profile ,键入行

TMOUT=600

(默认单位:秒):10分钟无操作,终端自动断开。

3.2 禁止普通用户登录

root用户 touch /etc/nologin,可禁止普通用户登录

root用户 rm -rf /etc/nologin,恢复普通用户登录

四、对用户切换进行限制

4.1 su命令

su 用户名:在终端中切换已知密码的用户,root用户切换到普通用户默认不需要密码,普通用户发起的切换需要目标账户的密码。su切换用户不会改变环境变量,用的还是之前用户的shell,是不完全切换。

su - 用户名:登录式切换,读取目标用户的配置文件,切换到家目录。

如果在root用户下,su相当于刷新;如果是普通用户,就是切换回root。

4.2 限制普通用户使用su

4.2.1 wheel组

wheel :wheel组,这个在组文件中查不到,属于特殊组,用来控制系统管理员的权限。专为管理员服务。

如果普通用户加入到wheel组,就能拥有管理员才能执行的一些权限。需要用sudo命令执行wheel组的特殊权限。

vim /etc/pam.d/su    //进入存放wheel组和默认root切换权限的配置

在这里插入图片描述

解除注释,保存退出后,可以发现除了wheel组用户和root用户,其他用户都不能切换用户。

wheel组默认是空的,没有任何成员,需要管理员账号手动添加。

gpasswd -a 用户 wheel

将用户添加到wheel组,用户即可获得切换用户的权限。

wheel组的权限很大,配置的时候要以最小权限的原则来进行配置。

4.2.2 PAM安全认证

PAM安全认证:Linux系统身份认证的一个架构,提供了一种标准的身份认证的接口,允许管理员定制化地管理认证方式和方法。

PAM认证是一个可插拔式的模块。所谓可插拔,是因为PAM认证的配置文件里,启用和停用只需要改变相应命令行开头的#号即可。

PAM的认证类型

  • 认证模块:验证用户的身份,基于密码的认证。
  • 授权模块:控制用户对系统资源的访问,文件访问、进程权限等。
  • 账户管理模块:管理用户账户的信息,密码过期策略,账户锁定策略等等。
  • 会话管理模块:管理用户会话,注销用户等。

PAM认证:确定服务Service----> 加载/etc/pam.d下的PAM配置文件 ---->调用/lib64/security下的认证文件进行认证。

PAM安全认证流程:

在这里插入图片描述

控制位:

required:只有成功才能通过认证,验证失败也不会立刻结束,只有所有的要素验证完整才会最终返回结果。必要条件。

requisite:只有成功才能通过认证,但是一旦失败,其他要素不再验证,立刻结束。必要条件。

sufficient:一票通过,成功了之后就是满足条件,但是失败了也可忽略。成功了执行验证成功的结果,失败则返回验证失败的结果,是最终的结果。充分条件。

optional:选项,反馈给用户的提示或结果。

五、授权用户管理

5.1 sudo命令配置

sudo:相当于给普通用户赋权

配置sudo需要对/etc/sudoers进行编辑

vim /etc/sudoers	//该文档是只读文档,需要wq!强制保存退出
visudo		//快捷打开/etc/sudoers

进入配置,注释掉图中两行

在这里插入图片描述

再到100行,下行插入

test2	ALL=(root)	/usr/bin/passwd 	//(多个赋权“,”隔开)
用户名	主机名=(用户)   命令

为test2用户赋权可以调用passwd命令,命令前加NOPASSWD可免密码sudo

test2用户使用授权命令:

sudo passwd test2

test2可以给所有用户设置密码(包括root),这种行为很危险。所以sudo的配置一般仅给予需要的最小权限。

注意:第一次执行需要验证密码,默认超时时长为5分钟,在此期间不再重复验证密码

5.2 使用别名批量设置普通用户权限

还是在/etc/sudoers 文件里编辑:

Host_Alias MYHOSTS = localhost 		 //设置主机名,可不设,用ALL匹配
User_Alias MYUSERS = test1,test2	//设置限制的用户,可批量
Cmnd_Alias MYCMNDS = /usr/sbin/*,!/usr/sbin/reboot,!/usr/sbin/poweroff,!/usr/sbin/init,!/usr/bin/rm  		//批量设置命令
// 注意:所有别名必须是全部大写
MYUSERS MYHOSTS=MYCMNDS		//启用配置

命令授权部分,定义了主机localhost,开放给dn这个用户/sbin下面所有的命令( *表示全部),除了(!表示取反,即不给权限)重启,关机,改变运行级别和删除。

六、其他

6.1 开关机安全控制

grub2 -setpassword :给grub菜单设置密码,要修改菜单需要此密码

6.2 弱口令扫描工具

弱口令扫描工具:检测过于简单的密码

使用john-1.8.0 工具

yum -y install gcc gcc-c++ make
//安装依赖环境
cd /opt/john-1.8.0/src
//工具解压在/opt目录下
make clean linux-x86-64
cp /etc/shadow /opt/shadow.txt
//复制密码文件到/opt下,
cd ../run
./john /opt/shadow.txt
//扫描密码
./john --show /opt/shadow.txt
//查看扫描情况

七、总结

你会做哪些系统加固?

  1. 锁定重要文件
  2. 修改history,命令历史记录
  3. 禁止普通用户切换
  4. 设置sudo权限,给普通用户
  5. 设置grub菜单加密
  6. 把一些默认的端口号改掉
  7. 内核参数调整:vim /etc/sysctl.conf,内核参数的配置文件。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python魔法之旅-魔法方法(03)

目录 一、概述 1、定义 2、作用 二、主要应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类…

Kotlin 2.0 重磅发布! 性能提升!新功能上线!开发者必看!

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

2.7HDR与LDR

一、基本概念 1.基本概念 动态范围(Dynamic Range) 最高亮度 / 最低亮度 HDR High Dynamic RangeLDR Low Dynamic Range HDR与LDR和Tonemapping的对应关系: 我们常用的各种显示器屏幕,由于不同的厂家不同的工艺导致它们的…

【GlobalMapper精品教程】083:基于DEM整体抬升或下降地形高程的两种方式

在Globalmapper24中文版中,可以很方便地对DEM高程数据进行整体抬升或下降。 文章目录 一、准备DEM数据二、高程整体修改1. 修改偏移2. 数据导出三、栅格计算器一、准备DEM数据 订阅专栏后,从私信查收实验数据及Globalmapper24中文版,加载实验数据包data083.rar中的dem数据,…

Unity【入门】脚本基础

Unity脚本基础 文章目录 1、脚本基本规则1、创建规则2、MonoBehavior基类3、不继承MonoBehavior的类4、执行的先后顺序5、默认脚本内容 2、生命周期函数1、概念2、生命周期函数有哪些3、生命周期函数支持继承多态 3、Inspector窗口可编辑的变量4、Mono中的重要内容1、重要成员2…

一个良好的嵌入式系统框架(基于FreeRTOS)

目录 Unix操作系统里的优先级嵌入式系统里的优先级 Unix操作系统里的优先级 在《Unix传奇》中有这样一句话,用户态的进程/线程是三等公民、root线程是二等公民、硬件中断是一等公民。 在操作系统中,"用户态"和"内核态"是两种不同的…

深入Kafka消息分区机制:从原理到实践

深入Kafka消息分区机制:从原理到实践 在现代分布式系统中,如何高效地处理海量数据是一个至关重要的问题。Apache Kafka作为一种高吞吐量的分布式消息系统,广泛应用于日志收集、实时分析等场景。为了保证数据的高效处理和系统的高可扩展性&am…

全新/二手KEITHLEY 2400 数字万用表

吉时利Keithley 2400数字源表,200V,1A,20W Keithley 2400 源表是一款 20W 仪器,可输出和测量 5V(输出)和 1V(测量)至 200V DC 的电压以及 10pA 至 1A 的电流。该万用表功能包括高重复…

2024 RCTF WebMisc部分 WP

Misc gogogo 考点:内存取证 得到 gogogo.raw 内存取证的题用volatility和AXIOM结合分析 AXIOM 分析存在云服务 但是百度网盘要密码 https://pan.baidu.com/share/init?surlZllFd8IK-oHvTCYl61_7Kw 发现访问过sqlite数据库 可以尝试提取数据库文件出来 结合 volatility 第…

Flutter基础 -- Dart 语言 -- 列表集合枚举

目录 1. 列表 List 1.1 初始 1.2 声明 1.2.1 自动 1.2.2 定长 1.2.3 生成数据 1.3 属性 1.4 方法 1.4.1 添加 1.4.2 查询 1.4.3 删除 1.4.4 Range 1.4.5 洗牌 1.4.6 排序 1.4.7 复制子列表 1.4.8 操作符 2. 集合 Map 2.1 初始 2.2 声明 2.2.1 松散 2.2.2 …

python-求点积

【问题描述】:给出两个数组,并求它们的点积。 【问题描述】:输入A[1,1,1],B[2,2,2],输出6,即1*21*21*26。输入A[3,2],B[2,3,3],输出-1,没有点积。 完整代码如下: alist(map(int,input().split())) blist(…

vue路由跳转之【编程式导航与传参】

vue路由有两种跳转方式 ----> 编程式与声明式,本文重点讲解vue路由的【编程式导航 】【编程式导航传参 ( 查询参数传参 & 动态路由传参 ) 】等内容,并结合具体案例让小伙伴们深入理解 ,彻底掌握!创作不易,需要的…

Maven项目通过maven central 发布到中央仓库 https://repo.maven.apache.org/ 手把手教学 最新教学

一、注册maven central账号 ​ https://central.sonatype.com/publishing/namespaces 我这里直接使用github账号登录 ,可以自己注册或者直接使用google账号或者github账号登录 这里github账号登录之后 应该只出现io.github 下面的io.gitee我也验证过 所以这里出…

AltiumDesigner/AD添加数据库连接

1.首先确保本机电脑有无对应的数据库驱动,例如我这边要添加MySQL的数据,则需要首先下载MySQL数据驱动:MySQL :: Download MySQL Connector/ODBC (Archived Versions) 2.运行“odbcad32.exe”,如下图添加对应的数据库配置&#xf…

Python魔法之旅-魔法方法(05)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

openresty(Nginx) 配置 特殊URL 密码访问 使用htpasswd 配置 Basic_Auth登录认证

1 使用htpasswd 生成密码文件.htpasswd是Apache附带的工具。如果没有可以安装。 #centos 8.5 系统 yum install httpd-tools #Ubuntu 24.04 系统 sudo apt update sudo apt-get install apache2-utils #生成密码文件,用户test sudo htpasswd -c /usr/local/openresty/nginx/…

独家首发 | 基于 KAN、KAN卷积的轴承故障诊断模型

往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 Python轴承故障诊断入门教学-CSDN博客 Python轴承故障诊断 (13)基于故障信号特征提取的超强机器学习识别模型-CSDN博客 Python轴承故障诊断 (14)高创新故障识别模型-CSDN…

Git使用规范及命令

文章目录 一、Git工作流二、分支管理三、Git命令操作规范1. 切到develop分支,更新develop最新代码2. 新建feature分支,开发新功能3. 完成feature分支,合并到develop分支4. 当某个版本所有的 feature 分支均合并到 develop 分支,就…

【漏洞复现】大华 DSS 数字监控系统 user_edit.action 信息泄露漏洞

0x01 产品简介 大华 DSS 数字监控系统是大华开发的一款安防视频监控系统,拥有实时监视、云台操作、录像回放、报警处理、设备管理等功能。 0x02 漏洞概述 大华 DSS 数字监控系统 user_edit.action 接囗处存在信息泄露漏洞。未经身份验证的远程攻击者可利用此漏洞…

无意间看到男主眼神,这也太有感觉了吧❗❗

2025即将首播《藏海传》中国大陆剧情/奇幻/古装共40集。 原本,稚奴身为大雍国钦天监监正蒯铎之子,背负着家族血仇。 历经十年沉默与磨砺,他化名为藏海(肖战 饰),重返京城。 他凭借卓越的营造技艺和深谙纵…