Discussion:
Iptables
Pablo Gentilel
2011-01-11 16:55:50 UTC
Permalink
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
Boris Quiroz
2011-01-11 17:31:56 UTC
Permalink
El día 11 de enero de 2011 13:55, Pablo Gentilel
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.
--
http://boris.insert-coin.org
AADB 52A9 8C6B 1C73 D0C4  570E 952C 2DC1 D1D0 A4E7
gpg --keyserver pgp.mit.edu --recv-key D1D0A4E7
Pablo Gentilel
2011-01-11 17:39:18 UTC
Permalink
Post by Boris Quiroz
El día 11 de enero de 2011 13:55, Pablo Gentilel
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
--
Pablo Gentilel
Sistemas
Royal Technologies Mercosur
0221-4915400 Int.231
0221-155373977
Emiliano Romero
2011-01-11 17:47:28 UTC
Permalink
Post by Pablo Gentilel
Post by Boris Quiroz
El día 11 de enero de 2011 13:55, Pablo Gentilel
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
Hasta donde conozco Iptables no te permite filtrar por nombres de
dominio (DNS). Si las ips no van a cambiar muy seguido podrias hacer un
script bash que te actualice iptables cada x tiempo. Y asi mantener esos
dominios=>ip "actualizados".

Ademas imaginemos que a iptables le costaria mucho estar haciendo un
reverse resolv de cada uno de los paquetes que le llegan.

Saludos
Boris Quiroz
2011-01-11 17:49:10 UTC
Permalink
El día 11 de enero de 2011 14:39, Pablo Gentilel
Post by Boris Quiroz
El día 11 de enero de 2011 13:55, Pablo Gentilel
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.
Eso lo puedes hacer, por ejemplo, con squid.
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.
Si lo haces en base a nombres, puedes hacer con squid


Un consejo/opinion: Personalmente no me gusta usar las herramintas en
tareas para las cuales no fueron diseñadas (no usas un destornillador
para martillar). Y en este caso, iptables se diseño para filtar IPs.
Si quieres firltrar por nombres (o filtar y realizar alguna acción
posterior), lo mejor es usar la herramienta que fue diseñada para eso.

Saludos.
Ademas, tengo hecho un prerouting para el mismo puerto pero para otra
maquina interna, con distinto origen.
Gracias por responder
--
Pablo Gentilel
Sistemas
Royal Technologies Mercosur
0221-4915400 Int.231
0221-155373977
--
http://boris.insert-coin.org
AADB 52A9 8C6B 1C73 D0C4  570E 952C 2DC1 D1D0 A4E7
gpg --keyserver pgp.mit.edu --recv-key D1D0A4E7
Alejandro Vargas
2011-01-13 12:48:30 UTC
Permalink
El día 11 de enero de 2011 18:39, Pablo Gentilel
<***@royalmercosur.com> escribió:

Iptables utiliza direcciones IP. Bueno, de hecho TODO utiliza
direcciones IP. Los nombres son sólo una ayuda para que los humanos
los recordemos más fáciles pero no sirven absolutamente para nada
hasta que se convierten en IPs mediante un DNS.
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.
Si querés usar iptables vas a tener que proporiconar las IPs, ya sea
una por una o con una máscara para abarcar muchas. Si es necesario
podés hacer un script que use host o nslookup para obtener las ips.
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.
Eso lo podés solucionar con un script que obtenga las ips y cree las
reglas de iptables. Sencillamente, las tablas de ruteo contienen
números, no palabras. Por lo tanto es imposible meter nombres.
fender
2011-01-25 12:57:16 UTC
Permalink
Pablo,
Post by Boris Quiroz
El día 11 de enero de 2011 13:55, Pablo Gentilel
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.

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
 */
JuanJo
2011-01-26 18:59:20 UTC
Permalink
Post by fender
Pablo,
Post by Boris Quiroz
El día 11 de enero de 2011 13:55, Pablo Gentilel
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 ;)
Post by fender
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
Loading...