this post was submitted on 16 Sep 2023
80 points (83.9% liked)

Selfhosted

40133 readers
998 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

TL;DR - What are you running as a means of “antivirus” on Linux servers?

I have a few small Debian 12 servers running my services and would like to enhance my security posture. Some services are exposed to the internet and I’ve done quite a few things to protect the services and the hosts. When it comes to “antivirus”, I was looking at ClamAV as it seemed to be the most recommended. However, when I read the documentation, it stated that the recommended RAM was at least 2-4 gigs. Some of my servers have more power than other but some do not meet this requirement. The lower powered hosts are rpi3s and some Lenovo tinys.

When I searched for alternatives, I came across rkhunter and chrootkit, but they seem to no longer be maintained as their latest release was several years ago.

If possible, I’d like to run the same software across all my servers for simplicity and uniformity.

If you have a similar setup, what are you running? Any other recommendations?

P.S. if you are of the mindset that Linux doesn’t need this kind of protection then fine, that’s your belief, not mine. So please just skip this post.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 25 points 1 year ago* (last edited 1 year ago) (3 children)

I'm a senior Linux/Kubernetes sysadmin, so I deal with system security a lot.

I don't run ClamAV on any of my servers, and there's much more important ways to secure your server than to look for Windows viruses.

If you're not already running your servers in Docker, you should. Its extremely useful for automating deployment and updates, and also sets a baseline for isolation and security that you should follow. By running all your services in docker containers, you always know that all of your subcomponents are up to date, and you can update them much faster and easier. You also get the piece of mind knowing, that even if one container is compromised by an attacker, it's very hard for them to compromise the rest of the system.

Owasp has published a top 10 security measures that you can do once you've set up Docker.

https://github.com/OWASP/Docker-Security/blob/main/dist/owasp-docker-security.pdf

This list doesn't seem like it's been updated in the last few years, but it still holds true.

  1. Don't run as root, even in containers

  2. Update regularly

  3. Segment your network services from each other and use a firewall.

  4. Don't run unnecessary components, and make sure everything is configured with security in mind.

  5. Separate services by security level by running them on different hosts

  6. Store passwords and secrets in a secure way. (usually this means not hardcoding them into the docker container)

  7. Set resource limits so that one container can't starve the entire host.

  8. Make sure that the docker images you use are trustworthy

  9. Setup containers with read-only file systems, only mounting r/w tmpfs dies in specific locations

  10. Log everything to a remote server so that logs cannot be tampered with. (I recommend opentelemetry collector (contrib) and loki)

The list goes into more detail.

[–] [email protected] 4 points 1 year ago (1 children)

Hey, kinda off topic but what's the best way to get into a Linux/Kubernetes admin role? I've got a degree in networking, several years of helpdesk experience and I'm currently working as an implementation specialist.

Is that something I could simply upskill and slide into or are there specific certs that will blow the doors open for new opportunities?

[–] [email protected] 2 points 1 year ago

Sure! I got my start with this sort of tech, just running docker containers on my home server for running stuff like nextcloud and game servers. I did tech support for a more traditional web hosting MSP for a while, and then I ended up getting hired as a DevOps trainee for a internal platform team doing Kubernetes. I did some Kubernetes consulting after that and got really experienced with the tech.

I would say to try running some Docker containers and learn the pros and cons with them, and then I would say to start studying for the CKAD certification. The CKAD cert is pretty comprehensive and it'll show you how to run docker containers in production with Kubernetes. Kind is a great way to get a Kubernetes cluster running on your laptop. For more long term clusters, you can play around with k3s on-prem, or otherwise, I would recommend Digital Ocean's managed Kubernetes. Look into ArgoCD once you want to get serious about running Kubernetes in production.

I think with a CKAD cert you can land a Kubernetes job pretty easily.

I would probably only recommend the CKA cert on the path to CKS. CKA gets into a lot of the nitty gritty of running a kubernetes cluster, that I think most small-to-medium companies would probably skip and just run a managed solution.

Kubernetes has a steep learning curve, since you need to understand Operations top-to-bottom to start using it, but once you have it in your tool belt, it gives you endless power and flexibility when it comes to IT Operations.

[–] [email protected] 2 points 1 year ago

This is pretty much what I have setup. I’m not logging to a separate server but I do have other things setup like fail2ban, changes default ports, secrets management, etc. Good resource tho