LinuxParty

Ratio:  / 0
MaloBueno 
Charla que se dió en el canal #linux_party, del IRC-HISPANO, sobre Firewalls IPTABLES, el cual fué un completo éxito con más de 100 usuarios online.

Nuestro Amigo _ScratcH_, fué el instructor de la charla y moderador del canal fué una Introducción al iptables, en sustitución de Introducción a Python, ya que Mr.: Heimy no pudo conectarse.


<_ScratcH_> el kernel 2.2 utilizaba ipchains
<_ScratcH_> y el kernel 2.4 utiliza iptables
<_ScratcH_> que es mucho mas complejo que los dos anteriores
<_ScratcH_> la configuracion del firewall consiste en definir una serie de
politicas de actuacion para el tratamiento de los paquetes
de red que llegan, salen o atraviesan nuestro ordenador
<_ScratcH_> bueno.. alguna duda hasta el momento?
(continúa en el texto extendido)

muy clarito
<_ScratcH_> ok.. pos sigo
no, todo entendido, puedes continuar ;)
<_ScratcH_> toda la informacion que pasa por la red va agrupada en paketes
de informacion que llevan una cabecera donde dice entre
otras cosas cual es el origen del pakete, cual es el destino,
que protocolo utiliza, etc..

** Demasiadas interrupciones pasamos a modo Moderado, ;-) **

<_ScratcH_> si alguien quiere interrumpirme.. hacer preguntas.. o anadir algo..
pedidle voz en privado a SNEAK_ o a JAO deacuerdo?
<_ScratcH_> cuando tenemos un ordenador que esta trabajando como enrutador
(router) los paquetes que pasan por el pueden ser de tres tipos
<_ScratcH_> paquetes generados por el propio ordenador..
<_ScratcH_> paquetes que recibe que van destinados a el mismo
<_ScratcH_> y paquetes que se le envian para que este los enrute hacia otra
direccion
<_ScratcH_> esto ultimo es lo que se conoce como reenvio o FORWARD
<_ScratcH_> pues bien
<_ScratcH_> iptables nos permite definir una serie de politicas
<_ScratcH_> para eso se definen tres tablas diferentes..
<_ScratcH_> filter, nat y mangle
<_ScratcH_> la primera define politicas de filtrado, es decir.. toma decisiones
sobre que paquetes se aceptan.. y cuales no.. cuales se
devuelven a destino.. etc..
<_ScratcH_> la segunda NAT (Network Address Translation) Traduccion de
Direcciones de Red define cambios en las cabeceras de los
paquetes
<_ScratcH_> podemos recibir un paquete destinado al reenvio hacia otra
direccion.. pero con las politicas adecuadas podemos hacer
por ejemplo que antes de reenviar el paquete sustituya la
direccion de origen por otra.. etc..
<_ScratcH_> y por ultimo la tabla mangle que nos permite modificar.. no el la
cabecera del paquete.. sino el contenido del mismo
_Scratch_ nos piden si puedes poner ejemplos de como se definen las
tablas
<_ScratcH_> si si..
<_ScratcH_> pondre ejemplos de todo
<_ScratcH_> vamos a empezar con el filtrado
<_ScratcH_> el filtrado se puede aplicar a tres tipos de objetivos..
<_ScratcH_> a paquetes generados por la propia maquina (LOCAL_OUT), a paquetes
destinados a la propia maquina (LOCAL_IN) o a paquetes
destinados a reenvio (FORWARD)
<_ScratcH_> una vez identificado el objetivo hay que especificar la accion que
se debe tomar sobre este.. que puede ser entre otras una de las
siguientes:
<_ScratcH_> ACCEPT: acepta el paquete
<_ScratcH_> DROP: desecha el paquete sin mas
<_ScratcH_> REJECT: rechaza el paquete pero informa al origen de que ha sido
rechazado
<_ScratcH_> bien.. otra cosa que debemos especificar son las caracteristicas
que debe cumplir el paquete para aplicarle esta accion
<_ScratcH_> estas pueden ser:
<_ScratcH_> -p :que el paquete utilice un protocolo determinado
<_ScratcH_> -s :una direccion de origen (source) determinada
<_ScratcH_> -d :una direccion de destino
<_ScratcH_> -i :una interfaz de entrada (eth0, ppp0, ...)
<_ScratcH_> -o :una interfaz de salida
<_ScratcH_> --dport :un puerto de destino
<_ScratcH_> --sport :un puerto de origen
<_ScratcH_> --mac-source :una direccion fisica ethernet en concreto
<_ScratcH_> --icmp-type :un tipo icmp concreto, etc...
<_ScratcH_> para introducir una regla en la tabla de iptables la sintaxis
vendria a ser la siguiente..
<_ScratcH_> iptables -t TABLA -A OBJETIVO -j ACCION
<_ScratcH_> ejemplo
ppalou pregunta: ¿a que te refieres con esto de los protocoles "-p"?
<_ScratcH_> si queremos itroducir una norma en la tabla de entrada que rechaze
todos los paquetes del protocolo TCP destinados al puerto 23
(telnet) de nuestro ordenador que provengan de una direccion
que no pertenezca a nuestra red local
192.168.0.0/255.255.255.0 hariamos lo siguiente
<_ScratcH_> ppalou: protocolos: TCP, UDP o ICMP
cual es el ICMP (sorry por mi ignorancia)?
<_ScratcH_> creo ke es Internet Control Message Protocol
<_ScratcH_> son paquetes de tamano pequeno ke se utilizan para realizar
ciertas comprobaciones..
<_ScratcH_> por ejemplo..cuando haces un PING a una maquina
<_ScratcH_> envias un paquete ICMP - ECHO REQUEST
<_ScratcH_> y el otro extremo responde con un paquete ICMP - ECHO REPLAY
<_ScratcH_> antiguamente se podia tumbar un equipo con un modem lento desde
otro con mayor ancho de banda simplemente bombardeandolo a PING
en el campo ip, se aceptan rangos ip, como 192.168.0.0/12?
<_ScratcH_> con iptables puedes filtrar esto de forma que no acepte mas
paquetes de este tipo
<_ScratcH_> chawax: exacto
<_ScratcH_> ahora pongo un ejemplo
<_ScratcH_> si queremos itroducir una norma en la tabla de entrada que rechaze
todos los paquetes del protocolo TCP destinados al puerto 23
(telnet) de nuestro ordenador que provengan de una direccion
que no pertenezca a nuestra red local
192.168.0.0/255.255.255.0 hariamos lo siguiente
<_ScratcH_> iptables -t filter -A INPUT -j DROP --dport 23 -s ! 192.168.0.0/24
<_ScratcH_> el signo ! se utiliza para negacion
<_ScratcH_> es decir: -s ! 192.168.0.0/24
<_ScratcH_> signicica: todos los paquetes cuyo origen (source) sea distinto a
nuestra red 192.168.0.0/255.255.255.0
<_ScratcH_> la mascara de red se puede abreviar indicando el numero de bits a 1
<_ScratcH_> 255.0.0.0 = /8
<_ScratcH_> 255.255.0.0 = /16
<_ScratcH_> etc..
<_ScratcH_> hasta ahora alguna duda con esto?
<_ScratcH_> ;)
si no especificas ninguna regla para una determinada accion y se
realiza ke sucede?
<_ScratcH_> hay que especificar accion
<_ScratcH_> a ver.. para cada objetivo podemos definir una accion
predeterminada
<_ScratcH_> si por ejemplo..queremos partir de la base de que no aceptamos
ningun paquete hariamos esto
<_ScratcH_> iptables -t filter -A INPUT -P DROP
<_ScratcH_> -P indica la accion (o politica) por defecto
<_ScratcH_> podriamos hacer esto para luego anadir una regla diciendo que si
acepte los paquetes de nuestra red local..
<_ScratcH_> iptables -t filter -A INPUT -s 192.168.0.0/24 -j ACCEPT
<_ScratcH_> de estemodo tendriamos una LAN parcialmente aislada del exterior
<_ScratcH_> parcialmente por que solo hemos cerrado los paquetes de entrada..
habria que cerrar tambien los de salida y de reenvio
_ScratcH_ todas estas reglas donde se guardan para k se realizen
siempre? en un archivo de init.d ?
<_ScratcH_> ppalou: esa es la mejor forma de hacerlo
<_ScratcH_> crear un script muy simple y anadirlo al init.d
ok
<_ScratcH_> aunkue eso depende de cada distribucion
<_ScratcH_> bueno.. como me imagino ke la mayoria (yo incluido) teneis ganas
de iros a la kamita.. voy a explicar brevemente las acciones
de NAT y lo dejamos por hoy.. deacuerdo?
<_ScratcH_> la NAT hemos dicho ke era la traduccion de direcciones de red,
es decir.. modificar la cabecera IP de los paquetes
<_ScratcH_> pues bien.. la tabla que define estas politicas se llama nat
<_ScratcH_> los posibles objetivos son tres: PREROUTING, POSTROUTING y OUTPUT
<_ScratcH_> al recibir un paquete para ser reenviado lo que hace el nucleo es
ver a que direccion va destinado y decidir por cual de los
interfaces de red debe reenviarlo para que llegue a su destino
<_ScratcH_> las acciones de PREROUTING son las realizadas antes de tomar esta
decision..
<_ScratcH_> las de POSTROUTING se toman despues de esta decision
<_ScratcH_> las de OUTPUT son acciones de NAT que afectan a paquetes generados
por la propia maquina y que por tanto no pasan por el filtro
de reenvio
<_ScratcH_> las dos acciones basicas que haremos en cuanto a NAT son las de
modificar la direccion IP de origen y la modificacion de la IP
de destino
<_ScratcH_> por ejemplo.. el caso de masquerading
<_ScratcH_> consiste en lo siguiente.. tenemos un ordenador conectado a
internet con su IP publica y su IP en la red local
<_ScratcH_> y este ordenador actua como enrutador para el resto de ordenadores
de la red local
<_ScratcH_> si un ordenador quiere enviar un paquete al exterior lo envia
al router
<_ScratcH_> si este lo reenviara al destino sin ningun tipo de modificacion
este paquete jamas volveria
<_ScratcH_> puesto que la direccion de origen que figuraria seria la direccion
que tiene este ordenador en la red local, que no seria una IP
valida en internet
<_ScratcH_> la tecnica de enmascaramiento (masquerading) consiste en que el
firewall modifica la direccion de origen del paquete
sustituyendola por la propia IP que tiene el router en
internet..
<_ScratcH_> de este modo al llegar el paquete a su destino volvera al router
que nuevamente lo dirigira al ordenador del que procedia
<_ScratcH_> este seria un caso de POSTROUTING puesto que la modificacion de la
direccion de origen se haria despues de haber tomado la
decision de enrutado
Cómo sabe el router a ké ekipo de la red local pertenecía?
<_ScratcH_> el sistema de enrutado hace que todos los paquetes que se envian
sean introducidos en unas tablas e identificados con un numero
de serie
<_ScratcH_> al volver comprueba este numero de serie y asi sabe a que "traza"
pertenece el paquete para poderlo devolver al ordenador que
toca
<_ScratcH_> otro dipo de nat consiste en lo contrario
<_ScratcH_> en modificar el destino de paquete..
<_ScratcH_> podemos hacer que los paquetes que cumplan unas caracteristicas
vayan destinados a otra direccin diferente de la original.. en
este caso habria que modificar la direccion de destino antes de
tomar la decision de enrutado.. por que de este modo podriamos
variar la ruta que debe seguir
<_ScratcH_> pues bien.. en el caso de modificacion de direccion de origen
la accion se llama SNAT
<_ScratcH_> en caso de modificar el destino se llama DNAT
<_ScratcH_> como ejemplo.. supongamos que nos interesa que todos los paquetes
que van desde nuestra red hacia el exterior para solicitud de
paginas web (puerto TCP 80) pasen antes por otro ordenador que
haga de filtro, cache, o lo que sea..
un caso real en el que se use DNAT
<_ScratcH_> chawax: este mismo ke estoy explicando
<_ScratcH_> supongamos ke el ordenador ke vamos a usar para trabajar como cache
de web por ejemplo sea 192.168.0.20 y que reciba estas
conexiones en el puerto 8080
<_ScratcH_> pues bien.. la configuracion seria la siguiente
<_ScratcH_> iptables -t nat -A PREROUTING -j DNAT -p tcp -s 192.168.0.0/24
--to-destination 192.168.0.20:8000
<_ScratcH_> bueno.. podriamos seguir hablando horas y horas sobre iptables..
<_ScratcH_> pero creo que con esto y el man ya es suficiente para el que
quiera empezar a montar un firewall

