A partir de Red Hat® Enterprise Linux® (RHEL) 7 y CentOS® 7, firewalld está disponible para administrar iptables. Como resultado, debe usar firewall-cmd
o deshabilite firewalld y habilite iptables. Este artículo le muestra cómo usar la configuración clásica de iptables.
Detener y enmascarar el servicio de firewalld
Ejecute los siguientes comandos para detener y enmascarar el servicio de firewall que no desea utilizar:
$ systemctl stop firewalld
$ systemctl mask firewalld
Instalar y configurar iptables
Use los siguientes pasos para instalar y configurar iptables:
-
Instale los
iptables-services
paquete (si aún no está instalado) ejecutando el siguiente comando:$ yum install iptables-services
-
Habilite el servicio para que se inicie en el momento del arranque ejecutando los siguientes comandos:
$ systemctl enable iptables $ systemctl enable ip6tables
-
A continuación, agregue reglas de iptables. Puede hacerlo de cualquiera de las siguientes maneras:
-
Desde la interfaz de línea de comandos (CLI), ejecutando comandos similares a
iptables -I INPUT ...
-
Creando o editando su
/etc/sysconfig/iptables
para que se parezca al siguiente ejemplo básico, que deja abiertos los puertos 22 y 80:$ cat /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp-port-unreachable COMMIT $cat /etc/sysconfig/ip6tables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [214:43782] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -j REJECT --reject-with icmp6-adm-prohibited COMMIT
-
-
(Opcional ) Si está guardando sus reglas en las
/etc/sysconfig/ip{,6}tables
archivos, también debe ejecutar los siguientes comandos:$ systemctl restart iptables $ systemctl restart ip6tables
-
Luego, verifique que el servicio iptables esté activo ejecutando los siguientes comandos:
$ systemctl status iptables $ systemctl status ip6tables
-
Verifique sus reglas de iptables ejecutando los siguientes comandos:
$ iptables -L $ ip6tables -L
-
Verifique que su servidor esté escuchando en los puertos que abrió (22 y 80 en el ejemplo anterior) ejecutando el siguiente comando:
$ netstat -plant
-
Consulta el
systemd
diario para obtener un registro de los cambios que realizó en el servicio iptables ejecutando los siguientes comandos:$ journalctl -f -u iptables.service $ journalctl -f -u ip6tables.service
-
Reinicie el servidor. Las reglas de iptables deben guardarse y recargarse automáticamente.