this post was submitted on 08 Jul 2023
145 points (100.0% liked)

Selfhosted

40767 readers
1010 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
 

I put up a vps with nginx and the logs show dodgy requests within minutes, how do you guys deal with these?

Edit: Thanks for the tips everyone!

you are viewing a single comment's thread
view the rest of the comments
[–] InEnduringGrowStrong@lemm.ee 5 points 1 year ago (2 children)

I do client ssl verification.
Nobody but me or my household is supposed to access those anyway.
Any failure is a ban (I don't remember how long for).
I also ban every IP not from my country, adjusting that sometimes if I travel internationally.
It's much easier when you host stuff only for your devices (my case) and not for the larger public (like this lemmy instance).

[–] karlthemailman@sh.itjust.works 4 points 1 year ago (2 children)

How do you have this set up? Is it possible to have a single verification process in front of several exposed services? Like as part of a reverse proxy?

[–] InEnduringGrowStrong@lemm.ee 1 points 1 year ago

Yes it's running in my reverse proxy.
Nginx is doing my "client ssl verify" in front of my web services.
You can even do this on a per uri/location.
For example, my nextcloud is open without client certs so I can share files with people, but the admin settings path is protected by client ssl.

[–] dinosaurdynasty@lemmy.world -1 points 1 year ago (1 children)

Yup, there are many ways of doing that. Most reverse proxies should support basic auth (easy, but browser UX is terrible and it breaks websockets) or TLS client auth (even worse browser UX, phones are awful).

The best thing is do something like Caddy + Authelia (which is what I currently do with most things, with exceptions for specific user agents and IPs for apps that require it, aka non-browser stuff like Jellyfin),

[–] karlthemailman@sh.itjust.works 1 points 1 year ago* (last edited 1 year ago)

Thanks. Authelia looks promising, but I can find anything about tls client auth.

Edit: actually maybe caddy supports this directly? https://caddyserver.com/docs/json/apps/http/servers/tls_connection_policies/client_authentication/

[–] ComptitiveSubset@lemmy.world 2 points 1 year ago (1 children)

That sounds like an excellent solution for web based apps, but what about services like Plex or Nextcloud that use their own client side apps?

[–] InEnduringGrowStrong@lemm.ee 1 points 1 year ago

Some apps now have support for client certs (home-assistant ❤).
Nextcloud is one of the only apps that's open without client ssl because it'd be highly inconvenient to share a file link with someone if I had to install a cert on their devices. Plex app never works right for me so I just use the browser. My TV is too old to have old built-in so I have a VM in which I use a browser to watch plex.