SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
Configuración del firewall en Linux con IPtables
Un firewall es un dispositivo, ya sea software o hardware, que filtra todo el tráfico de red. El
sistema operativo Linux dispone de un firewall llamado IPtables.
Iptables es un firewall incluido en el kernel de Linux desde la versión 2.4 que está incluido en el
sistema operativo. Es un firewall basado en reglas, su funcionamiento se basa en aplicar reglas que
el mismo firewall ejecute. Estas IPtables también se encuentran en los firmwares basados en
Linux y por supuesto, los dispositivos Android.
El uso de IPtables es bastante complejo, por lo que vamos a hacer un vistazo general sobre sus
opciones:
Para Iniciar/Parar/Reiniciar Iptables debemos ejecutar estos
comandos:
• sudo service iptables start
• sudo service iptables stop
• sudo service iptables restart
Los principales comandos de IPtables son los siguientes
(argumentos de una orden):
• -A –append → agrega una regla a una cadena.
• -D –delete → borra una regla de una cadena especificada.
• -R –replace → reemplaza una regla.
• -I –insert → inserta una regla en lugar de una cadena.
• -L –list → muestra las reglas que le pasamos como argumento.
• -F –flush → borra todas las reglas de una cadena.
• -Z –zero → pone a cero todos los contadores de una cadena.
• -N –new-chain → permite al usuario crear su propia cadena.
• -X –delete-chain → borra la cadena especificada.
• -P –policy → explica al kernel qué hacer con los paquetes que no coincidan con ninguna
regla.
• -E –rename-chain → cambia el orden de una cadena.
Condiciones principales para Iptables:
• -p –protocol → la regla se aplica a un protocolo.
• -s –src –source → la regla se aplica a una IP de origen.
• -d –dst –destination → la regla se aplica a una Ip de destino.
• -i –in-interface → la regla de aplica a una interfaz de origen, como eth0.
• -o –out-interface → la regla se aplica a una interfaz de destino.
Condiciones TCP/UDP
• -sport –source-port → selecciona o excluye puertos de un determinado puerto de origen.
• -dport –destination-port → selecciona o excluye puertos de un determinado puerto de
destino.
Existen muchas mas condiciones para una configuración avanzada del firewall, pero las elementales
ya las tenemos listadas.
Configurar reglas por defecto
La configuración por defecto de un firewall debería ser, traducido al español, “bloquear todo
excepto [reglas]“. Para configurar el firewall para que bloquee todas las conexiones debemos
teclear:
• iptables -P INPUT DROP
• iptables -P FORWARD DROP
• iptables -P OUTPUT DROP
Con esto nos quedaremos sin internet, por lo que a continuación debemos empezar a crear reglas
permisivas.
Para aplicar una regla que filtre un determinado puerto,
debemos ejecutar:
• iptables -A INPUT -p tcp –sport 22 22 → crea una regla para el puerto de origen tcp 2222
Para bloquear el tráfico procedente de una determinada IP,
debemos ejecutar:
• iptables -A INPUT -p tcp -m iprange –src-range 192.168.1.13-192.168.2.19 (ejemplo de IP)
También podriamos bloquear por MAC con la condición –
mac-source.
• iptables -A INPUT -m mac –mac-source 00:00:00:00:00:01
Una vez ejecutadas las reglas que queramos aplicar, debemos guardarlas tecleando sudo service
iptables save
Ver el estado del firewall
• iptables -L -n -v
El parámetro L muestra las líneas abiertas. V permite recibir más información sobre las conexiones
y N nos devuelve las direcciones IP y sus correspondientes puertos sin pasar por un servidor DNS.
Eliminar las reglas existentes
Para borrar toda la configuración del firewall para volver a configurarlo de nuevo debemos teclear:
• iptables -F
Permitir conexiones entrantes
Teclearemos los siguientes parámetros:
• iptables -A INPUT -i [interface] -p [protocolo] –dport [puerto] -m state –state
NEW,ESTABLISHED -j ACCEPT
-i: debemos configurar la interfaz, por ejemplo, eth0. Esto es útil en caso de tener varias tarjetas de
red, si tenemos sólo una, no tenemos por qué especificar este parámetro.
-p: protocolo. Debemos especificar si el protocolo será TCP o UDP.
–dport: el puerto que queremos permitir, por ejemplo, en caso de HTTP sería el 80.
Un ejemplo para permitir las conexiones entrantes desde páginas web:
• iptables -A INPUT -i eth0 -p tcp –dport 80 -m state –state NEW,ESTABLISHED -j
ACCEPT
Permitir las conexiones salientes
• iptables -A OUTPUT -o [interfaz] -p [protocolo] –sport [puerto] -m state –state
ESTABLISHED -j ACCEPT
-o: debemos configurar la interfaz, por ejemplo, eth0, al igual que en el caso anterior.
-p: protocolo. Debemos especificar si el protocolo será TCP o UDP.
–sport: el puerto que queremos permitir, por ejemplo, en caso de HTTPS sería el 443.
Un ejemplo para permitir el tráfico saliente hacia páginas web:
• iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT
Permitir los paquetes ICMP
Por defecto, el ping está deshabilitado. Debemos habilitarlo manualmente añadiendo las
correspondientes entradas en iptables. Para ello teclearemos:
Para poder hacer ping a otros servidores:
• iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
Para permitir recibir solicitudes de ping de otros equipos:
• iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT
Permitir que el tráfico interno salga a internet
En el caso de tener 2 tarjetas de red (eth0 en local y eth1 conectada a internet) podemos configurar
el firewall para que reenvíe el tráfico de la red local a través de internet. Para ello escribiremos:
• iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Bloquear y prevenir ataques DDoS
• iptables -A INPUT -p tcp –dport 80 -m limit –limit 25/minute –limit-burst 100 -j ACCEPT
Consultar los paquetes rechazados por iptables
Para saber los paquetes que iptables ha rechazado debemos teclear:
• iptables -N LOGGING
Ejemplos prácticos:
Cómo bloquear las conexiones entrantes por el puerto 1234:
• iptables -A INPUT -p tcp –dport 1234 -j DROP
• iptables -A INPUT -i eth1 -p tcp –dport 80 -j DROP → bloquea en la interfaz eth1
Bloquear una dirección IP:
• iptables -A INPUT -s 192.168.0.0/24 -j DROP
Bloquear una dirección IP de salida:
• iptables -A OUTPUT -d 75.126.153.206 -j DROP
También podemos bloquear una url, por ejemplo, facebook:
• iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP
Bloquear el tráfico desde una direccion MAC:
• iptables -A INPUT -m mac –mac-source 00:0F:EA:91:04:08 -j DROP
Bloquear peticiones ping:
• iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
UFW (Uncomplicated Firewall) es una herramienta de configuración de firewall para Ubuntu desde
la consola, desarrollado para facilitar la configuración del firewall Iptables. Ufw proporciona una
manera fácil de crear un firewall basado en host IPv4 o IPv6.
Lo primero que debemos hacer es instalar ufw desde apt-get con:
• sudo apt-get install ufw
Ahora ejecutamos el firewall tecleando sudo ufw enable. Para parar el firewall, teclearemos sudo
ufw disable, y para reiniciarlo, primero lo pararemos y a continuación lo volveremos a arrancar con
los comandos especificados.
Una vez tengamos el firewall funcionando, ya podemos comenzar a establecer reglas en su
funcionamiento. Para aplicar una regla que permita por defecto todo el tráfico, tecleamos:
• sudo ufw default allow
Por el contrario, para bloquear todo el tráfico, teclearemos:
• sudo ufw default deny
Para aplicar reglas a determinados puertos, lo haremos mediante el comando:
• sudo ufw allowdeny [puerto]/[protocolo]
Ejemplo:
• sudo ufw allow 1234/tcp (permite las conexiones del puerto 1234 en tcp)
• sudo ufw deny 4321/udp (bloquea las conexiones del puerto 4321 en udp)
Existe un archivo que contiene más reglas predefinidas en la ruta /etc/ufw/before.rules donde, por
ejemplo, podemos permitir o bloquear el ping externo. Para ello, pondremos una # delante de la
linea -A ufw-before-input -p icmp –icmp-type echo-request -j ACCEPT
Podemos consultar las reglas del firewall desde un terminal tecleando sudo ufw status
Como podemos ver, con UFW es bastante sencillo gestionar a nivel ipv4 e ipv6 nuestro firewall
iptables. Todo ello podemos gestionarlo desde un terminal sin necesidad de disponer de una interfaz
gráfica, pero aún podemos facilitarlo más con otra aplicación, llamada gufw, que es una interfaz
gráfica para ufw que simplifica aún más su uso.
Para instalar gufw debemos escribir en un terminal sudo apt-get install gufw
Una vez instalado, lo ejecutamos escribiendo gufw o buscándolo en el panel de aplicaciones.
La primera ventana que nos muestra el programa nos permite activar y desactivar el firewall,
establecer reglas por defecto para el tráfico entrante y saliente (permitir, rechazar y denegar), y, en
la parte inferior, crear reglas.
Si pulsamos en el botón + de la parte inferior, accedemos al menú de configuración de reglas. Aqui
podemos añadir reglas personalizadas en cuanto a puertos, aplicaciones, ips de origen, etc.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Manual Iptables
Manual IptablesManual Iptables
Manual Iptables
 
Firewall iptables
Firewall iptablesFirewall iptables
Firewall iptables
 
Comandos
ComandosComandos
Comandos
 
Comandos router ios cisco
Comandos router ios ciscoComandos router ios cisco
Comandos router ios cisco
 
Resumen IPTABLES
Resumen IPTABLESResumen IPTABLES
Resumen IPTABLES
 
Firewall
FirewallFirewall
Firewall
 
Configuración Firewall - CISCO ASA 5510
Configuración Firewall - CISCO ASA 5510Configuración Firewall - CISCO ASA 5510
Configuración Firewall - CISCO ASA 5510
 
Comandos ccna-1-y-ccna-2-v5-rs
Comandos ccna-1-y-ccna-2-v5-rsComandos ccna-1-y-ccna-2-v5-rs
Comandos ccna-1-y-ccna-2-v5-rs
 
Comandos Para Configurar Router
Comandos Para Configurar RouterComandos Para Configurar Router
Comandos Para Configurar Router
 
Iptables
IptablesIptables
Iptables
 
Comandos show tarea poncho
Comandos  show   tarea    ponchoComandos  show   tarea    poncho
Comandos show tarea poncho
 
Firewall hw
Firewall hwFirewall hw
Firewall hw
 
Comandos cisco ccna_exploration
Comandos cisco ccna_explorationComandos cisco ccna_exploration
Comandos cisco ccna_exploration
 
