SlideShare una empresa de Scribd logo
Mi PrimerMi Primer FirewallFirewall
Creando unCreando un FirewallFirewall en Linuxen Linux
Conceptos y prácticas para crear nuestro primerConceptos y prácticas para crear nuestro primer FirewallFirewall
Gabriel Orozco Ruiz VelazcoGabriel Orozco Ruiz Velazco
Grupo Linux de OccidenteGrupo Linux de Occidente
Grupo Linux de ColimaGrupo Linux de Colima
Abril 2014Abril 2014
Temario
Temario
Teoría 1 Qué son los Firewalls. Tipos. Usos.
Práctica 1 Generando el ambiente del curso.
Receso
Teoría 2 TCP/IP Mínimo. Protocolos. Herramientas.
Práctica 2 Accediendo a los equipos
Teoría 3 Netfilter: El firewall de Linux
Práctica 3 Primer Firewall
Teoría 4 Reglas para diferentes requerimientos
Práctica 4 Mi Primer Firewall en Linux
04/01/14 3
Qué son los Firewalls
Es un filtro y manipulador de las conexiones que
llegan a la computadora o pasan a través de ella.
Nacen de la necesidad de proteger el equipo de
atacantes externos, al permitir conexiones
solamente desde las direcciones que permitamos,
hacia los puertos y protocolos que permitamos.
Tipos: de proxy y de paquetes.
04/01/14 4
Tipos de Firewall: por función
Perimetral
Conecta una red
interna a una red
externa, que no es
confiable
Frontera
Bloquea conexiones no
deseadas hacia el
servidor.
04/01/14 5
Tipos de Firewall: por tecnología
De Red o packet filters
Filtra y manipula
conexiones a nivel IP
Puerto, dirección ip,
protocolo.
De Aplicación o proxies
Aceptan los paquetes que
van a la aplicación y
bloquean el resto.
Entienden los protocolos
04/01/14 6
Importancia
Si tengo un conjunto de aplicaciones que pueden ser
vulnerables, corriendo en un servidor, y no quiero tener
que hacer configuración detallada de cada una, puedo
poner un Firewall
El Firewall intercepta las conexiones antes de que le
lleguen a cualquier aplicación. (Va primero)
Así cualquier aplicación insegura que tenga, puedo
bloquear el acceso desde fuera, manteniendo la
seguridad.
Sin embargo, si permito el acceso, debo asegurar que la
aplicación que exponga, esté bien configurada y
actualizada.
04/01/14 7
Usos
Limita los puertos expuestos de mi equipo
Reescribe direcciones IP y puertos de forma que una sola
máquina conectada a internet, con una sola dirección IP,
pueda compartir esa conexión al resto de equipos en una
red local.
También reescribe los datos de conexiones entrantes y
los puede reenviar a un equipo interno. Esto es, podemos
compartir servidores internos, hacia internet o la red
externa que necesitemos.
Puede hacer un registro de conexiones y de ancho de
banda por IP
04/01/14 8
Practica 1Practica 1
●
Configurando el ambienteConfigurando el ambiente
04/01/14 9
Configuraciones
Para nuestras pruebas, necesitamos al menos dos tarjetas de red.
Tomen un número secuencial cada uno de los participantes con equipo.
Ese será “XX”
Asegurense de tener acceso como administrador
Instalen el paquete vlan
sudo apt-get install vlan
Instalar el paquete vlan y crear la subred:
sudo modprobe 8021q
sudo vconfig add eth0 10
sudo vconfig add eth0 20
sudo ip addr add 10.0.0.XX/24 dev eth0.10
Dé ping a la ip de algún compañero para asegurarse que funciona.
ping 10.0.0.1
04/01/14 10
Configuraciones
Deben tener al menos:
Una interfaz (Device) conectada a la red local (la VLAN
10)
Una interfaz (Device) conectada a Internet (la que ya
tenían, sea eth0 o wlan)
Acceso como root (El Firewall es una aplicación
privilegiada, y solo root la puede manipular)
Tener comunicación entre los equipos.
04/01/14 11
TCP/IP Direcciones
IPv4 son 4 números de 8 bits, que van desde la ip 0.0.0.0
hasta la 255.255.255.255
No todas las direcciones se usan. Por ejemplo las que
terminan en cero se usan para definir una red (como en
192.168.1.0/24) y las que terminan en 255 se usan para
broadcast o anuncios generales (como en 192.168.1.255)
Hay direcciones apartadas para usos especiales. Por
ejemplo:
127.0.0.1 (se refiere siempre al equipo local)
Red 10.0.0.0/8 para organizaciones grandes
Red 172.16-32.0.0/16 para organizaciones medianas
Red 192.168.0.0/16 para organizaciones pequeñas
04/01/14 12
TCP/IP Protocolos
TCP: se usa para conexiones confiables entre dos
equipos. Los mensajes se envían en paquetes con
número de secuencia. El emisor pide confirmación de
cada paquete, y si falta uno, reenvía el paquete en
cuestión. Es el más usado en internet.
UDP: se usa para conexiones donde la aplicación tiene el
control. Si se pierde un paquete y la aplicación no lo
necesita, éste nunca es reenviado. Ejemplo: voz, video..
no queremos que de pronto llegue una parte de una
palabra que se perdió.. se haría algo imposible de
entender.
ICMP: ping... y otros usos más avanzados.
04/01/14 13
TCP/IP Puertos y Servicios
En Linux, hay puertos desde el 1 hasta el 65,535,
ya sea en TCP o UDP
Puertos abajo del 1025, solo se pueden conectar
aplicaciones que arranquen como root. Son donde
escuchan las aplicaciones estándar.
El servicio HTTP (WEB) por ejemplo, usa TCP/80
El servicio SMTP (CORREO) usa el TCP/25
Los servicios están descritos en el archivo
/etc/services
04/01/14 14
TCP/IP Servicios
Correo se compone de
smtp (TCP/25)
pop3 (TCP/110)
imap (TCP/143)
smtp-auth (TCP/587)
pop3s (TCP/995)
imaps (TCP/993)
WEB se compone de
http (TCP/80)
https (TCP/443)
MySQL
mysql (TCP/3306)
Terminal Services
RDP (TCP/3389)
04/01/14 15
Herramientas
Para saber si un equipo está conectado y
accesible, usamos:
ping <dirección.del.equipo>
Para saber si hay un programa escuchando en un
puerto determinado, usamos (entre otros) para tcp:
telnet <dirección.del.equipo> <puerto>
Para saber si hay un equipo en una dirección pero
está oculto, usamos:
nmap -A -P0 <dirección.del.equipo>
Recomiendo aprender a usar “netcat”
04/01/14 16
Respuestas esperadas en TCP/IP
Si hay un programa escuchando en un puerto,
cuando nos conectamos a el, debe establecerse la
conexión.
Si no hay ningún programa escuchando, debemos
obtener un mensaje de “Connection refused”
Si hay un firewall que tira los paquetes,
deberíamos obtener un mensaje de “Timeout”.
Esto también es cierto si el equipo no está
conectado o presente, así que hay que aplicar
criterio: si responde a ping u otro puerto, entonces
obtener un timeout es que el puerto está filtrado.
04/01/14 17
Práctica 2Práctica 2
●
Accediendo a los equiposAccediendo a los equipos
04/01/14 18
Accediendo a los equipos
Haga ping a los equipos de sus compañeros en su
dirección de red “interna”.
Escanee la red para ver cuantos equipos están accesibles
con
nmap -sP 10.0.0.0/24
debería poder ver a todos los demás equipos.
Escanee una maquina para ver qué puertos tiene
prendidos con
nmap -A -P0 <direccion.de.la.maquina>
Intente conectarse al puerto usando telnet.
(para salir de telnet use Control-5, y luego escriba quit)
04/01/14 19
Teoría 3Teoría 3
●
Ruteo sencilloRuteo sencillo
04/01/14 20
Linux es un ruteador
Linux tiene la capacidad de reenviar paquetes entre redes.
Esto es muy útil ya que puede cumplir todas las funciones
de un ruteador, y compartir el internet por ejemplo.
Solo basta con poner un “1” en el siguiente archivo para
habilitar los servicios de ruteo:
/proc/sys/net/ipv4/ip_forward
Para probar que funciona, el Linux debe ser el gateway de
dos redes diferentes. Se puede hacer un ping a un equipo
de la otra red, y el Linux reenviará el paquete de ping, y
también la respuesta del equipo “pingueado” de regreso al
equipo que preguntó.
04/01/14 21
Ruteador, pings, hops
10.0.0.23 10.0.0.55
10.0.1.76
10.0.1.209
192.168.1.64 192.168.1.254
internet
04/01/14 22
Practica 3Practica 3
●
Organizando la redOrganizando la red
04/01/14 23
Organizando la red
Formen equipos de tres máquinas
Equipo 11, use la red 10.11.1.0/24 entre la
maquina 1 y 2, y use la red 10.11.2.0/24
entre la maquina 2 y la 3. la máquina 3 se
supone conectada a internet.
Asegúrense de hacer esto como root
Recuerden que todos tienen la vlans 10 y
20.
usen esa como local
PC 1
ifconfig eth0.10 10.11.1.1 1 
netmask 255.255.255.0netmask 255.255.255.0
route add -net default gw route add -net default gw 
10.10.11.1.2.1.2
PC 2
ifconfig eth0.10 10.11.1.2 
netmask 255.255.255.0netmask 255.255.255.0
ifconfig eth0.20 10.ifconfig eth0.20 10.11.2.1 .2.1 
netmask 255.255.255.0netmask 255.255.255.0
route add -net default gw route add -net default gw 
10.10.11.2.2.2.2
PC 3PC 3
ifconfig eth0.20 10.11.2.2 
netmask 255.255.255.0netmask 255.255.255.0
route add -net 10.1.1.0/24 gw route add -net 10.1.1.0/24 gw 
10.10.11.2.1.2.1
Den ping a las diferentes direcciones. QuéDen ping a las diferentes direcciones. Qué
pasa?pasa?
Ahora activen el forward y den ping:Ahora activen el forward y den ping:
echo 1 > echo 1 > 
/proc/sys/net/ipv4/ip_forward/proc/sys/net/ipv4/ip_forward
04/01/14 24
Teoría 4Teoría 4
●
Netfilter, el Firewall de LinuxNetfilter, el Firewall de Linux
04/01/14 25
Netfilter
Netfilter es el Firewall de Linux. Está integrado en el
kernel, lo que lo hace extremadamente rápido y eficiente.
La herramienta que lo controla, se llama iptables
Se diseñó como un conjunto de reglas que se aplican a
cada paquete de datos tcp/ip conforme llega al equipo o
es reenviado a otro equipo.
Conforme añado reglas a netfilter, estas siempre se
evalúan de primera a última añadida, y si no hay una regla
para el paquete de datos, se aplica la decisión “Default”.
El paquete va pasando por varias “tablas” donde lo puedo
manipular si quiero.
04/01/14 26
Tablas de Netfilter
04/01/14 27
Otra manera de ver las tablas de Netfilter
04/01/14 28
Tabla FILTER
Todos los paquetes pasan por esta tabla.
Es la tabla “default” o sea que si no nombramos cual tabla
queremos usar, por defecto es “filter”
Solamente sirve para filtrar las ip o puertos que no
queremos que se accedan.
Tiene las cadenas INPUT, FORWARD, OUTPUT
INPUT Cuando el paquete va dirigido a una de las direcciones IP
del equipo actual, el paquete llega a esta cadena antes de
ser entregado a la aplicación que esté escuchando en el
puerto.
FORWARD Cuando el paquete no va dirigido a este equipo, llega a esta
cadena
OUTPUT Siempre que el paquete se origina en este equipo, pasa por
esta cadena antes de irse.
04/01/14 29
Políticas por default
Todas las tablas tienen cadenas. En la tabla filter
las cadenas son “INPUT”, “FORWARD”,”OUTPUT”
Para escribir menos, es válido poner una política
por default. Esa puede ser “ACCEPT” o “DROP” o
“DENY”
Cuando no he manipulado nada, todo está por
defecto en el default “ACCEPT” (no hay Firewall)
04/01/14 30
Sintaxis básica
Iptables
[ -t tabla ]
< -{A | D | I } CADENA > (Add, Delete, Insert)
[ -p PROTOCOLO {tcp | udp | otro } { --sport | --dport } puerto ]
[ -i TARJETA DE ENTRADA ]
[ -o TARJETA DE SALIDA ]
[ -s DIRECCION o RED IP de ENTRADA ]
[ -d DIRECCION o RED IP de SALIDA ]
< -j <ACCEPT | DROP } >
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0.10 -p tcp --dport 80 -j
ACCEPT
04/01/14 31
Aplicando políticas por defecto
La forma de prender el primer Firewall de un equipo se
demasiado sencilla.
Solamente ponemos la política de INPUT en DROP
iptables -P INPUT DROP
Para que no reenvíe nada? FORWARD:
iptables -P FORWARD DROP
Para que no salga nada? OUTPUT.
iptables -P OUTPUT ACCEPT
04/01/14 32
Práctica 4.1Práctica 4.1
●
Mi primer FirewallMi primer Firewall
04/01/14 33
Cree un Firewall para su PC
Tomando en cuenta el ejemplo de la diapositiva
anterior, cree un Firewall para su equipo.
Debe bloquear todo intento de acceder a su
equipo.
Cual regla (una sola línea) necesita poner?
04/01/14 34
Abra agujeros en su Firewall
Respecto del Firewall que acaba de crear, ahora
necesitamos que permita acceso a SSH (TCP/22)
Cual regla es la que debe añadir (una sola línea)
para permitir SSH desde cualquier ip hacia su
propio equipo, en el protocolo tcp, puerto destino
22?
04/01/14 35
Reenvío de paquetes
Permita el reenvío de paquetes que vayan al
puerto destino TCP/80 y al puerto destino TCP/22
Ahora, permita el reenvío de todos los paquetes
que entren por la interfaz (device) eth0.10
Puede listar las reglas con el comando
iptables -L -vn
04/01/14 36
Teoría 5Teoría 5
●
Reglas AvanzadasReglas Avanzadas
04/01/14 37
Las demás Tablas
TABLA CADENAS PROPOSITO
CONNTRACK INPUT
FORWARD
Al activarse, comienza a llevar un registro de
todas las conexiones iniciadas, y sus respuestas.
Cacha cuando una respuesta nunca fue solicitada,
y deniega esa respuesta automáticamente.
MANGLE PREROUTING
FORWARD
POSTROUTING
Usada cuando se quiere aplicar calidad de
servicio. Requiere experiencia y no la veremos
aquí.
NAT PREROUTING
FORWARD
POSTROUTING
La más usada. Permite reescribir puertos y
direcciones tanto en la entrada (PREROUTING)
como a la salida (POSTROUTING). Se usa para
compartir una sola dirección IP (INTERNET!!!)
04/01/14 38
Tabla Conntrack
Para llevar registro de paquetes hacia nuestro
equipo:
iptables -A INPUT -m state --state
ESTABLISHED,RELATED -j ACCEPT
Para llevar registro de paquetes reenviados a otros
equipos:
iptables -A FORWARD -m state --state
ESTABLISHED,RELATED -j ACCEPT
04/01/14 39
Tabla NAT
Para compartir una ip:
iptables -t nat -A POSTROUTING -o <INET> -j
MASQUERADE
INET puede ser eth0 o eth0.20, etc. Es la interfaz por
donde saldrán los paquetes a internet.
Básicamente lo que dice es “enmascara los paquetes
diciendo que es MI IP la que está pidiendo todo”
Al llegar la respuesta, reescribe la dirección destino y
reenvía el paquete a la máquina que realmente lo pidió.
Ni la maquina que pide ni la que responde se enteran.
04/01/14 40
Limpiar las reglas del Firewall
Para limpiar las reglas que hayamos puesto, solo
basta con hacerles “flush”:
iptables -F
iptables -F -t nat
No olvide poner las políticas en ACCEPT o ya no
podrá acceder a su equipo desde fuera.
iptables -P INPUT ACCEPT
04/01/14 41
Práctica 5Práctica 5
●
Poniendo todo juntoPoniendo todo junto
04/01/14 42
Firewall
# politicas por default
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permito acceso a mi puerto de SSH:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Enmascaro la red interna
iptables -t nat -A POSTROUTING -o eth0 -j
MASQUERADE
# Listar las reglas activas:
iptables -L -vn -t nat
iptables -L -vn
04/01/14 43
ConclusionesConclusiones
●
Este es el primer FirewallEste es el primer Firewall
●
Es sencillo, y funciona.Es sencillo, y funciona.
●
Lo importante es entender las reglasLo importante es entender las reglas
●
HayHay scriptsscripts que hacen todo fácil, pero si noque hacen todo fácil, pero si no
entiendes lo que hacen, no podrás hacerentiendes lo que hacen, no podrás hacer
realmente nada.realmente nada.
04/01/14 44
PREGUNTAS?
04/01/14 45
GRACIAS

Más contenido relacionado

PPTX
Tarjetas de red y router
PDF
Comandos utilizados en redes anderson alvarado 6to computacion
PPT
Exposicion sistemas seguridad_linux_software_libre
PDF
Uso del escaner de puertos nmap
PPTX
Unidad III: Seguridad de las Redes
PPT
Nivel de red en internet
PDF
Tarjetas de red y router
Comandos utilizados en redes anderson alvarado 6to computacion
Exposicion sistemas seguridad_linux_software_libre
Uso del escaner de puertos nmap
Unidad III: Seguridad de las Redes
Nivel de red en internet

La actualidad más candente (18)

PPT
Mikrotik RouterOs basics v0.3
PDF
Pfsense
DOCX
Trabajo protocolo icmp ejemlo en packet tracer
PDF
pfSense Platform Binnaris 2014
PDF
How to medidas de desempeño
PPTX
Unidad iii seguridad de las redes
PPTX
Seguridad de las redes
PDF
Manual+echolink+espanol+(1)
PDF
Que es y como usar nmap
ODP
Curso Redes Linex 5
PPT
Redes 09-comandos básicos para diagnóstico de red
PPT
Tcpdump
PPTX
Firewall - IPCop
PPT
PDF
Iptables
PDF
Manual de-usuario-de-pfsense-firewall
PPT
Direccionamiento ip
DOCX
¿Qué es un firewall ?
Mikrotik RouterOs basics v0.3
Pfsense
Trabajo protocolo icmp ejemlo en packet tracer
pfSense Platform Binnaris 2014
How to medidas de desempeño
Unidad iii seguridad de las redes
Seguridad de las redes
Manual+echolink+espanol+(1)
Que es y como usar nmap
Curso Redes Linex 5
Redes 09-comandos básicos para diagnóstico de red
Tcpdump
Firewall - IPCop
Iptables
Manual de-usuario-de-pfsense-firewall
Direccionamiento ip
¿Qué es un firewall ?
Publicidad

Similar a Taller: Mi primer Firewall (20)

PDF
Apuntes iptables gerardo
PDF
Doc iptables-firewall
PDF
Manual resumen iptables
PDF
Iptables Firewall
PDF
Iptables firewall
PDF
Doc iptables-firewall
PDF
Unidad IV: Planeación de una red LAN, Javier Ramirez, C.I. 27997544
PPTX
Topetecervantes y sandovalcardenas.utilerias
PPTX
Capitulo1 luis
PPTX
INFORMATICA.pptx
ODP
Curso Redes Linex 5
PDF
Contrucción de Cortafuego (Firewall) con IPTABLES
PDF
Tutorial ip tables
PDF
Manual de ayuda Conexion de redes
PPTX
Guia de redireccionamiento en ubuntu
DOCX
Instalarelsistemaoperativowindowsporunared 140528100303-phpapp02
PPTX
Protocolos de la comunicación.diogenes dora
PPTX
Seguridades de redes
PDF
Modelo tcp ip
PPTX
Hardware y software.redes
Apuntes iptables gerardo
Doc iptables-firewall
Manual resumen iptables
Iptables Firewall
Iptables firewall
Doc iptables-firewall
Unidad IV: Planeación de una red LAN, Javier Ramirez, C.I. 27997544
Topetecervantes y sandovalcardenas.utilerias
Capitulo1 luis
INFORMATICA.pptx
Curso Redes Linex 5
Contrucción de Cortafuego (Firewall) con IPTABLES
Tutorial ip tables
Manual de ayuda Conexion de redes
Guia de redireccionamiento en ubuntu
Instalarelsistemaoperativowindowsporunared 140528100303-phpapp02
Protocolos de la comunicación.diogenes dora
Seguridades de redes
Modelo tcp ip
Hardware y software.redes
Publicidad

