机械网站建设中心,做网站空间会招攻击,本科自考哪个专业比较好考,外贸网站设计多少钱前言
本文将从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面#xff0c;深入探索其工作原理和使用方法。在当今数字化时代#xff0c;网络安全问题备受关注#xff0c;Linux作为广泛应用的操作系统之一深入探索其工作原理和使用方法。在当今数字化时代网络安全问题备受关注Linux作为广泛应用的操作系统之一其安全性至关重要。无论你是Linux系统的初学者还是资深管理员本文都将为你提供宝贵的经验和启发帮助你在保护网络安全的道路上行稳致远。
Linux
Linux 是一种开源的类Unix操作系统内核由Linus Torvalds在1991年首次发布其后又衍生出许多不同的发行版如Ubuntu、Debian、CentOS等。Linux操作系统则是由Linux内核与各种应用程序、工具和库组成的完整操作系统在其众多的特性中Linux以其稳定性和安全性而闻名这首先得益于开源社区的广泛参与和持续改进其次就是Linux优秀的安全机制这些保证了其能够提供一个高度稳定和安全的运行环境事实上在服务器领域、嵌入式系统、超级计算机等多个领域也得到了广泛应用并拥有庞大的用户群体和开发者社区。
下面将通过两篇文章来从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面和大家分享一下其工作原理和使用方法
《从原理到实践深入探索Linux安全机制一-CSDN博客》
《从原理到实践深入探索Linux安全机制二-CSDN博客》
用户和权限管理
Linux系统使用用户和组的概念来管理文件和系统资源的访问权限。其主要原理也很简单可以从下面几个方面来理解
用户
在 Linux 系统中每个用户都有一个唯一的用户名和用户 IDUser ID用于标识用户身份。用户可以属于一个或多个用户组每个用户组也有一个唯一的组名和组 ID。
权限
每个文件和目录都有属主Owner、所属组Group和其他用户Others的权限设置。权限通常包括读r、写w和执行x权限。这些权限分别表示对文件的读取、写入和执行操作的权限。另外每个权限位也可以用一个数字来表示分别对应读4、写2和执行1权限。
权限位
Linux 中使用权限位来表示文件或目录的权限。每个文件或目录有 9 个权限位分为 3 个部分属主权限、所属组权限和其他用户权限。每个部分包括读r、写w和执行x权限。
权限控制
当用户访问文件或目录时系统会根据用户的身份用户 ID、文件的权限位和用户所属的组来确定是否允许特定操作。只有拥有相应权限的用户或组成员才能对文件进行读取、写入或执行操作。
特殊权限
除了基本的读写执行权限外还有一些特殊权限如 SetUID、SetGID 和粘着位Sticky Bit。这些特殊权限可以影响文件或目录的执行方式例如在执行文件时临时提升用户权限或确保只有文件所有者才能删除文件。
文件系统权限
从我个人的理解来看文件系统权限应该属于Linux用户和权限管理的一部分但我更愿意把它单独拿出来理解因为理解的角度不一样侧重重点也不同。
在用户和权限管理中更多侧重于用户和权限。在这里更多侧重于文件和权限。虽然角度不同但是描述的是同一件事这是确定的。
Linux 文件系统权限的工作原理主要涉及文件的所有者、所属组和其他用户对文件的访问控制其基本工作原理也比较简单
文件属性
每个文件和目录在 Linux 系统中都有一个唯一的所有者Owner和所属组Group。此外还有其他用户Others对该文件的访问权限。这些属性由文件系统存储并且与文件的元数据一起保存。
权限位
每个文件和目录都有 9 个权限位分为 3 个部分属主权限、所属组权限和其他用户权限。每个部分包括读r、写w和执行x权限。这些权限位决定了不同用户对文件的操作权限。另外每个权限位也可以用一个数字来表示分别对应读4、写2和执行1权限。
访问控制
当用户尝试访问某个文件时系统会根据用户的身份用户 ID、文件的权限位和用户所属的组来判断是否允许特定操作。如果用户是文件的属主或具有适当的权限系统将允许他们进行读取、写入或执行操作。
特殊权限
除了基本的读写执行权限外还有一些特殊权限如 SetUID、SetGID 和粘着位Sticky Bit。这些特殊权限可以影响文件或目录的执行方式例如在执行文件时临时提升用户权限或确保只有文件所有者才能删除文件。
关于用户和权限管理有两个命令是必须得掌握的这两个命令就是chmod和chown。
1、在 CentOS 7 中chmod 命令用于修改文件或目录的权限。
使用方式
chmod [选项] 权限模式 文件/目录
常用选项
-R递归地修改文件夹及其子文件夹的权限。-v显示每个修改后的文件/目录的权限。
权限模式
可以使用数字或符号来指定权限模式。
数字模式数字模式使用三位数每一位表示一个权限组所有者、所属组、其他用户其中每一位的值为 4读权限、2写权限和 1执行权限的组合。例如755 表示所有者具有读、写和执行权限所属组和其他用户具有读和执行权限。符号模式符号模式使用类似于 urwx、grw、o-x 的格式来指定权限。u 代表所有者g 代表所属组o 代表其他用户 表示添加权限- 表示移除权限r 表示读权限w 表示写权限x 表示执行权限。例如chmod urwx file.txt 表示给文件 file.txt 的所有者添加读、写和执行权限。
示例
将文件 file.txt 的所有者和所属组的权限设置为读写其他用户无权限
chmod 660 file.txt
将文件夹 dir 及其子文件夹的所有者、所属组和其他用户的权限设置为读写执行
chmod -R 777 dir
给文件 script.sh 的所有用户添加执行权限
chmod ax script.sh
给文件 file.txt 的所有者和所属组添加读权限其他用户移除所有权限
chmod ur,gr,o-rwx file.txt
2、在 CentOS 7 中chown 命令用于修改文件或目录的所有者。
使用方式
chown [选项] 新所有者 文件/目录
常用选项
-R递归地修改文件夹及其子文件夹的所有者。-v显示每个修改后的文件/目录的所有者。
示例
将文件 file.txt 的所有者修改为 fanfu
chown fanfu file.txt
将目录 dir 及其子目录的所有者修改为 fanfu同时显示修改过程
chown -Rv fanfu dir
将文件 file.txt 的所有者和所属组修改为 fanfu 和 yzxa
chown fanfu:yzxa file.txt
chmod 和 chown 是两个在 CentOS以及其他 Linux 发行版中常用的命令用于修改文件或目录的权限和所有者功能上很相近但是还是有区别的
chmod 命令
作用chmod 命令用于修改文件或目录的权限。使用方式chmod 命令后面跟着权限模式和要修改权限的文件或目录路径。权限模式可以使用数字例如 755或符号例如 urwx来指定权限模式。数字模式数字模式使用三位数每一位表示一个权限组所有者、所属组、其他用户其中每一位的值为 4读权限、2写权限和 1执行权限的组合。例如755 表示所有者具有读、写和执行权限所属组和其他用户具有读和执行权限。符号模式符号模式使用类似于 urwx、grw、o-x 的格式来指定权限。u 代表所有者g 代表所属组o 代表其他用户 表示添加权限- 表示移除权限r 表示读权限w 表示写权限x 表示执行权限。
chown 命令
作用chown 命令用于修改文件或目录的所有者。使用方式chown 命令后面跟着新的所有者和要修改所有者的文件或目录路径。所有者可以使用用户名或用户 IDUID来指定新的所有者。
总的来看chmod 用于修改文件或目录的权限而 chown 用于修改文件或目录的所有者。它们是不同的命令用途和参数也不同。在实际应用中我们可以根据需要选择使用 chmod 或 chown 来对文件或目录进行相应的权限和所有者的修改操作。
SELinux
SELinuxSecurity-Enhanced Linux和 AppArmor 都是用于强化 Linux 系统安全性的安全模块它们提供了额外的安全层来限制程序和进程的权限以减少系统受到恶意攻击的风险。
它是由美国国家安全局NSA开发的安全模块旨在提供强大的访问控制机制通过强制访问控制MAC实现对系统资源的细粒度控制。SELinux基于安全策略规则可以限制程序、进程和用户对文件、网络资源以及其他系统资源的访问权限从而减少潜在的安全漏洞。SELinux的灵活性很高但配置和管理相对复杂想要熟练掌握有一定难度。然而这并妨碍你来了解它如果在使用Linux系统中遇到一些棘手的问题这个地方也是一个排查方向。
这里可以先从以下几个方面来理解一下SELinux的工作原理
安全策略
SELinux 使用安全策略来定义系统资源和对象之间的访问规则。这些安全策略由 SELinux 策略库Policy管理其中包括了对文件、进程、网络端口等各种资源的访问规则定义以及用户角色和安全上下文等信息。
安全上下文
在 SELinux 中每个对象如文件、进程都有一个安全上下文用于描述该对象的安全属性。安全上下文由标签表示包括了对象的类型Type、角色Role和用户User等信息。这些安全上下文决定了对象可以执行的操作和被允许的访问权限。
强制访问控制
SELinux 引入了强制访问控制MAC通过强制执行安全策略来限制系统资源的访问。即使用户具有足够的权限如 root也无法绕过 SELinux 对资源的访问控制。这种强制控制确保了系统的安全性减少了恶意软件和攻击的影响范围。
安全上下文转换
当进程或程序尝试访问某个资源时SELinux 会根据安全上下文进行访问权限的检查。如果需要访问的资源与进程的安全上下文不匹配SELinux 可能会进行安全上下文的转换以确保访问的合法性。
日志和审计
SELinux 提供了完善的日志和审计功能可以记录系统中发生的安全事件和违反安全策略的行为。这些日志信息对于系统管理员来说是非常有价值的可以帮助其监控系统的安全状况并及时采取措施应对潜在的安全威胁。
以我个人经验来看在日常工作来说SELinux的安全策略管理是一个非常重要的地方之前在搭建vsftp服务的时候遇到的问题就是vsftp的配置正常但是无法实现匿名用户的访问、文件上传经过排查发现原因是SELinux的安全策略中允许匿名用户写入的权限是关闭的后来把这个权限打开问题迎刃而解。因此我觉得如果能够掌握SELinux安全策略的基本管理还是比较实用的。这里就给大家分享一下SELinux安全策略管理常用工具和命令的用法
1、sestatus
sestatus命令可以查看当前 SELinux 的状态和基本信息包括是否启用、当前模式等。
sestatus sestatus输出信息的解读
ELinux status: enabled
SELinux 状态为启用这表示 SELinux 安全模块已经启用并正在系统中运行。
SELinuxfs mount: /sys/fs/selinux
SELinux 文件系统挂载点的路径为 /sys/fs/selinux这是 SELinux 内核文件系统所在的路径。
SELinux root directory: /etc/selinux
SELinux 根目录的路径为 /etc/selinux这是 SELinux 配置文件等相关文件存放的位置。
Loaded policy name: targeted
加载的策略名称为 targeted这表示系统当前使用的是针对特定应用的 SELinux 策略。
Current mode: enforcing
当前 SELinux 模式为强制执行enforcing这意味着 SELinux 将强制执行安全策略对违反规则的操作进行限制。
Mode from config file: enforcing
从配置文件中设置的 SELinux 模式也是强制执行enforcing这说明系统会在重启后继续以强制执行模式运行。
Policy MLS status: enabled
策略 MLS 状态为启用这表示多级安全策略MLS功能在 SELinux 中是启用的。
Policy deny_unknown status: allowed
deny_unknown 策略状态为允许allowed这表示 SELinux 允许对未知进程进行访问控制。
Max kernel policy version: 31
最大内核策略版本号为 31这是指内核支持的 SELinux 策略的最大版本号。
2、getenforce
getenforce命令可以查看 SELinux 的强制模式Enforcing、警告模式Permissive或禁用模式Disabled。 3、semanage
semanage命令可以查询和管理 SELinux 策略中的各种对象如端口、用户、登录名等。比如查询ftp服务相关的布尔值是否处于打开状态这里多解释一下在 SELinux 安全策略中布尔值Boolean是一种用于控制特定安全策略行为的开关变量。通过设置这些布尔值可以启用或禁用特定的安全策略规则从而调整系统的访问控制行为。
semanage boolean -l | grep ftp
如果semanage指令执行错误可以是未安装SELinux管理工具包执行下面的指令进行相关工具包安装安装后再次执行上述命令
sudo yum install policycoreutils
4、setsebool
setsebool 用于设置或修改 SELinux 的布尔值Boolean。布尔值通常以 on 或 off 的形式存在用于表示某个特定的安全功能或行为是否启用。通过 setsebool你可以启用或禁用特定的 SELinux 布尔值从而调整系统的访问控制行为。
比如允许vsftpd服务匿名用户写入
setsebool -P ftpd_anon_write on
其中-P 参数表示永久性地修改该布尔值而不仅仅是临时性地修改。
5、getsebool
用于查看 SELinux 布尔值的状态。比如查询允许vsftpd服务匿名用户写入的布尔值
getsebool ftpd_anon_write
写在最后
非常感谢你能耐心看完我的这篇文章希望我的分享对你有所帮助。当然如果你觉得这篇文章对你有所帮助不妨点击点赞按钮让更多的人看到这篇优质的技术分享。同时别忘了将这篇文章收藏起来也方便日后再次查阅。