this post was submitted on 22 Oct 2026
95 points (98.0% liked)

Selfhosted

63469 readers
619 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:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

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

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

PHP, TLS, etc.. We appear to be facing a tsunami of vulnerabilities being discovered in record time. Further, the window to act on these vulnerabilities has basically closed to zero; hackers' tools now automatically fold the very latest vulnerabilities into their botnets within minutes/hours of discovery. I have always been extremely reluctant to expose any of my services - even with the latest and greatest security tools. My choice to stay totally within the confines of tailscale seems vindicated given this week's news. How are you all taking this?

https://pwn.watch/

you are viewing a single comment's thread
view the rest of the comments
[–] lemmyvore@feddit.nl 13 points 1 week ago (2 children)

I also practice domain/IP obfuscation in addition to high port:

  • TLS certs are wildcard certs, so bots can't get my subdomains from transparency logs.
  • My DDNS IP is on a subdomain (random string) not on the base domain.
  • My public services are also on random subdomains, CNAME'd individually to the IP subdomain.
  • There is no wildcard CNAME that the bots can query to get the IP.

This eliminates scanning almost completely. They can't find an IP to go with my base domain, first of all. And even if a bot is scanning the IPv4 address space and all the ports and it finds the reverse proxy it can't get past it without knowing a FQDN. I still get the occasional hit from such bots but it's very rare.

Also, all my public services are secured with mTLS (preferably) or at the very least a long key in a custom HTTP header (both enforced at the proxy).

[–] qgadrian@lemmy.world 4 points 1 week ago

Thank you for sharing this, vey insightful

[–] Blip6338@lemmy.ca 2 points 1 week ago (1 children)

You should also use a default self-signed cert for something generic like "localhost" on your reverse proxy so random IP scan don't see any domain when they hit your IP, but legitimate queries coming through the domain name still see the right cert.

[–] lemmyvore@feddit.nl 2 points 1 week ago* (last edited 1 week ago)

In my case I have defined a fallback in Caddy so any request that doesn't match one of the explicitly handled domains will be an error.

I use a route {} block with handle {} blocks inside it, and the last handle has an error directive in it.

https://*.example.com {
  route {
    @foo host "foo.example.com"
    handle @foo {
      reverse_proxy http://whatever:12334/
    }
    ... more proxy hosts ...
    handle {
      error 400
    }
  }
}

The route block is essential here because handlers inside a route block are processed strictly in the order they are defined. Outside route blocks that is not true, caddy will try to optimize and can execute directives in any order it sees fit.