¿Qué es el reenvío de kernel ip?

70

Lo he visto en muchos blogs, utilizando este comando para habilitar el reenvío de IP mientras utilizo muchas herramientas de seguridad / detección de redes en Linux

echo 1 > /proc/sys/net/ipv4/ip_forward

¿Alguien puede explicarme en términos simples? ¿Qué hace esencialmente este comando? ¿Convierte su sistema en enrutador?

Madhur Ahuja
fuente
1
archivo de Python para habilitar y deshabilitar el reenvío de puertos gist.github.com/addminuse/7747903cd420b15f17e0

Respuestas:

77

"Reenvío de IP" es sinónimo de "enrutamiento". Se llama "reenvío de IP del núcleo" porque es una característica del núcleo de Linux.

Un enrutador tiene múltiples interfaces de red. Si el tráfico entra en una interfaz que coincide con una subred de otra interfaz de red, un enrutador reenvía ese tráfico a la otra interfaz de red.

Entonces, supongamos que tiene dos NIC, una (NIC 1) está en la dirección 192.168.2.1/24 y la otra (NIC 2) es 192.168.3.1/24. Si el reenvío está habilitado y entra un paquete en la NIC 1 con una "dirección de destino" de 192.168.3.8, el enrutador reenviará ese paquete fuera de la NIC 2.

Es común que los enrutadores que funcionan como puertas de enlace a Internet tengan una ruta predeterminada por la cual cualquier tráfico que no coincida con ninguna NIC pasará por la NIC de la ruta predeterminada. Entonces, en el ejemplo anterior, si tiene una conexión a Internet en NIC 2, establecería NIC 2 como su ruta predeterminada y luego cualquier tráfico que provenga de NIC 1 que no esté destinado a algo en 192.168.2.0/24 irá a través de NIC 2. Esperemos que haya otros enrutadores anteriores a NIC 2 que puedan enrutarlo más (en el caso de Internet, el siguiente salto sería el enrutador de su ISP y luego el enrutador ascendente de sus proveedores, etc.)

Habilitar ip_forwardle dice a su sistema Linux que haga esto. Para que tenga sentido, necesita dos interfaces de red (2 o más de tarjetas NIC con cable, tarjetas Wifi o conjuntos de chips, enlaces PPP a través de un módem de 56k o serie, etc.).

Al enrutar, la seguridad es importante y ahí es donde iptablesse involucra el filtro de paquetes de Linux . Por lo tanto, necesitará una iptablesconfiguración consistente con sus necesidades.

Tenga en cuenta que habilitar el reenvío con iptablesdeshabilitado y / o sin tener en cuenta el firewall y la seguridad podría dejarlo abierto a vulnerabilidades si una de las NIC está frente a Internet o una subred sobre la que no tiene control.

LawrenceC
fuente
2
Bien, querrás hacer NAT si NIC 2 es una IP privada. Linux también puede hacer NAT y iptableses la forma de configurarlo.
LawrenceC
¿Necesita un NAT para los datos que van de NIC 2 a NIC 1?
GutenYe
2
Normalmente, NAT funcionará desde la LAN a la WAN, por lo que si NIC 2 tiene una IP privada y NIC 1 tiene un público 1, necesita NAT; específicamente, la interfaz orientado a Internet (NIC 1 por arriba) necesita una MASQUERADEregla en iptables's POSTROUTINGen una cadena de hacer eso. Consulte revsys.com/writings/quicktips/nat.html e i.stack.imgur.com/rzz83.png .
LawrenceC
En palabras simples, ¿será correcto si digo que habilitar el reenvío de IP significa permitir que la máquina pase un paquete de una de sus NIC a otra de su NIC? Además, ¿sería cierto si digo que no es necesario habilitar el reenvío de IP en una máquina con una sola IP / NIC?
Sree
1
@ultrasawblade En el caso del reenvío de IP habilitado y con conexión a Internet en NIC 2 y también como ruta predeterminada, si recibe un paquete destinado a 192.168.2.2 de NIC 1, ¿qué hará el enrutador?
bobo
3

Cuando está habilitado, el "reenvío de IP" permite que una máquina Linux reciba paquetes entrantes y los reenvíe. Una máquina Linux que actúa como un host ordinario no necesitaría tener habilitado el reenvío de IP, ya que solo genera y recibe tráfico de IP para sus propios fines (es decir, los propósitos de su usuario).

Sin embargo, hay casos en que el reenvío de IP es útil: 1. Queremos que nuestra máquina actúe como un enrutador, que reciba paquetes de otros hosts y los enrute hacia su destino. 2. Somos malos y queremos suplantar a otra máquina en un llamado " ataque de hombre en el medio ". En este caso, queremos interceptar y ver todo el tráfico dirigido a la víctima, pero también queremos reenviar este tráfico hacia ella, para que ella no "sienta" nuestra presencia.

Andrea Araldo
fuente