this post was submitted on 14 Aug 2023
506 points (96.5% liked)

Selfhosted

40394 readers
391 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
 

In the past two weeks I set up a new VPS, and I run a small experiment. I share the results for those who are curious.

Consider that this is a backup server only, meaning that there is no outgoing traffic unless a backup is actually to be recovered, or as we will see, because of sshd.

I initially left the standard "port 22 open to the world" for 4-5 days, I then moved sshd to a different port (still open to the whole world), and finally I closed everything and turned on tailscale. You find a visualization of the resulting egress traffic in the image. Different colors are different areas of the world. Ignore the orange spikes which were my own ssh connections to set up stuff.

Main points:

  • there were about 10 Mb of egress per day due just to sshd answering to scanners. Not to mention the cluttering of access logs.

  • moving to a non standard port is reasonably sufficient to avoid traffic and log cluttering even without IP restrictions

  • Tailscale causes a bit of traffic, negligible of course, but continuous.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 18 points 1 year ago* (last edited 1 year ago) (1 children)

If you do want to open 22, and there are plenty of good reasons to want to, just implement something called port knocking and you can do it safely.

Note with this you still need good authentication. That means no passwords, key based auth only.

[–] [email protected] 7 points 1 year ago (3 children)

I have read elsewhere that port knocking is just security through obscurity and isn’t worth considering. I found it when searching for ways to set it up and that put me off.

[–] [email protected] 22 points 1 year ago* (last edited 1 year ago) (2 children)

It is and it isn't. It prevents random scans from opening 22 and attempting to authenticate, that's basically the entire purpose. You still need good authentication after because you're right, it's not a security measure, it's just a way to keep your logs useful and to keep botnets from beating the hell out of 22.

By "good authentication" I mean a key pair based authentication. That is impossible to brute force. If you use a password on 22 you shouldn't open it at all and you should rethink allowing any remote access.

Put another way: You're the doorman at a speak easy. You can answer the little window with "what's the password?" to every jack ass that approaches, and you'd be asking all the time. But if they don't know they have to knock "shave and a haircut" first, your job gets a lot easier and you're dealing with a lot fewer nuisance password promptings.

You can also use it to blacklist. If someone tries to hit 22 without knocking you can blacklist that IP entirely because you know it's nuisance.

[–] [email protected] 6 points 1 year ago (1 children)

When you put it that way, it sounds beneficial and like something I’d like to use. Thank you!

The article may have been dissing it as a sole strategy.

[–] [email protected] 4 points 1 year ago

It's not uncommon for people to try using it as their sole authentication so that wouldn't be a surprise. But for it's purpose, it's perfect.

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

But if they don't know they have to knock "shave and a haircut" first, your job gets a lot easier and you're dealing with a lot fewer nuisance password promptings.

Very good explanation. And the benefits are even greater: because there is absolutely no response until the entire secret knock is correctly used, the random guy trying to get in doesn’t even know if there’s anyone at that address. (In fact, set up correctly, they won’t even know if there’s really a door there or not)

[–] [email protected] 13 points 1 year ago

Security through obscurity is a very valid way to secure something. It shouldn't be the only way of securing something, but it can be a valid additional layer.

The knock sequence is a secret, just like a password. It may not be a particularly strong secret, but is is strong enough to keep out casual attackers. You'll still need additional security, but sshd is well equipped to provide that.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

If you want to go down that path, a password is only security by obscurity.

Port knocking is an extra layer of security, and one that can stop attackers from ever knowing your private server even exists. A random scanner won’t even see any open ports.

Always bear in mind that any random guy advising people not to use port knocking may be doing it with malicious intent. I’m sure there’s someone out there advising that random passwords are a waste of time, and everyone should just use monkey123.