Herramientas de usuario

Herramientas del sitio


informatica:certificaciones:lpic:lpic-2:212_system_security:212.1_configuring_a_router

¡Esta es una revisión vieja del documento!


212.1 Configuring a router

Pertenece a Topic 212: System Security

  • Weight: 3
  • Description: Candidates should be able to configure a system to forward IP packet and perform network address translation (NAT, IP masquerading) and state its significance in protecting a network. This objective includes configuring port redirection, managing filter rules and averting attacks.
  • Key Knowledge Areas:
    • iptables and ip6tables configuration files, tools and utilities
    • Tools, commands and utilities to manage routing tables.
    • Private address ranges (IPv4) and Unique Local Addresses as well as Link Local Addresses (IPv6)
    • Port redirection and IP forwarding
    • List and write filtering and rules that accept or block IP packets based on source or destination protocol, port and address
    • Save and reload filtering configurations
  • Terms and Utilities:
    • /proc/sys/net/ipv4/
    • /proc/sys/net/ipv6/
    • /etc/services
    • iptables
    • ip6tables

Enrutamiento

La función de enrutamiento se integra de forma nativa en el núcleo de Linux.

La activación del enrutamiento en un servidor Linux se puede hacer tocando las opciones del kernel:

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

También se puede hacer así:

sysctl net.ipv4.ip_forward=1

Si embargo, los métodos anteriores son volátiles, deben volver a introducirse después de cada reinicio. Para que la configuración permanezca, debemos incluir en el fichero /etc/sysctl.conf lo siguiente:

net.ipv4.ip_forward=1

route

Comando que permite crear y visualizar las rutas para las interfaces de nuestra máquina local.

  • route: Visualizar las rutas actuales.
  • route -n: Visualizar las rutas actuales mostrando las direcciones IP.
  • route add –net 127.0.0.1: Creación de entrada loopback.
  • route add –net 192.168.3.0 netmask 255.255.255.0 eth0: Crea la ruta hacia la red 192.168.3.0 vía eth0.
  • route add default gw 192.168.3.1: Añadir una ruta por defecto.
  • route del –net 192.168.3.0 netmask 255.255.255.0 eth0: Eliminar una ruta

iptables

Se utiliza para gestionar el filtrado de paquetes IP en un sistema Linux.

El paquete iptables viene instalado por defecto.

Puede filtrar tanto el tráfico que transita por un router Linux, como el tráfico entrante y saliente de cualquier servidor o estación de trabajo en una sola interfaz.

Es lo que hace que nuestra máquina Linux pueda convertirse en un router o firewall.

iptables funciona a través de reglas.

Tablas:

  • filter: Tabla de filtrado de paquetes (por defecto).
  • nat: Tabla de traducción de direcciones entre una red privada y una pública.
  • mangle Tabla que sirve para modificar paquetes.

En función de la tabla que se use, definirán las acciones que podemos realizar sobre los paquetes y qué tipo de paquetes podremos utilizar.

Cadenas

  • INPUT: Identifica el tráfico entrante.
  • OUTPUT: Identifica el tráfico saliente.
  • FORWARD: Identifica el tráfico que atraviesa la máquina.
  • PREROUTING: En NAT, sirve para tratar paquetes antes del enrutamiento.
  • POSTROUTING: Se utiliza en la configuración de NAT, tiene como objetivo tratar paquetes después de una operación de enrutamiento.

Las cadenas definen cuándo vamos a trabajar con los paquetes.

Acciones:

  • ACCEPT: Permite el paso del paquete.
  • DROP: Destruye el paquete.

Un cortafuegos puede funcionar según dos modelos distintos:

  • Todo lo que no está autorizado está prohibido.
  • Todo lo que no está prohibido está autorizado.

Para definir el comportamiento por defecto, iptables permite definir para cada cadena una acción por defecto:

iptables -P <cadena> <acción>

Ejemplo:

iptables -P OUTPUT DROP

Estaríamos diciendo que, por defecto, ningún paquete puede salir de nuestra máquina.

Cadenas usadas en cada tabla:

PREROUTING INPUT FORWARD OUTPUT POSTROUTING
FILTER X X X
NAT X X X
MANGLE X X

Sintaxis reglas

Para cada elemento de tráfico que debe estar permitido o prohibido, habrá que crear una regla específica.

Si no usamos la opción -t, la tabla que se elegirá será filter.

iptables -A <cadena> -s <ip_origen> -d <ip_destino> -p <protocolo> --dport <puerto> -j <acción>
  • -A <cadena>: se añade una regla en la cadena cadena (INPUT, OUTPUT o FORWARD)
  • -s <ip_origen>: (Opcional) la dirección IP origen de donde provienen los paquetes sometidos a la regla. Si la dirección es una dirección de red, hay que especificar la máscara.
  • -d <ip_destino>: (Opcional) la dirección IP destino a la que van los paquetes sometidos a la regla. Si la dirección es una dirección de red, hay que especificar la máscara.
  • -p <protocolo>: indica el protocolo utilizado en el paquete sometido a la regla. Valores comunes: udp, tcp, icmp.
  • --dport <puerto>: (Opcional) indica el puerto de destino del paquete sometido a la regla.
  • -j <acción>: indica cómo tratar el paquete sometido a la regla (ACCEPT o DROP)

A continuación veremos ejemplos de reglas de iptables. Autorización de ping saliente y entrante:

iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT

Lo mismo, pero por IPv6:

ip6tables -A OUTPUT -p icmp -j ACCEPT
ip6tables -A INPUT -p icmp -j ACCEPT

Autorización del tráfico HTTP que pase por la máquina con origen una red determinada (subred 192.168.1.0/24):

iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT

Es decir, todos los paquetes que vengan de la subred 192.168.1.0/24 del protocolo TCP y destino puerto 80, se aceptarán. Básicamente estaríamos permitiendo a nuestras máquinas locales acceder a páginas web.

Las reglas se aplican en su orden de creación y el sistema les asigna automáticamente un número de orden.

Visualización de reglas efectivas:

iptables- L

Ejemplo de salida:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
(...)

Visualización de los números de reglas efectivas :

iptables -L <cadena> --line-numbers -n

Ejemplo:

iptables -L FORWARD --line-numbers -n

Eliminación de un regla :

iptables -D <cadena> <número>

Ejemplo:

iptables -D FORWARD 1

212.1: Configurando un Router (3) IPTABLES (NAT) NAT consiste en reescribir la cabecera IP de un paquete que viaja de una red pública a una red privada y viceversa. Las cadenas que se tratan en la tabla NAT son PREROUTING, POSTROUTING y OUTPUT, que representan el tráfico que hay que modificar antes del enrutamiento, después del enrutamiento o directamente en la salida de la máquina. Visualización de la configuración NAT:

iptables -t nat -L

Acciones de NAT

  • MASQUERADE: cambia la ip de origen (cuando es dinámica)
  • SNAT: cambia la ip de origen (cuando es estática)
  • DNAT: cambia la ip de destino

212.1: Configurando un Router (3) IPTABLES (NAT) Configuración de NAT

iptables -t nat -A POSTROUTING -o <tarjeta_exterior> -j <acción_nat>
  • -t nat: la regla afecta a la tabla NAT.
  • -A POSTROUTING: se añade una regla a la cadena POSTROUTING para el procesado después del enrutamiento.
  • -o <tarjeta_exterior>: identifica la tarjeta de red por la cual salen los paquetes del cortafuegos.
  • -j <acción_nat>: identifica el modo de acción de NAT, soporta dos opciones: SNAT si la dirección pública es fija y MASQUERADE si la dirección pública es dinámica.
iptables- t nat -A POSTROUTING -o eth1 -j MASQUERADE

212.1: Configurando un Router (3) IPTABLES Limpiar todas las tablas

iptables -t mangle -F
iptables -t nat -F
iptables -t filter -F

Limpiar todas las cadenas personalizadas de las tablas

iptables -t mangle -X
iptables -t nat -X
iptables -t filter -X

212.1: Configurando un Router (3) IPTABLES iptables-save: comando que permite almacenar la configuración iptables en un fichero.

iptables-save > /etc/iptables.rules

iptables-restore: comando que permite cargar la configuración iptables desde un fichero.

iptables-restore < /etc/iptables.rules

212.1: Configurando un Router (3) PREGUNTA DE EXAMEN: When the default policy for the iptables INPUT chain is set to DROP, why should a rule allowing traffic to localhost exist? A.All traffic to localhost must always be allowed. B.It doesn't matter; iptables never affects packets addressed to localhost. C.Sendmail delivers emails to localhost. D.Some applications use the localhost interface to communicate with other applications. E.syslogd receives messages on localhost. 212.1: Configurando un Router (3) PREGUNTA DE EXAMEN: To be able to access the server with the IP address 10.12.34.56 using HTTPS, a rule for iptables has to be written. Given that the client host's IP address is 192.168.43.12, which of the following commands is correct? A. iptables - A FORWARD -p tcp -s 0/0 -d 10.12.34.56 –dport 80 -j ACCEPT B. iptables - A FORWARD -p tcp -s 192.168.43.12 d 10.12.34.56:443 -j ACCEPT. C. iptables - A FORWARD -p tcp -s 192.168.43.12 -d 10.12.34.56 –dport 443 -j ACCEPT. D. iptables - A INPUT -p tcp -s 192.168.43.12 - d 10.12.34.56:80 -j ACCEPT. E. iptables - A FORWARD -p tcp -s 0/0 -d 10.12.34.56 –dport 443 -j ACCEPT.

informatica/certificaciones/lpic/lpic-2/212_system_security/212.1_configuring_a_router.1618921188.txt.gz · Última modificación: por tempwin