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.

  • Justin@lemmy.jlh.name
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    1 year ago

    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.

  • Alami@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    I am not a expert in Linux, and I mostly rely on very strong passwords. I also discovered recently basic stuff like changing the default SSH port. Anyone knows of implementation of 2FA on Linux?

    • PlexSheep@feddit.de
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      Changing the default porta is security through obscurity, which is not security but just a waste of time. Don’t rely on attackers “maybe not finding stuff” but rely on your stuff being secure, even if someone had all information about your network and system architecture.

      For 2fa, the other commenter mentioned yubikey pam modules. Those are probably useful, but if you want to secure your ssh server, the best solution is to use ssh keys and disable password login. I can really recommend that as its one of the few things in security that improves both usability and security.

  • h3ndrik@feddit.de
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 year ago

    You’re likely doing security wrong. But I’m keeping relatively quiet, as requested.

    Please read up on how to set a partition noexec, use AppArmor, firewall, how to keep things patched, hardened and actual security measures if you want to protect the server. Also make sure not only fail2ban is working but every login on exposed software on that server is protected against brute force. ClamAV and similar are to protect your windows clients of your mail and storage server. They will not help with linux viruses. And you got to protect your servers against security vulnerabilities, not malware. The server won’t randomly execute an executable file on its harddrive on its own. Think about how did that malware get there in the first place. And why is the file executable… Don’t be offended, you can install whatever you want, including ClamAV, just make sure you did the 95% of protection first if security is your concern.

  • NaibofTabr@infosec.pub
    link
    fedilink
    English
    arrow-up
    0
    ·
    edit-2
    1 year ago

    The core problem with this approach is that antivirus scanning is generally based on signature recognition of malicious binaries. Behavior-based antivirus scanning mostly doesn’t work and tends to generate a lot of false positives. No freely available antivirus is going to have a signature library that is kept up to date enough to be worth the effort of running it on Linux - most vulnerabilities are going to be patched long before a free service gets around to creating a signature for malware that exploits those vulnerabilities, at which point the signature would be moot. If you want antivirus that is kept up to date on a weekly or better basis, you’re going to have to pay for a professional service.

    That said, there are other, simpler (and probably more effective) options for hardening your systems:

    • Firewall - if your servers are dedicated to specific services and you don’t plan on adding many more applications, you should be able to tighten up their firewalls to have only the ports they need open and nothing else. If network security is a priority, you should start with this.
    • Application Whitelisting - prevent unrecognized applications from running. There are more options for this on Windows (including the builtin Applocker), but there are some AWL options for Linux. It’s a lot easier to recognize the things that you do want to run than all of the things that you don’t want to run.
    • Secure OS - I assume you’re using Debian because it’s familiar, but it is a general-purpose OS with a broad scope. Consider switching to a more stripped-down variant like Alpine Linux (it can be installed on a Pi).
    • skilltheamps@feddit.de
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      The firewall point I just don’t get. When I set up a server, for every port I either run a service and it is open, or I don’t and it is closed. That’s it. What should the firewall block?

  • tuff_wizard@aussie.zone
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    I think you’re about to find out that the “belief” that Linux doesn’t need antivirus isn’t just held by everyone in this community, it’s held by the whole Linux community. Hence there being no active projects in the space.

    Heck you almost don’t need any antivirus in windows anymore. Just windows defender and half a brain when it comes to what you download.

    • Big P@feddit.uk
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      1 year ago

      I don’t really understand that belief. There is plenty of Linux malware especially targeting servers, you just need to have an unsecure service running to find that out

      • skilltheamps@feddit.de
        link
        fedilink
        English
        arrow-up
        0
        ·
        1 year ago

        What happens in the Windows world: Microsoft is not capable of creating and distributing a patch timely. Or they wait for “patch day”, the made up nonsense reason to delay patches for nothing. Also since Windows has no sensible means of keeping software up to date, the user itself has to constantly update every single thing, with varying diligence. Hence Antivirus: there is so much time between a virus becoming known and actual patches landing on windows, that antivirus vendors can easily implement and distribute code that recognizes that virus in the meantime.

        What happens in the linux world: a patch is delivered often in a matter of hours, usually even before news outlets get to report about the vulnerability.

    • aksdb@feddit.de
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      Many security experts I know consider AV software to be snake oil. I do so too. They are so complex and need so far reaching permissions to be somewhat effective, that they become the attack vector and/or a large risk factor for faulty behavior.

      Add in lots of false positives and it just numbs the users to the alerts.

      Nothing beats educating users and making sure the software in use isn’t braindead. For example Microsoft programs that hide file extensions by default is a far bigger security problem than a missing AV tool. Or word processors that allow embedded scripts that can perform shit outside the application. The list goes on …

  • corship@feddit.de
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    I don’t understand your intention, as for tips and hints and end you post on this line:

    “Ps: if you have a different opinions than I do skip this post”

    That’s the perfect recipe for a circle jerk.