Actualizacion y recuperación de un router cisco
Actualizacion y recuperación de un router ciscoActualizacion y recuperación de un router cisco
Actualizacion y recuperación de un router cisco
 
Comandos telnet
Comandos telnetComandos telnet
Comandos telnet
 
Actualizar IOS de router cisco
Actualizar IOS de router ciscoActualizar IOS de router cisco
Actualizar IOS de router cisco
 
CISCO PACKET TRACER
CISCO PACKET TRACERCISCO PACKET TRACER
CISCO PACKET TRACER
 
Protocolo de internet version 6
Protocolo de internet version 6Protocolo de internet version 6
Protocolo de internet version 6
 
Configuración básica de un router y switch
Configuración básica de un router y switchConfiguración básica de un router y switch
Configuración básica de un router y switch
 
PfSense VLAN sobre una sola interfaz de red.
PfSense VLAN sobre una sola interfaz de red.PfSense VLAN sobre una sola interfaz de red.
PfSense VLAN sobre una sola interfaz de red.
 

Destacado

Linux ud12 - configuracion de iptables en linux
Linux   ud12 - configuracion de iptables en linuxLinux   ud12 - configuracion de iptables en linux
Linux ud12 - configuracion de iptables en linuxJavier Muñoz
 
Firewall Casero con gnu/linux (Ubuntu Server 14.04)
Firewall Casero con gnu/linux (Ubuntu Server 14.04)Firewall Casero con gnu/linux (Ubuntu Server 14.04)
Firewall Casero con gnu/linux (Ubuntu Server 14.04)Remigio Salvador Sánchez
 