Último (11)

PDF
Herramientaa de google google keep, maps.pdf
PDF
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
PPTX
Presentación de un estudio de empresa pp
PDF
Mesopotamia y Egipto.pptx.pdf historia universal
PPTX
tema-2-interes-.pptx44444444444444444444
PPTX
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
PDF
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
PPTX
Guia de power bi de cero a avanzado detallado
PPTX
presentacion_energias_renovables_renovable_.pptx
PDF
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
PPT
laser seguridad a la salud humana de piel y vision en laser clase 4
Herramientaa de google google keep, maps.pdf
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
Presentación de un estudio de empresa pp
Mesopotamia y Egipto.pptx.pdf historia universal
tema-2-interes-.pptx44444444444444444444
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
Guia de power bi de cero a avanzado detallado
presentacion_energias_renovables_renovable_.pptx
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
laser seguridad a la salud humana de piel y vision en laser clase 4

Taller: Mi primer Firewall

  • 1. Mi PrimerMi Primer FirewallFirewall Creando unCreando un FirewallFirewall en Linuxen Linux Conceptos y prácticas para crear nuestro primerConceptos y prácticas para crear nuestro primer FirewallFirewall Gabriel Orozco Ruiz VelazcoGabriel Orozco Ruiz Velazco Grupo Linux de OccidenteGrupo Linux de Occidente Grupo Linux de ColimaGrupo Linux de Colima Abril 2014Abril 2014
  • 2. Temario Temario Teoría 1 Qué son los Firewalls. Tipos. Usos. Práctica 1 Generando el ambiente del curso. Receso Teoría 2 TCP/IP Mínimo. Protocolos. Herramientas. Práctica 2 Accediendo a los equipos Teoría 3 Netfilter: El firewall de Linux Práctica 3 Primer Firewall Teoría 4 Reglas para diferentes requerimientos Práctica 4 Mi Primer Firewall en Linux
  • 3. 04/01/14 3 Qué son los Firewalls Es un filtro y manipulador de las conexiones que llegan a la computadora o pasan a través de ella. Nacen de la necesidad de proteger el equipo de atacantes externos, al permitir conexiones solamente desde las direcciones que permitamos, hacia los puertos y protocolos que permitamos. Tipos: de proxy y de paquetes.
  • 4. 04/01/14 4 Tipos de Firewall: por función Perimetral Conecta una red interna a una red externa, que no es confiable Frontera Bloquea conexiones no deseadas hacia el servidor.
  • 5. 04/01/14 5 Tipos de Firewall: por tecnología De Red o packet filters Filtra y manipula conexiones a nivel IP Puerto, dirección ip, protocolo. De Aplicación o proxies Aceptan los paquetes que van a la aplicación y bloquean el resto. Entienden los protocolos
  • 6. 04/01/14 6 Importancia Si tengo un conjunto de aplicaciones que pueden ser vulnerables, corriendo en un servidor, y no quiero tener que hacer configuración detallada de cada una, puedo poner un Firewall El Firewall intercepta las conexiones antes de que le lleguen a cualquier aplicación. (Va primero) Así cualquier aplicación insegura que tenga, puedo bloquear el acceso desde fuera, manteniendo la seguridad. Sin embargo, si permito el acceso, debo asegurar que la aplicación que exponga, esté bien configurada y actualizada.
  • 7. 04/01/14 7 Usos Limita los puertos expuestos de mi equipo Reescribe direcciones IP y puertos de forma que una sola máquina conectada a internet, con una sola dirección IP, pueda compartir esa conexión al resto de equipos en una red local. También reescribe los datos de conexiones entrantes y los puede reenviar a un equipo interno. Esto es, podemos compartir servidores internos, hacia internet o la red externa que necesitemos. Puede hacer un registro de conexiones y de ancho de banda por IP
  • 8. 04/01/14 8 Practica 1Practica 1 ● Configurando el ambienteConfigurando el ambiente
  • 9. 04/01/14 9 Configuraciones Para nuestras pruebas, necesitamos al menos dos tarjetas de red. Tomen un número secuencial cada uno de los participantes con equipo. Ese será “XX” Asegurense de tener acceso como administrador Instalen el paquete vlan sudo apt-get install vlan Instalar el paquete vlan y crear la subred: sudo modprobe 8021q sudo vconfig add eth0 10 sudo vconfig add eth0 20 sudo ip addr add 10.0.0.XX/24 dev eth0.10 Dé ping a la ip de algún compañero para asegurarse que funciona. ping 10.0.0.1
  • 10. 04/01/14 10 Configuraciones Deben tener al menos: Una interfaz (Device) conectada a la red local (la VLAN 10) Una interfaz (Device) conectada a Internet (la que ya tenían, sea eth0 o wlan) Acceso como root (El Firewall es una aplicación privilegiada, y solo root la puede manipular) Tener comunicación entre los equipos.
  • 11. 04/01/14 11 TCP/IP Direcciones IPv4 son 4 números de 8 bits, que van desde la ip 0.0.0.0 hasta la 255.255.255.255 No todas las direcciones se usan. Por ejemplo las que terminan en cero se usan para definir una red (como en 192.168.1.0/24) y las que terminan en 255 se usan para broadcast o anuncios generales (como en 192.168.1.255) Hay direcciones apartadas para usos especiales. Por ejemplo: 127.0.0.1 (se refiere siempre al equipo local) Red 10.0.0.0/8 para organizaciones grandes Red 172.16-32.0.0/16 para organizaciones medianas Red 192.168.0.0/16 para organizaciones pequeñas
  • 12. 04/01/14 12 TCP/IP Protocolos TCP: se usa para conexiones confiables entre dos equipos. Los mensajes se envían en paquetes con número de secuencia. El emisor pide confirmación de cada paquete, y si falta uno, reenvía el paquete en cuestión. Es el más usado en internet. UDP: se usa para conexiones donde la aplicación tiene el control. Si se pierde un paquete y la aplicación no lo necesita, éste nunca es reenviado. Ejemplo: voz, video.. no queremos que de pronto llegue una parte de una palabra que se perdió.. se haría algo imposible de entender. ICMP: ping... y otros usos más avanzados.
  • 13. 04/01/14 13 TCP/IP Puertos y Servicios En Linux, hay puertos desde el 1 hasta el 65,535, ya sea en TCP o UDP Puertos abajo del 1025, solo se pueden conectar aplicaciones que arranquen como root. Son donde escuchan las aplicaciones estándar. El servicio HTTP (WEB) por ejemplo, usa TCP/80 El servicio SMTP (CORREO) usa el TCP/25 Los servicios están descritos en el archivo /etc/services
  • 14. 04/01/14 14 TCP/IP Servicios Correo se compone de smtp (TCP/25) pop3 (TCP/110) imap (TCP/143) smtp-auth (TCP/587) pop3s (TCP/995) imaps (TCP/993) WEB se compone de http (TCP/80) https (TCP/443) MySQL mysql (TCP/3306) Terminal Services RDP (TCP/3389)
  • 15. 04/01/14 15 Herramientas Para saber si un equipo está conectado y accesible, usamos: ping <dirección.del.equipo> Para saber si hay un programa escuchando en un puerto determinado, usamos (entre otros) para tcp: telnet <dirección.del.equipo> <puerto> Para saber si hay un equipo en una dirección pero está oculto, usamos: nmap -A -P0 <dirección.del.equipo> Recomiendo aprender a usar “netcat”
  • 16. 04/01/14 16 Respuestas esperadas en TCP/IP Si hay un programa escuchando en un puerto, cuando nos conectamos a el, debe establecerse la conexión. Si no hay ningún programa escuchando, debemos obtener un mensaje de “Connection refused” Si hay un firewall que tira los paquetes, deberíamos obtener un mensaje de “Timeout”. Esto también es cierto si el equipo no está conectado o presente, así que hay que aplicar criterio: si responde a ping u otro puerto, entonces obtener un timeout es que el puerto está filtrado.
  • 17. 04/01/14 17 Práctica 2Práctica 2 ● Accediendo a los equiposAccediendo a los equipos
  • 18. 04/01/14 18 Accediendo a los equipos Haga ping a los equipos de sus compañeros en su dirección de red “interna”. Escanee la red para ver cuantos equipos están accesibles con nmap -sP 10.0.0.0/24 debería poder ver a todos los demás equipos. Escanee una maquina para ver qué puertos tiene prendidos con nmap -A -P0 <direccion.de.la.maquina> Intente conectarse al puerto usando telnet. (para salir de telnet use Control-5, y luego escriba quit)
  • 19. 04/01/14 19 Teoría 3Teoría 3 ● Ruteo sencilloRuteo sencillo
  • 20. 04/01/14 20 Linux es un ruteador Linux tiene la capacidad de reenviar paquetes entre redes. Esto es muy útil ya que puede cumplir todas las funciones de un ruteador, y compartir el internet por ejemplo. Solo basta con poner un “1” en el siguiente archivo para habilitar los servicios de ruteo: /proc/sys/net/ipv4/ip_forward Para probar que funciona, el Linux debe ser el gateway de dos redes diferentes. Se puede hacer un ping a un equipo de la otra red, y el Linux reenviará el paquete de ping, y también la respuesta del equipo “pingueado” de regreso al equipo que preguntó.
  • 21. 04/01/14 21 Ruteador, pings, hops 10.0.0.23 10.0.0.55 10.0.1.76 10.0.1.209 192.168.1.64 192.168.1.254 internet
  • 22. 04/01/14 22 Practica 3Practica 3 ● Organizando la redOrganizando la red
  • 23. 04/01/14 23 Organizando la red Formen equipos de tres máquinas Equipo 11, use la red 10.11.1.0/24 entre la maquina 1 y 2, y use la red 10.11.2.0/24 entre la maquina 2 y la 3. la máquina 3 se supone conectada a internet. Asegúrense de hacer esto como root Recuerden que todos tienen la vlans 10 y 20. usen esa como local PC 1 ifconfig eth0.10 10.11.1.1 1 netmask 255.255.255.0netmask 255.255.255.0 route add -net default gw route add -net default gw 10.10.11.1.2.1.2 PC 2 ifconfig eth0.10 10.11.1.2 netmask 255.255.255.0netmask 255.255.255.0 ifconfig eth0.20 10.ifconfig eth0.20 10.11.2.1 .2.1 netmask 255.255.255.0netmask 255.255.255.0 route add -net default gw route add -net default gw 10.10.11.2.2.2.2 PC 3PC 3 ifconfig eth0.20 10.11.2.2 netmask 255.255.255.0netmask 255.255.255.0 route add -net 10.1.1.0/24 gw route add -net 10.1.1.0/24 gw 10.10.11.2.1.2.1 Den ping a las diferentes direcciones. QuéDen ping a las diferentes direcciones. Qué pasa?pasa? Ahora activen el forward y den ping:Ahora activen el forward y den ping: echo 1 > echo 1 > /proc/sys/net/ipv4/ip_forward/proc/sys/net/ipv4/ip_forward
  • 24. 04/01/14 24 Teoría 4Teoría 4 ● Netfilter, el Firewall de LinuxNetfilter, el Firewall de Linux
  • 25. 04/01/14 25 Netfilter Netfilter es el Firewall de Linux. Está integrado en el kernel, lo que lo hace extremadamente rápido y eficiente. La herramienta que lo controla, se llama iptables Se diseñó como un conjunto de reglas que se aplican a cada paquete de datos tcp/ip conforme llega al equipo o es reenviado a otro equipo. Conforme añado reglas a netfilter, estas siempre se evalúan de primera a última añadida, y si no hay una regla para el paquete de datos, se aplica la decisión “Default”. El paquete va pasando por varias “tablas” donde lo puedo manipular si quiero.
  • 27. 04/01/14 27 Otra manera de ver las tablas de Netfilter
  • 28. 04/01/14 28 Tabla FILTER Todos los paquetes pasan por esta tabla. Es la tabla “default” o sea que si no nombramos cual tabla queremos usar, por defecto es “filter” Solamente sirve para filtrar las ip o puertos que no queremos que se accedan. Tiene las cadenas INPUT, FORWARD, OUTPUT INPUT Cuando el paquete va dirigido a una de las direcciones IP del equipo actual, el paquete llega a esta cadena antes de ser entregado a la aplicación que esté escuchando en el puerto. FORWARD Cuando el paquete no va dirigido a este equipo, llega a esta cadena OUTPUT Siempre que el paquete se origina en este equipo, pasa por esta cadena antes de irse.
  • 29. 04/01/14 29 Políticas por default Todas las tablas tienen cadenas. En la tabla filter las cadenas son “INPUT”, “FORWARD”,”OUTPUT” Para escribir menos, es válido poner una política por default. Esa puede ser “ACCEPT” o “DROP” o “DENY” Cuando no he manipulado nada, todo está por defecto en el default “ACCEPT” (no hay Firewall)
  • 30. 04/01/14 30 Sintaxis básica Iptables [ -t tabla ] < -{A | D | I } CADENA > (Add, Delete, Insert) [ -p PROTOCOLO {tcp | udp | otro } { --sport | --dport } puerto ] [ -i TARJETA DE ENTRADA ] [ -o TARJETA DE SALIDA ] [ -s DIRECCION o RED IP de ENTRADA ] [ -d DIRECCION o RED IP de SALIDA ] < -j <ACCEPT | DROP } > iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -i eth0.10 -p tcp --dport 80 -j ACCEPT
  • 31. 04/01/14 31 Aplicando políticas por defecto La forma de prender el primer Firewall de un equipo se demasiado sencilla. Solamente ponemos la política de INPUT en DROP iptables -P INPUT DROP Para que no reenvíe nada? FORWARD: iptables -P FORWARD DROP Para que no salga nada? OUTPUT. iptables -P OUTPUT ACCEPT
  • 32. 04/01/14 32 Práctica 4.1Práctica 4.1 ● Mi primer FirewallMi primer Firewall
  • 33. 04/01/14 33 Cree un Firewall para su PC Tomando en cuenta el ejemplo de la diapositiva anterior, cree un Firewall para su equipo. Debe bloquear todo intento de acceder a su equipo. Cual regla (una sola línea) necesita poner?
  • 34. 04/01/14 34 Abra agujeros en su Firewall Respecto del Firewall que acaba de crear, ahora necesitamos que permita acceso a SSH (TCP/22) Cual regla es la que debe añadir (una sola línea) para permitir SSH desde cualquier ip hacia su propio equipo, en el protocolo tcp, puerto destino 22?
  • 35. 04/01/14 35 Reenvío de paquetes Permita el reenvío de paquetes que vayan al puerto destino TCP/80 y al puerto destino TCP/22 Ahora, permita el reenvío de todos los paquetes que entren por la interfaz (device) eth0.10 Puede listar las reglas con el comando iptables -L -vn
  • 36. 04/01/14 36 Teoría 5Teoría 5 ● Reglas AvanzadasReglas Avanzadas
  • 37. 04/01/14 37 Las demás Tablas TABLA CADENAS PROPOSITO CONNTRACK INPUT FORWARD Al activarse, comienza a llevar un registro de todas las conexiones iniciadas, y sus respuestas. Cacha cuando una respuesta nunca fue solicitada, y deniega esa respuesta automáticamente. MANGLE PREROUTING FORWARD POSTROUTING Usada cuando se quiere aplicar calidad de servicio. Requiere experiencia y no la veremos aquí. NAT PREROUTING FORWARD POSTROUTING La más usada. Permite reescribir puertos y direcciones tanto en la entrada (PREROUTING) como a la salida (POSTROUTING). Se usa para compartir una sola dirección IP (INTERNET!!!)
  • 38. 04/01/14 38 Tabla Conntrack Para llevar registro de paquetes hacia nuestro equipo: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Para llevar registro de paquetes reenviados a otros equipos: iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 39. 04/01/14 39 Tabla NAT Para compartir una ip: iptables -t nat -A POSTROUTING -o <INET> -j MASQUERADE INET puede ser eth0 o eth0.20, etc. Es la interfaz por donde saldrán los paquetes a internet. Básicamente lo que dice es “enmascara los paquetes diciendo que es MI IP la que está pidiendo todo” Al llegar la respuesta, reescribe la dirección destino y reenvía el paquete a la máquina que realmente lo pidió. Ni la maquina que pide ni la que responde se enteran.
  • 40. 04/01/14 40 Limpiar las reglas del Firewall Para limpiar las reglas que hayamos puesto, solo basta con hacerles “flush”: iptables -F iptables -F -t nat No olvide poner las políticas en ACCEPT o ya no podrá acceder a su equipo desde fuera. iptables -P INPUT ACCEPT
  • 41. 04/01/14 41 Práctica 5Práctica 5 ● Poniendo todo juntoPoniendo todo junto
  • 42. 04/01/14 42 Firewall # politicas por default iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # Permito acceso a mi puerto de SSH: iptables -A INPUT -p tcp --dport 22 -j ACCEPT # Enmascaro la red interna iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Listar las reglas activas: iptables -L -vn -t nat iptables -L -vn
  • 43. 04/01/14 43 ConclusionesConclusiones ● Este es el primer FirewallEste es el primer Firewall ● Es sencillo, y funciona.Es sencillo, y funciona. ● Lo importante es entender las reglasLo importante es entender las reglas ● HayHay scriptsscripts que hacen todo fácil, pero si noque hacen todo fácil, pero si no entiendes lo que hacen, no podrás hacerentiendes lo que hacen, no podrás hacer realmente nada.realmente nada.