Está en la página 1de 9

(/)

Las opiniones son como los traseros, cada cual tiene el suyo y todos apestan.

Gestión del rewall en Red Hat/CentOS

12 Marzo 2014

CentOS (/component/tags/tag/centos) Red Hat (/component/tags/tag/red-hat) firewall (/component/tags/tag/firewall)

Este artículo explica cómo administrar de forma correcta el firewall en sistemas operativos basados en Red
Hat/CentOS. Cómo agregar y eliminar reglas, guardar la configuración, iniciar y detener el firewall, y más.

Military Embedded Boards

Validated MIL_STD_202G,
Industrial Temp, Extreme
Long Life, and SWaP
Optimized
VersaLogic

¿Cómo listar las reglas del firewall?: utilizando el comando iptables -nL . La opción L se utiliza para
listar las reglas del firewall, n para que la salida sea numérica, es decir que no convierta las direcciones IP y
puertos en hostnames y nombres de servicios.

# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

Chain FORWARD (policy ACCEPT)


target prot opt source destination

Chain OUTPUT (policy ACCEPT)


target prot opt source destination

Se Las cookies
observa facilitan
que la prestación
por defecto de nuestros
el firewall servicios.conexiones
sólo permite Al utilizar nuestros servicios,
entrantes usted22.
al puerto acepta que utilizamos
cookies.

De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
/
NOTA: este artículo no trata de explicar el funcionamiento de iptables, más bien trata de cómo se administran
las reglas en los sistemas operativos basados en Red Hat. Para comprender el funcionamiento y sintaxis de
las reglas de iptables acceder al manual: man iptables .

No claims, save money.


Anuncio No home claims, earn cash back each
year with Claim-Free Rewards.

Allstate

Quote Now

¿Cómo agregar una nueva regla al firewall?: utilizando directamente el comando iptables . No es
necesario editar un archivo de configuración ni reiniciar el firewall, simplemente agregar la regla.

# iptables -A INPUT -p TCP --dport 80 -m state --state NEW -j ACCEPT

Al listar las reglas nuevamente, se observa que ahora el puerto 80 está abierto (se permiten conexiones
entrantes):

# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW

Chain FORWARD (policy ACCEPT)


target prot opt source destination

Chain OUTPUT (policy ACCEPT)


target prot opt source destination

En Red Hat/CentOS, el firewall es gestionado por el servicio "iptables". Para detener el firewall se debe
ejecutar service iptables stop , para iniciar el firewall service iptables start .

Si se desea reiniciar el firewall, ejecutar:

# service iptables restart


iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]

Aunque si se listan las reglas luego de reiniciar el firewall, se observa que falta la regla que abre el puerto 80:

Las cookies facilitan la prestación de nuestros servicios. Al utilizar nuestros servicios, usted acepta que utilizamos
cookies.

De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
/
# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

Chain FORWARD (policy ACCEPT)


target prot opt source destination

Chain OUTPUT (policy ACCEPT)


target prot opt source destination

Esto sucede porque no se guardó el estado del firewall antes de reiniciarlo. Para que las reglas de iptables
sean persistentes (no se pierdan luego reiniciar el firewall o el sistema operativo) es necesario guardarlas.
Para ello se utiliza el comando service iptables save .

Agregar la regla nuevamente:

iptables -A INPUT -p TCP --dport 80 -m state --state NEW -j ACCEPT

# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW

Chain FORWARD (policy ACCEPT)


target prot opt source destination

Chain OUTPUT (policy ACCEPT)


target prot opt source destination

Guardar el estado del firewall luego de agregar la regla (y verificar que funcione correctamente):

# service iptables save


iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

Si ahora se reinicia el firewall o el sistema operativo, las nuevas reglas persisten:

# service iptables restart


iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]

Las cookies facilitan la prestación de nuestros servicios. Al utilizar nuestros servicios, usted acepta que utilizamos
cookies.

De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
/
# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW

Chain FORWARD (policy ACCEPT)


target prot opt source destination

Chain OUTPUT (policy ACCEPT)


target prot opt source destination

¿Cómo eliminar una regla persistente?. Si se ha agregado una regla, se ha guardado el estado del
firewall, y luego se desea eliminar la misma, se debe seguir el siguiente procedimiento:

1. Listar las reglas del firewall utilizando la opción --line-numbers :

# iptables -nL --line-numbers


Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW

Chain FORWARD (policy ACCEPT)


num target prot opt source destination

Chain OUTPUT (policy ACCEPT)


num target prot opt source destination

A cada regla se le asigna un número de linea (observar la primera columna).

2. Para eliminar la regla número 5 (la cual abre el puerto 80) ejecutar:

# iptables -D INPUT 5

El comando -D acepta como parámetro el nombre de la cadena y el número de línea que se desea
eliminar.

Al listar el firewall se observa que la regla ha desaparecido:

# iptables -nL --line-numbers


Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

Chain FORWARD (policy ACCEPT)


num target prot opt source destination
Las cookies facilitan la prestación de nuestros servicios. Al utilizar nuestros servicios, usted acepta que utilizamos
Chain OUTPUT (policy ACCEPT)
cookies.
num target prot opt source destination
De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
/
3. Finalmente, guardar el estado del firewall para que los cambios sean persistentes:

# service iptables save


iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

4. Comprobar los cambios:

# service iptables restart


iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]

# iptables -nL --line-numbers


Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22

Chain FORWARD (policy ACCEPT)


num target prot opt source destination

Chain OUTPUT (policy ACCEPT)


num target prot opt source destination

