AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-346653

Thibault Richard's questions

Martin Hope
Thibault Richard
Asked: 2024-02-21 21:50:18 +0800 CST

在单独的文件中创建 apparmor 帽子的正确方法

  • 5

我正在尝试重新加强 LAMP 配置的安全性

在我的配置中,每个网站包含:

  • 一个 Unix 帐户
  • 一个 MySQL 数据库只能通过一个 MySQL 帐户访问
  • 在单独的文件中定义一个 VirtualHost
  • 在单独的文件中定义一个 php-fpm 池

现在我正在尝试使用 apparmor 来重新加强安全性。

我从 php-fpm 的配置文件开始。

我的想法是为每个 php-fpm 池提供一个通用的 php-fpm 配置和一个特定的配置。

据我了解,通用配置是一个配置文件,具体配置应定义为 aa hat。

我想在单独的文件中定义这个特定的帽子配置。

在抱怨模式下,一切似乎都有效(至少当我使用命令aa-logprof时我什么也没有)

我就是这样做的

让我们考虑一个站点https://www.test.com,它有一个 Linux 用户“test”和一个 php-fpm 池“test.conf”

1° 在 php-fpm 池/etc/php/8.1/fpm/pool.d/test.conf中,我添加了这个来定义一个名为 test 的帽子

apparmor_hat = test

2° 我已将全局规则定义到/etc/apparmor.d/php-fpm中。这是我为在单独的文件中启用帽子而所做的配置

include if exists <php-fpm.d>
...
signal send peer=php-fpm//*,
signal send set=quit peer=php-fpm//**,
signal send set=kill peer=php-fpm//**,
signal send set=term peer=php-fpm//**,
...
change_profile -> php-fpm//**,

3° 我的测试帽已被定义到/etc/apparmor.d/php-fpm.d/test中,如下所示

   ^test flags=(complain,attach_disconnected) {
    /var/run/php/php-fpm-test.sock rwlk,
    /var/log/php-fpm/test.access.log rw,
    ...
    deny /var/www/** r,
    owner /home/test/www/** rw,
  }

当我尝试传递到强制模式时,我的帽子似乎没有考虑我在主 apparmor配置文件/etc/apparmor.d/php-fpm中定义的规则

这是我的第一个 apparmor 个人资料,我已经按照我所理解的方式制作了它。

我不知道我错过了什么。我是否错过了最佳实践?

编辑

我发现我可以将主配置文件置于强制模式。

我遇到的问题仅是当我将帽子置于强制模式下并尝试重新启动 php 服务时

在这种情况下,我看到以下错误消息

php8.1-fpm.service: Failed to kill control group /system.slice/php8.1-fpm.service, ignoring: Permission denied
php
  • 1 个回答
  • 63 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve