2005/03/14 Archivos

lunes 14/03/2005 10:53:53

Videoconferencia en Linux

Efectivamente: después de muchos años usando GNU/Linux, ahora se me ocurre probar la videoconferencia. No era algo que me produjese demasiado interés, ya que no tenía con quien conversar. Creo que la utilidad viene cuando tienes amigos o familiares con tarifa plana y que estén conectados muchas horas al día. Si ésto es así, este método de comunicación es genial.

Mi segundo recelo fue: ¿será compatible GnomeMeeting con m$-netm3eting? Lamentablemente, soy el único linuxero (aunque sea de pastel) de la familia. Pues bien, me puse a la obra.

En un principio instalé la versión 1.00 que Gentoo me ofreció como estable, pero lejos de ser estable, cuando conectaba con GnomeMeeting 1.0.2 me daba un coredump magnífico ;) , así que decidí instalarme algo más avanzado (digamos la 1.0.2), y ahí empezó mi pesadilla.

No sé a quién echar la culpa (creo que a mí mismo, por iluso) pero, ¿por qué narices se dice que una aplicación compila con una versión igual o superior de las librerías tal y cual si es imposible (y seguro que improbable) que lo haga con versiones superiores? Pues ahí está el problema. después de pegarme con librerías que no compilan, fallos de dependencias y demás (varias horas de compilación), me rindo a la evidencia: debo compilar GnomeMeeting exactamente con las versiones de librerías que me sugiere, no el famoso emerge, si no los propios ebuilds otra cosa no funciona.

Claro que aquí no terminan los problemas, ahora viene el bueno: abrir los puertos en el firewall (iptables) para que todo funcione. Después de sufrir desconexiones porque no había intercambio alguno de paquetes (ni de audio ni de vídeo), caigo en la cuenta: el protocolo usa UDP para envío y recepción, así que hay que abrir puertos UDP para transmisión y puertos TCP para inicio y finalización de la comunicación. Ahí no acaba la cosa: m$-netm3eting usa puertos diferentes de los de GnomeMeeting y además hay que abrir el regreso de LDAP para poder conectarse en el servidor de directorio de GnomeMeeting (ILS en Seconix). A ver, detallo las reglas:

##############
# Gnomemeeting
# 
# Devolución de la conexión: solo puertos altos y que tengan ya conexión saliente
-A INPUT -p tcp -m tcp --sport 1720 --dport 1024: -m state --state ESTABLISHED -j ACCEPT
# Intercambio de paquetes de A/V: bonito rango
-A INPUT -p udp -m udp --sport 1024: --dport 5000:5005 -j ACCEPT


############ # m$-netm3eting # # Este va por libre -A INPUT -p tcp -m tcp --sport 1024: --dport 1503 -j ACCEPT # Probablemente sirva la vuelta del anterior, pero no me fío -A INPUT -p tcp -m tcp --sport 1024: --dport 30000:30005 -j ACCEPT # LDAP (ILS para Gnomemeeting): solo vuelta -A INPUT -p tcp -m tcp --sport ldap --dport 1024: -m state --state ESTABLISHED -j ACCEPT


Por supuesto, la salida se supone que está totalmente autorizada. Para la investigación de qué puertos se usan en la comunicación, os transmito un truco que aprendí de alguien el la red (lo siento, no recuerdo el nombre). Consiste en añadir una regla justo antes de la última, la que tira todos los paquetes (la de DROP) que registre todos los paquetes. Esta la mantendremos mientras hagamos pruebas solamente. Supongamos que la máquina con la que estás probando es la 124.23.39.71; entonces, si la regla DROP es la número 35, la regla de registro de paquetes sería:

$ iptables -I INPUT 35 -p all -s 128.23.39.71 -j LOG


Entonces, ejecuta un tail -f /var/log/messages y empieza a probar. Empezará a cantar el jilguero, así que apunta los puertos de origen (SPT) y de destino (DPT) de las entradas y saca tus conclusiones.

Otras órdenes útiles: para listar las reglas con número de regla (muy útil para eliminar reglas y para insertar reglas antes de las existentes)

$ iptables -nL --line-numbers | more


Así, por ejemplo, para eliminar la regla 24 a partir de la información anterior por número (si lo haces por el contenido de la regla es más lioso):

$ iptables -D INPUT 24


Ahora sí puedo hacer videoconferencia, o al menos audioconferencia con quien no tenga una cámara, manteniendo el cortafuegos bien configurado. De todos modos mira en SanGoogle, ya que yo he sido muy cabezón y he querido probarlo por mí mismo, pero más o menos esas son las reglas.

¡Mucha suerte! :)

Publicado por Roberto Aragón | Enlace permanente | Categorías: GNU/Linux