Landlock: What Is It?

Landlock is a Linux API that lets applications explicitly declare which resources they are allowed to access. Its philosophy is similar to OpenBSD’s unveil() and (less so) pledge(): programs can make a contract with the kernel stating, “I only need these files or resources — deny me everything else if I’m compromised.”

It provides a simple, developer-friendly way to add defense-in-depth to applications. Compared to traditional Linux security mechanisms, Landlock is vastly easier to understand and integrate.

This post is meant to be an accessible introduction, and hopefully persuade you to give Landlock a try.

  • sga@piefed.social
    link
    fedilink
    English
    arrow-up
    5
    ·
    2 days ago

    A nice article. I need to read more about it, but I will likely use it. My guess on the performance is that there is not going to be any major performance drawback, but since it is runtime, I can not say for sure.

  • JakenVeina@midwest.social
    link
    fedilink
    arrow-up
    16
    ·
    2 days ago

    So, it’s a way for applications to make themselves more hardened against exploitation? Was really confused on first reading the title, but that makes some sense. Applications declare what permissions they need, up-front, so any exploits during normal operation can only operate under that umbrella. Unless the startup processes of the application itself are exploited.

    • The_Decryptor@aussie.zone
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 days ago

      Landrun as well, takes the restrictions on the command line. Can look messy, but does make it entirely standalone, so you can e.g. drop it into a service file as the readme shows easily enough.

      • boredsquirrel@slrpnk.net
        link
        fedilink
        arrow-up
        1
        ·
        7 hours ago

        Thanks, I have to try that!

        I am missing something to isolate my Browser(s) without using Flatpak (as that breaks everything)

  • rycee@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    2 days ago

    I didn’t know about this API and it seems really cool. Will definitely try it out.

  • fruitycoder@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    1 day ago

    Neat. Tbh the app you are securing being the one in charge makes this limited and not a replacement of SELINUX or containers, but it does add some neat features like dynamic controls based on runtime configs that have bit my butt before. So say you set a port or working dir during startup, now it can set landlock to that and the actual process running it will be limited. Very cool still.