GNU/Linux >> Tutoriales Linux >  >> Linux

iptables:¿qué significa exactamente --src-type LOCAL?

Creo que la respuesta de que addr-type LOCAL significa bucle invertido es incorrecta, porque es solo una respuesta parcial y es extremadamente engañosa. LOCAL significa CUALQUIER IP asignada en una de las interfaces del host, incluido el bucle invertido. Si dice que LOCAL es simplemente 127.0.0.0/8 (como ha dicho sasanet), entonces lo limitaría a la interfaz de bucle invertido, lo cual es completamente incorrecto.

Además, la IP puede incluso ser enrutable y pública. Para el anfitrión es irrelevante, porque desde su perspectiva esa IP se referirá al propio anfitrión. Si hace curl o hace ping a la IP pública asignada en una de sus interfaces, obviamente no enviará el paquete, lo enrutará localmente. Ejemplo:

dirección IP mostrar dev eth0:

 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 0a:e7:8b:89:d5:f4 brd ff:ff:ff:ff:ff:ff
    inet 172.31.20.254/20 brd 172.31.31.255 scope global dynamic eth0
       valid_lft 3110sec preferred_lft 3110sec

ruta ip mostrar tabla local:

local 172.31.20.254 dev eth0 proto kernel scope host src 172.31.20.254

(como ya se dijo, obviamente es irrelevante si la ip es privada o pública, siempre que esté asignada a la interfaz de red)


Muy buena explicación aquí:http://security.maruhn.com/iptables-tutorial/x6330.html

Otra discusión al respecto:http://www.linuxquestions.org/questions/linux-networking-3/wtf-addrtype-in-iptables-manpage-746659/


La terminología "ruta local" significa que los paquetes se entregarán "localmente" a su host, porque el destino está asignado a una de las interfaces de su host. no solo significa localhost , como en direcciones loopback (ni 169.254/16 como en las direcciones "enlace-local").

Linux usa el protocolo Netlink para enviar mensajes entre el espacio del kernel y el espacio del usuario; una de las familias de Netlink que contiene es NETLINK_ROUTE , que se puede utilizar para recibir actualizaciones de enrutamiento, modificar direcciones de interfaz, etc . Por ejemplo, el comando ip-route de iproute2 usa esto.

Mirando el addrtype código fuente de iptables, verá referencias a linux/rtnetlink.h , que define RTN_LOCAL como un tipo de mensaje. El rtnetlink(7) página man describe RTN_LOCAL como:

rtm_type          Route type
───────────────────────────────────────────────────────────
RTN_LOCAL         a local interface route

Nada de esto se siente exactamente claro cuando lo lees, y algunas de las mejores referencias que puedo encontrar son varias fuentes de Internet, por lo que es comprensible por qué hay confusión.


Linux
  1. ¿Qué significa esta advertencia?

  2. ¿Qué pasa si [[ $? -ne 0 ]]; significa en .ksh

  3. ¿Qué significa #define X X?

  4. ¿Qué significa matar -3?

  5. ¿Qué significa \b en un patrón grep?

¿Qué significa chmod 777?

¿Qué significa ser "sh compatible"?

No hay variable X11 DISPLAY - ¿qué significa?

¿Qué significa rc en archivos de puntos?

¿Qué significa una iptables vacía?

¿Qué significa realmente el estándar de jerarquía del sistema de archivos por datos locales?