首页 > 其他分享 >10、系统安全及应用

10、系统安全及应用

时间:2024-06-06 13:01:12浏览次数:27  
标签:10 sudo 系统安全 文件 账号 用户 命令 应用 root

1、账号安全

用户的账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。

1.1 系统账号清理

在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户root之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登陆的,因此也称为非登录用户账号。

  • 注:常见的非登录用户账户包括bin、daemon、adm、lp、mail等,为了确保系统安全,这些用户账号的登录Shell通常是/sbin/nologin——表示禁止终端登录,应确保不被人为改动。
  • 使用useradd去创建一个账户的时候,使用-s,可以指定用户的登录Shell。默认情况下在创建账户的时候为用户分配的是/bin/bash环境,使用-s可指定一个nologin的环境,命令是:useradd aaa -s /sbin/nologin。
  • (用nologin的环境创建出来的账号,这样的环境会使得该用户无法执行任何的指令,并且它连登系统都登不进去)

所以对于程序用户来讲,通常我们在创建用户的时候会给它指定一个nologin的环境。

  • 对于那些临时不用的账号,我们要使用usermod -L命令给它锁定起来,锁定之后该账号是不能登系统的,

在各种非登录用户账号中,还有相当一部分是很少用到的,如games。这些用户账户可以被视为冗余账号,直接删除即可。另外,还有一些随应用程序安装的用户账户,若卸载程序后未能自动删除,则需要管理员手动进行清理。

对于那些在Linux服务器中长期不用的用户账户,若无法确定是否应该删除,可以暂时将其锁定。例如,下图中是锁定、解锁名为zhangsan的用户账号(passwd、usermod命令都可以用来锁定、解锁账号):

如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。

使用chattr命令,分别结合+i、-i选项来锁定、解锁文件,使用lsattr命令可以查看文件的锁定情况,如下图:

注:

  • chattr命令是为文件添加特殊权限用的,i只是这些特殊权限中的一种。
  • chattr命令中有两个属性只能由root用户来给它设置,一个是i(锁定文件)的属性,另一个是a的属性。

当设置+a属性后,文件只能增加数据,既不能删除也不能修改数据,只有root才能设置这个属性。(用lsattr命令可以查看文件的属性)如下图是为text.txt添加一个a的属性:

chattr的属性:

  • 设置c属性后,会自动将文件压缩,在读取时自动解压缩。

lsattr命令可以查看文件的特殊属性,如下图,第二个文件就有特殊的属性:

lsattr(显示文件隐藏属性)命令的选项有:

注:用lsattr命令查看目录的属性时,会显示出该目录的一级子目录和子文件。

-a:将隐藏文件的属性也显示出来

-d:如果接的是目录,仅列出目录本身的属性而不是目录内的文件名

-R:连同子目录的数据也显示出来

补充:如下图,使用echo命令回显出aaa这个字符串,然后把他放置在test.txt这个文件里(单个大于号是覆盖的意思,即不管你现在的文件里有多少东西,我只要用覆盖的指令就会完全替代文件中的内容,即文件里现在就只剩aaa了):

系统会提示:不允许这样的操作。

如果还是用echo这个命令,后面使用两个大于号(双个大于号本身就是一种追加的操作,即在文件的末尾追加aaa的内容):

不要用vi编辑器打开去改内容,要用echo的命令去编辑文件内容。因为用vi编辑器那不是改,是编辑。

  • 在账号文件被锁定的情况下,其内容将不允许变更,因此无法添加、删除账号,也不能更改用户的密码、登录Shell、宿主目录等属性信息。如下图:

2、密码安全

为了降低密码被猜出或被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码。

注:所设置的密码策略,对root管理员是无效的。

chage命令用于设置密码时限,执行以下操作可将密码的有效期设为30天:

例如执行下图中的命令可强制要求用户zhangsan下次登陆时重设密码:

3、命令历史、自动注销

Shell环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意中服务器的安全壁垒又多了一个缺口。

在Bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改/etc/profile文件中的HISSIZE变量值,可以影响系统中的所有用户。如下图,可以设置最多只记录200条历史命令:

除此之外,还可以修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。这样一来,当用户退出已登录Bash环境后,所记录的历史命令将自动清空:

注:在Bash终端环境中,还可以设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终端,这样可以避免当管理员不在时其他人员对服务器的误操作风险(限制超时由变量TMOUT来控制,默认单位为秒s):

