You are here

Mantenimiento de Asterisk en Debian

Para instalar Asterisk en Debian GNU/Linux debemos contemplar seriamente la opción de bajarnos el código fuente del sitio web de Digium y compilarlo. La verdad es que es una tarea sumamente sencilla aunque un poco más costosa (me refiero al tiempo de compilación) pero es la única que creo viable.

Si bien es cierto que Debian tiene un fantástico gestor de paquetes (dpkg) y muy buenas herramientas como apt-get, aptitude o synaptic para agregar o eliminar paquetes de la distribución de forma muy limpia, debemos considerar que estamos a la merced de los mantenedores del paquete en Debian (hay que reconocer que hacen un fantástico trabajo) pero en el mundillo del software libre es interesante estar siempre "a la última".

Por lo general cada nueva versión aporta correcciones a fallos (algunos de ellos de carácter grave) además de mejoras.

Actualmente para instalar un servidor Asterisk usando Debian tenemos la opción de usar Etch (stable) e incluso para los más atrevidos Lenny (testing). Aunque hay que reconocer que si vamos a poner el servidor en producción probablemente la primera opción es la más aconsejable. De todos modos, aunque no se aconseja existe la posibilidad de instalar paquetes "testing" en la "stable".

Si observamos la paquetería Asterisk de Debian Etch podemos obervar que actualmente están en la versión 1.2.13 mientras que la versión de Asterisk disponible en el FTP de Digium es la 1.2.29

En resumen si instalamos Asterisk desde el repositorio tendremos un servidor con:

  • Vulnerabilidades graves de denegación de servicio el canal SIP explotables remotamente cuando estamos en modo pedantic. (AST-2008-008) solucionado en la release 1.2.29
  • Posibilidad de ataques remotos en canales IAX2 que permiten llamadas no autenticadas. (AST-2008-006) solucionado en la release 1.2.28
  • Permitiremos a un atacante eludir la autenticación SIP y hacer una llamada en un contexto especificado. (AST-2008-003) solucionado en la release 1.2.27
  • Problemas en la base de datos puede permitir que se ignore la autenticación basada en host. (AST-2007-027) solucionado en la release 1.2.26
  • Posibilidad de inyección SQL en cdr_pgsql. (AST-2007-026) solucionado en la release 1.2.25
  • Asterisk 1.2.24, esta es la última release que soluciona bugs "normales" a partir de aquí solo se solucionan problemas de seguridad.
  • Hasta llegar a la release 1.2.13 pasaremos por un desbordamiento de buffer (AST-2007-024), ataques remotos en el canal Skinny (AST-2007-016), denegación de servicio en canales IAX2 (AST-2007-015), [...]

Como podemos comprobar el detalle sobre estas vulnerabilidades está a disposición de todo aquel que lo desee. La verdad es que viendo la lista instalar Asterisk desde el repositorio de Etch para un servidor en producción es casi una insensatez un tanto peligroso y debemos comprobar los repositorios que añadimos a nuestro sources.list

Actualización: (Gracias a Iker por el aviso) Así que vamos a dar un repaso a como se realiza el mantenimiento de software en Debian GNU/Linux (a nivel general, no tan solo a lo que Asterisk se refiere). Cuando se lanza una nueva "release" esta queda congelada con todos sus paquetes de software, en este caso, en Etch no entrarán nuevas versiones pero el equipo de mantainers de Debian (Debian VoIP Team, Mark Purcell, Kilian Krause, Jose Carlos Garcia Sogo, Santiago Garcia Mantinan, Simon Richter, Tzafrir Cohen y Faidon Liambotis en el caso de Asterisk) SÍ realizan y aplican parches de seguridad sobre la versión congelada (en este caso Asterisk 1.2.13) realizando una gran labor por mantener la seguridad. Así que a pesar de que no dispondremos de las nuevas funcionalidades, si queremos instalar Asterisk desde los repositorios y evitar los problemas de seguridad debemos comprobar que tenemos disponible la rama (http://security.debian.org) que es donde van todos los parches de seguridad en Debian GNU/Linux, ya que en caso contrario no obtendríamos actualizaciones de seguridad y eso si que sería una insensatez! Así que todo depende de nosotros.

Para evitarnos problemas vamos a comprobar que disponemos de las siguientes líneas (en el caso de Etch) y obtenemos actualizaciones de seguridad:

deb http://security.debian.org/ etch/updates main contrib non-free

Si optamos por la opción de usar los repositorios de Lenny tendremos la opción de usar Asterisk 1.4.20 mientras que actualmente podremos encontrar la release 1.4.21.1 en el FTP de Digium. En este caso no estaremos expuestos a todas estas vulnerabilidades pero nos perderemos la solución a varios bugs que tuvo lugar en la release 1.4.21 cabe decir que los bugs que se solucionaron en la versión 1.4.21.1 fueron introducidos en la releas 1.4.21 por tanto usar los paquetes de testing podríamos decir que no es tan crítico.

Lo mismo nos sucederá con otros paquetes como addons, zaptel, ...

En definitiva escojamos la opción que queramos pero siempre será mejor ir a buscar la última release en el FTP de Digium y usar wget, tar, y luego un ./configure && make && make install (siempre que tengamos las dependencias instaladas) y estar atentos a las nuevas actualizaciones.

Después de explicar (en mi humilde opinión) lo que debería ser una instalación de Asterisk, creo que debería aportar mi pequeño granito de arena al proyecto Debian. La verdad es que pensaré en ello. Wink

Debian: 
Asterisk: 
Qué te parece: 

Comments

Hacerte tus propios debs actualizados no es muy complicado partiendo de los paquetes que vienen en debian o ubuntu y así puedes mantener el sistema "limpio" de cosas feas como las que hace "make install".

Estoy de acuerdo contigo en que ahora mismo los paquetes que están en los repositorios no son versiones que sean adecuadas para ningún sistema en producción, pero también es verdad que si se tratan de 80 o 100 redes no puedes permitirte el lujo de compilar en cada una de ellas, puesto que debes intentar hacer despliegues de cada versión de forma controlada y en todos los clientes....

En mi caso me encuentro en este caso, por lo que los paquetes debs nos son imprescindibles para poder controlar el despliegue las dependecias, etc... eso si, como no disponemos de paquetes muy actualizados y además usamos el código algo parcheado, lo que hacemos es tener nuestros propios repositorios con paquetes debs hechos por nosotros...

Al principio es algo más cansado que compilar en el cliente final, pero cuando quieres reparar algo o cambiar de versión de forma masiva, el crear un deb que te permite controlar que versión está en cada cliente y cambiar de versión en segundos....

 

Lo comento como granito de arena, puesto que he visto que en la comunidad asterisk todos están muy aconstumbrados a compilar en cada cliente y me parece que es tan útil como pueda paracer en un principio.

Saludos

 

Hace algún tiempo creé un proyecto muy sencillo llamado debmaker que permitía crear un paquete deb tan sencillo que podría hacerlo hasta un usuario novato de windows. O:)

