Páginas

martes, 20 de mayo de 2014

FreeBSD Server NAT IPFW


FreeBSD Server NAT IPFW

Nuestro servidor FreeBSD está dotado con dos tarjetas de red.

em0 interface LAN IP 192.168.3.1/24
em1 interface WAN (internet) 192.168.1.250/24

Algunos pasos adicionales son necesarios para que el servidor FreeBSD se convierta en router intermedario entre Internet y la red interna.

Después de intalar FreeBSD 9.1-RELEASE tendremos que recompilar el KERNEL para Habilitar NAT + FIREWALL, no sin antes tener las fuentes del núcleo instaladas.

Instalar las fuentes del kernel:
Si el directorio /usr/src/sys no existe quiere decir que las fuentes del kernel no están instaladas.

# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.1-RELEASE/src.txz

Descomprimir el archivo en /usr/src:

# tar -C / -xvzf src.txz

Ahora desde el directorio arch/conf copiar el archivo de configuración GENERIC utilizando cualquier nombre:

# cp /usr/src/sys/amd64/conf/GENERIC /usr/src/amd64/conf/MYKERNEL

Añadir las siguientes opciones a /usr/src/sys/amd64/conf/MYKERNEL
# ee /usr/src/sys/amd64/conf/MYKERNEL
...
options    IPFIREWALL
options    IPFIREWALL_VERBOSE
options    IPFIREWALL_VERBOSE_LIMIT=5
options    IPFIREWALL_DEFAULT_TO_ACCEPT
options    IPDIVERT
...

Recompilar el kernel:
# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL

El nuevo kernel se copiará al directorio raíz como /kernel y el viejo kernel tendrá de nombre kernel.old.

Reiniciar el sistema con el nuevo kernel.

Nos conectamos vía SSH para comprobar el nuevo kernel:
$ ssh -p 2222 remoto@freebsdsvr
Password:

$ hostname
freebsdsvr.linux.bcn

$ uname -a


Archivos de configuración:

$ cat /etc/rc.conf
gateway_enable="YES"     # igual que net.inet.ip.forwarding=1
natd_enable="YES" # Habilita NAT
natd_interface="em1" # nombre de la interfaz NIC conecta a Internet
natd_flags="-dynamic -m" # -m = preserve port numbers; additional
firewall_enable="YES"    # activa ipfw firewall
firewall_type="simple"   # protege red interna (LAN)
firewall_logging="YES"   # habilita log
firewall_script="/etc/rc.firewall" # path scrip IPFW

$ cat /boot/loader.conf
ipfw_load="YES"
ipdivert_load="YES"
autoboot_delay="2"
loader_color="YES"

FreeBSD - The power to Serve!

http://www.pl.freebsd.org/doc/handbook/firewalls-ipfw.html

Unix es genial!.

No hay comentarios:

Publicar un comentario