Convertir un ordenador en un gateway/cortafuegos con OpenBSD 4.7 para proteger una pequeña red Domestica

Requerimientos:

-Conexion a internet (Ej: ADSL)

-Cable de telefono.

-Router dedicado de marca X (pequeña cajita con luces y entradas de cables)

-Cable ethernet.

-Ordenador con 2 tarjetas ethernet (el que vamos a usar de router/cortafuegos)

-Disco de OpenBSD 4.7.

-Otro cable ethernet.

-Switch o hub ethernet (solo es necesario si disponemos de mas de un ordenador cliente que se conecte mediante cable ethernet)

-Ordenadores cliente (necesitariamos otro cable ethernet para cada uno)

Y creo que no me dejo nada salvo la conexion a la red electirica, aunque podriamos usar un sai por si se va la luz, pero esto es opcional.

Instalacion de OpenBSD

Esto no lo voy a explicar, pues creo que hay muchos tutoriales y videos en el youtube and company.

Configuracion del OpenBSD como router/cortafuegos

Activando el forwarding

Editaremos el archivo /etc/sysctl.conf y descomentaremos la linea del forwarding para ipv4 quitandole el # que lleva delante, y quedara asi:

net.inet.ip.forwarding=1

Configurando las dos tarjetas de red

En mi caso utilizo rl0 para la red interna y rl1 para la externa.

Como que al router de marca esta activado el dhcp, el archivo /etc/hostname.rl1 (el de la tarjeta exterior del cortafuegos) quedara asi:

dhcp

Para configurar la tarjeta de red interior en mi caso tengo que modificar/crear el archivo /etc/hostname.rl0, dejandolo asi:

inet 192.168.0.1 255.255.255.0 NONE

Haciendo que pf y ftp-proxy arranquen al iniciar:

Si queremos utilizar el servicio ftp desde la lan que esta detras del cortafuegos, devemos usar algun proxy o intermediario, yo he elgido ftp-proxy porque es el que se aconsega desde las faqs de openbsd.org.

Para hacer que arranque pf y ftp-proxy al iniciar devemos de editar el archivo /etc/rc.conf.local, y yo lo he dejado asi:

pf=YES
ftpproxy_flags="-D0"

”-D0” es para que no loguee nada, pues temo a que se me llenen demasiado los logs.

Configurando pf

Para configurar el pf hay que editar el archivo /etc/pf.conf. Yo lo que queria es que no me dejara entrar desde la red de externa al cortafuegos, que pudiera usar los servicios de dns, http, https, ftp desde la red interna, ademas como uso wifi mediante el access point que esta detras del cortafuegos, solo dejo pasar los paquetes tcp emitidos por un OpenBSD (los clientes).

Seguro que puede hacerse mejor, pero puede que con esta parrafada si estais un poco perdidos, de algo os sirva.

Mi pf.conf a quedado asi:

antispoof quick for { lo0 rl0 (rl1) }
block drop all
anchor "ftp-proxy/*"
pass quick on lo0 from lo0 to lo0
pass out on rl1 inet from rl0:network nat-to (rl1) port 1023:65535
pass out on rl1 inet proto tcp from rl1 to ! rl1 port { 21, 49151:65535 } modulate state
pass in on rl0 inet proto udp from rl0:network to ! rl0 port domain
pass in on rl0 inet proto tcp from rl0:network os "OpenBSD" to ! rl0 port { domain, www, https } modulate state
pass in on rl0 inet proto tcp from rl0:network os "OpenBSD" to ! rl0 port ftp modulate state rdr-to lo0 port 8021

Naturalmente si vosotros quereis que haga cosas distintas devereis de adaptar el pf.conf a vuestras necesidades.

Despues de esto reiniciamos y tendria que estar el router/cortafuegos en marcha.

Espero que toda esta parrafada haya os haya servido.


Personal Tools