So it’s my first time setting up a VPS. Is it to be expected to ban 54 IPs over a 12h timespan? The real question for me is whether this is normal or too much.
$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 3
| |- Total failed: 586
| `- Journal matches: _SYSTEMD_UNIT=ssh.service + _COMM=sshd
`- Actions
|- Currently banned: 51
|- Total banned: 54
`- Banned IP list: [list of IPs]
fail2ban sshd.conf
$ sudo cat /etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled = true
mode = aggressive
port = ssh
backend = systemd
maxretry = 3
findtime = 600
bantime = 86400
I have disabled SSH login via password. And only allow it over an SSH key.
$ sudo sshd -T | grep -E -i 'ChallengeResponseAuthentication|PasswordAuthentication|UsePAM|PermitRootLogin'
usepam no
permitrootlogin no
passwordauthentication no
I personally wouldn’t waste your time with bans
Enable public key authentication and disable passwords
My SSH is only accessible thru a self hosted WireGuard VPN with a dedicated IP. Zero fails.
How do you deal with the risk of loosing the VPN (and thus the access)?
I have only one word to say : w00tw00t 😉
I deactivated the SSH daemon on my VPS and only use Tailscale SSH
Yeah. Sounds about right.
First of all disable root login over ssh. Second, move your ssh from port 22 to another port of your liking. Third, disable password authentication altogether and use only solid certificates.
Switching SSH to a non-standard port can cut down on log noise but it doesn’t really help with security. It’s trivial to identify ssh running on any port and attackers typically do full port scans anyway.
I’d put that effort towards allowlisting only trusted public ips or setting up wire guard/tailscale for ssh access instead.
Root login and password authentication are already disabled, and it’s very uncommon for self hosters to use SSH certificates at all.
Changing the SSH port away from 22 does not improve security unless your password is “password” or “admin”. Anybody who’s even slightly sophisticated will find your SSH service on the correct port and make requests there instead.
I don’t think changing the port has the intention of better security here, just reduces the amount of requests that dumb bots make. It’s noticable if you try it.
Yes, I meant ssh private/public keys, not certificates …
And changing the port reduces the amount of attempts in any case.
They’re portscanning bots.
I made SSH IPv6-only and it stopped. You can’t scan IPv6 space for open ports.
They can’t or they don’t?
My question too, pretty sure you can
The smallest possible subnet has 18.4 quintillion addresses.
You can’t scan it before encountering the heat death of the universe.
Outgoing connections are made on a different address that does not accept incoming connections. You never disclose your real IP when browsing.
So, no. It can’t be done.
That’s only if you use the brute force method
IPs are not secret and can be leaked in various ways. Don’t count on IPv6 as a security mechanism as that’s not what it was designed to do
It’s literally called “IPv6 privacy extension”. It’s what it does.
Unless you’re in the middle and fowarding the packets, you won’t stumble across a connectable IPv6 endpoint.
The IPv6 privacy extensions are something else entirely and are not used for anything server side
You should research IPv6 port scanning techniques. It is harder than IPv4 but still doable depending on the context. If your goal is simply to reduce network traffic due to bots that’s one thing. However, it should not be considered a security mechanism.
You technically can scan IPv6
It is just less common

imagine the modern internet like a school yard of a very large school during recess, and it has just snowed.
Now imagine having ssh on port 22 as you a wearing a bright red wooly cap and standing in the middle of the yard jumping up and down and waving hands.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters IP Internet Protocol SSH Secure Shell for remote terminal access VPS Virtual Private Server (opposed to shared hosting)
2 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.
[Thread #278 for this comm, first seen 7th May 2026, 12:00] [FAQ] [Full list] [Contact] [Source code]
Normal background noise. ssh is a well known protocol/port and scanning is automated.
Yeah, I thought so much. But I sort of wanted to be sure. ^^
Pretty much on the low side, but you’ve not been up long. Using key based login you’re fine.
Removed by mod
I got 135 blocks via sshguard over the first 12 hours today. So, yeah, welcome to the Internet! 😄
If you have a public IPv4 address and use port 22, you’ll see lots of login attempts. I wouldn’t worry about it, given that you’ve disabled password login. The only thing I would advise is to disable root login as well (if not done already).
If you’d like to reduce the noise somewhat, consider changing to a randomly chosen high port. I’ve done this with my VPS and hardly get any login attempts.
port knocking is still there btw
I love the concept of port knocking, but it seems like a lot of overhead if the client apps themselves don’t support it.
Now if the SSH client could take a parameter called knock_on_this port, that would be awesome.
Good luck getting e.g. Ansible to work with that. At that point I’d just switch to a hosting provider with an actual firewall.
Setup your ssh config to use a proxy command which uses netcat to knock on the ports. Ansible will work with that.
Setting the SSH service to a random high port doesn’t make security better and may make security worse. Linux has a restriction that low numbered ports require special permissions but high numbered ports do not. If an attacker manages to get low privilege code execution on your machine, they may manage to bind their service to the SSH port instead. If the server and client are configured correctly, this will cause a host key mismatch error. Continuing anyway could allow the attacker to take over your account on the server. It’s unlikely unless you are a high value target.
I never claimed it would make security better. I said it would reduce noise, and it does.
Yes, I disabled root login, but the port change is a good idea. Thanks.
Seems likely. Cheap VPSs are often used by beginners, so they’re prime targets for hackers. Known VPS IP-ranges probably get hammered constantly by hackers, who are hoping you set up a service temporarily without enabling any security, or perhaps with a weak temporary password of 1234 or something.
Just 54? Those are rookie numbers bro. You need to open up a few more ports. LOL Honestly tho, seems pretty standard. You could change the SSH port which might lower some of the noise but bots now days are pretty sophisticated and it would be trivial to just scan your server and find out which port is SSH. If you want to stop tailing fail2ban nervously on the daily, you could use the hosts.allow/hosts.deny which would lock it down even further. Just remember to set host.allow first then host.deny. You could also deploy any number of secondary security packages like CrowdSec, Wazuh, et al.












