User Tools

Site Tools


informatica:linux:iptables

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatica:linux:iptables [2012/05/09 09:06] javiinformatica:linux:iptables [2012/05/10 17:16] javi
Line 63: Line 63:
   May  9 10:11:32 jj kernel: iptables denied: IN=vmbr0 OUT= MAC=00:22:64:b1:c5:0a:64:68:0c:7e:f9:0d:08:00 SRC=IP_PUBLICA_CLIENTE DST=192.168.1.200 LEN=60 TOS=0x00 PREC=0x00 TTL=53 ID=31566 DF PROTO=TCP SPT=35538 DPT=666 WINDOW=14600 RES=0x00 SYN URGP=0    May  9 10:11:32 jj kernel: iptables denied: IN=vmbr0 OUT= MAC=00:22:64:b1:c5:0a:64:68:0c:7e:f9:0d:08:00 SRC=IP_PUBLICA_CLIENTE DST=192.168.1.200 LEN=60 TOS=0x00 PREC=0x00 TTL=53 ID=31566 DF PROTO=TCP SPT=35538 DPT=666 WINDOW=14600 RES=0x00 SYN URGP=0 
  
 +===== Ejemplo OpenVZ =====
 +
 +<code>
 +#!/bin/bash
 +
 +# Creamos variables
 +IPTABLES=/sbin/iptables
 +DEPMOD=/sbin/depmod
 +MODPROBE=/sbin/modprobe
 +ROUTER="192.168.1.1"
 +VM="192.168.0.0/24"
 +PROXMOX="192.168.1.200"
 +
 +INTERNET_HOSTS="
 +192.168.0.203
 +"
 +
 +# Interfaces
 +EXTIF="vmbr0"
 +INTIF="venet0"
 +
 +# Verifica que los módulos del núcleo están bien
 +$DEPMOD -a
 +
 +# Carga manualmente el módulo iptables
 +$MODPROBE ip_tables
 +
 +#  Éste módulo se carga automáticamente cuando se habilita la 
 +# funcionalidad MASQ
 +$MODPROBE ip_conntrack
 +
 +# Opcional: reenvío de tráfico ftp
 +$MODPROBE ip_conntrack_ftp
 +
 +# Opcional: reenvío de tráfico irc
 +$MODPROBE ip_conntrack_irc
 +
 +#  Éste módulo se carga automáticamente cuando se habilita la 
 +# funcionalidad MASQ
 +$MODPROBE iptable_nat
 +
 +# Opcional: soporte non-PASV FTP.
 +$MODPROBE ip_nat_ftp
 +
 +#CRÍTICO: habilitar redirección IPv4, deshabilitado por defecto
 +echo "1" > /proc/sys/net/ipv4/ip_forward
 +
 +# Soporte para ip dinámica
 +echo "1" > /proc/sys/net/ipv4/ip_dynaddr
 +
 +# Borrado de reglas de iptables
 +$IPTABLES -P INPUT ACCEPT
 +$IPTABLES -F INPUT 
 +$IPTABLES -P OUTPUT ACCEPT
 +$IPTABLES -F OUTPUT 
 +$IPTABLES -P FORWARD ACCEPT
 +$IPTABLES -F FORWARD 
 +$IPTABLES -t nat -F
 +
 +############################ Variable #############################
 +
 +# Abrir acceso hacia fuera
 +for host in $INTERNET_HOSTS
 +do
 +    if [[ "$host" != "#"* ]]
 +    then
 +       $IPTABLES -A FORWARD -i $INTIF -o $EXTIF -s "$host" -j ACCEPT
 +    fi
 +done
 +
 +# Permitir acceso de las VM's afuera en respuesta a conexiones externas
 +$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -s "$VM" -m state --state ESTABLISHED,RELATED -j ACCEPT
 +
 +# Permitir DNS lookups
 +# TODO: creo que jugando con NAT NO deberia ser necesario estos lookups
 +$IPTABLES -A FORWARD -p udp --dport 53 -s $VM -d $ROUTER -j ACCEPT
 +
 +# FTP
 +$IPTABLES -t nat -I PREROUTING -p tcp --dport 8021 -j DNAT --to-destination 192.168.0.203:21
 +$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 21 -d "192.168.0.203" -j ACCEPT
 +
 +# VPN
 +$IPTABLES -t nat -I PREROUTING -p tcp --dport 1723 -j DNAT --to-destination 192.168.0.203:1723
 +$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -p tcp --dport 1723 -d "192.168.0.203" -j ACCEPT
 +
 +# Casca acceso a VM desde Proxmox
 +#iptables -t nat -A POSTROUTING -j SNAT --to-source 192.168.0.203
 +
 +# Permitir la redirección desde una interfaz a la otra solo de determidas conexiones
 +$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
 +$IPTABLES -A FORWARD -i $EXTIF
 +
 +# Habilitar NAT masquerade en la interfaz externa
 +$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
 +
 +# Si las reglas no funcionan escribo una linea
 +$IPTABLES -A FORWARD -j LOG --log-prefix "FORWARD "
 +#$IPTABLES -A INPUT -j LOG --log-prefix "INPUT "
 +#$IPTABLES -A OUTPUT -j LOG --log-prefix "OUTPUT "
 +</code>
informatica/linux/iptables.txt · Last modified: 2015/04/13 20:19 by 127.0.0.1