top of page
Foto del escritorClaudio Magagnotti

CentOS7 – Usando Firewalld con un Ninja

Introducción

Firewalld incorpora a CentOS la novedad de administrar zonas de seguridad. Para los que no saben qué es esto, les cuento:

Se trata de crear zonas y posteriormente asignarles una o más interfaces a cada una. Por ejemplo, podríamos crear las zonas “DMZ, LAN, INTERNET” y luego asignarles respectivamente las interfaces “eth0, eth1 y eth2”. Como es de suponer, esto nos permitirá mayor granularidad a la hora de filtrar el tráfico entre o hacia ellas.

Además soporta IPv4 e IPv6

Netfilter (La verdad de la milanesa)

Es el framework que hace la magia de packet filtering, stateless & stateful packet filtering, NAT, etc. Y vive en el kernel de Linux (a partir del kernel 2.4.x) Es importante mencionarlo porque en definitiva, antes usábamos por ejemplo system-config-firewall-tui y la cadena era así Firewall-tui–>IPTables Service–>IPTables Command–>Kernel (Netfilter) Y ahora sería así: Firewall-cmd–>Firewalld (daemon)–>IPTables Command–>Kernel(Netfilter)

Firewalld

Si usas CentOS con GUI podes configurar firewalld a través de su interfaz gráfica Firewall-config, el cual se comunica con IPTables Command y luego éste con el kernel (Netfilter).

Entendemos que firewalld es dinámico y no estático porque los cambios son realizables en cualquier momento y no es necesario salvar después de realizar modificaciones en la configuración. Además hacer cambios o reiniciarlo no interrumpe las conexiones existentes.

Firewall-cmd brinda el soporte para línea de comandos, desde el cual podes hacer cambios permanentes o no. Solo pueden ejecutar comandos el usuario root y miembros del grupoWheel”.

Firewalld guarda la configuración en varios archivos XML en /usr/lib/firewalld/ y /etc/firewalld/. Esto te permitirá editarlos, backapearlos o usarlos como template para futuras instalaciones.

Che pibe, qué diferencias hay entre firewalld e IPTables?

IPTables guarda su configuración en un solo archivo ubicado en /etc/sysconfig/iptables y firewalld lo hace en varios XML ubicados en /usr/lib/firewalld y /etc/firewall.

Con IPTables cada cambio que haces realiza un flush de todas las reglas viejas y comienza a leer las nuevas desde /etc/sysconfig/iptables. Mientras que al realizar cambios en Firewalld éste los sobrescribe y no crea nuevamente todas las reglas. Además es posible realizar cambios en producción sin perder las conexiones.

Ambos hablan con Netfilter, el cual realiza el filtrado de paquetes.


firewalld

Zonas

Podemos crear nuestras propias zonas simplemente copiando las predefinidas en /etc/firewalld/zones o vía comandos, existe también la posibilidad de utilizar las que vienen por default:

Listado de zonas por default

DROP: Solo permite conexiones salientes. BLOCK: Solo permite conexiones que se inician desde adentro de la zona hacia afuera.

Las siguientes zonas solo permiten el tráfico IN que nosotros indiquemos: PUBLIC: DMZ: Ya todos sabemos de qué se trata una DMZ. Solo permite cierto tráfico IN. WORK HOME INTERNAL EXTERNAL: Se utiliza para redes externas con masquerade activo. Solo permite cierto tráfico IN. TRUSTED: Completamente abierta, acepta todo.

Comandos!

NOTA: Al realizar configuraciones desde la consola, es necesario
tener en mente lo siguiente:
Los comandos ejecutados sin el parámetro --permanent causan efecto inmediatamente.
Cuando utilizamos el parámetro --permanent será necesario reiniciar el servicio
(systemctl restart firewalld).
Ej: firewall-cmd –-permanent --zone=work --remove-service=smtp
     firewall-cmd --reload

Comandos básicos

Lista de servicios por default: ls /usr/lib/firewalld/services/

Lista de servicios creados por usuarios: ls /etc/firewalld/services/ Verificar si firewalld está instalado: yum install firewalld firewall-config Iniciar firewalld systemctl start firewalld Verificar si firewalld está corriendo systemctl status firewalldfirewall-cmd –state

Reiniciar Firewalld systemctl restart firewalld || firewall-cmd –reload Reiniciar Firewalld e interrumpir todas la conexiones firewall-cmd –complete-reload Deshabilitar firewalld: systemctl disable firewalld systemctl stop firewalld Habilitar IPTABLES: systemctl disable firewalld systemctl stop firewalld yum install iptables-services systemctl start iptables systemctl start ip6tables systemctl enable iptables systemctl enable ip6tables

Activar ip forwarding vim /etc/sysctl.conf net.ipv4.ip_forward=1 sysctl -p

Panic Mode (Dropea todas la conexiones IN y OUT) firewall-cmd –panic-on firewall-cmd –panic-off

Mostrar el estado de Panic Mode firewall-cmd –query-panic

Comandos para zonas

Mostrar zonas activas firewall-cmd –get-active-zones

Mostrar todas las zonas disponibles firewall-cmd –get-zones Mostrar la zona asociada a una interfaz firewall-cmd –get-zone-of-interface=em1 Mostrar todas las interfaces asociadas a una zona firewall-cmd –zone=public –list-interfaces Mostrar toda la configuracion de una zona firewall-cmd –zone=public –list-all Agregar una interfaz a una zona firewall-cmd –zone=public –add-interface=em1 Mostrar la zona default firewall-cmd –get-default-zone Configurar la zona default firewall-cmd –set-default-zone=public Crear una nueva zona firewall-cmd –permanent –new-zone=test firewall-cmd –reload

Comandos para administrar permisos

Permitir servicio hacia una zona firewall-cmd –zone=work –add-service=smtp Eliminar servicio permitido hacia una zona firewall-cmd –zone=work –remove-service=smtp Permitir un puerto hacia una zona firewall-cmd –zone=public –add-port=6556/tcp Eliminar un puerto permitido hacia una zona firewall-cmd –zone=public –remove-port=6556/tcp Filtrar por origen firewall-cmd –zone=trusted –add-source=10.16.22.0/24  

Comandos para NAT y Port Forwarding

Mostrar el estado de masquerade de una zona firewall-cmd –zone=external –query-masquerade Habilitar masquerade a una zona firewall-cmd –zone=external –add-masquerade Deshabilitar masquerade a una zona firewall-cmd –zone=external –remove-masquerade Fowardear el Puerto 3753 al 22 en una zona firewall-cmd –zone=external –add-forward-port=port=22:proto=tcp:toport=3753 Forwardear el Puerto 22 de una zona a una IP interna firewall-cmd –zone=external –add-forward port=port=22:proto=tcp:toaddr=192.0.2.55

Forwardeat el Puerto 2055 a 22 hacia una IP interna firewall-cmd –zone=external –add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55

2 visualizaciones

Entradas recientes

Ver todo

Коментарі

Оцінка: 0 з 5 зірок.
Ще немає оцінок

Додайте оцінку
bottom of page