当前位置:   article > 正文

Linux 系统安全加固:深入 SELinux 与 AppArmor_linux apparmor

linux apparmor

Linux 系统安全加固:深入 SELinux 与 AppArmor

Linux 系统安全是系统管理员和 IT 专业人员关注的重点。随着网络安全威胁日益严峻,加固 Linux 系统安全至关重要。本文将深入探讨 SELinux 和 AppArmor 这两款主流的 Linux 安全模块,介绍它们的原理、配置和使用方法,并提供一些实用的示例,帮助你更好地保护 Linux 系统安全。

1. SELinux

SELinux (Security-Enhanced Linux) 是一款基于强制访问控制 (MAC) 的安全模块,它允许管理员对系统中的进程、文件和目录进行更精细的访问控制。

1.1 启用 SELinux

在 Ubuntu 上,你可以使用以下命令启用 SELinux:

sudo apt-get update
sudo apt-get install selinux-basics
sudo selinux-activate
  • 1
  • 2
  • 3

在 CentOS 上,SELinux 默认已启用。你可以使用以下命令检查 SELinux 状态:

sudo getenforce
  • 1

1.2 配置 SELinux

SELinux 使用策略规则来控制访问权限。你可以使用 semanage 命令管理 SELinux 策略。

1.2.1 查看当前策略
sudo semanage boolean -l
  • 1
1.2.2 启用/禁用策略
sudo semanage boolean --modify httpd_enable_homedirs on
  • 1

1.3 SELinux 模式

SELinux 支持多种模式,包括 enforcing、permissive 和 disabled。

  • enforcing:SELinux 正常工作,强制执行策略规则。
  • permissive:SELinux 不强制执行策略规则,但记录违规行为。
  • disabled:禁用 SELinux。

你可以使用 setenforce 命令更改 SELinux 模式。

sudo setenforce 1  # enforcing
sudo setenforce 0  # permissive
  • 1
  • 2

1.4 示例

以下是一个示例,演示如何使用 SELinux 禁止用户访问其他用户的家目录:

  1. 创建一个新的 SELinux 策略文件:
sudo nano /etc/selinux/local/policy.d/disable_home_access.te
  • 1
  1. 添加以下规则:
module disable_home_access 1.0;

require {
    type user_home_dir_t;
    type user_t;
    class dir { read write };
}

# Deny access to other users' home directories
dontaudit user_t user_home_dir_t:dir { read write };
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. 编译并加载策略:
sudo checkmodule -M -m -o disable_home_access.mod disable_home_access.te
sudo semodule_package -o disable_home_access.pp -m disable_home_access.mod
sudo semodule -i disable_home_access.pp
  • 1
  • 2
  • 3

2. AppArmor

AppArmor 是一款基于路径的访问控制 (PBAC) 的安全模块,它允许管理员对应用程序和进程进行更精细的访问控制。

2.1 启用 AppArmor

在 Ubuntu 上,AppArmor 默认已启用。你可以使用以下命令检查 AppArmor 状态:

sudo aa-status
  • 1

在 CentOS 上,你需要安装 AppArmor。

sudo yum install apparmor
sudo systemctl enable apparmor
sudo systemctl start apparmor
  • 1
  • 2
  • 3

2.2 配置 AppArmor

AppArmor 使用配置文件定义访问控制规则。配置文件位于 /etc/apparmor.d/ 目录。

2.2.1 创建 AppArmor 配置文件
sudo nano /etc/apparmor.d/myapp
  • 1

添加以下规则:

#include <tunables/global>

profile myapp {
  #include <abstractions/base>

  # Allow read/write access to /etc/myapp
  /etc/myapp/ r,
  /etc/myapp/** rwk,

  # Allow read-only access to /usr/share/myapp
  /usr/share/myapp/ r,
  /usr/share/myapp/** rk,
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
2.2.2 加载 AppArmor 配置文件
sudo apparmor_parser -r /etc/apparmor.d/myapp
  • 1

2.3 AppArmor 模式

AppArmor 支持多种模式,包括 enforcing、complain 和 disabled。

  • enforcing:AppArmor 正常工作,强制执行规则。
  • complain:AppArmor 不强制执行规则,但记录违规行为。
  • disabled:禁用 AppArmor。

你可以使用 aa-enforce 命令更改 AppArmor 模式。

sudo aa-enforce /etc/apparmor.d/myapp
sudo aa-complain /etc/apparmor.d/myapp
  • 1
  • 2

2.4 示例

以下是一个示例,演示如何使用 AppArmor 限制 Apache 服务器的访问权限:

  1. 创建一个新的 AppArmor 配置文件:
sudo nano /etc/apparmor.d/apache2
  • 1
  1. 添加以下规则:
#include <tunables/global>

profile apache2 {
  #include <abstractions/apache2>

  # Allow read/write access to Apache configuration files
  /etc/apache2/** rwk,

  # Allow read/write access to Apache logs
  /var/log/apache2/** rwk,

  # Allow read/write access to Apache modules
  /usr/lib/apache2/modules/** rk,
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  1. 加载 AppArmor 配置文件:
sudo apparmor_parser -r /etc/apparmor.d/apache2
  • 1

3. 总结

SELinux 和 AppArmor 是两款强大的 Linux 安全模块,它们可以帮助你加固 Linux 系统安全,防止未经授权的访问和恶意行为。通过学习它们的原理、配置和使用方法,你可以更好地保护 Linux 系统安全,确保其稳定运行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/811812
推荐阅读
相关标签
  

闽ICP备14008679号