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 revisionBoth sides next revision
informatica:linux:iptables [2012/05/09 09:06] javiinformatica:linux:iptables [2012/05/10 17:15] 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