¿Cómo puedo bloquear el tráfico (ssh) de puertos de origen distintos del predefinido?

¿Cómo puedo bloquear el tráfico (ssh) de puertos de origen distintos del predefinido?

Un VPS recibe muchos ataques ssh. Esos ataques son varios.fuentepuertos:

sshd[76661]: Invalid user ts3server from 76.103.161.19 port 33062
sshd[76661]: Received disconnect from 76.103.161.19 port 33062:11: Bye Bye [preauth]
sshd[76661]: Disconnected from invalid user ts3server 76.103.161.19 port 33062 [preauth]
sshguard[61313]: Attack from "76.103.161.19" on service SSH with danger 10.
sshguard[61313]: Blocking "76.103.161.19/24" for 86400 secs (1 attacks in 0 secs, after 1 abuses over 0 secs.)
sshd[76821]: Invalid user tibaldi from 140.143.206.216 port 33936
sshd[76821]: Received disconnect from 140.143.206.216 port 33936:11: Bye Bye [preauth]
sshd[76821]: Disconnected from invalid user tibaldi 140.143.206.216 port 33936 [preauth]
sshguard[61313]: Attack from "140.143.206.216" on service SSH with danger 10.
sshguard[61313]: Blocking "140.143.206.216/24" for 86400 secs (1 attacks in 0 secs, after 1 abuses over 0 secs.)

Como puedes ver, actualmente uso un enfoque reactivo (sshguard) de forma agresiva para bloquear y limitar esos ataques. (Además, no se permiten inicios de sesión ssh con contraseña). Sin embargo, todavía hay demasiadas, por lo que inunda mis registros. Lo que queda claro en los registros es que todos estos ataques provienen de puertos aleatorios con números altos. Lo que me gustaría hacer es bloquear todo ese tráfico a nivel de firewall, para que no contamine mis registros.

Controlo el cliente y puedo elegir/definir qué puerto(s) de origen utilizará.

Por lo tanto,¿Cómo puedo bloquear el tráfico (ssh) de puertos de origen distintos del predefinido (o rango)??

Estoy usando firewalld como mi software de administración de firewall, por lo que sería de gran ayuda si pudieran proporcionar una solución basada en firewalld. Sin embargo, también son bienvenidas otras soluciones.

Respuesta1

Mientras que ladestinoEl puerto de una conexión SSH normalmente es 22, elfuenteEl puerto no tiene (casi) reglas. Esto significa que una conexión 140.143.206.216 port 33936no es sospechosa en sí misma.

Como conozco este problema (el pico fue de más de un millón de ataques por segundo en un servidor 10G), le recomiendo que lo use fail2ban; esto realmente funciona.

EDITAR

Después de la discusión, entiendo que usted controla al cliente. En este caso, puedes hacer algo parecido a

iptables -A INPUT -m tcp -p tcp --dport 22 '!' --sport 1000 -j DROP 

(para el puerto remoto 1000) funcionará

información relacionada