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.
FreeIPA?
If you want to control users, don’t give them admin privileges.
Most of things you enumerated solve windows specific problems and therefore have no analogs in other OSes.
That’s the thing. They need some admin access. Especially if they’re working in IT and need to do certain tasks that require that privilege.
The simplest solution is to set up the sudoers file to allow only specific commands your users need. I assume you need more than that, but what kinds of use cases does that solution fail to handle?
Allow only those tasks in policykit, make a link with
pkexec tool
?No way. You completely trust them or you do not trust them at all. In any OS. That’s how security works.
Zero trust has entered the chat
Takes a bit more than that to really lock down a Linux install. At the very least you’d have to also limit their ability to mount extra storage, mount their /home with noexec, and centrally manage their browser.
There are plenty of RMM tools/companies that support Linux platforms.
Name a few that run locally in a server and support domain services
Connect wise and ninjaone come to mind.
Free and open source? If it’s enterprise pay for a suite.
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…
I hear you. But if we want Linux to seriously become the next desktop OS, I think it’s important to find something that gives large organisation some kind of way to manage their large IT inventory and users securely.
FreeIPAFleet comander seems to be great for this task. It runs FreeIPA among a few other things to allow for active directory like control.
https://fedoramagazine.org/join-fedora-linux-enterprise-domain/
I’d say most of those are needed; they’re just not used.
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.
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.
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?
One thing to take a look at for central account control, sudo rules and a few other things. Is freeipa/rhel idm.
Have a look at manage engine software
Well that’s exactly the kind of thing I was looking for!
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?
Not really. I want users with some admin privileges. As someone pointed out, a properly configured sudoers file can allow that with sudo.
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.
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
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.
Yeah that’s what I was thinking also. And what about SUSE? Could they have something similar?
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.
$$$$$$$$$
Or just like… Use Ansible?
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.
@[email protected] 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
I was looking for what you said a few years ago out of curiosity before and remember looking into something called Shibboleth. I didn’t looked into it in details but it seems to cover identity and policy management. Not sure about the rest of the features you need though.
All in all, i guess something like Fedora Silverblue (immutable) with some remote management software?
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.
policy control
It’s not exactly the same, but you could use puppet to enforce configuration
Software Center with software allow lists
You can setup a custom repository with only approved software and then set that as the only one that the system is configured to retrieve packages from. This can also be controlled via puppet.
controlled OS updates
Same as the previous point. Upgrades are installed from the repos.
zscaler
I don’t know what that is/does, and their website isn’t helping.
software detection tool to detect what’s been installed and determine if any unallowed software is present
I’m pretty sure carbon black app control has a linux version.
antivirus
There are a number of different antivirus solutions for linux. A quick search will give you a bunch of lists. I’m not personally familiar with any of the options, but I don’t imagine it will be difficult to find one that will work for your use case.
There is Zorin Grid (https://zorin.com/grid/) that I think is what you are looking for. It does not exist yet (and it has that notify button for a long long time, but there can still be hope it is not dead and it will come out one day.)
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.
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.
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.
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.