Un firewall simple con enmascaramiento

/etc/ppp/masquerade (root:root:500)

Definiciones generales


#!/bin/bash
# @(#) Script para ipchains (firewall y enmascaramiento)
#
# Interfaz Local (a falta de un mejor nombre :-)
# Esta es la interfaz que conecta al servidor con el mundo.
# (casi siempre sera PPP o SLIP, pero puede ser una Ethernet a un router)

LOCALIF="ppp0"

# Red interna
# Esta es la especificacion de la red local interna en el formato
# sugerido por ipchains. Es una direccion de RED y por lo tanto los bits
# correspondientes al identificador de maquina deben mantenerse en 0

INTERNALNET="192.168.0.0/24"

# Ubicacion de ipchains con camino de acceso completo (paranoia :-)

IPCHAINS="/sbin/ipchains"

# Se determina la direccion IP local (en el caso PPP siempre va a
# variar; para otro tipo de conexiones, puede ponerse el valor fijo).
# Se determina la mascara de red correspondiente a la interfaz.
# Con ambos valores se construye la especificacion de red externa 
# sugerida por ipchains.

LOCALIP=`ifconfig $LOCALIF | grep inet | cut -d : -f 2 | cut -d \  -f 1`
LOCALMASK=`ifconfig $LOCALIF | grep Mask | cut -d : -f 4`
LOCALNET="$LOCALIP/$LOCALMASK"

# Presentamos la informacion relevante

echo "Internal: $INTERNALNET"
echo "External: $LOCALNET"