Iptables

De MediaWiki
Ir a la navegación Ir a la búsqueda

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 port forwarding

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