Inicio > OpenBsd > instalar asterisk en openbsd

instalar asterisk en openbsd

Asterisk fue creada en 1999 por Mark Spencer de la empresa Digium y donada a la comunidad con licencia libre tras lo cual se han recibido muchas colaboraciones y mejoras por parte de muchos desarrolladores libres y empresas sin solicitar nada a cambio.
Poco a poco, esta aplicación se ha convertido en la evolución de las tradicionales centralitas analógicas y digitales permitiendo también integración con la tecnología más actual: VoIP.Asterisk se convierte así en el mejor, más completo, avanzado y económico sistema de comunicaciones existente en la actualidad.
Otro aliciente es su capacidad de ser programada, permitiendo realizar labores que hasta el día de hoy lo llevaban realizando sistemas extremadamente costosos y complicados y, gracias a Asterisk, esta misma labor se realiza de una forma más económica lo que fomenta el uso de sistemas libres como BSD y estándares abiertos como SIP, H323 o IAX.
Una de las ventajas más interesantes es su posibilidad como sistema híbrido, ya que permite gestionar comunicaciones telefónicas tradicionales (analógicas, digitales, móviles, …) como comunicaciones IP mediante el uso de los protocolos estandar de VoIP.

OpenBSD es uno de los sistemas mas confiables en lo que respecta a la seguridad de la información, es por ello que una solución en vo/ip como asterisk fue integrada en el árbol de ports desde la versión 1.0.9 de asterisk

Instalación de Asterisk

Lo primero que tenemos que hacer es exportar el repositorio de openbsd
# export PKG_PATH=ftp://ftp.nara.wide.ad.jp/pub/OpenBSD/4.9/packages/i386/
El siguiente paso es descargar los paquetes necesarios para el funcionamiento de asterisk
los cuales son
# pkg_add -i asterisk
Luego instalamos paquetes necestarios para el funcionamiento de asterisk este paquete contiene todos los temas de liberación de openbsd para ser utilizados, como música en espera.
# pkg_add -v asterisk-openbsd-moh-4.6.tgz
Estos paquetes añaden mejores sonidos adicionales a su PBX.
# pkg_add -v asterisk-native-sounds-1.2p0.tgz
# pkg_add -v asterisk-sounds-1.2.1p3.tgz
Este paquete es necesario para las realizar conferencias en asterisk
# pkg_add -v appkonference-1.2.tgz

Despues de la instalación verificamos que este instalado correctamente.
# pkg_info | grep asterisk

Ejemplo de configuración de asterisk

Lo siguiente que aremos des pues de la instalación de asterisk es la configuración de dos clientes en openbsd al igual que en otros linux los archivos de configuración de asterisk se encuentran en “/etc/asterisk” y los archivos que configuraremos sera el sip.conf en el cual configuraremos los usuarios, para el ejemplo serán 2 usuarios el 100 y el 1001 que son los de ejemplo de configuración, y en el asterisk.conf configuraremos las opciones de marcado.

# cat /etc/asterisk/sip.conf
[general]
port=5060 ;puerto de escucha
bindaddr=0.0.0.0
context=Internal
language=es
disallow=all
allow=ulaw
; Phone #1
[100] ; Definimos el numero de la extension.
type=friend
user=100 ;Nombre del usuario de esa extensión.
secret=123456 ;Password de ingreso del usuario.
nat=no
host=dynamic ;Tipo de cliente.
canreinvite=no ;Definir si ahi nateo entre el servidor y el cliente
qualify=yes
mailbox=100
allow=ulaw
allow=gsm
allow=ulaw
context=Internal

; Phone #2
[101]
type=friend
user=101
secret=654321
nat=no
host=dynamic
canreinvite=no
qualify=yes
mailbox=100
allow=ulaw
allow=gsm
allow=ulaw
context=Internal
#

Luego configuramos al final del archivo asterisk.conf las políticas de marcado

# tail -n 11 extconfig.conf
static=yes
writeprotect=no
[default]
exten=>_.,1,Congestion
[Internal]
exten => 100,1,Dial(SIP/100)
exten => 101,1,Dial(SIP/101)

