cross-posted from: https://infosec.pub/post/10908807
TLDR:
If I use SSH as a Tor hidden service and do not share the public hostname of that service, do I need any more hardening?
Full Post:
I am planning to setup a clearnet service on a server where my normal “in bound” management will be over SSH tunneled through Wireguard. I also want “out of bound” management in case the incoming ports I am using get blocked and I cannot access my Wireguard tunnel. This is selfhosted on a home network.
I was thinking that I could have an SSH bastion host as a virtual machine, which will expose SSH as a a hidden service. I would SSH into this VM over Tor and then proxy SSH into the host OS from there. As I would only be using this rarely as a backup connection, I do not care about speed or convenience of connecting to it, only that it is always available and secure. Also, I would treat the public hostname like any other secret, as only I need access to it.
Other than setting up secure configs for SSH and Tor themselves, is it worth doing other hardening like running Wireguard over Tor? I know that extra layers of security can’t hurt, but I want this backup connection to be as reliable as possible so I want to avoid unneeded complexity.
If you don’t have any good reason not to, always set your SSH server to only authenticate with keys.
Anything else is irrelevant.
Spoiler alert: you don’t.
This is the internet. If you poke the bear, somebody will come-up with a completely reasonable use case of password authentication that happened once somewhere on the world.
Easy. I have servers that are only available on my local network and lots of different devices that I MIGHT want to use to access those servers. I haven’t bothered to make sure my key is on EVERY SINGLE DEVICE and some of them, I might not actually even WANT my key on as they’re not terribly well secured and they might leave my house (my Windows gaming laptop I haven’t used in six months comes to mind).
But for cloud accessible servers… yeah.
You know you’re allowed (some might even say supposed) to have different keys for different machines. They’re basically free to generate and take up to no space.
I use a different key for every device I need to connect to.
So my phone has separate keys for each SSH server and so does my desktop and laptop.
It’s not the most convenient thing in the world but it’s not too bad.
Most of the keys are without passphrase but the keys I use to connect to my VPS for example absolutely have a passphrase.
If there is, I’d love to hear it. But even JuiceSSH on Android has supported keys for like the last decade.
WCGW?
Tell me
Accidentally typo your password and get blocked. And if you’re tunneling over tor, you’ve blocked 127.0.0.1 which means now nobody can login.
How would is a typo possible if one is using a password manager?
Not OP but I’ve accidentally fingered another key a split second before hitting enter a few times. It’s not implausible.
True, but I thought we are talking about security here…?
You’ve gotta pump those numbers, those are rookie numbers. (I have a vps that has several times that figure)
Did you read my message? After one failed attempt you will get banned.
But
:P