Observación: cada vez que se trabaja con un firewall de forma remota pueden ocurrir problemas,
provocados por errores de configuración, que nos dejen fuera del sistema y sin posibilidades de volver a
ingresar. Algo que siempre hago cuando trabajo sobre un firewall en un sistema remoto es crear una tarea de
cron que haga un reset del firewall a un estado seguro cada, por ejemplo, 15 minutos. De esta forma, si
cometo un error en la configuración de una regla iptables que me deja fuera del sistema, tengo que esperar
como máximo 15 minutos para volver a ingresar.

Para implementar este salvoconducto, seguir los siguientes pasos:

1. A partir de un estado seguro del firewall, volcar las reglas a un archivo utilizando el comando:

# iptables-save > /root/firewall-seguro

2. Agregar una tarea cron que restaure las reglas del firewall desde el archivo generado por iptables-
save en el paso anterior. Crear el archivo /etc/cron.d/restaurar-firewall :

# nano /etc/cron.d/restaurar-firewall

Insertar el siguiente contenido:

# Restaurar el firewall cada 15 minutos


*/15 * * * * root /sbin/iptables-restore < /root/firewall-seguro

La herramienta iptables-restore restaura las reglas desde la entrada estándar (o un archivo en este
caso), haciendo previamente un flush de las tabla actual.

Las cookies
A medida quefacilitan la prestación
se avanza de nuestros
correctamente servicios.
sobre Al utilizar nuestros
la configuración servicios,
del nuevo ustedesacepta
firewall, quesobrescribir
posible utilizamos el
cookies.
contenido del archivo /root/firewall-seguro . Al finalizar el proceso se debe eliminar la tarea cron,
simplemente borrando elDe acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
archivo /etc/cron.d/restaurar-firewall .
/
Tal vez pueda interesarte

ELK Stack: Open Log Proxy chaining... o AD Compliance Cómo capturar fotos
Analytics cómo ocultar tu Reporting Tool y videos con la
trasero webcam en GNU/
Linux
Anuncio Elasticsearch linuxito.com Anuncio ManageEngine ADAudit… linuxito.com

Nuclias Cloud - Mi primer contacto Mejorar la privacidad Cómo configurar SSL


Remote Managed con FirewallD en Firefox, Chrome y en Apache (Debian)
Access Points Safari con
DuckDuckGo…
Anuncio nuclias.us.dlink.com linuxito.com linuxito.com linuxito.com

Compartí este artículo

Compartir (https://plus.google.com/share?url=https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-
del-firewall-en-red-hat-centos) Compartir (http://www.facebook.com/sharer/sharer.php?
u=https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos&title=Gestión del
firewall en Red Hat/CentOS) Compartir (http://www.linkedin.com/shareArticle?

mini=true&url=https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-
centos&title=Gestión del firewall en Red Hat/CentOS&source=linuxito.com) Twittear

(https://twitter.com/share?url=https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-
hat-centos&via=otixunil&text=Gestión del firewall en Red Hat/CentOS) diaspora* reddit

(http://www.reddit.com/submit?url=https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-
red-hat-centos&title=Gestión del firewall en Red Hat/CentOS)

Buscar...

Menú
Inicio (/)

Las cookies facilitan la prestación de nuestros servicios. Al utilizar nuestros servicios, usted acepta que utilizamos
cookies.

De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
/
Get great deals on
Surface

Surface Studio 2 for


Business, 1TB, Intel
Core i7, 32GB RAM

$4,199.00

SHOP NOW  >

Free shipping

GNU/Linux (/gnu-linux)
Principiante (/gnu-linux/nivel-basico)
Intermedio (/gnu-linux/nivel-medio)
Gurú (/gnu-linux/nivel-alto)
Programación (/programacion)
Seguridad (/seguridad)
Fotografía (/fotografia)
Juegos (/juegos)
NIX (/nix)
Windows (/windows)
Cloud & Virtualización (/cloud)
Misc (/misc)
Manuales y descargas (/manuales)
Links (/links)
Herramientas (/herramientas)
Blogroll (/blogroll)
Blog (https://blog.linuxito.com/)
Mapa del sitio (/mapa-del-sitio)
Contacto (/contacto)

Las cookies facilitan la prestación de nuestros servicios. Al utilizar nuestros servicios, usted acepta que utilizamos
Social
cookies.

De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
/
(https://www.linuxito.com/?format=feed&type=rss) (https://twitter.com/otixunil)

(https://github.com/linuxitux)

Entradas
▼ 2020 (20)
▼ Febrero (3)
Cambiar el uuid a un disco VDI de VirtualBox (/cloud/1323-cambiar-el-uuid-a-un-disco-vdi-de-virtualbox)
Determinar la versión de Postgres en ejecución desde psql (/gnu-linux/nivel-basico/1321-determinar-la-version-de-
postgres-en-ejecucion-desde-psql)
Volcar archivos en octal y otros formatos con od (/gnu-linux/nivel-basico/1303-volcar-archivos-en-octal-y-otros-
formatos-con-od)
► Enero (17)
► 2019 (142)
► 2018 (155)
► 2017 (186)
► 2016 (191)
► 2015 (135)
► 2014 (187)
► 2013 (155)

Las2012 (130)facilitan la prestación de nuestros servicios. Al utilizar nuestros servicios, usted acepta que utilizamos
cookies
cookies.

De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
Invitame un café /
No me hice bloguero para ganar dinero, pero cualquier dinerillo que tengas está bien

(https://clientarea.ramnode.com/aff.php?aff=4209)

El contenido de este sitio es publicado bajo la licencia Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA
4.0) (http://creativecommons.org/licenses/by-sa/4.0/)

Las cookies facilitan la prestación de nuestros servicios. Al utilizar nuestros servicios, usted acepta que utilizamos
cookies.

De acuerdo (https://www.linuxito.com/gnu-linux/nivel-alto/330-gestion-del-firewall-en-red-hat-centos?rCH=2)
/

También podría gustarte