Asterisk en aplicaciones de alta exigencia
Asterisk en aplicaciones de alta exigenciaAsterisk en aplicaciones de alta exigencia
Asterisk en aplicaciones de alta exigencia0351 Grupo
 
Portal cautivo usando Easy Hotspot
Portal cautivo usando Easy HotspotPortal cautivo usando Easy Hotspot
Portal cautivo usando Easy HotspotCésar Lorenzo
 
Configuración De Hostpot
Configuración De HostpotConfiguración De Hostpot
Configuración De HostpotRod Hinojosa
 
Capacitación Mikrotik desde Cero - práctica
Capacitación Mikrotik desde Cero - prácticaCapacitación Mikrotik desde Cero - práctica
Capacitación Mikrotik desde Cero - prácticaMicrocom Argentina
 
Normas APA para formato Paper
Normas APA para formato PaperNormas APA para formato Paper
Normas APA para formato Paperpatrimoni
 
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMSCómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMSPaloSanto Solutions
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerEdenilton Michael
 
Configurando el Mikrotik
Configurando el MikrotikConfigurando el Mikrotik
Configurando el MikrotikPedro Gomez
 
Capacitación Mikrotik desde Cero
Capacitación Mikrotik desde CeroCapacitación Mikrotik desde Cero
Capacitación Mikrotik desde CeroMicrocom Argentina
 
Diseño de una centralita telefónica con elastix
Diseño de una centralita telefónica con elastix Diseño de una centralita telefónica con elastix
Diseño de una centralita telefónica con elastix Oscar Medianero Chiscul
 
Extensiones remotas seguras en Elastix
Extensiones remotas seguras en ElastixExtensiones remotas seguras en Elastix
Extensiones remotas seguras en ElastixPaloSanto Solutions
 
Manual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónicaManual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónicaEloy Aguilar Cardona
 
Laboratorio comunicaciones de voz sobre ip con elastix
Laboratorio comunicaciones de voz sobre ip con elastixLaboratorio comunicaciones de voz sobre ip con elastix
Laboratorio comunicaciones de voz sobre ip con elastixJesse Padilla Agudelo
 

Destacado (20)

Linux ud12 - configuracion de iptables en linux
Linux   ud12 - configuracion de iptables en linuxLinux   ud12 - configuracion de iptables en linux
Linux ud12 - configuracion de iptables en linux
 
Iptables
IptablesIptables
Iptables
 
iptables 1
iptables 1iptables 1
iptables 1
 
Firewall Casero con gnu/linux (Ubuntu Server 14.04)
Firewall Casero con gnu/linux (Ubuntu Server 14.04)Firewall Casero con gnu/linux (Ubuntu Server 14.04)
Firewall Casero con gnu/linux (Ubuntu Server 14.04)
 
Asterisk en aplicaciones de alta exigencia
Asterisk en aplicaciones de alta exigenciaAsterisk en aplicaciones de alta exigencia
Asterisk en aplicaciones de alta exigencia
 
Portal cautivo usando Easy Hotspot
Portal cautivo usando Easy HotspotPortal cautivo usando Easy Hotspot
Portal cautivo usando Easy Hotspot
 
