Iptables
Sumario
Introducción
iptables é un programa que permite a un administrador de sistema configurar as táboas proporcionadas pola devesa do nucleo Linux (implementado como diferentes módulos Netfilter) e as cadeas e regras que almacena.
Utilízanse diferentes módulos do kernel e programas para protocolos diferentes:
iptables aplicase a IPv4 ip6tables a IPv6 arptables a ARP ebtables a frames de Ethernet
Instalación
Está preinstalado na maioría das distribucións de Linux. DE non ser así, para Ubuntu / Debian:
sudo apt-get update sudo apt-get install iptables
Comprobación do estado actual das iptables
sudo iptables -L -v -L para listar todas as regras -v para unha lista máis detallada
Exemplo de saída do comando anterior Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Explicación As tres cadeas establecense na política ACCEPT predeterminada. Actualmente non hai regras para ningunha das cadeas.
Funcionamento básico
O redireccionamiento crease con iptables na táboa nat coas seguientes cadenas básicas:
PREROUTING Todos los paquetes que entran, os que teñen este sistema como destino, pasan antes de que se traduzca a dirección de rede interna.
POSTROUTING Todos os paquetes que saen, os que teñen este sistema como emisor, pasan despois de que se traduzca a dirección de rede externa.
OUTPUT Solo para paquetes xenerados localmente.
A opción da táboa nat ademáis das que tene a táboa filter é:
REDIRECT - -to-ports puerto Para redireccionar o paquete ó porto direccionado por - -to-pots.
Exemplo - Acceso a un servidor de páxinas web
Se desexamos permitir el acceso a un servidor de páginas web con peticións que veñen da LAN 192.169.11.0 pola segunda tarxeta de rede (eth1), debemos crear as seguientes regras:
iptables –t nat –A PREROUTING -s 192.168.11.0/255.255.255.0 -p tcp -m tcp – –dport 80 -j REDIRECT – –to-ports 3128 iptables –t nat -A PREROUTING -s 192.168.11.0/255.255.255.0 -p tcp -m tcp – –dport 80 -j REDIRECT – –to-ports 3128 iptables –A INPUT -i eth1 -p tcp -m state – –state NEW -p tcp – –dport 3128 -j ACCEPT
Foron usadas as táboas nat e filter (por omisión).
Exemplo - Reenvío de portos co protocolo ssh
Podemos usar o reenvío de portos co protocolo SSH (smpre por un porto superior a 1024 para non necesitar ser root):
ssh -L 8080:web.exemplo.com:80 web.exemplo.com
Relacionado
O uso de iptables irá sendo substituido por nftables
Referencias
- Servicios en red. Editorial Editex
- iptables en wikipedia
- iptables en archlinux
- Exemplo práctico en Ubuntu