4、用户切换与提权

Linux系统为我们提供了su、sudo两种命令,其中su命令主要用来切换用户,而sudo命令来提升执行权限。

4.1 su命令——切换用户

使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。(切换时需要对目标用户的密码进行验证,从root用户切换为其他用户时除外)。

例如当前登录的用户为jerry,若要切换为root用户,可执行下图中的命令:

注:在上图中的命令中,选项-等同于--login或-l——表示切换用户后进入目标用户的登录Shell环境(若缺少此选项,则仅切换身份,不切换用户环境)

对于切换为root用户的情况,“root”可以省略。

默认情况下,任何用户都可以使用su命令,从而有机会反复尝试其他用户的登陆密码,这样就带来了安全风险。可以借助于pam_wheel认证模块,加强对su命令的使用控制,只允许极个别用户使用su命令进行切换。如下图中,将授权使用su命令的用户添加到wheel组,修改/etc/pam.d/su认证配置以启用pam_wheel认证:

注:使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中,可以根据需要进行查看。

启用pam_wheel认证后,未加入到wheel组内的其他用户将无法使用su命令,尝试进行切换时将提示“拒绝权限”,从而将切换用户的权限控制在最小范围内。

4.2 PAM安全认证

PAM安全认证是当前Linux服务器普遍使用的认证方式,PAM认证一般遵循的顺序是:

Service(服务)、PAM(配置文件)、pam_*.so

注:PAM文件在/etc/pam.d,这里面放置的都是你的PAM认证文件,PAM认证文件其实就是用户在使用你系统里面的各种命令的时候,你在执行各种指令的时候是否有权限使用该指令。如下图列出的就是PAM文件:

上图中的system-auth——是系统的认证文件,用vim编辑器打开该文件之后,与操作系统登陆有关的这些密码相关的策略,就在这里头设置着的。

如果想查看某个程序是否支持PAM认证,可以用ls命令查看,例如执行以下命令可以查看su是否支持PAM模块认证:

4.3 sudo命令——提升执行权限

通过su命令可以非常方便地切换为另一个用户,但前提条件是必须知道root用户的密码。

使用sudo命令就可以提升执行权限,但要需要由管理员预先进行授权,指定允许哪些用户以超级用户地身份来执行哪些命令。

(1)在配置文件/etc/sudoers中添加授权

sudo机制的配置文件为/etc/sudoers,文件的默认权限是440,需要使用专门的visudo工具进行编辑。

注:虽然也可以使用vi进行编辑,但保存时必须使用:w!命令来强制操作,否则系统将提示为只读文件而拒绝保存。

(2)通过sudo执行特权命令

特权命令通常位于/sbin、/usr/sbin等目录下,普通用户执行时应使用绝对路径。对于已获得授权的用户,通过sudo方式执行特权命令时,只需要将正常的命令作为sudo命令的参数即可。

例如,执行下图中的命令可查看用户自己获得哪些sudo授权(其中未授权的用户将会得到may not run sudo的提示):

如果已经启用sudo日志,则可以从/var/log/sudo文件中看到用户的sudo操作记录:

5、系统引导和登录控制

5.1 限制更改GRUB引导参数

通过修改GRUB引导的参数,可以对一些系统问题进行修复。但是从安全的角度看,如果任何人都能够修改GRUB引导参数,对服务器本身显示是一个极大的威胁,那么为了加强对引导过程的安全控制,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

如下图所示命令中,可以为GRUB菜单设置密码,

生成密码后在/etc/grub.d/00_header配置文件中添加对应的用户、密码等配置:

然后使用grub2_mkconfig命令生成新的grub.cfg配置文件:

通过上述的配置,当重新开机进入GRUB菜单时,按E键将无法修改引导参数,若要获得编辑权限,必须根据提示输入正确的GRUB密码,如下图:

5.2 终端及登录控制

(1)进制root用户登录

在Linux服务器中,默认开启了6个tty终端,允许任何用户进行本地登录。

若要禁止root用户从指定的终端登录,只需要从该文件中删除或者注释掉对应的行即可。如下图,若要禁止root用户从tty5、tty登录,可以修改/etc/securetty文件,将tty、tty6行注释掉:

(2)禁止普通用户登录

