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.

  • AlexanderESmith
    link
    fedilink
    203 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.
    • @pixxelkick@lemmy.world
      link
      fedilink
      253 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.

      • AlexanderESmith
        link
        fedilink
        63 months ago

        Didn’t say it was the only way, just the best way. Most effective attacks are still against humans, not computers.

      • @rho50@lemmy.nz
        link
        fedilink
        03 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
          33 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.

      • @rollingflower
        link
        6
        edit-2
        3 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.

          • Richard
            link
            fedilink
            English
            13 months ago

            The correct way to call bash scripts is through bash, e.g.

            bash badware.sh

          • @rollingflower
            link
            Deutsch
            03 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

            • AlexanderESmith
              link
              fedilink
              13 months ago

              You know, it only now occurs to me that - in 20 years of setting up fairly complicated spreadsheets (for everything from finance to asset management) - I’ve never used a macro.

              I honestly don’t know why you would, since per-cell functions update automatically. I certainly can’t imagine why it would need to make system calls. Whole thing seems like a massive security issue with no benefit.

          • @rollingflower
            link
            03 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
              23 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.

              • @rollingflower
                link
                13 months ago

                See above. There are tools for mail servers to strip and sandbox all executable attachements.

                MSOffice btw doesnt allow macros anymore afaik

    • @xavier666@lemm.ee
      link
      fedilink
      English
      3
      edit-2
      3 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
        53 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
          2
          edit-2
          3 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.