Manual asterisk innova
Manual asterisk innovaManual asterisk innova
Manual asterisk innova
 
Cómo crear un portal cautivo con easyhotspot
Cómo crear un  portal cautivo con easyhotspotCómo crear un  portal cautivo con easyhotspot
Cómo crear un portal cautivo con easyhotspot
 
Configuración De Hostpot
Configuración De HostpotConfiguración De Hostpot
Configuración De Hostpot
 
Capacitación Mikrotik desde Cero - práctica
Capacitación Mikrotik desde Cero - prácticaCapacitación Mikrotik desde Cero - práctica
Capacitación Mikrotik desde Cero - práctica
 
Normas APA para formato Paper
Normas APA para formato PaperNormas APA para formato Paper
Normas APA para formato Paper
 
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMSCómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
Cómo configurar notificaciones en Elastix: Correos, Llamadas, SMS
 
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet TracerCriando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
Criando rede WLAN e SERVIDOR DNS E HTTP no Packet Tracer
 
laboratorios elaxtix
laboratorios elaxtixlaboratorios elaxtix
laboratorios elaxtix
 
Configurando el Mikrotik
Configurando el MikrotikConfigurando el Mikrotik
Configurando el Mikrotik
 
Capacitación Mikrotik desde Cero
Capacitación Mikrotik desde CeroCapacitación Mikrotik desde Cero
Capacitación Mikrotik desde Cero
 
Diseño de una centralita telefónica con elastix
Diseño de una centralita telefónica con elastix Diseño de una centralita telefónica con elastix
Diseño de una centralita telefónica con elastix
 
Extensiones remotas seguras en Elastix
Extensiones remotas seguras en ElastixExtensiones remotas seguras en Elastix
Extensiones remotas seguras en Elastix
 
Manual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónicaManual instalación y configuración de elastix para comnutación telefónica
Manual instalación y configuración de elastix para comnutación telefónica
 
Laboratorio comunicaciones de voz sobre ip con elastix
Laboratorio comunicaciones de voz sobre ip con elastixLaboratorio comunicaciones de voz sobre ip con elastix
Laboratorio comunicaciones de voz sobre ip con elastix
 

Similar a Ip tables manual

Presentacion de seguridad de la redes
Presentacion de seguridad de la redesPresentacion de seguridad de la redes
Presentacion de seguridad de la redeselvisprieto2
 
Practica 1 iptables
Practica 1 iptablesPractica 1 iptables
Practica 1 iptables1 2d
 
Practica nat
Practica natPractica nat
Practica nat1 2d
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntuAlvaro López
 
Resumen iptables- 10 comandos mas usados de iptables
Resumen iptables- 10 comandos mas usados de iptablesResumen iptables- 10 comandos mas usados de iptables
Resumen iptables- 10 comandos mas usados de iptablesgh02
 
Tipos de Malware
Tipos de MalwareTipos de Malware
Tipos de Malwareedelahozuah
 
Configuraciones de Proxy, Firewall y Restricción de Servicios
Configuraciones de Proxy, Firewall y Restricción de Servicios Configuraciones de Proxy, Firewall y Restricción de Servicios
Configuraciones de Proxy, Firewall y Restricción de Servicios SiubhyAUrribarri
 
Listas de acceso estándar y extendidas
Listas de acceso estándar y extendidasListas de acceso estándar y extendidas
Listas de acceso estándar y extendidasJAV_999
 
Unidad iii seguridad de las redes
Unidad iii seguridad de las redesUnidad iii seguridad de las redes
Unidad iii seguridad de las redeschristianchanagrote
 
administracion de redes y tipos de redes.pptx
administracion de redes y tipos de redes.pptxadministracion de redes y tipos de redes.pptx
administracion de redes y tipos de redes.pptxWilderCuellarPoma
 
