• moonpiedumplings@programming.dev
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    10 hours ago

    See this old but still relevant comment I made on another thread: https://programming.dev/post/11284326/8200514 . TLDR: There are plenty of ways to do it. But you have to do it yourself and it’s not an all in one solution. Users are the easiest part though. Servers are second easiest. Clients are more difficult.

    Further solutions and quick notes since then:

    • Authentik is what I use for shared logins. It supports ldap as well as oidc.
    • Nubus by univention for user management. It’s a wrapper around openldap and keycloak, so it comes with both those in one solution which looks nice
    • Himmelblau is authentication of local desktops via oidc. Maybe not needed but interesting regardless.
    • Firefox has policies: https://support.mozilla.org/en-US/kb/customizing-firefox-using-policiesjson which let you control and enforce certain settings like preinstalled extensions and default settings. You will probably need this for clients.
    • Linux’s Realmd respects some group policies. Not all and it depends, but I’ve discovered it respects some, converting values to analogs. I’m assuming that Red Hat’s freeIPA/389 directory server can serve group policies as well. I don’t know how reliable this is for top down config though.

    I’m going to focus on clients because users and servers are basically solved although you will have to pick and implement a solution.

    If I was in an all linux environment… it depends on how much control I have over the current setup. The best would probably be to push configuration (but that also supports regular pull as well) from the top down to the users, via something like building immutable images or NixOS configs and then shipping them to clients. This would be an all in one solution that comprehensively covers every part of config.

    I do agree with the other user in the thread, that user config management is a bit more difficult. Firefox policies cover the biggest thing, the browser, but the rest is annoying. Nix user config, or home manager config could do it, but hmmm.

    And then the other thing is client security. When it comes to the specific kind of client security that IT environments want, Linux isn’t as ahead. I would really want an alternative AppLocker, or something similar to restrict app execution. I can guess three possible ways to do this:

    • Mounting home directory noexec
    • SELinux
    • Apparmor

    But, I think you would want to restrict software installation and execution. Not just to prevent malware, but having users install proprietary licensed software in an enterprise environment without actually purchase it could quickly turn into a nightmare for everybody.

    edit: ooh, check this out:

    https://talks.nixcon.org/nixcon-2024/talk/R8ZBWW/

    https://clan.lol/docs/25.11/getting-started/creating-your-first-clan

    https://github.com/nix-community/awesome-nix?tab=readme-ov-file#deployment-tools

    Edit2: also check out meshcentral.