Linux系统安全及其应用

文章目录

    • 一、用户账号安全管理
      • 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:选项,反馈给用户的提示或结果。

4.2.1中提到的su命令配置就是在/etc/pam.d目录下的su文件中进行配置。/etc/pam.d 文件夹中的每个文件对应着一个应用程序或服务,用于指定该程序或服务的身份验证和授权规则。

五、授权用户管理

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,开放给test1和test2这两个用户/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,内核参数的配置文件。

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

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

相关文章

[Vulfocus解题系列]spring 命令执行(CVE-2022-22947)

环境部署 使用docker部署环境 漏洞等级:高危 3 月 1 日,VMware 官方发布安全公告,声明对 Spring Cloud Gateway 中的一处命令注入漏洞进行了修复,漏洞编号为CVE-2022-22947 Spring官方发布 漏洞描述 使用 Spring Cloud Gate…

InvokeAI学习教程三:换脸

启动InvokeAI,我们先生成一张图: 在正向提示词里输入:Avant-garde couture, tactile textures, vogue aesthetics, vibrant color palette, intricate embroidery details, dramatic silhouettes 生成一张高贵夫人的图像, 或者你从…

android高效读图方式——Hardwarebuffer读图

安卓上有许许多多使用OpenGL来渲染的原因,比方说做特效/动画/硬解/人脸识别等等。渲染完成后如何从gpu中把数据快速读取出来也是高效图像处理中的重要的一环。 相对于glReadPixel的同步读取方式,安卓GLES3.0提供了更高效快速的Hardwarebuffer读图方式&a…

Jenkins的jdk和maven配置

