.. _landlock:

14.2. 使用Landlock LSM

Landlock是Linux 5.13版本引入的Linux安全模块。它允许应用程序通过默认拒绝策略选择目录访问权限,实现自我沙箱化。

鉴于其特性,Suricata明确知晓自身需要读取和写入文件的位置。因此可以实现高效的Landlock沙箱策略。

Landlock默认不启用,需要在YAML配置中激活。配置会提供合理的默认值(在构建时定义),命令行选项则用于动态添加权限。

请注意Landlock默认处于阻塞模式,生产环境需谨慎测试。

启用Landlock时,编辑YAML将 enabled 设为 yes

landlock:
  enabled: yes
  directories:
    write:
      - /var/log/suricata/
      - /var/run/
    read:
      - /usr/
      - /etc/
      - /etc/suricata/

根据运行配置,您可能需要添加某些目录。可使用两个列表:write 添加需要写入权限的目录,read 添加需要读取权限的目录。

某些发行版中Landlock未激活,您可能需要在启动时通过向Linux命令行添加 lsm=landock 来启用。例如在至少使用linux 5.13的Debian发行版上,可编辑 /etc/default/grub 并更新 GRUB_CMDLINE_LINUX_DEFAULT 选项:

GRUB_CMDLINE_LINUX_DEFAULT="quiet lsm=landlock"

然后执行 sudo update-grub 并重启。

可通过以下命令检查启动时是否运行:

sudo dmesg | grep landlock || journalctl -kg landlock

如需了解更多Landlock信息,可访问 https://docs.kernel.org/userspace-api/landlock.html 作为入门参考。