lunes, 27 de junio de 2011

Actualización de Iphones, Ipods a través de Dansguardian

Hola, esta vez voy ha tratar algo que me aconteció en el trabajo y es que todo el mundo me acusaba al creer que yo les estaba bloqueando el acceso para la actualización de iphones ipads, ipods etc, a través del itunes, es por ello que les comparto esto.

En la empresa donde trabajo tengo como filtrado de contenidos a Dansguardian, y aunque considero que está bien afinada la restricción de sitios no deseados resulta que mis usuarios quienes salen al internet a través de este filtro no podían actualizar sus iphones ni ipads, ipods etc, y el problema básicamente es porque las direcciones a donde se conecta el itunes para su sincronización el Dansguardian lo califica como mal formada.

Como funciona esto?

Simple, cuando un usuario que tiene un iphone o cualquiera de los dispositivos mencionados y quiere actualizar alguna de sus aplicaciones o simplemente el sistema operativo este lo hace a través de una aplicación que se llama itunes, al escojer buscar actualizaciones salía un mensaje "No se ha podido contactar con el servidor de actualizaciones de software del Iphone", en primera instancia pensé que además de ello necesitaba la apertura de un puerto adicional y efectivamente la conexión que hace itunes hacia los sitios de apple es a través de 443 TCP (https) pero aun así el problema percistía, entonces investigando un poco encontré que el problema estaba en dansguardian, actualmente yo trabajo con la version 2.9.9.4 sin embargo al querer hacer las actualizaciones de sistema operativo de un iphone a través de tcpdump pude ver que en el proceso de actualización que realiza el itunes este se conecta a las siguientes direcciones:

- ax.init.itunes.apple.com.
- itunes.apple.com.
- ax.phobos.apple.com.edgesuite.net.

El problema de estas direcciones es que todas terminan en punto, entonces es por ello que dansguardian lo bloquea porque sostiene que al finalizar con un punto el url entonces es una dirección mal formada y no lo deja pasar pese a que las había puesto como excepciones pero ni así funcionaba.

Solución:

Lo que hice fué sacar a estas direcciones de dansguardian, es decir los redireccioné directamente hacia el puerto 80 como es esto?

Se supone que si tenemos corriendo dansguardian en nuestro servidor linux este escucha en el puerto 8080 entonces seguro tenemos una regla como esta para re dirigir el tráfico hacia el dansguardian.

(Tomando en cuenta que eth1 es mi red interna)
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

Para re direccionar el tráfico de las direcciones antes mencionadas e indicar que no deseo que pasen por dansguardian si no mas bien que directo pasen por el puerto 80 hice lo siguiente:

$ nslookup ax.init.itunes.apple.com
Name: a771.da1.akamai.net
Address: 208.44.23.128
Name: a771.da1.akamai.net
Address: 208.44.23.104

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -d 208.44.23.128/32 -j ACCEPT

Lo mismo toca hacer para las otras direcciones mencionadas, una cosa adicional recuerden que iptables es secuencial entonces estas reglas deben estar antes de la re dirección hacia dansguardian.

La otra opción que podrían hacer es actualizar la versión de dansguardian, según dice ya se soluciona este bug.
Bueno espero que les haya servido nos vemos en el siguiente post.
Saludos,