目录 传送门前言一、概念二、JDK的配置三、Maven配置四、环境变量配置五、坑 传送门 SpringMVC的源码解析(精品) Spring6的源码解析(精品) SpringBoot3框架(精品) MyBatis框架(精品&#xff09…

隐藏饼图的legend,重写legend列表。

因为要实现的饼图效果较复杂,所以,需要重新写列表。 点击右侧列表的圆点,实现隐藏左侧饼图相应环状。 // 饼图,点击自定义列表,显示和隐藏饼图对应的环状数据<template> <div class="index_div"> <a-spin :spinning="aLoading">&l…

数据保护技巧揭秘:为导出文件添加防护密码的实用指南

一、前言 当涉及到敏感数据的导出和共享时&#xff0c;数据安全是至关重要的。在现代数字化时代&#xff0c;保护个人和机密信息免受未经授权的访问和窃取是每个组织和个人的首要任务之一。在这种背景下&#xff0c;葡萄城的纯前端表格控件 SpreadJS 提供的加密功能为用户提供…

【Java面试】九、微服务篇SpringCloud(上)

文章目录 1、SpringCloud五大组件2、服务注册和发现2.1 Eurake2.2 Eurake和Nacos的区别 3、Ribbon负载均衡3.1 策略3.2 自定义负载均衡策略 4、服务雪崩与熔断降级4.1 服务雪崩4.2 服务降级4.3 服务熔断 5、服务限流5.1 Nginx限流5.2 网关限流 6、微服务监控7、面试 1、SpringC…

电力系统上线测试工具介绍

上线测试 电力系统上线测试工具主要用于在电力系统建设完成后&#xff0c;对系统进行全面的功能和性能测试。这些工具可以模拟各种运行环境和负载情况&#xff0c;以检测电力系统的性能和稳定性。 以下是几种常见的电力系统上线测试工具&#xff1a; 1. 负载测试工具&#x…

高低温光照综合试验整车综合性能步入式环境实验舱

高低温光照综合试验整车综合性能步入式环境实验舱 整车综合性能试验舱主要用于整车高低温存放试验、整车除霜、除雾性能试验、整车冷起动性能试验、整车采暖及制冷性能试验、组合全光谱阳光模拟检测成套零部件或整车在阳光照射下的实验室加速老化性能。高低温光照综合试验整车…

[ICPC2024 Xi‘an I] ICPC2024 邀请赛西安站(7/8/13)

心得 [ICPC2024 Xian I] ICPC2024 邀请赛西安站重现赛 - 比赛详情 - 洛谷 7表示赛时ac了7个&#xff0c;8表示含补题总共ac数&#xff0c;13表示题目总数 题目 M. Chained Lights 打表&#xff0c;发现只有k1是YES //#include <bits/stdc.h> #include<iostream&…

idea解决“源根之外的java文件“的问题

一&#xff0c;问题 idea编辑器打开一些老Spring项目&#xff0c;会出现项目结构解析不正确&#xff0c;最后整个项目的java文件都无法正常运行&#xff0c;显示“源根之外的java文件”。 二&#xff0c;解决 打开File->项目结构 选中模块&#xff0c;然后在右边选中对应的…

2024年武汉东湖高新中级职称报名时间是什么时候?

2024年武汉市东湖高新中级职称上半年批次报名已经截止了&#xff0c;下半年东湖高新至少还有一次报名机会&#xff0c;所以各位东湖高新区评职称的朋友们&#xff0c;不要错过这次了。 2024年武汉东湖高新区中级职称报名条件&#xff1a; 1.东湖高新区社保满足1年&#xff0c;近…

LayerSkip:加速大模型推理的端到端解决方案

大模型&#xff08;LLMs&#xff09;在多种应用中表现出色&#xff0c;但其高昂的计算和内存需求导致部署成本昂贵&#xff0c;尤其是在GPU服务器上。现有加速方案在部署到普通GPU时往往会导致准确性显著下降&#xff0c;而将大模型&#xff08;LLMs&#xff09;进一步加速以部…

时间复杂度与空间复杂度的计算

空间复杂度 (O(1)) 空间复杂度是衡量算法在运行过程中所需的额外内存空间。(O(1)) 表示算法只需要常量级别的额外空间&#xff0c;不会随着输入数据的大小 (n) 增加而增加。也就是说&#xff0c;无论处理的数据有多大&#xff0c;算法所需的额外内存空间始终是固定的。 对于选…

链表的回文结构的判定(C语言)怎会如此简单!!!

目录 题目思路分析如何找到中间节点如何实现反转链表链表的对比完整代码 题目 链接: 题目 描述&#xff1a; 对于一个链表&#xff0c;请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法&#xff0c;判断其是否为回文结构。 给定一个链表的头指针A&#xff0c;请返回一个…

php反序列化中的pop链

目录 一、什么是POP 二、成员属性赋值对象 例题&#xff1a; 方法一 方法二 三、魔术方法的触发规则 例题&#xff1a; 四、POC的编写 例题1&#xff1a; 例题2 [NISACTF 2022]babyserialize 今日总结&#xff1a; 一、什么是POP 在反序列化中&#xff0c;我们…

Git配置免密登录Github

1、登录 GitHub &#xff0c;点击右上角头像&#xff0c;选中 Settings (设置)。 在 https://github.com 登录你的帐号&#xff0c;登录以后点击右上角你的头像的Settings 如果没有设置&#xff0c;输入下面的指令进行设置&#xff1a; git config --global user.name “用户名…

【启明智显技术分享】sigmastar ssd202d双网口开发板多串口调试说明

提示&#xff1a;作为Espressif&#xff08;乐鑫科技&#xff09;大中华区合作伙伴及sigmastar&#xff08;厦门星宸&#xff09;VAD合作伙伴&#xff0c;我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…

cesium 的初步认识

Cesium是一个基于JavaScript开发的WebGL三维地球和地图可视化库。它利用了现代Web技术&#xff0c;如HTML5、WebGL和WebAssembly&#xff0c;来提供跨平台和跨浏览器的三维地理空间数据可视化。Cesium的主要特点包括&#xff1a; 跨平台、跨浏览器&#xff1a;无需额外插件&am…

4个免费音频转换器:解放您的音频文件格式转换需求

在日常生活和工作中&#xff0c;我们经常需要处理各种音频文件&#xff0c;但有时候这些文件可能并不是我们需要的特定格式。在这种情况下&#xff0c;一个免费的音频转换器就能派上用场。免费音频转换器是一种非常实用的工具&#xff0c;它可以帮助我们将不同格式的音频文件相…