Solaris: IP Spoofing a través de puertos Ethernet

5

Dada una máquina Solaris con dos interfaces de red correspondientes a los puertos Ethernet separados en la parte posterior.

  • 0: 192.168.0.5 / 255.255.255.0
  • 1: 192.168.1.5 / 255.255.255.0

con /etc/defaultrouter establecido en 192.168.0.1

Si una conexión (ya sea TCP o UDP) viene en el puerto 0, pero es de 192.168.1.6 (obviamente falsificada), ¿significa eso que cualquier respuesta (el paquete SYN-ACK en el caso de un servidor TCP, o la respuesta de DNS en caso de un servidor DNS) se enviará en el puerto 1 (debido a la dirección IP).

¿O se eliminarán o, lo que es peor, se enviarán de vuelta al puerto 0?

Estoy intentando evaluar el riesgo de falsificación de IP en las interfaces físicas. Si un servidor escucha en todas las interfaces, pero solo autoriza conexiones desde 192.168.1.* , quiero saber qué tan probable es que acepte conexiones desde el puerto incorrecto.

Entorno de amenaza hipotética: el puerto 1 está conectado a una red confiable que no es de Internet. La subred del puerto 0 puede tener una máquina comprometida.

    
pregunta George Bailey 25.07.2011 - 17:53
fuente

3 respuestas

5

Bajo Solaris, el parámetro ip_strict_dst_multihoming realizará la función de suplantación anti-IP que está buscando. Para citar, "estableciendo el parámetro ip_strict_dst_multihoming en 0, el sistema descarta cualquier paquete que parezca originarse en una red conectada a otra interfaz " Solaris Kernel Tuning for Security ". Entonces, para responder a su pregunta: se puede abordar el riesgo configurando correctamente la casilla para no reenviar paquetes falsificados.

Tenga en cuenta que esto aborda el caso simple que ha descrito. No creo que ayude en el caso de enrutar múltiples redes a través de múltiples interfaces. En otras palabras, si tenía una ruta estática para que el tráfico de 192.168.2.0/24 también se enrutara a través de la interfaz 1, no estoy seguro de que Solaris eliminara un paquete de 192.168.2.5 que venía en la interfaz 0. Creo que solo se eliminarán las redes definidas por la dirección enlazada de la interfaz 1.

Si está pensando en convertir una caja Solaris en un enrutador, debe leer atentamente las guías como el enlace de arriba. Solaris no es, en mi humilde opinión, un gran sistema de enrutador. Sin embargo, Solaris 11 agregó el firewall ipfw, que se acerca a la paridad de su caja BSD / Linux promedio. Si va a enrutar entre redes de diferentes niveles de seguridad, debe hacerlo correctamente y NAT y / o aplicar reglas de firewall.

    
respondido por el gowenfawr 25.07.2011 - 21:37
fuente
3

Aunque puede haber formas de solucionar este problema a través del kernel del sistema, también es muy fácil de mitigar por otros medios.

Algunas herramientas incluirían IPS y cortafuegos.

Un ejemplo simple de esto sería a través de IPTables. Si está trabajando en un sistema que ejecuta iptables, la siguiente línea debería hacer el truco ...

iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP

Esto también depende de su entorno de red, es plausible que la forma en que se configura la red simplemente no permite que esto suceda (enrutamiento / NAT / firewalls).

** publicado debido a la solicitud **

    
respondido por el Ormis 26.07.2011 - 21:16
fuente
2

Como dice la publicación anterior, el parámetro ip_strict_dst_multihoming es lo que desea evitar que el paquete INCOMING. Ese parámetro está desactivado de forma predeterminada, por lo que debe configurarlo en '1' para que funcione.

Suponiendo que esté desactivado, el paquete saliente se enviará a la interfaz # 1. La pila no recuerda en qué puerto entró el paquete. Todo lo que sabe es que tiene un paquete destinado a una dirección 192.168.1.x. No sabe por qué tiene el paquete, de dónde viene, ni siquiera el contenido. Todo lo que sabe es la dirección de destino, lo que significa el puerto # 1.

    
respondido por el Robert David Graham 27.07.2011 - 18:19
fuente

Lea otras preguntas en las etiquetas