Este artículo proporciona información básica sobre cómo usar sus iptables
cortafuegos de software Este firewall es la solución de firewall predeterminada para las distribuciones basadas en Red Hat® Enterprise Linux® (RHEL®) 6 y CentOS® 6.
Nota Nota:Los pasos de este artículo no están destinados para su uso en servidores RackConnect®. Si necesita realizar cambios en su firewall en un servidor de RackConnect, debe usar su administrador de firewall dedicado.
Requisitos
Debe tener los siguientes requisitos previos:
- Comprensión básica de SecureShell® (SSH)
- Sudo o acceso administrativo a su servidor
- Un servidor en la nube que no sea RackConnect que ejecute RHEL 6 o CentOS 6.
¿Qué es “iptables” y cómo funciona?
iptables
es la solución de firewall de software de Linux predeterminada. Mediante el uso del módulo del núcleo netfilter, iptables
puede manejar el tráfico de red entrante y saliente. iptables
utiliza las cadenas de reglas configuradas como parte de una tabla en el servidor. Una tabla agrupa cadenas similares que realizan una tarea específica.
Tablas, cadenas y reglas
Cada tabla tiene un conjunto de cadenas predeterminadas. Este artículo se refiere al filtro tabla, que contiene la INPUT , ADELANTE y SALIDA cadenas Las reglas de estas cadenas se leen y procesan de arriba a abajo.
-
ENTRADA :Esta cadena maneja el tráfico entrante destinado al servidor.
-
ADELANTE :Esta cadena maneja el tráfico que llega al servidor pero está destinado a otro dispositivo.
-
SALIDA :esta cadena se utiliza para los paquetes salientes que se originan en el servidor.
Objetivos, acciones y filtros
La siguiente tabla muestra algunos objetivos y acciones básicos en iptables
cuando el tráfico se envía al servidor:
Nombre | Descripción |
---|---|
ACEPTAR | Se acepta el tráfico y no se procesan más reglas. |
SOLTAR | El paquete está bloqueado y no se procesan más reglas. No se envió respuesta al remitente. |
REGISTRO | La información del paquete se registra en el servidor e iptables continúa procesando las reglas. |
RECHAZAR | Similar al paquete DROP, pero envía una respuesta al remitente. |
Filtro | Qué hace |
---|---|
-p (protocol) | El protocolo del paquete. El protocolo especificado puede ser uno de tcp , udp , icmp , o la palabra clave especial all . |
-s, --source | La dirección IP de origen del paquete. |
-d --destination | El destino del paquete. |
-sport | El puerto de origen para hacer coincidir. |
-dport | El puerto de destino para hacer coincidir. |
-i | La interfaz en la que se recibe el paquete. |
La anatomía de una regla
La siguiente regla es un ejemplo de un iptables
regla:
iptables -I INPUT -i eth0 -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
En este ejemplo, el tráfico que proviene de la dirección IP de origen, 192.168.1.1
, sobre el tcp
el protocolo se acepta en el eth0
interfaz en el puerto de destino 22
. Esta regla se agrega en la parte superior de la INPUT
cadena.
¿Cómo funcionan las reglas de “iptables”?
Una forma de limitar el tráfico de red entrante y saliente en el servidor es implementar reglas de firewall. En un servidor RHEL o CentOS 6, la solución de firewall de software predeterminada es iptables
. iptables
le permite configurar una configuración similar a la de un firewall dedicado que se ejecuta en su servidor. Estas reglas se configuran en una CHAIN
dependiendo de la regla. Este artículo trata sobre la INPUT
cadena, que es la cadena predeterminada para aceptar tráfico a través de iptables
.
Habilitar y verificar el estado de “iptables”
Antes de agregar nuevas reglas en iptables
, debe verificar que el servicio se esté ejecutando y enumerar las reglas actuales.
Para comprobar el estado de iptables
, ejecute el siguiente comando:
service iptables status
Debería obtener un resultado que indique que el servicio está Active
en el servidor Si no, puede iniciar el servicio con service iptables start
comando.
Una vez que se inicia el servicio, puede enumerar las reglas mediante el siguiente comando:
iptables -L
Si aún no ha configurado ninguna regla, el resultado se parece al siguiente ejemplo:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Ejemplos de “iptables”
Los siguientes ejemplos muestran algunas reglas en iptables
y su funcionalidad dentro de iptables
.
INSERTAR versus ADJUNTAR
Con iptables
, el -I
marca inserta la regla en la parte superior de la cadena seleccionada, y el -A
flag agrega la nueva regla al final de la cadena seleccionada. Esto es importante porque las reglas se leen de arriba abajo. Por lo tanto, si hay una regla en la parte superior que bloquea todo el tráfico entrante y usa -A
para agregar una regla que acepta tráfico de una IP, la regla que agregó está bloqueada por la primera regla. Debe considerar la configuración para determinar si -A
o -I
es la mejor opción para el cambio que se está realizando en el servidor. Siempre revise las reglas actuales antes de hacer cambios.
Una buena regla es agregar todas las reglas que terminan en una gota e insertar todas las reglas que aceptan un paquete.
Comando de ejemplo | Qué hace |
---|---|
iptables -L | Este comando lista todas las iptables reglas. |
iptables -L --line-numbers | Este comando lista todas las iptables reglas y proporciona un número de línea por cada regla. |
iptables -D INPUT 2 | Cuando se usa junto con iptables -L --line-numbers , este comando elimina la segunda regla en INPUT cadena. Este es el mejor método para garantizar que se elimine la regla correcta. |
iptables -A INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j DROP | Esta regla descarta el tráfico en el puerto 22 desde la IP de origen a través de la cadena INPUT a través de TCP. Esta regla se agrega al principio de la cadena INPUT. |
iptables -A INPUT -s 12.345.67.89 -j DROP | Esta regla descarta todas las conexiones entrantes desde la IP de origen. Este ejemplo se adjunta en la parte superior de la INPUT cadena. |
iptables -D INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Este comando elimina la regla especificada de INPUT mesa. Puedes usar -D marcar con cualquier cadena o regla, pero recomendamos eliminar por número de línea como se muestra arriba. |
iptables -I INPUT -m tcp -p tcp -s 12.345.67.89 --dport=22 -j ACCEPT | Esta regla acepta tráfico en el puerto 22 desde la IP de origen a través de INPUT cadena a través de TCP. Esta regla se inserta en INPUT cadena. |
iptables -I INPUT -s 12.345.67.89 -j ACCEPT | Esta regla acepta todas las conexiones entrantes desde la IP de origen a través de cualquier protocolo en cualquier puerto. Esta regla se inserta en INPUT cadena. |
service iptables save | Por defecto, iptables no proporciona persistencia. Este comando le permite guardar las reglas. |
service iptables reload | Este comando recarga el servicio iptables para permitir el procesamiento de nuevas reglas. |
Lecturas adicionales
Este artículo trata solo los conceptos básicos de iptables
. Hay varias otras tareas y reglas que puede configurar para limitar el acceso a su servidor. Para más información sobre iptables
, puede revisar el man
página para iptables en iptables - página man de Linux.