Sabiendo qué archivos hacen falta y dónde se encuentran te puedes crear un paquete deb que puedes instalar en cualquier usuario.

Yo prefiero compilar a mano y así poder ver que todo se hace corréctamente y sin mensajes "extraños", pero creo recordar que las últimas versiones iban a permitir compilar como paquete deb (de la misma forma que lo hace el kernel de linux).

Buenas bytecoders,

Primero felicitaros por el excelente blog que teneis sobre Asterisk, es de lo mejorcito en la blogsfera, poco copy&paste y mucha creación propia! Da gusto leeros :-D

Lo segundo un gran tirón de orejas :-'(. La razón es que o bien no conoceis a fondo el sistema de paquetes de Debian o bien se os ha escapado un tema muy importante. En vuesto artículo decís que:

Como podemos comprobar el detalle sobre estas vulnerabilidades está a disposición de todo aquel que lo desee. La verdad es que viendo la lista instalar Asterisk desde el repositorio de Etch para un servidor en producción es casi una insensatez.

Lo que podría ser una insensatez es no tener la rama security de Debian (http://security.debian.org). Los mantenedores de Asterisk de Debian Etch no actualizarán la versión de Asterisk, ya que está congelada y en Etch no entrarán nuevas versiones, pero SI realizarán y aplicarán parches de seguridad sobre esa versión congelada (1.2.13).

De hecho en el archivo

/usr/share/doc/asterisk/changelog.Debian.gz

lo indica con bastante precisión (no lo muestro aquí para no hacer el comentario excesivamente largo)

asterisk (1:1.2.13~dfsg-2etch4) stable-security; urgency=high

* New upstream bugfix release: AST-2008-006 / CVE-2008-1897
(Closes: #477472).

 -- Tzafrir Cohen <tzafrir.cohen@xorcom.com>  Wed, 23 Apr 2008 10:42:58 +0300

+-- 12 líneas: asterisk (1:1.2.13~dfsg-2etch3) stable-security; urgency=high -- Faidon Liambotis  -------------------------------------------------------------------------------
+--  7 líneas: asterisk (1:1.2.13~dfsg-2etch2) stable-security; urgency=high -- Faidon Liambotis  -------------------------------------------------------------------------------
+-- 35 líneas: asterisk (1:1.2.13~dfsg-2etch1) stable-security; urgency=high -- Faidon Liambotis  -------------------------------------------------------------------------------

Y podrás ver como corrigen todos los bugs que indicas, excepto uno (AST-2008-008), que es el más reciente y que imagino que en breve lo corregirán.

Si que os pediría que, por favor, rectificaseis el post y no pusieseis en duda la seguridad en Debian GNU/LInux (eso es hacernos un flaco favor a nosotros mismos). Se que supone destripar el post, pero creo que una afirmación tan grave y errónea lo merece :-D

un saludo y lo dicho, enhorabuena por el blog!

Hola Iker,

primero de todo agradecer tu tiempo, y por dar el aviso. Cierto, se me había pasado buscar en los repositorios (http://security.debian.org), tal vez el fallo principal es que debería haber probado a instalarlo antes de escribir el artículo (algo que no suelo hacer y mejor no repetirlo). Embarassed

Referente a la gravedad de las afirmaciones, ciertamente me parece muy grave (de hecho ya me pareció extraño al escribir el artículo que se usara una versión de Asterisk tan antigua).

También comentas que así destripamos el post, la verdad es que antes prefiero eso que desinformar. Así que ahora solo queda pensar como voy a rectificar el post para el próximo que venga, es lo mínimo ya que lamentablemente tal vez habrá gente que ya lo ha leído y ciertamente es un flaco favor a Debian GNU/Linux y a toda la comunidad.

Saludos, y me alegro que te guste el blog. Se hace todo lo que se puede, pero que te voy a decir (a veces la pifiamos). Embarassed

PD: En estos momentos se da cuenta uno de la importancia de tener los comentarios en el blog.

Wink