Inspired by this comment to try to learn what I’m missing.

  • Cloudflare proxy
  • Reverse Proxy
  • Fail2ban
  • Docker containers on their own networks

Another concern I have is does it need to be on a separate machine on a vlan from the rest of the network or is that too much?

  • Akatsuki Levi
    link
    fedilink
    English
    357 days ago

    Disable password authentication on SSH

    Enable firewall and block all ports you’re not using(most firewalls do this by default)

    Switch to a LTS kernel(not security related, but it keeps things going smooth… Technically it is safer since it gets updated less often so it is a bit more battle tested? Never investigated whenever a LTS kernel is safer than a standard one)

    Use Caddy to proxy to services instead of directly exposing them out

    HTTPS for web stuff(Caddy does it automatically)

    • JustEnoughDucks
      link
      fedilink
      English
      87 days ago

      Dropping instead of blocking might technically be better because it wastes a bit more bot time and they see it as “it doesn’t exist” rather than an obsticle to try exploits on. Not sure if that is true though.

      For me:

      • ssh server only with keys

      • absolutely no ssh forwarding, only available to local network via firewall rules

      • docker socket proxy for everything that needs socket access

      • drop non-used ports, limit IPs for local-only services (e.g. paperless)

      • crowdsec on traefik for the rest (sadly it blocks my VPN IPs also)

      • Authelia over everything that doesn’t break the native apps (jellyfin and home assistant are the two that it breaks so far, and HA was very intermittent so I made a separate authelia rule and mobile DNS entry for slightly reduced rules)

      • proper umask rules on all docker directories (or as much as possible)

      • main drive FDE with a separate boot drive with FDE keyfile on a dongle that is removed except for updates and booting to make snatch-and-grabs useless and compromising bootloader impractical

      • full disk encryption with passworded data drives, so even if a smash and grab happens when I leave the dongle in, the sensitive data is still encrypted and the keys aren’t in memory (makes a startup script with a password needed, so no automated startups for me)

      For more info, I followed a lot of stuff on: https://github.com/imthenachoman/How-To-Secure-A-Linux-Server

    • Shimitar
      link
      fedilink
      English
      107 days ago

      This, but I prefer nginx.

      And no real need for tailscale or cloudflare. If you do not like to depend on a third party service, either port forward and ddns or an external vps+wire guard if you have gcnat

        • Shimitar
          link
          fedilink
          English
          15 days ago

          It is, but you are free to switch at any time provider, there is no technological lock in like with cloudflare or tailscale (i know there is a free self hostable version, not talking about that).

          So just rent a new one and switch your wireguard there.

    • @szszl@sh.itjust.works
      link
      fedilink
      English
      35 days ago

      Caddy or any other (reputable) reverse proxy. I think Nginx Proxy Manager would be best for beginner thanks to GUI.

          • Lka1988
            link
            fedilink
            English
            2
            edit-2
            5 days ago

            My UDM has this capability. I’ve blocked quite a few countries that it logged as trying to get into my network. Great little internet cylinder.

            • @InvertedParallax@lemm.ee
              link
              fedilink
              English
              14 days ago

              Have the rack mounted one, I usually roll my own router but I’m glad to have someone else making sure I don’t do anything stupid for security.

              It’s not perfect, but it’s peace of mind.

          • @ocean@lemmy.selfhostcat.comOP
            link
            fedilink
            English
            57 days ago

            I was auto banning all countries but my own but now I’m hosting one resource that has an audience including Chinese…

            Good advice outside of this use case! :)

            • @InvertedParallax@lemm.ee
              link
              fedilink
              English
              47 days ago

              Yeah, there were other countries to ban, but those 2 cut my attacks down 90%.

              Also consider a honeypot that triggers when anyone tries to ssh it at all.