this post was submitted on 02 Apr 2025
114 points (98.3% liked)

Selfhosted

45434 readers
607 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 2 years ago
MODERATORS
 

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?

you are viewing a single comment's thread
view the rest of the comments
[–] AkatsukiLevi@lemmy.world 33 points 2 days ago (5 children)

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)

[–] szszl@sh.itjust.works 3 points 1 day ago

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

[–] ZonenRanslite@feddit.org 18 points 2 days ago (1 children)
[–] ocean@lemmy.selfhostcat.com 2 points 2 days ago (1 children)
[–] InvertedParallax@lemm.ee 9 points 2 days ago (2 children)

There are ip lists that let you iptables drop all traffic from China and Russia.

Strongly recommend.

[–] lka1988@lemmy.dbzer0.com 2 points 21 hours ago* (last edited 21 hours ago) (1 children)

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 1 points 5 hours 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.com 5 points 2 days ago (1 children)

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 4 points 2 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.

[–] JustEnoughDucks@feddit.nl 8 points 2 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@downonthestreet.eu 10 points 2 days ago (1 children)

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

[–] szszl@sh.itjust.works 1 points 1 day ago (1 children)

This is a valid solution but honestly how is using VPS not depending on third party?

[–] Shimitar@downonthestreet.eu 1 points 1 day 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.