如果当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登陆系统。这时候只需要简单的建立/etc/nologin文件即可,login程序会检查/etc/nologin文件是否存在,如果存在,则拒绝普通用户登录系统(root用户不受限制),如下图:

标签:10,sudo,系统安全,文件,账号,用户,命令,应用,root
From: https://blog.csdn.net/2401_85163870/article/details/139486183

相关文章

  • CSP历年复赛题-P2010 [NOIP2016 普及组] 回文日期
    原题链接:https://www.luogu.com.cn/problem/P2010题意解读:计算两个日期之间有多少个日期是回文。解题思路:如果通过枚举两个日期之间的所有日期,然后判断回文,则会有几个问题:枚举数据规模在10^7级别,再加上对于日期加一天、判断回文等处理,有可能超时,而且对日期进行加一天、判断回......
  • CountDownLatch 应用场景
    CountDownLatch倒计数器,是多线程并发时使用的类。主要有2个应用场景:协调子线程结束和子线程开始场景1:协调子线程结束,等待所有子线程结束countDown()执行多次-》await()执行一次例如:组织4个人开会,所有人员都到齐就开始publicclassCountDownLatchTest1{publicst......
  • 「漏洞复现」Apache OFBiz 路径遍历漏洞(CVE-2024-36104)
    0x01 免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需......
  • 【机器学习300问】108、什么是多项式回归模型?
    一、多项式回归是什么(1)举例说明        假设你经营着一家农场,想要根据土地面积来预测作物的产量。如果你只用线性模型(即),你可能会发现它并不足以描述实际的产量情况,因为实际产量可能会随着土地面积的增加而经历先快速增加然后趋于平缓的过程。线性回归模型......
  • C#开源实用的工具类库,集成超过1000多种扩展方法
    https://www.cnblogs.com/Can-daydayup/p/18230586今天大姚给大家分享一个C#开源(MITLicense)、免费、实用且强大的工具类库,集成超过1000多种扩展方法增强.NETFramework和.NETCore的使用效率:Z.ExtensionMethods。直接项目引入类库使用在你的对应项目中NuGet包管理器中搜索......
  • CF1007B 题解
    CF1007B思路显然题目要求计数\(u\midA,v\midB,w\midC\)。\(O(n\sqrtn)\)预处理出每个数的所有因数,记为集合\(p_i\)。容斥,记集合\(a,b,c,ab,ac,bc,all\)为\(p_A,p_B,p_C,p_A\capp_B,p_A\capp_A,p_B\capp_C,p_A\capp_B\capp_C\)。可以用bitset维护交集。首先加......
  • 高效论文生成:AI工具在学术写作中的应用与优势
    在学术探索的征途中,AI论文工具本应是助力前行的风帆,而非让人陷入困境的漩涡。我完全理解大家在面对论文压力的同时,遭遇不靠谱AI工具的沮丧与无奈。毕竟,时间可以被浪费,但金钱和信任却不可轻弃。作为一名资深的AI工具探索者,我在此分享一些经过我亲自验证、值得信赖的AI论文辅助......
  • AI写作时代:AI论文工具的高效应用指南
    众所周知,写论文是一项极其耗时间的事情,从开始的选题到文献资料搜索查阅,大纲整理等等一大堆的繁杂工作是极艰辛的。用AI写论文就不一样了,自动化生成文本为你节省了大量时间。优秀的AI工具生成的论文非常完备,能提供摘要、参考文献、致谢等材料参考,而且还查重率低,在5%左右。总体来......
  • 论文AI痕迹减少:AI工具在学术写作中的应用
    告诉大家一个非常残忍的答案,以后所有论文都会被查ai的。在考虑使用AI撰写学术论文的便捷性时,你可能会问:学术界难道没有预见到这种行为吗?答案是肯定的。学术界不仅关注传统的抄袭问题,还针对AI生成内容(AIGC)增加了一项名为“AIGC检测”的指标。这一检测的目的,正是为了识别和惩处......
  • Poll机制实现以及应用实例
    目录poll机制概要说明测试程序:驱动程序:poll机制概要说明Linux系统中的poll 机制是一种I/O多路复用技术,它允许程序同时监控多个文件描述符(filedescriptors),以确定哪些文件描述符已经准备好进行读取、写入或出现错误。poll 机制提供了一种高效的方式来处理并发的I/O......