赞
踩
Linux 系统安全是系统管理员和 IT 专业人员关注的重点。随着网络安全威胁日益严峻,加固 Linux 系统安全至关重要。本文将深入探讨 SELinux 和 AppArmor 这两款主流的 Linux 安全模块,介绍它们的原理、配置和使用方法,并提供一些实用的示例,帮助你更好地保护 Linux 系统安全。
SELinux (Security-Enhanced Linux) 是一款基于强制访问控制 (MAC) 的安全模块,它允许管理员对系统中的进程、文件和目录进行更精细的访问控制。
在 Ubuntu 上,你可以使用以下命令启用 SELinux:
sudo apt-get update
sudo apt-get install selinux-basics
sudo selinux-activate
在 CentOS 上,SELinux 默认已启用。你可以使用以下命令检查 SELinux 状态:
sudo getenforce
SELinux 使用策略规则来控制访问权限。你可以使用 semanage
命令管理 SELinux 策略。
sudo semanage boolean -l
sudo semanage boolean --modify httpd_enable_homedirs on
SELinux 支持多种模式,包括 enforcing、permissive 和 disabled。
你可以使用 setenforce
命令更改 SELinux 模式。
sudo setenforce 1 # enforcing
sudo setenforce 0 # permissive
以下是一个示例,演示如何使用 SELinux 禁止用户访问其他用户的家目录:
sudo nano /etc/selinux/local/policy.d/disable_home_access.te
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 };
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
AppArmor 是一款基于路径的访问控制 (PBAC) 的安全模块,它允许管理员对应用程序和进程进行更精细的访问控制。
在 Ubuntu 上,AppArmor 默认已启用。你可以使用以下命令检查 AppArmor 状态:
sudo aa-status
在 CentOS 上,你需要安装 AppArmor。
sudo yum install apparmor
sudo systemctl enable apparmor
sudo systemctl start apparmor
AppArmor 使用配置文件定义访问控制规则。配置文件位于 /etc/apparmor.d/
目录。
sudo nano /etc/apparmor.d/myapp
添加以下规则:
#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,
}
sudo apparmor_parser -r /etc/apparmor.d/myapp
AppArmor 支持多种模式,包括 enforcing、complain 和 disabled。
你可以使用 aa-enforce
命令更改 AppArmor 模式。
sudo aa-enforce /etc/apparmor.d/myapp
sudo aa-complain /etc/apparmor.d/myapp
以下是一个示例,演示如何使用 AppArmor 限制 Apache 服务器的访问权限:
sudo nano /etc/apparmor.d/apache2
#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,
}
sudo apparmor_parser -r /etc/apparmor.d/apache2
SELinux 和 AppArmor 是两款强大的 Linux 安全模块,它们可以帮助你加固 Linux 系统安全,防止未经授权的访问和恶意行为。通过学习它们的原理、配置和使用方法,你可以更好地保护 Linux 系统安全,确保其稳定运行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。