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
  • BlueBockser@programming.dev
    link
    fedilink
    English
    arrow-up
    22
    ·
    edit-2
    1 day ago

    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). Edit: Just saw you’ve already disabled root login.

    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.

    • Tanka@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      8
      ·
      1 day ago

      Yes, I disabled root login, but the port change is a good idea. Thanks.

    • i_am_not_a_robot@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      1
      ·
      18 hours ago

      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.

      • surewhynotlem@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        ·
        1 day ago

        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.

      • BlueBockser@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        23 hours ago

        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.

        • mumblerfish@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          22 hours ago

          Setup your ssh config to use a proxy command which uses netcat to knock on the ports. Ansible will work with that.