rendered paste body#!/bin/sh
#
###
#
# Firewall & Compartir Internet
# Autor: Alex Barrios
# alex@alexertech.com
#
# Ultima Revision: 30/08/2006
#
###
###
# Localhost
#
LO_IFACE="lo"
LO_IP="127.0.0.1"
###
# Red Local
#
LAN_IP="192.168.2.1"
LAN_IP_RANGE="192.168.2.0/24"
LAN_BCAST="192.168.2.255"
LAN_IFACE="eth0"
###
# Internet 1
#
INET_IP="10.00.00.00"
INET_IFACE="eth1"
###
# Internet 2
#
INET_IP_2="200.11.11.111"
INET_IFACE_2="eth2"
###
# Localizacion de iptables.
#
IPTABLES="/sbin/iptables"
###
# Borra las reglas anteriores
#
echo "Borrando reglas anteriores ..."
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
###
# Cargando modulos necesarios
#
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_nat_irc
###
# Politicas Predeterminadas de INPUT, FORWARD y OUTPUT
#
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
###
# NAT enmascarado, para compartir internet y redireccion interna
#
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -s $LAN_IP_RANGE -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE_2 -s $LAN_IP_RANGE -j MASQUERADE
###
# Activa forwarding de paquetes (Linux no lo hace por default)
#
echo "1" > /proc/sys/net/ipv4/ip_forward
###
# Redireccionamiento de paquetes
#
$IPTABLES -t nat -A PREROUTING -p tcp -i $LAN_IFACE --dport 80 -j REDIRECT --to-ports 8080
$IPTABLES -t nat -A PREROUTING -p tcp -i $INET_IFACE_2 --dport 7880 -j DNAT --to 192.168.2.6:80
$IPTABLES -t nat -A PREROUTING -p tcp -i $INET_IFACE_2 --dport 8780 -j DNAT --to 192.168.2.10:80
$IPTABLES -t nat -A PREROUTING -p tcp -i $INET_IFACE_2 --dport 7822 -j DNAT --to 192.168.2.10:7822
###
# ICMP (pings) - Regla icmp_packets
#
$IPTABLES -N icmp_packets
$IPTABLES -A icmp_packets -p ICMP --icmp-type echo-request -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP --icmp-type echo-reply -j ACCEPT
###
# Reglas INPUT
#
$IPTABLES -A INPUT -i $LO_IFACE -j ACCEPT
$IPTABLES -A INPUT -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $INET_IFACE_2 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p ICMP -j icmp_packets
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: "
###
# Reglas del renvio de paquetes
#
$IPTABLES -A FORWARD -i $LAN_IFACE -s $LAN_IP_RANGE -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $INET_IFACE_2 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
###
# Reglas OUTPUT
#
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
###
# Imprime que arranco el script
#
echo "Iptfwall -> by alex... done"