Configuramos packet filter para que permita la entrada de paquetes que llegan por los puertos de escucha de asterisk tanto udp como tcp

Por defecto el archivo para escribir las reglas de PF es /etc/pf.conf, podría ser cualquier otro, y el binario para interactuar con este sistema es pfctl. El archivo de configuración de reglas en una instalación estándar suele traer algunas lineas de ayuda, sin embargo la mejor referencia para aprender y para conocer a fondo PF es la pagina FAQ oficial del proyecto OpenBSD. En este documento haremos algunas referencias rápidas a la configuración de PF pero recuerde que si quiere conocer todo lo que PF es capaz de hacer debe ir al enlace oficial.
Antes de empezar con la configuración de las reglas de filtrado
algunas cosas de como funciona PF
Para habilitar y deshabilitar el sistema PF use:
pfctl -d # para deshabilitar
pfctl -e # para habilitar
Para listar las reglas que estan cargadas:
pftcl -sr #listar las reglas de filtrado
pfctl -sn #listar las reglas NAT
para cargar las reglas de filtrado y traducción NAT:
pfctl -f /etc/pf.conf #cargar las reglas desde el archivo /etc/pf.conf
Una de las cosas mas importantes antes de empezar con PF es conocer como se aplican las reglas de filtrado. En PF las reglas se evalúan según su orden de entrada, es decir, primero se evalúa la primera regla, después se evalúa la segunda y así hasta terminar con la ultima regla. Miremos un ejemplo:

# cat /etc/pf.conf | grep -v ^# set skip on lo
pass # to establish keep-state
pass in all
ext=em0
voip_tcp= 5060
voip_udp= “{ 5060, 4569, 5036, 9999 ><20001, 2727 }”
pass in quick log on $ext inet proto tcp from any to port $voip_tcp flags S/SA keep state
pass in quick log on $ext inet proto udp from any to port $voip_udp keep state
block in all
#

Hacemos las pruebas con los dos usuarios que acabamos de crear para el ejemplo se instalo un sotphone en Linux y otro en una maquina virtualizada con windows los dos corren con el sofphone Sjphone no mostrare como configurarlos ya que es muy sencillo y no quiero hacer muy largo el documento, acá están las pruebas que realice.

En el pantallazo se muestra el windows haciendo una llamada la exención 100 y en rojo se observamos que la llamada esta entrando satisfactoria mente una vez que le damos aceptar podemos
empezar hablar de forma correcta.

En este pantallazo se observa que la llamada a sido establecida

Lo siguiente que aremos sera  configurar el archivo rc.local para que asterisk inicie automáticamente cada vez que se reinicie el sistema, agregamos las siguientes lineas  al final del archivo.


# tail -n 5 /etc/rc.local
#inicio asterisk
if [ -x /usr/local/sbin/asterisk ]; then
echo -n “asterisk”; /usr/local/sbin/asterisk
fi

Seguridad  en los archivos de asterisk

Esta configuración es opcional, OpenBSD ofrece la posibilidad de bloquear los permisos de ciertos archivos y evitar que estos sean modificados incluso por el usuario root estos cambios son buenos ya que si un intruso logra vulnerar nuestro sistema y quiere infectarnos con un back-door o un spyware o modificar los logs no seria capas.


#cat /etc/rc.securelevel
# Append mode on Asterisk log files
chflags sappnd /var/log/asterisk/cdr-csv/Master.csv
chflags sappnd /var/log/asterisk/messages
chflags sappnd /var/log/asterisk/event_log
chflags sappnd /var/log/asterisk/queue_log
# Block changes to the Asterisk main executable file
chflags schg /usr/local/sbin/asterisk
# Block changes to Asterisk configuration files, voice prompts and it’s modules
chflags -R schg /etc/asterisk
chflags -R schg /usr/local/share/asterisk
chflags -R schg /usr/local/lib/asterisk/modules

Conclusiones

Asterisk es uno de los servicios voip mas utilizados actualmente en el mundo y openbsd uno de los sistemas mas confiables asi que si queremos una central telefónica segura y es uno de los aspectos a evaluar a la otra de instalar estos servicios ya que openbsd desalienta a muchos atacantes.

Anuncios
Categorías:OpenBsd
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: