# [IPTables] Limitar el numero máximo de conexiones udp por ip

## GermanBobr

Necesito limitar la cantidad de conexiones udp al puerto 7777 por ip.

La idea sería que cada cliente solo pueda abrir 4 conexiones udp simultaneas a dicho puerto.

¿Es posible hacer eso con iptables?

Lo necesito porque estoy corriendo un gameserver y algun gracioso jode con un programa que te llena el server de jugadores invisibles. De esa forma nadie mas puede entrar a jugar.

Lo más grave es que no hay ninguna manera de visualizar la ip del atacante porque los jugadores invisibles no figuran en ninguna parte.

Ni en la lista de jugadores, ni en los logs.

De ultima sería bueno buscar una forma de saber la ip del atacante para denegarle el acceso.

Muchas gracias por todo

Germán

----------

## Inodoro_Pereyra

```
iptables -I INPUT -p udp -m state --state NEW -m recent --set

iptables -I INPUT -p udp -m state --state NEW -m recent --update --seconds 10 --hitcount 4 -j DROP
```

Lo tomé prestado de este sitio y lo modifiqué ligeramente para lo que necesitás.

Con esas dos reglas solo se permiten 4 conexiones UDP por cada número de IP cada 10 segundos, por ejemplo.

Salud!

**EDITO por que me quedé pensado**

Si tu gameserver hace rDNS lookups a los clientes entonces las dos reglas de arriba terminarian bloqueando el propio server por que lo que habría como mínimo que agregar una regla antes que las otras dos que permita DNS:

```
iptables -I INPUT -p udp --dport 53 -j ACCEPT
```

Lo mismo si hay algún otro servicio importante que necesite de UDP para funcionar.

----------

## GermanBobr

Gracias, ya salvé las papas temporalmente detectando la ip del atacante con un sniffer basado en consola (muy util por cierto, se llama DarkStat)  y baneandola dentro del juego.

Igualmente pienso aplicar esas reglas como solución definitiva.

Pero antes que nada tengo 4 preguntas:

1- ¿Que ocurre si pongo eso del rDNS sin necesitarlo?

2- ¿Podria cambiar las primeras 2 reglas agregando -port 7777 para que solo bloquee las conexiones udp al puerto 7777?

3- Nunca usé iptables. Para que esas reglas tengan efecto, ¿Hay que hacer algo mas ademas de poner esos comandos?

4- Quiero ser un experto en iptables, porque este tipo de cosas pasan a menudo en este juego (un juego demasiado inseguro  :Razz: ) ¿Donde puedo aprender?

Muchísimas gracias por tu ayuda

----------

## Stolz

 *GermanBobr wrote:*   

> 2- ¿Podria cambiar las primeras 2 reglas agregando -port 7777 para que solo bloquee las conexiones udp al puerto 7777?

  La opción -port como tal no existe, debes usar -dport para puerto destino, -sport para puerto origen o -ports para ambos casos.

 *GermanBobr wrote:*   

> 3- Nunca usé iptables. Para que esas reglas tengan efecto, ¿Hay que hacer algo mas ademas de poner esos comandos?

 Necesitas tener soporte de IPtables activado en el kernel y el paquete "iptables" instalado.

 *GermanBobr wrote:*   

> 4- Quiero ser un experto en iptables, porque este tipo de cosas pasan a menudo en este juego (un juego demasiado inseguro ) ¿Donde puedo aprender?

 http://www.iptables.org/documentation/index.html

Saludozzzzzzzzzzz

----------

## Inodoro_Pereyra

 *GermanBobr wrote:*   

> 4- Quiero ser un experto en iptables

 

Bienvenido al club.

Llevo años en esto y no termino de aprender iptables nunca, por mas ganas que le ponga al asunto  :Very Happy: 

Por lo demás, Stolz ya te aclaró todo, no?

Salud!

**EDITO** Sobre la resolución inversa de nombres de dominio, donde dije rDNS mas arriba, absolutamente nada. A lo sumo si no se usa quedará la regla fijada pero sin efecto.

----------

