On Tue, Jan 25, 2011 at 09:57:16AM -0300, fender wrote:
> Pablo,
>
> 2011/1/11 Pablo Gentilel <[email protected]>:
> > El 11/01/2011 02:31 p.m., Boris Quiroz escribió:
> >>
> >> El día 11 de enero de 2011 13:55, Pablo Gentilel
> >> <[email protected]> escribió:
> >>
> >>>
> >>> Hola lista, queria saber como hago para usar iptables con nombres en vez
> >>> de
> >>> direcciones ip, ya que el problema que tengo es que cuando por ejemplo en
> >>> el
> >>> script que tengo hecho para iptables si dejo la direccion origen con
> >>> nombre,
> >>> no se termina de ejecutar el script, salvo que haya agregado las
> >>> direcciones
> >>> y nombres del dominio en cuestion en el archivo /etc/hosts.
> >>> espero haber sido claro en mi pregunta y gracias de antemano.
> >>>
> >>> --
> >>> Pablo Gentilel
> >>> Sistemas
> >>> Royal Technologies Mercosur
> >>> 0221-4915400 Int.231
> >>> 0221-155373977
> >>>
> >>>
> >>>
> >>
> >> Uhm.. Hasta donde sé, IPtables se usa para filtar IPs. SI quieres
> >> filtar nombres, te recomiendo usar un proxy o algo.
> >> Hay alguna razon por lo cual quieras usar nombres y no ip? Aparte de
> >> que el script no se termina de ejecutar? En caso de haber otras
> >> razones, me gustaria saber. En una de esas podemos atacar el problema
> >> por otro lado.
> >>
> >> Saludos.
> >>
> >>
> >
> > Hola, la razon es que quiero filtrar las ips correspondientes a un dominio
> > en particular, y asi hacer un prerouting de las mismas y direccionarlas
> > hacia un ip interna en particular.
> > Como comento en el correo anterior, puse las ips en /etc/hosts y funciona,
> > pero el problema sería si dichos dominio cambia su ip.
> > Ademas, tengo hecho un prerouting para el mismo puerto pero para otra
> > maquina interna, con distinto origen.
> > Gracias por responder
> >
>
> Como dijeron otros, iptables no filtra por dominios. Si en tus reglas
> agregás dominios en vez de direcciones IP, lo que intentará hacer es
> resolver esos dominios para obtener sus direcciones.
>
> El script que parece no terminar su ejecución, se debe a lo que
> expliqué anteriormente. Por cada dominio que iptables encuentre,
> intentará obtener la dirección correspondiente. Como la resolución de
> nombres demora algunos segundos por cada dominio, te puede dar la
> apariencia de que el script nunca termina.
Efectivamente, lo que podés hacer es paralelizar las búsquedas
DNS y agregarlas luego, por ej con:
$ echo -n www.wikipedia.org www.fsf.org www.um.edu.ar \
| xargs -P10 -d" " -I@ dig +short @ -t A \
| tee /dev/tty \
| egrep '[0-9]$' | sort -u \
| xargs -I@ echo iptables -I INPUT -s @ -j ACCEPT
iptables -I INPUT -s 140.186.70.131 -j ACCEPT
iptables -I INPUT -s 200.51.41.139 -j ACCEPT
iptables -I INPUT -s 91.198.174.232 -j ACCEPT
El "workhorse" de arriba es xargs -P10 -d" " -I@ <comando ... @ ...>
(-P10: 10x procesos en paralelo, -d" ": separador de la lista de
entrada, -I@: reemplazá @ por cada valor de la lista); todos éstos
"sincronizados" por el sort (quien tiene que consumir plenamente el
stdin para poder ordenarlo correctamente); luego masajeados por otro
xargs para formatear el comando de final (notar que hace
*echo iptables*, y no *iptables de una).
Una vez contento con la salida de arriba, podés por ej inyectársela a
un bash con: | sudo bash -x
El "| tee /dev/tty " es solamente para espiar lo que se está pipeando
en esa sección del tubo ;)
>
> Saludos.
>
> --
> Federico
>
> /*
> * J. Federico Hernandez (fender) {frozenspot; at; gmail; dot; com;}
> * GPG PubKey: wwwkeys.eu.pgp.net key 6AE78BF2
> * FP: 26AB 7A1B C2C4 70F8 0E7D C3F4 9736 5CE2 6AE7 8BF2
> */
Salú/tty
--
--JuanJo
oO Juan Jose Ciarlante - juanjosec Ogmail.com - jjo O{um.edu.ar,google.com}
Oo gpg --keyserver wwwkeys.eu.pgp.net --recv-key 81276430