¡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/servicesiptablesip6tables
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:
echo 1 > /proc/sys/net/ipv4/ip_forward
Otra forma:
sysctl net.ipv4.ip_forward=!
• 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
212.1: Configurando un Router (3) route: comando que permite crear y visualizar las rutas para las interfaces de nuestra máquina local.
route: Visualizar las rutas actualesroute -n: Visualizar las rutas actuales mostrando las direcciones IProute add –net 127.0.0.1: Creación de entrada loopbackroute add –net 192.168.3.0 netmask 255.255.255.0 eth0: Crea la ruta hacia la red 192.168.3.0 vía eth0route add default gw 192.168.3.1: Añadir una ruta por defectoroute del –net 192.168.3.0 netmask 255.255.255.0 eth0: Eliminar una ruta
212.1: Configurando un Router (3) IPTABLES • Se utiliza para gestionar el filtrado de paquetes IP en un sistema Linux. • 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. 212.1: Configurando un Router (3) IPTABLES Tablas:
filter: Tabla de filtrado de paquetes (por defecto).nat: Tabla de traducción de direcciones entre una red privada y una pública.mangleTabla que sirve para modificar paquetes
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 enrutamientoPOSTROUTING: Se utiliza en la configuración de NAT, tiene como objetivo tratar paquetes después de una operación de enrutamiento.
Acciones:
ACCEPT: Permite el paso del paquete.DROP: Destruye el paquete.
212.1: Configurando un Router (3) IPTABLES 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
212.1: Configurando un Router (3) IPTABLES Cadenas usadas en cada tabla:
| PREROUTING | INPUT | FORWARD | OUTPUT | POSTROUTING | |
|---|---|---|---|---|---|
| FILTER | X | X | X | ||
| NAT | X | X | X | ||
| MANGLE | X | X |
212.1: Configurando un Router (3) PREROUTING INPUT FORWARD OUTPUT POSTROUTING FILTER X X X NAT X X X MANGLE X X IPTABLES (filter) Para cada elemento de tráfico que debe estar permitido o prohibido, habrá que crear una regla específica.
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 cadenacadena(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´moo tratar el paquete sometido a la regla (ACCEPToDROP)
- 212.1: Configurando un Router (3)
IPTABLES (filter) Autorización de ping saliente y entrante:
iptables -A OUTPUT -p icmp -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT
Por IPv6:
ip6tables -A OUTPUT -p icmp -j ACCEPT ip6tables -A INPUT -p icmp -j ACCEPT
</code>
Autorización del tráfico http que pase por la máquina con origen una red determinada
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
212.1: Configurando un Router (3) IPTABLES 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
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 fihja y MASQUERADE si la dirección pública es dinámica.
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-restore: comando que permite cargar la configuración iptables desde un fichero. 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.