Config ciscos-v3
Config ciscos-v3Config ciscos-v3
Config ciscos-v3jtecnico
 

Similar a Ip tables manual (20)

SEGURIDAD DE LAS REDES
SEGURIDAD DE LAS REDES SEGURIDAD DE LAS REDES
SEGURIDAD DE LAS REDES
 
Presentacion de seguridad de la redes
Presentacion de seguridad de la redesPresentacion de seguridad de la redes
Presentacion de seguridad de la redes
 
firewall
firewallfirewall
firewall
 
firewall
firewallfirewall
firewall
 
7.herramientas de redes
7.herramientas de redes7.herramientas de redes
7.herramientas de redes
 
Seguridades de redes
Seguridades de redesSeguridades de redes
Seguridades de redes
 
Practica 1 iptables
Practica 1 iptablesPractica 1 iptables
Practica 1 iptables
 
Practica nat
Practica natPractica nat
Practica nat
 
Linux Redes
Linux RedesLinux Redes
Linux Redes
 
Squid proxy transparente en ubuntu
Squid proxy transparente en ubuntuSquid proxy transparente en ubuntu
Squid proxy transparente en ubuntu
 
Resumen iptables- 10 comandos mas usados de iptables
Resumen iptables- 10 comandos mas usados de iptablesResumen iptables- 10 comandos mas usados de iptables
Resumen iptables- 10 comandos mas usados de iptables
 
Tipos de Malware
Tipos de MalwareTipos de Malware
Tipos de Malware
 
Configuraciones de Proxy, Firewall y Restricción de Servicios
Configuraciones de Proxy, Firewall y Restricción de Servicios Configuraciones de Proxy, Firewall y Restricción de Servicios
Configuraciones de Proxy, Firewall y Restricción de Servicios
 
Listas de acceso estándar y extendidas
Listas de acceso estándar y extendidasListas de acceso estándar y extendidas
Listas de acceso estándar y extendidas
 
firewall.pptx
firewall.pptxfirewall.pptx
firewall.pptx
 
Firewall
FirewallFirewall
Firewall
 
Listas de acceso
Listas de accesoListas de acceso
Listas de acceso
 
Unidad iii seguridad de las redes
Unidad iii seguridad de las redesUnidad iii seguridad de las redes
Unidad iii seguridad de las redes
 
administracion de redes y tipos de redes.pptx
administracion de redes y tipos de redes.pptxadministracion de redes y tipos de redes.pptx
administracion de redes y tipos de redes.pptx
 
Config ciscos-v3
Config ciscos-v3Config ciscos-v3
Config ciscos-v3
 

Ip tables manual

  • 1. Configuración del firewall en Linux con IPtables Un firewall es un dispositivo, ya sea software o hardware, que filtra todo el tráfico de red. El sistema operativo Linux dispone de un firewall llamado IPtables. Iptables es un firewall incluido en el kernel de Linux desde la versión 2.4 que está incluido en el sistema operativo. Es un firewall basado en reglas, su funcionamiento se basa en aplicar reglas que el mismo firewall ejecute. Estas IPtables también se encuentran en los firmwares basados en Linux y por supuesto, los dispositivos Android. El uso de IPtables es bastante complejo, por lo que vamos a hacer un vistazo general sobre sus opciones: Para Iniciar/Parar/Reiniciar Iptables debemos ejecutar estos comandos: • sudo service iptables start • sudo service iptables stop • sudo service iptables restart Los principales comandos de IPtables son los siguientes (argumentos de una orden): • -A –append → agrega una regla a una cadena. • -D –delete → borra una regla de una cadena especificada. • -R –replace → reemplaza una regla. • -I –insert → inserta una regla en lugar de una cadena. • -L –list → muestra las reglas que le pasamos como argumento. • -F –flush → borra todas las reglas de una cadena. • -Z –zero → pone a cero todos los contadores de una cadena. • -N –new-chain → permite al usuario crear su propia cadena. • -X –delete-chain → borra la cadena especificada. • -P –policy → explica al kernel qué hacer con los paquetes que no coincidan con ninguna regla. • -E –rename-chain → cambia el orden de una cadena. Condiciones principales para Iptables: • -p –protocol → la regla se aplica a un protocolo. • -s –src –source → la regla se aplica a una IP de origen. • -d –dst –destination → la regla se aplica a una Ip de destino.
  • 2. • -i –in-interface → la regla de aplica a una interfaz de origen, como eth0. • -o –out-interface → la regla se aplica a una interfaz de destino. Condiciones TCP/UDP • -sport –source-port → selecciona o excluye puertos de un determinado puerto de origen. • -dport –destination-port → selecciona o excluye puertos de un determinado puerto de destino. Existen muchas mas condiciones para una configuración avanzada del firewall, pero las elementales ya las tenemos listadas. Configurar reglas por defecto La configuración por defecto de un firewall debería ser, traducido al español, “bloquear todo excepto [reglas]“. Para configurar el firewall para que bloquee todas las conexiones debemos teclear: • iptables -P INPUT DROP • iptables -P FORWARD DROP • iptables -P OUTPUT DROP Con esto nos quedaremos sin internet, por lo que a continuación debemos empezar a crear reglas permisivas. Para aplicar una regla que filtre un determinado puerto, debemos ejecutar: • iptables -A INPUT -p tcp –sport 22 22 → crea una regla para el puerto de origen tcp 2222 Para bloquear el tráfico procedente de una determinada IP, debemos ejecutar: • iptables -A INPUT -p tcp -m iprange –src-range 192.168.1.13-192.168.2.19 (ejemplo de IP) También podriamos bloquear por MAC con la condición – mac-source. • iptables -A INPUT -m mac –mac-source 00:00:00:00:00:01 Una vez ejecutadas las reglas que queramos aplicar, debemos guardarlas tecleando sudo service iptables save Ver el estado del firewall • iptables -L -n -v El parámetro L muestra las líneas abiertas. V permite recibir más información sobre las conexiones y N nos devuelve las direcciones IP y sus correspondientes puertos sin pasar por un servidor DNS. Eliminar las reglas existentes Para borrar toda la configuración del firewall para volver a configurarlo de nuevo debemos teclear:
  • 3. • iptables -F Permitir conexiones entrantes Teclearemos los siguientes parámetros: • iptables -A INPUT -i [interface] -p [protocolo] –dport [puerto] -m state –state NEW,ESTABLISHED -j ACCEPT -i: debemos configurar la interfaz, por ejemplo, eth0. Esto es útil en caso de tener varias tarjetas de red, si tenemos sólo una, no tenemos por qué especificar este parámetro. -p: protocolo. Debemos especificar si el protocolo será TCP o UDP. –dport: el puerto que queremos permitir, por ejemplo, en caso de HTTP sería el 80. Un ejemplo para permitir las conexiones entrantes desde páginas web: • iptables -A INPUT -i eth0 -p tcp –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT Permitir las conexiones salientes • iptables -A OUTPUT -o [interfaz] -p [protocolo] –sport [puerto] -m state –state ESTABLISHED -j ACCEPT -o: debemos configurar la interfaz, por ejemplo, eth0, al igual que en el caso anterior. -p: protocolo. Debemos especificar si el protocolo será TCP o UDP. –sport: el puerto que queremos permitir, por ejemplo, en caso de HTTPS sería el 443. Un ejemplo para permitir el tráfico saliente hacia páginas web: • iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT Permitir los paquetes ICMP Por defecto, el ping está deshabilitado. Debemos habilitarlo manualmente añadiendo las correspondientes entradas en iptables. Para ello teclearemos: Para poder hacer ping a otros servidores: • iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT Para permitir recibir solicitudes de ping de otros equipos: • iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT Permitir que el tráfico interno salga a internet En el caso de tener 2 tarjetas de red (eth0 en local y eth1 conectada a internet) podemos configurar el firewall para que reenvíe el tráfico de la red local a través de internet. Para ello escribiremos: • iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT Bloquear y prevenir ataques DDoS • iptables -A INPUT -p tcp –dport 80 -m limit –limit 25/minute –limit-burst 100 -j ACCEPT
  • 4. Consultar los paquetes rechazados por iptables Para saber los paquetes que iptables ha rechazado debemos teclear: • iptables -N LOGGING Ejemplos prácticos: Cómo bloquear las conexiones entrantes por el puerto 1234: • iptables -A INPUT -p tcp –dport 1234 -j DROP • iptables -A INPUT -i eth1 -p tcp –dport 80 -j DROP → bloquea en la interfaz eth1 Bloquear una dirección IP: • iptables -A INPUT -s 192.168.0.0/24 -j DROP Bloquear una dirección IP de salida: • iptables -A OUTPUT -d 75.126.153.206 -j DROP También podemos bloquear una url, por ejemplo, facebook: • iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP Bloquear el tráfico desde una direccion MAC: • iptables -A INPUT -m mac –mac-source 00:0F:EA:91:04:08 -j DROP Bloquear peticiones ping: • iptables -A INPUT -p icmp –icmp-type echo-request -j DROP UFW (Uncomplicated Firewall) es una herramienta de configuración de firewall para Ubuntu desde la consola, desarrollado para facilitar la configuración del firewall Iptables. Ufw proporciona una manera fácil de crear un firewall basado en host IPv4 o IPv6. Lo primero que debemos hacer es instalar ufw desde apt-get con: • sudo apt-get install ufw Ahora ejecutamos el firewall tecleando sudo ufw enable. Para parar el firewall, teclearemos sudo ufw disable, y para reiniciarlo, primero lo pararemos y a continuación lo volveremos a arrancar con los comandos especificados. Una vez tengamos el firewall funcionando, ya podemos comenzar a establecer reglas en su funcionamiento. Para aplicar una regla que permita por defecto todo el tráfico, tecleamos: • sudo ufw default allow Por el contrario, para bloquear todo el tráfico, teclearemos: • sudo ufw default deny Para aplicar reglas a determinados puertos, lo haremos mediante el comando: • sudo ufw allowdeny [puerto]/[protocolo] Ejemplo: • sudo ufw allow 1234/tcp (permite las conexiones del puerto 1234 en tcp) • sudo ufw deny 4321/udp (bloquea las conexiones del puerto 4321 en udp) Existe un archivo que contiene más reglas predefinidas en la ruta /etc/ufw/before.rules donde, por ejemplo, podemos permitir o bloquear el ping externo. Para ello, pondremos una # delante de la linea -A ufw-before-input -p icmp –icmp-type echo-request -j ACCEPT
  • 5. Podemos consultar las reglas del firewall desde un terminal tecleando sudo ufw status Como podemos ver, con UFW es bastante sencillo gestionar a nivel ipv4 e ipv6 nuestro firewall iptables. Todo ello podemos gestionarlo desde un terminal sin necesidad de disponer de una interfaz gráfica, pero aún podemos facilitarlo más con otra aplicación, llamada gufw, que es una interfaz gráfica para ufw que simplifica aún más su uso. Para instalar gufw debemos escribir en un terminal sudo apt-get install gufw Una vez instalado, lo ejecutamos escribiendo gufw o buscándolo en el panel de aplicaciones. La primera ventana que nos muestra el programa nos permite activar y desactivar el firewall, establecer reglas por defecto para el tráfico entrante y saliente (permitir, rechazar y denegar), y, en la parte inferior, crear reglas. Si pulsamos en el botón + de la parte inferior, accedemos al menú de configuración de reglas. Aqui podemos añadir reglas personalizadas en cuanto a puertos, aplicaciones, ips de origen, etc.