Post by fenderPablo,
Post by Boris QuirozEl 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 fenderSaludos.
--
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