.. _landlock: Using Landlock LSM ================== Landlock is a Linux Security Module that has been introduced in Linux 5.13. It allows an application to sandbox itself by selecting access right to directories using a deny by default approach. Given its nature, Suricata knows where it is going to read files and where it is going to write them. So it is possible to implement an efficient Landlock sandboxing policy. Landlock is not active by default and needs to be activated in the YAML configuration. Configuration should come with sane default (defined at build time) and the command line options are used to dynamically add some permissions. Please note that Landlock is in blocking mode by default so careful testing is needed in production. To enable Landlock, edit the YAML and set ``enabled`` to ``yes``: :: landlock: enabled: yes directories: write: - /var/log/suricata/ - /var/run/ read: - /usr/ - /etc/ - /etc/suricata/ Following your running configuration you may have to add some directories. There are two lists you can use, ``write`` to add directories where write is needed and ``read`` for directories where read access is needed. Landlock is not active in some distributions and you may need to activate it at boot by adding ``lsm=landock`` to the Linux command line. For example, on a Debian distribution with at least a linux 5.13, you can edit ``/etc/default/grub`` and update the ``GRUB_CMDLINE_LINUX_DEFAULT`` option: :: GRUB_CMDLINE_LINUX_DEFAULT="quiet lsm=landlock" Then run ``sudo update-grub`` and reboot. You can check at boot if it is running by doing: :: sudo dmesg | grep landlock || journalctl -kg landlock If you are interested in reading more about Landlock, you can use https://docs.kernel.org/userspace-api/landlock.html as entry point.