lunes, 1 de agosto de 2016

Firewall y Router con Ubuntu server 16.04.1

Hola amigos, en éste tutorial vamos a ver cómo podemos hacer un router y firewall con un grande de GNU/Linux, pues hemos elegido al azar :) a Ubuntu en su versión server, es uno de mis preferidos junto a Debian y CentOS, claro también a openSUSE, son grandes entre los grandes :).

Esta vez estaremos a puro vi, ya funciona normalmente ya no hay que añadir vim-nox, que recuerde en otras releases vi no funcionaba bien, aquí no noté nada extraño, desde la instalación base todo ok.

Pues si señores usaremos a IPTABLES como firewall, pues que te parece si inciamos la aventura :)

Ubuntu server, nuestro escenario:



Nuestro firewall es Ubuntu server.

enp0s3=192.168.1.85/24, interfaz interna del router del proveedor, ip privada
enp0s8=192.168.2.85/24, interfaz LAN1, (LAN en el dibujo)
enp0s9=192.168.3.85/24, interfaz LAN2 (DMZ) en el dibujo

Los nombres Ubuntu los pone, ha cambiado la forma de desiganar a las interfaces, antes era eth0, eth1, etc., Ahora no :)

En la instalación no configuramos nada de red, lo haremos después.

Configurar interfaces de red y update a nuestro Ubuntu:

Ya tenemos instalado Ubuntu (Si quieres que haga un tutorial de la instalación escribe en los comentarios), nos "logeamos" y nos cambiamos a root, estaremos administrando el servidor en este tiempo, justifica pasarse a root.

>sudo -s
Pones tu contraseña del usuario en la instalación y cambiará a root.

En este punto usamos comandos para ver interfaces, poner nombre al server, asignarle una ip estática, es servidor puro :). tendrá tres o cuatro servicios no más: será DHCP, Proxy y por ahi DNS autoritativo.

#ip a
ese comando muestra las interfaces, el comando ifconfig ya es obsoleto en las recientes versiones de los GNU/Linux, pero se puede usar :)

El nombre del host está en /etc/hostname, es solo una palabra y el fqdn pues lo ponemos en /etc/hosts

#vi /etc/hosts
Escribimos o agregamos, Mi ip



#ip a | less
Vemos que no estan configuradas, ahora editamos el archivo /etc/network/interfaces y escribimos lo siguiente:


Reiniciamos el servicio con
#service networking restart
#ip a | less
Ya verás las interfaces con sus ips nuevas, ahora probemos y vayamos por los servidores DNS que nos resuelvan los nombres a IP, usaremos los de google.

Por defecto Ubuntu server nos agrega a resolvconf, no me gusta :), prefiero la manera tradicional, usar resolv.conf, asi que eliminaremos el enlace simbólico que genera y es un resolv.conf y lo crearemos con touch, escribiremos manualmente.

Tip: ctrl+l, limpias la pantalla de Ubuntu

#rm -rf /etc/resolv.conf
#touch /etc/resolv.conf
#vi /etc/resolv.conf

#dpkg -l resolvconf
Lo vas a ver instalado, ¿que te parece si lo quitamos? luego de configurar la red (abajo) todo perfecto, procede a quitar ese software con:
#apt-get remove resolvconf


Agregas los siguiente:


Probamos que funciones todo:


Pues si señores Ubuntu ya esta funcionando con salida a internet, procedemos a actualizar los repositorios.

#apt-get update

Ya tenemos todo lo necesario para hacer nuestro Firewall y Router, nuestras LANS estan esperando "ansiosas" :), obtener ips y salir por el firewall, entonces construyamos un router y firewall ahora.

Nota: no preocupes por los repositorios, Ubuntu cuando le dices en la instalación en qué país te ubicas él ya inserta los espejos o servers que serán nuestros repositorios, no es necesario tocar /etc/apt/sources.list

Firewall y Router con IPTABLES:

Crearemos un archivo llamado reglas.sh, ahí escribiremos las reglas, ese archivo lo ubicamos en "cualquier lugar", de preferencia donde estemos, yo estoy con mi usuario, podría ser en /etc, o en /root, solo le daremos permiso de ejecución, para que el script inicie en tiempo de arranque usaremos a /etc/rc.local, hay formas que la wiki Ubuntu recomienda, pero mejor lo hacemos iniciar despues de todo, no comprometamos al archivo interfaces, más simple es la forma como lo hago, depende como lo veas, yo procedí asi.

#pwd
#touch reglas.sh
#chmod +x reglas.sh
Con eso le doy permiso para ejecución a todos, podría haber usado a+x, asi debe quedar nuestro archivo, le damos alguito de seguridad.




Lo ubicamos en rc.local y lo ejecutamos con sh, puedes ejecutar ya donde estés con sh /path a las reglas/reglas.sh



Por ahora no hagan caso a redirecciones con proxy, no la pongan, solo quiten esa regla y prueben, debe funcionar, le ponen ip manual a las estaciones windows o cualquier sistema operativo, el protocolo tcp/ip es independiente del sistema operativo, puede ser una Mac Os, un BSD, GNU/Linux u otro.

Resultado en los clientes:

Lan 1


Lan 2



Hemos tenido éxito :), funciona, ahora hazle un reboot y vas a ver que las reglas iptables se inician en boot time.

Thanks for watching y no olvides hacerme mención (url) si usas este tutorial para cualquier uso.

No hay comentarios.:

Publicar un comentario