Este artículo explica cómo usar las tablas de IP para un firewall simple y describe el proceso de abrir agujeros en su firewall a los puertos necesarios. Una tabla de IP es una herramienta de red y firewall disponible para todas las distribuciones de Linux y funciona mediante el análisis de paquetes a nivel de kernel a medida que se reciben.
Para obtener una lista completa de los comandos, parámetros y otras opciones de las tablas de IP, consulte la página MAN y el procedimiento de las tablas de IP.
Conjunto de reglas básico
El comando para enumerar las reglas actuales es:
sudo iptables --list
La salida predeterminada es:
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
Leyendo el conjunto de reglas
En una instalación predeterminada, verá tres Cadenas predefinidas , una lista de reglas que se ocupa de las tres actividades principales:tráfico entrante (ENTRADA), tráfico reenviado (REENVIAR) y tráfico saliente (SALIDA). Lo más importante de la tabla anterior es que el conjunto de reglas predeterminado para todas las políticas está establecido en ACEPTAR. .
Políticas
Las pólizas disponibles y otras opciones son amplias. Si desea saber más acerca de ellos, consulte la página del manual de IPtables. Este artículo cubre solo las políticas más comunes:
-
Aceptar pasa el tráfico explícitamente siempre que no se apliquen otras reglas de destino.
-
Rechazar devuelve un paquete de error en respuesta al paquete coincidente. De lo contrario, es equivalente a DROP por lo que es un OBJETIVO de terminación , finalizando el recorrido de la regla.
-
Soltar detiene una conexión a un host sin ninguna comunicación a menos que se aplique una regla de destino.
Opciones disponibles
Página MAN de IPtables:https://linux.die.net/man/8/iptables
Las opciones reconocidas por iptables
vienen en los siguientes grupos:
- Comandos especificar una acción para realizar.
- Parámetros establecer especificaciones de reglas para los comandos utilizados.
- Otras opciones que especifique, según sea necesario, para los comandos utilizados.
Comandos simples de firewall
Permita las conexiones que ya están conectadas a su servidor.
sudo iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Permitir conexiones en ServiceNet. Requerido por otros productos de Rackspace Cloud, como Cloud Backup y Cloud Monitoring.
sudo iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
Permitir conexiones a SSH. También puede utilizar este comando para realizar personalizaciones. El siguiente comando permite todos los intentos de conexión TCP al puerto SSH 22
.
sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
Permita conexiones que solo provengan de una determinada subred IP mediante el uso de la notación CIDR (ClasslessInter Domain Routing). En este ejemplo, bloqueamos cualquier dirección IP que se encuentre en el rango de 192.168.1.0 - 192.168.1.255.
sudo iptables -I INPUT 1 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
Permitir conexiones a HTTP 80
o HTTPS 443
desde cualquier conexión.
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 1 -p tcp --dport 443 -j ACCEPT
Permitir conexiones para servidores FTP en el puerto 21
.
sudo iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT
Al cambiar la política predeterminada para denegar todas las conexiones, solo se aceptarán las conexiones permitidas.
sudo iptables -P INPUT DROP
IMPORTANTE :Ejecute esta regla después de haber configurado sus reglas de acceso para permitir conexiones SSH entrantes.
Lista de puertos comunes
Con los comandos anteriores, mezcle y combine las opciones de la siguiente lista de puertos comunes para crear reglas para cualquier servidor en ejecución que tenga.
Guarde su conjunto de reglas
Si el servidor se reinicia por algún motivo o usted reinicia IPTables, los cambios se perderán ya que las modificaciones se almacenan en la memoria volátil. Los siguientes comandos crean un archivo de texto sin formato, /etc/sysconfig/iptables , con sintaxis legible por humanos. Todas las ediciones de este archivo se activan cada vez que se reinicia iptables.
-
Para CentOS y Fedora
/etc/init.d/iptables save
-
Para el sistema operativo Ubuntu
iptables-save > /etc/iptables.rules
-
Para todas las demás distribuciones
iptables-save > /etc/sysconfig/iptables
Resumen
Este artículo le muestra cómo crear un firewall simple para proteger su servidor de ataques básicos. Tenga en cuenta que IPTables es una herramienta poderosa que necesitaría un libro para explorarla por completo. Si necesita ayuda para crear más reglas, consulte Easy Firewall Generator for IPTables.
Referencias y enlaces utiles
- Ubuntu IPtables Howto
- Man IPtables