Most companies I’ve worked at where employees had a Microsoft work computers. They were under heavy control, even with admin privileges. I was wondering, for a corporate environment, how employees’Linux desktops could be kept under control in a similar way. What would be an open source or Linux based alternative to the following:

  • policy control
  • Software Center with software allow lists
  • controlled OS updates
  • zscaler
  • software detection tool to detect what’s been installed and determine if any unallowed software is present
  • antivirus
  • VPN

I can think of a few things, like a company having it’s own software repos, or using an atomic distribution. There’s already open source VPN solutions if course. But for everything else I don’t really know what could be used or what setup we could have.

  • nyek@lemmy.zip
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    4 months ago

    If you want to deploy Linux in an enterprise scenario properly, the only real option is using RHEL. Red Hat has a product called Satellite which allows for centralized managing of RHEL installs. This includes patch management, security policy monitoring and provisioning. You can also use something like Red Hat IdM to do user management like in AD. It is also basically your only choice if you have to comply with something like HIPAA.

    • Cyborganism@lemmy.caOP
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      Yeah that’s what I was thinking also. And what about SUSE? Could they have something similar?

    • xavier666@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      To add to your comment, there is already a native linux client for ZScalar which my workplace uses. We also use CrowdStrike for EDR, which is also Linux compatible.

    • onlinepersona@programming.dev
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      @cyborganism@lemmy.ca this is RHEL’s business. Probably take a look at their documentation how they do it. Probably Fedora and OpenSuse are kind of downstream from that so they might know how to do so without getting paid service involved, but if you’re looking to do this for your company: Redhat is where to look.

      Anti Commercial AI thingy

      CC BY-NC-SA 4.0

      • nyek@lemmy.zip
        link
        fedilink
        arrow-up
        0
        ·
        4 months ago

        sure but it just does a small part of OP’s requirements and you probably want some continuous monitoring to go along with that and a nice dashboard.

  • driving_crooner@lemmy.eco.br
    link
    fedilink
    arrow-up
    0
    ·
    4 months ago

    There’s a lot of universities using Linux on their pc labs, I guess you can look up how they admin their systems to compare. When I was in college, I had a programming class (R language for actuarial sciences) and the computer had some restrictions, like we couldn’t save anything locally so we had to plug a pendrive to save our scripts and we couldn’t install any library not installed by default.

    • lemmyvore@feddit.nl
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      Unis tend to be a mess because professors and department heads can just say “I don’t want any sysadmin telling me what to do with my machines” and that’s that.

    • MrPoopyButthole@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      A universities desktop environments are not the same risk level of a corporate. All the uni I have seen have trash management. In corpos its a mix of trash and highly polished depending on who is in charge.

  • Hello_there@fedia.io
    link
    fedilink
    arrow-up
    0
    ·
    4 months ago

    Linux noob here… But aren’t there user types? Like admin with install permissions and user type without ? Doesn’t that take care of most of your questions?

    • Cyborganism@lemmy.caOP
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      Not really. I want users with some admin privileges. As someone pointed out, a properly configured sudoers file can allow that with sudo.

      • FigMcLargeHuge@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        ·
        4 months ago

        Most of this would probably be handled by the regular unix permissions and things like sudo access for commands that are needed. You can specify exactly what commands people can run using sudo. You can also make groups so that you can have people that can run certain commands in those groups. As far as default permissions to run files, that would be handled by your path and execute permissions. Same with umask settings. I worked at a large company and to my delight and a lot of windows users dismay, they forced us to have linux laptops for our particular jobs. I loved it, but a lot of people just weren’t happy. I found that I could do everything much easier when I had native tools for working with other unix based machines right there on my desktop.

        • pezhore@lemmy.ml
          link
          fedilink
          arrow-up
          0
          ·
          4 months ago

          Fun fact (that I just took advantage of in a CTF), sudo can also limit command line arguments. If you only want a user to restart a service but not stop it, you can restrict sudo to only

          systemctl restart mysvc.service
          
          • FigMcLargeHuge@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            0
            ·
            4 months ago

            You can also use regex expressions. In our work env, we have specific id’s that are allowed to run certain commands. And only certain people have the ability to “sudo su - [authorized id]”. Then when you are using that id, you have commands you can run specific to the job. Also worth noting, those id’s are set to not allow login. You have to sudo to be able to get to the id.

  • Corngood@lemmy.ml
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    4 months ago

    What is ‘unallowed software’? A shell script the user wrote? Something they downloaded and compiled?

    Limiting that seems fundamentally at odds with FOSS.

    • Cyborganism@lemmy.caOP
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      Granted most open source free software don’t have licenses that limit usage like many commercial software. You might want to keep track of the commercial software. Or look for versions that have important vulnerabilities.

    • timkenhan@sopuli.xyz
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      Could be things to execute. They may run a shell script (source it if they don’t have exec permission), but they won’t have all the previleged commands (definitely no dd)

      • Corngood@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        4 months ago

        Of course not, but you have to either trust your users to some extent or give them a system that’s locked down to the point of hindering them.

  • socphoenix@midwest.social
    link
    fedilink
    arrow-up
    0
    ·
    4 months ago

    Antivirus would probably be clamav.

    As for policy, selinux would be my first Google.

    Software allow lists I’m only going to mention system wide since stopping user space installs or chroots would be your software detection tool that I would be clueless on. System wide I’d look at sudo where you can control exactly what root level commands different users/groups can run.

    • cmnybo@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      0
      ·
      4 months ago

      If you don’t want the user to install software, you can mount any user writable partitions noexec. That will not stop them from running scripts though.

    • progandy@feddit.de
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      Nod32 offers a commercial antivirus for that scenario as well. The consumer variant has been discontinued.

  • Eugenia@lemmy.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    4 months ago

    That list makes me wanna get a job on a small company of up to 10-20 people, where none of these things are usually needed…

  • Avid Amoeba@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    4 months ago

    There’s Zscaler for Linux. We’re using it in our corpo.

    You have to run your software mirror no matter what. Even if it’s a proxy mirror where you don’t actually store most of the packages.

    SELinux/AppArmor for more granular access policies.

    SSSD connects local auth with AD.

    You should look into what your vendor has on offer, e.g. Landscape if you’re on Ubuntu.

    As others have said config-as-code would probably be part of the equation too.

    • ouch@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      Zscaler is corporate spyware. As far as I know, it can log all connections, even ones that don’t go through the Zscaler nodes. It can also act as MITM proxy.

      I’m doubtful about whether it’s (or at least many configurations of it) are legal in EU.

      • calm.like.a.bomb@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        0
        ·
        4 months ago

        I hate zscaler. At my company it’s set up so that it proxies all traffic through it and comes with its own CA certificates, which breaks a lot of things - I can’t install pip packages for python, I can’t clone/work with git repos if they’re on https only. We are used to temporarily disable it to do these things because corporate won’t change the policies.

        • ouch@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          4 months ago

          Sounds like it’s used as a MITM proxy and logs all website URLs you visit. If you live in EU that’s probably illegal.

  • AlexanderESmith@kbin.social
    link
    fedilink
    arrow-up
    0
    ·
    4 months ago

    In no particular order;

    • Detecting “installed” software is iffy. Linux can have all kinds of things running on it that aren’t “installed” as-such (same as Windows with portable EXEs, Linux has AppImage/etc). Excepting things like that, you can detect installed apps through the package managers (apt/pkg/yum/snap/etc).
    • OS updates in Debian-likes and Redhat-likes are controllable out of the box, but I’m not familiar with a way to prevent a user from doing them (other than denying them root access, which might make it hard for them to use the system, depending on what they need to do).
    • I’ve had a lot of good results with OpenVPN.
    • lol antivirus. Not saying Linux doesn’t get viruses, or that there arent antiviruses for Linux, but the best way to avoid getting them is still to just avoiding stupid shit. Best thing I can offer is that if you have some kind of centralized storage, check that for compromised files frequently, and keep excellent backups. And make sure your firewalls and ACLs don’t suck.
    • Skull giver@popplesburger.hilciferous.nl
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      I don’t think many enterprises are even allowed to use workstations without antivirus. There are a whole bunch of security certifications that many industries need to comply with (or have customers that demand compliancy) requiring the use of some kind of up to date antivirus everywhere.

      I think ClamAV in live mode counts, usually, and I don’t think it’s that bad in terms of performance loss (detection rates aren’t great, though).

      • rollingflower@lemmy.kde.social
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        4 months ago

        To get rid of Viruses, simply clean out all executable attachments in mails, mailcow and other solutions support that.

        You can also mount /home nonexecutable, which means everything you can run needs to be on the system. Without that, “control over what is installed” is worthless. You could literally download any package, export the binary and run it from anywhere.

        To run untrusted software, you can use a server that uses something like KASM. It is image-based, accessed through the browser, suppports uploading files and viewing lots of stuff. You can also run antivirus there, but as shown in this video antivirus is often simply tricked by encoding and re-encoding the scripts into something like Base64.

        Antivirus really is flawed. You need to control the origins of code, and run all untrusted code in immutable VMs.

        • Skull giver@popplesburger.hilciferous.nl
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          4 months ago

          “Just don’t let users download viruses” isn’t a workable solution. Eventually you’ll need to open an Excel spreadsheet, and those are all you need to get infected. It doesn’t really matter what the state of the executable bit is if you call sh badware.sh instead of ./badware.sh.

          Also, you can have a company running entirely on plaintext email without attachments, but if you’re not ISO compliant because you don’t run AV, you’re losing customers. Some insurance companies require AV as well, so you would be taking on risk your competitors don’t need to take by going uninsured. In some industries, not running AV is even illegal.

          Antivirus isn’t foolproof, that’s for sure, but it’s also not useless once it’s deployed well. The “well” part is lacking in many companies, unfortunately, and the quality of AV engines on Linux is even worse than on Windows, but that’s no reason not to use it if you are actually competent.

          • rollingflower@lemmy.kde.social
            link
            fedilink
            Deutsch
            arrow-up
            0
            ·
            4 months ago

            Excel sheets can be used without macros, i.e. executable code. Macros can be disabled in Libreoffice afaik, and this is likely possible via some sort of policy.

            These are great things to try out and I want to experiment with it when I have time. For example not sure if policies work with flatpak, as users could be able to change them.

            Antivirus is a joke, for sure you could run it, but it just doesnt work. It would be just there for the compliance, while you simply dont run any code, not even trusted code, that doesnt come from trusted repos like Fedora, Ubuntu or flathub-verified

          • rollingflower@lemmy.kde.social
            link
            fedilink
            arrow-up
            0
            ·
            4 months ago

            If you dont even have a way of running untrusted code on your production environment, how the heck is that worse than badness enumerating AV?

            Insurances…

            • Jesus_666@lemmy.world
              link
              fedilink
              arrow-up
              0
              ·
              4 months ago

              Even if you assume that the software you run will never have exploitable security issues, AV can also keep you from spreading infected files e.g. through forwarded mails.

    • pixxelkick@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      but the best way to avoid getting them is still to just avoiding stupid shit.

      This is fine and dandy on a personal pc, but in a work environment you are now being actively targeted by malicious actors if your company is a good target.

      Constantly.

      So once you are in that zone you do need some fast acting reactive tools that keep watch for viruses.

      • rho50@lemmy.nz
        link
        fedilink
        arrow-up
        0
        ·
        4 months ago

        You can restrict what gets installed by running your own repos and locking the machines to only use those (either give employees accounts with no sudo access, or have monitoring that alerts when repo configs are changed).

        So once you are in that zone you do need some fast acting reactive tools that keep watch for viruses.

        For anti-malware, I don’t think there are very many agents available to the public that work well on Linux, but they do exist inside big companies that use Linux for their employee environments. For forensics and incident response there is GRR, which has Linux support.

        Canonical may have some offering in this space, but I’m not familiar with their products.

        • MrPoopyButthole@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          4 months ago

          The best methods to detect and prevent attacks on your endpoints are EDR software that are linked to your corporate router like FortiEDR, which supports Windows, Mac, Linux, and even some VDI like Citrix.

    • xavier666@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      4 months ago

      other than denying them root access, which might make it hard for them to use the system

      If the user is even slightly knowledgeable, they can’t all protection systems using sudo. That’s a big no-no if you want top-notch security. Source - I have broken my corporate’s Linux-specific protection mechanisms.

      • octopus_ink@lemmy.ml
        link
        fedilink
        English
        arrow-up
        0
        ·
        4 months ago

        If the user is even slightly knowledgeable, they can’t all protection systems using sudo. That’s a big no-no if you want top-notch security. Source - I have broken my corporate’s Linux-specific protection mechanisms.

        I’m not 100% sure I’m getting what you were trying to say in that first sentence, but you realize that not all users have sudo privileges, and if your company left you with sudo that was a mistake, correct?

        • xavier666@lemm.ee
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          4 months ago

          I meant that if a company wants to maintain the highest levels of security, the user should never be given access to sudo. If a certain workflow requires sudo, the workflow needs to be changed, or it needs to be done in a sanitized environment, or the user needs to be highly trusted.

  • Skull giver@popplesburger.hilciferous.nl
    link
    fedilink
    arrow-up
    0
    ·
    4 months ago

    I don’t know any good Linux based centralised policy control the way Windows and MacOS can be managed. There are a few browser settings, but that’s about it, I think. Otherwise, you manage desktops like you manage servers.

    Software center control can be implemented by hosting a local repository with permitted software and denying the ability to add different repositories. Same with OS updates. It’s important to stay on top of updates, though, because partially updating packages can break stuff.

    There are tools out there that will report installed software and certain types of unexpected configurations. They’re mostly oriented around servers as far as I know, but I think they can be used for desktops. Their effectiveness is usually very distro-specific, though.

    For AV you can run Clam or Microsoft Endpoint Security. The latter is much better for a corporate environment, I believe.

    For VPN/RDP there are myriad of options. OpenVPN is pretty popular on Windows and is Linux native. Wireguard is a bit faster on Linux. RDP works well through Reminna, though you’ll need to write some scripts if you want a Citric-like VPN+RDP setup.

    Unfortunately, there’s no way to enforce policies like “only signed executables” or “don’t execute downloaded files”. Best you can do is hope the user won’t figure out how to set the execute bit before AV catches the virus.

    • gaael@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      4 months ago

      For the execution, can’t you configure the fstab with noexec on partitions where the user has write permissions and give the user read-only permissions on the root partition ?

      I think this would be fine for most jobs, the exception being software development where you usually need to execute stuff to test your programs.

      • Skull giver@popplesburger.hilciferous.nl
        link
        fedilink
        arrow-up
        0
        ·
        4 months ago

        That could solve the issue, but there are quite a few writeable locations that updaters and other pieces of software expect to be executable, but are also writeable by nornal users (/tmp for instance).

        You could probably work around all this with SELinux?