** Y con esto y un bizcocho hasta mañana a las ocho **
** Ronda de preguntas, aplausos, cumplidos y peloteo general, xD **

plas plas plas plas plas plas plas plas plas plas plas plas plas plas
plas plas plas plas plas plas plas plas plas plas plas plas plas plas
_ScratcH_ tengo 2 dudas pekeñas :)
<_ScratcH_> si hay alguna pregunta sencilla.. podeis hacerla.. si es muy
complicada.. man iptables ;)
plas plas plas plas plas plas plas plas plas plas plas plas plas plas
<_ScratcH_> ppalou:

_ScratcH_ no acabo de entender lo de /8 /12 /24 ....
<_ScratcH_> ppalou: ok
<_ScratcH_> la mascara de red nos dice cuantos bits de una direccion IP
pertenecen a la red y cuantos al ordenador en concreto
<_ScratcH_> si tenemos una red del tipo 192.168.0.0/255.255.255.0
<_ScratcH_> signicica que la red es: 192.168.0.x
si
<_ScratcH_> ok..
<_ScratcH_> es decir.. los primeros 3 bytes de los 4 que hay nos definen la red
<_ScratcH_> si escribes la mascara de red en binario:
<_ScratcH_> 255.255.255.0 = 11111111/11111111/11111111/00000000
<_ScratcH_> tenemos 24 bits a 1
<_ScratcH_> en resumen:
<_ScratcH_> /255.0.0.0 = /8
<_ScratcH_> /255.255.0.0 = /16
<_ScratcH_> /255.255.255.0 = /24
<_ScratcH_> etc..
VALE!!!! :-)
<_ScratcH_> ok
<_ScratcH_> la otra duda ke tenias?
asias, ahora .... en el kernel ke hay k seleccionar en las opciones de
red? pk hay miles
<_ScratcH_> si.. hay miles..
<_ScratcH_> a ver.. en el apartado Networking options
<_ScratcH_> [*] Network packet filtering (replaces ipchains)
<_ScratcH_> esto da soporte a iptables
<_ScratcH_> y luego dentro de el apartado: IP: Netfilter Configuration --->
me lo imagino ;)
scratch.. la mitad d la charla q he visto ta de pm:)))))) felicidades ;)
<_ScratcH_> ppalou
<_ScratcH_> ok ;)
<_ScratcH_> GoMi: pelota
dime
ha estado mu biens
sc es el number one
<_ScratcH_> pplou: dentro de la configuracion lo peudes activar practicamente
todo.. si vas a hacer pruebas..
<_ScratcH_> sino solo lo ke necesites
<_ScratcH_> en concreto
<_ScratcH_> ipchains (2.2-style) support
<_ScratcH_> ipfwadm (2.0-style) support
yo lei k si activabas iptables no podrias activar ipchains ni ipfwadm
<_ScratcH_> estas dos no las necesitas a no ser que vayas a usar ipchains o
ipfwadm ke ya he dicho antes que estan obsoletas con el
kernel 2.4
ok :)
entonces a: [ ] IP: advanced router ] IP: kernel level
autoconfiguration y estas cosas ke le den no?
<_ScratcH_> si lo que necesitais es un firewall optimizado en cuanto a la
gestion de paquetes.. no activeis nada que no vayais a
utilizar.. pero eso es algo de norma general
<_ScratcH_> ppalou: esas dos no tienen mucho que ver con iptables
_ScratcH_ ok
UNA CHARLA FANTASTICA!!!!!!
MUCHAS GRACIAS
<_ScratcH_> advancer router te permite configurar que cosas se tienen en
cuenta a la hora de decidir ke ruta sigue el pakete
a el no le dices lo de pelota? XDDDDDDDDDDD
:-)
<_ScratcH_> gracias ;)
_ScratcH_ grcx, explicas de puta madre
<_ScratcH_> chawax: sera ke tu entiendes bien.. XDDD

Si alguien quiere dar alguna charla temática, primeramente que lo anuncie en la lista de correo, preferiblemente, si no pudiera que lo haga a linux_party @ yahoo.es, pero esta es una opción que siempre debe desconsiderarse, también puede obtar por publicarlo en nuestra propia página Web o en barrapunto.com

---------------------------------------------------
El fichero Original en HTML:
Charla_IPTables.html
---------------------------------------------------



Redes:



 

Encuesta de LinuxParty

¿Qué valoras más al visitar una Web?

Donar a LinuxParty

La mejor forma de darnos las gracias, es hacer una donación.


¿Quién está online?

Hay 244 invitados y ningún miembro en línea

Tutorial de Linux

Publicidad / Contacto | RSS / Atom | En Twitter | En Facebook

Copyleft LinuxParty © 2013.