Script de bloqueo de iptables usando la búsqueda de tabla arp

Script de bloqueo de iptables usando la búsqueda de tabla arp

Necesito bloquear ciertos hosts (multi-OS) en nuestra LAN para que no obtengan acceso a Internet. Decidí intentar bloquear ciertos hosts por dirección mac a través de iptables, pero no puedo usar la dirección mac de la estación de trabajo ya que atraviesa un conmutador L3 y el marco se reconstruye con la interfaz mac del conmutador. Confirmé esto usando tsharkla utilidad de Wireshark.

Sé que puedo bloquear por dirección IP, pero no puedo controlar si un usuario cambia su IP y, por lo tanto, se eludirá el bloqueo. Estoy pensando que se podría lograr una solución con un script que haga lo siguiente:

  1. Actualice la tabla arp usando fping:fping -c 1 -g 10.10.10.0/24
  2. Grep la tabla arp para obtener IP de una lista de direcciones mac, digamos en un archivo:arp -n | grep "00:11:22:aa:bb:cc" | awk '{print $1}'
  3. Cree un hash o una matriz y actualice dinámicamente iptables con las direcciones IP que deben bloquearse. Probablemente usaría un archivo y haría algo como iptables-restore < ips_to_deny.
  4. Ejecute este script cada 5 minutos aproximadamente. (No estoy seguro del momento)

Entonces... la pregunta. ¿Ves algún defecto en este método? ¿O formas de mejorarlo?

  • Me viene a la mente la suplantación de identidad de Mac, pero los usuarios del host no tienen acceso de administrador.

Usaría Perl o Ruby para el script si eso es muy importante.

Respuesta1

Tuve que lidiar con una situación similar al organizar grandes fiestas LAN (>500 usuarios), donde no tienes control sobre las estaciones de trabajo, bastante interesante.

Si su conmutador L3 (enrutador, técnicamente) es de grado razonablemente alto, probablemente sea manejable mediante SNMP y pueda leer su tabla ARP para la subred apropiada (la que se conecta directamente a las estaciones), para recuperar el mac/ip efectivo. mapeos.

Sin embargo, si tiene miedo de que la máquina cambie las IP sin su consentimiento, probablemente también debería preocuparse de que la máquina cambie la MAC. Si confía en que la máquina no cambie las MAC, otra opción que estábamos usando era analizar los registros del servidor DHCP. Como beneficio adicional, también puedes correlacionar los registros DHCP y las tablas ARP para detectar falsificadores.

Si sus conmutadores lo admiten, también puede utilizar la autenticación 802.1x. En este modo, una máquina debe autenticarse en el conmutador Radius antes de comenzar a cambiar paquetes y, para cada autenticación, el servidor Radius recibe la identidad, la ubicación física y la MAC de la estación.

Respuesta2

Todo eso me parece demasiado complicado y sujeto a convertirse en una de esas soluciones "personalizadas" que tienden a convertirse en un problema en el futuro (es decir, "fulano de tal instaló esto hace mucho tiempo antes de dejar la empresa y nadie sabe cómo arreglarlo"). cambialo"). Entonces, personalmente buscaría algo que esté un poco más basado en estándares.

A menos que necesite que los dispositivos con acceso a Internet y sin acceso a Internet estén en el mismo segmento de red L2, implementaría la omisión de autenticación de Mac (MAB) 802.1X. Puede hacer esto para que los dispositivos autenticados reciban una VLAN y los dispositivos que no se autentiquen se coloquen en una segunda VLAN.

Si sus conmutadores no admiten MAB únicamente (es decir, MAB solo entra en vigor una vez que falla la autenticación IEEE 802.1X), puede reducir los valores de reintento y tiempo de espera para la autenticación IEEE a sus valores mínimos. Dado que no le importa la autenticación IEEE y fallará rápidamente, no se le pedirá que configure ningún tipo de solicitante a menos que así lo desee.

Para ser más seguro, configuraría las direcciones MAC para todos los dispositivos que deberían tener acceso a Internet, permitiendo que solo esos dispositivos se autentiquen y se coloquen en la VLAN que proporciona acceso a Internet. Sin embargo, si solo desea restringir ciertos dispositivos (y permitir que los nuevos dispositivos se conecten automáticamente a Internet), puede configurarlo para que las autenticaciones fallidas se coloquen en la VLAN con acceso a Internet mientras que las autenticaciones exitosas se coloquen en la VLAN sin acceso.

No proporciona las razones por las que desea hacer esto, pero esto también brindaría la oportunidad de restringir fácilmente el acceso entre los dos conjuntos de hosts si hubiera alguna razón para hacerlo.

información relacionada