Skip to content

Instantly share code, notes, and snippets.

@nacx
Created March 23, 2011 16:37
Show Gist options
  • Save nacx/883416 to your computer and use it in GitHub Desktop.
Save nacx/883416 to your computer and use it in GitHub Desktop.
An example iptables script to configure a routing machine
#!/bin/bash
echo "Generando reglas iptables..."
# Borramos las reglas de las cadenas y los contadores
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# Establecemos las políticas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
### Redirecciones ###
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.35:8080
### Filtrado de acceso al firewall ###
# Dejamos acceso al localhost
iptables -A INPUT -i lo -j ACCEPT
# Dejamos acceso al firewall desde la red local
iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT
### Filtrado de conexiones salientes de la LAN ###
# Esta vez filtraremos desde la cadena FORWARD ya que los paquetes nos llegan
# pero no son para nosotros, son para ser reencaminados.
# Permitimos conexiones salientes al puerto 80 (web) y 443 (https)
iptables -A FORWARD -i eth1 -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp -s 192.168.0.0/24 --dport 443 -j ACCEPT
# Aceptamos conexiones salientes a DNS (puerto 53 tcp y udp)
iptables -A FORWARD -i eth1 -p tcp -s 192.168.0.0/24 --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT
# Denegamos el resto de conexiones salientes
# (No necesitamos filtrar las entrantes en FORWARD ya que sólo serán
# las que hayamos permitido explícitamente en PREROUTING)
iptables -A FORWARD -i eth1 -p tcp -s 192.168.0.0/24 -j DROP
### Enmascaramiento de la red local ###
# Enmascaramos la red local (para hacer NAT)
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
# Activamos forwarding (para permitir reencaminar paquetes)
echo 1 >/proc/sys/net/ipv4/ip_forward
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment