Podríamos intentar empezar con la definición de cortafuegos que es necesaria para cumplir con la comprensión del «vocabulario de puertos». El cortafuegos es un software o firmware que aplica un conjunto de reglas sobre los paquetes de datos que pueden entrar o salir de una red. Se encarga de gestionar las reglas de Permitir y Denegar para los puertos.
De acuerdo con el tema de esta guía nos gustaría abrir puertos en distribuciones de Linux como Ubuntu o CentOS. Ambas distros permiten configurarlo con diferentes conjuntos de herramientas (paquetes de firewalls) pero con los mismos resultados.
Herramientas que utilizaremos:
– UFW
– Firewalld
Veamos primero el escenario de Ubuntu:
Esta distribución contiene preinstalado el servicio UFW(Uncomplicated Firewall) por defecto. Simplifica toda la configuración y es fácil de usar para cualquier persona.
Compruebe el estado del servicio con el comando estándar systemctl:
$ sudo systemctl status ufw
Habilite el UFW con el comando enable:
$ sudo ufw enable
Sintaxis para abrir un puerto TCP específico:
$ sudo ufw allow (port)/tcp
Por ejemplo:
$ sudo ufw allow 53/tcp
La sintaxis también admite nombres que hacen referencia a puertos específicos:
$ sudo ufw allow https
Para permitir la entrada de paquetes tcp y udp en el puerto 21, introduzca:
$ sudo ufw allow 21
Ejemplo para una dirección IP específica:
$ sudo ufw allow from 190.34.21.113 to any port
Veamos la configuración:
$ sudo ufw status verbose
El comando muestra una tabla provisional con tres columnas:
Explicaciones:
– Para – describe el protocolo particular
– Acción – nos dice si está permitido o denegado
– De – Dice sobre la fuente e.g cualquier lugar o una dirección ip como la presentada anteriormente
Ya es hora de CentOS:
Firewalld es una herramienta más avanzada que utiliza zonas en su configuración. Son responsables de cuidar de alguna zona, o de una interfaz de red «adjunta».
Firewalld es un controlador de frontend para iptables utilizado para implementar reglas de tráfico de red persistentes.
Vamos a echar un vistazo a un montón de comandos que elaboran con firewalld.
1. Iniciar nuestro servicio con el comando stardand systemctl:
$ sudo systemctl start firewalld
Habilitarlo:
$ sudo systemctl enable firewalld
Este comando nos informa del estado del servicio. Sólo puede mostrar dos frases: «running» o «no running»
$ sudo firewall-cmd --state
La zona por defecto es pública. En este breve tutorial no la cambiaremos, pero si quieres hacerlo entonces usa estos comandos:
$ sudo firewall-cmd --set-default-zone=work
Intentemos añadir tráfico tcp en el puerto 1112:
$ sudo firewall-cmd --zone=public --add-port=1112/tcp --permanent
Para recargar y que esos cambios se apliquen al instante tenemos que recargar el estado de firewalld.
$ sudo firewall-cmd --reload
Podemos obtener una revisión legible de nuestra nueva regla con el comando de listado:
Para permitir una conexión ssh en un Ipv4 específico tenemos que usar la sintaxis con «rich rule»