Tutorial de OPENIMSCORE 2: Instalando open ims en forma exitosa en un servidor trixbox (linux centos5)

Ahora vamos a instalar el proyecto open-ims en un servidor trixbox, el cual usamos para testear asterisk 1.4 y la interfaz web del trixbox. Ya lo hemos hecho en un servidor con debian.
Ahora en este sistema linux vamos a instalar open-ims para probar como funciona esto en un sistema heredero de la linea del fedora y redhat.

1.- Instalar ssh y vim: (muy util para trabajar remoto y modificar los archivos)

yum install openssh-server
/etc/init.d/sshd start

yum install vim-enhanced

2.- Obtener subversion:

yum install subversion

3.- Obtener y configurar bind (DNS):

yum -y install bind bind-libs caching-nameserver bind-chroot

chkconfig named on

service named start

Ahora debemos configurar los archivos siguientes:

4.- Instalando flex y bison:

yum -y install flex bison

5.- Instalacion de ant:

No es recomendable instalarlo via yum, ya que no funciona bien.

Download apache-ant-1.7.0-bin.tar.gz

cd /usr/local/

wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.0-bin.tar.gz

tar -zxf apache-ant-1.7.0-bin.tar.gz

mv apache-ant-1.7.0 ant

ANT_HOME=”/usr/local/ant”
PATH=”$PATH:/usr/local/ant/bin”
export ANT_HOME
export PATH

Verificar:

ant -java
ant y la resp debe ser no consigue build.xml
which ant

6.- Instalacion de java (jdk):

http://java.sun.com/javase/downloads/index_jdk5.jsp

Bajarse la version de jdk

Y descargamos esta versión para Linux en binario:
jdk-1_5_0_04-linux-i586.bin

Lo copiamos dentro de Linux en /tmp/

Damos permisos de ejecución:
chmod +x jdk-1_5_0_04-linux-i586.bin

Instalación
./jdk-1_5_0_04-linux-i586.bin

Al mostrar la licencia solo tendremos que aceptar algunos términos de uso del jdk.

Se crea toda un estructura de nombre jdk1.5.0_04 la cual podemos moverla donde queremos que este.
mv jdk1.5.0_04/ /usr/local/jdk1.5

Configuración de variables de entorno:
Agregar las variables de entorno dentro del archivo /etc/profile:
export JAVA_HOME=/usr/local/jdk1.5
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin

7.- Instalar libxml2-devel

yum install libxml2-devel

8.- Instalar y configurar mysql:

Trixbox viene con mysql instalado, asi que este paso no es necesario.
La clave por default es: passw0rd

Es recomendable cambiarla con este procedimiento:

yum install mysql
yum install mysql-devel (to install development libraries, For Debian, Knoppix, Buildix user apt-get install libmysqlclient15-dev)

9.- Configurar las bases de datos:

Debemos colocarnos en el directorio /opt/OpenIMSCore/:

# mysql -uroot -p < /opt/OpenIMSCore/ser_ims/cfg/icscf.sql
# mysql -uroot -p < /opt/OpenIMSCore/FHoSS/scripts/hss_db.sql
# mysql -uroot -p < /opt/OpenIMSCore/FHoSS/scripts/userdata.sql

10.- Compilando el proyecto:

Crear los directorios CSCFs y FHoSS:

cd /opt/OpenIMSCore
mkdir ser_ims
mkdir FHoSS

svn checkout http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/trunk ser_ims

svn checkout http://svn.berlios.de/svnroot/repos/openimscore/FHoSS/trunk FHoSS

En /opt/OpenIMSCore/ser_ims

make install-libs all

Setear las variables de entorno de java:

export JAVA_HOME=/usr/local/jdk1.5

Compilar el FHoSS en /opt/OpenIMSCore/FHoSS

ant compile deploy

Una vez que esta compilado en proyecto debemos copiar los siguientes archivos al directorio de trabajo /opt/OpenIMSCore/ por cuestiones de comodidad mas que necesidad:

cp /opt/OpenIMSCore/ser_ims/cfg/* /opt/OpenIMSCore/


11.- Poner direccion IP publica y dominio propio

Podemos setear nuestro propio dominio de tres formas:

  • Tenemos un dominio por el cual pagamos
  • Configuramos nuestro DNS server (bind) para que haga la traduccion, en ese caso solo tenemos que configurar en la configuracion TCP/IP de todos los clientes que se quieran conectar a nuestra red que usen nuestro DNS, eso no interfiere con su navegacion normal ya que tendremos el cuidado de configurar correcatmente las opciones de conectarse a otros DNS publicos a traves del nuestro.
  • Usar un servicio gratuito de DNS tal como no-ip o algun otro servicio gratuito de traduccion
  • Si no queremos enredarnos la vida con DNS, entramos en el archivo host de los clientes y agregamos la linea que haga la traduccion.


Hay que cambiar un monton de cosas en los archivos de configuraciòn, pero es facil usando el script:

./configurator.sh

Esta ubicado en /opt/OpenIMSCore/

Este script cambia la IP por default (127.0.0.1) por la IP que quieran poner, tambien pregunta para cambiar el dominio open-ims.test por cualquier otro. Cambia los archivos .cfg, .xml y .properties

12.- Modificar archivo hss.properties para poder conectar via web con IP publica

Este archivo esta ubicado en: /opt/OpenIMSCore/FHoSS/deploy. Este archivo no lo modifica el script anterior asi que debemos hacerlo a mano.
Aqui debemos abrir el archivo en cuestion y cambiarle la IP por default (127.0.0.1) por la IP
publica del servidor.

Para conectar a la pagina web del HSS y poder ver usuarios, agregar usuarios y modificar servicios ponemos en cualquier navegador:

IP del servidor HSS:8080

Claves por default:

Clave administrador: hssAdmin
Pwd: hss

Clave usuario solo lectura: hss
Pwd: hss

13.- Arranque del sistema

El sistema arranca desde cuatro shell serparados en este orden, en modo root, en el directorio /opt/OpenIMSCore/ y se deben ejecutar los siguientes scripts: pcscf.sh, icscf.sh, scscf.sh (es recomendable respetar el orden). Estos script arrojan algunos errores en el proceso de arranque por que es imposible tener los tres levantados al mismo tiempo, pero luego que el sistema esta arriba no hay problema (no es mayor motivo de alarma).

Por ultimo en el directorio /opt/OpenIMSCore/FHoSS/deploy/ el script: startup.sh

Para simplificar el trabajo podemos hacer un script como el que vemos aqui:

#!/bin/bash
sleep 1
gnome-terminal -e ./icscf.sh
sleep 1
gnome-terminal -e ./scscf.sh
sleep 1
gnome-terminal -e ./pcscf.sh
sleep 1
gnome-terminal -e ./fhoss.sh

La ultima linea arranca el FHoSS.

Anexo

Configuracion de un servidor DNS en centos

BIND:

Usando yum para instalar bind:

yum -y install bind bind-libs caching-nameserver bind-chroot

chkconfig named on

service named start

Ahora editamos el fichero /var/named/chroot/etc/named.conf para añadir los reenviadores (servidores DNS externos, por ejemplo los de opendns.com), se agregan dentro de la sección options:

forwarders {
IP1 del DNS que usemos;
IP2 del DNS que usemos;
};

OJO: se debe borrar todo lo demas, solo dejar las lineas anteriores. Este archivo al modificarlo y resetear el servicio bind se actualiza el otro ubicado en /etc/chrootg…..-nameserver.conf
Estos DNS son los de nuestro ISP o los de openDNS

Por último, editamos el fichero /etc/resolv.conf para decirle a la máquina que se consulte a sí misma y lo dejamos así:

search localdomain
nameserver 127.0.0.1

A todas las maquinas cliente le debemos editar el archivo resolv.conf si queremos que consulte a nuestro propio DNS.

Para configurar la zona:

If you have installed the bind-chroot package, the BIND service will run in the /var/named/chroot environment. All configuration files will be moved there. As such, named.conf will be located in /var/named/chroot/etc/named.conf, and so on.

If you have installed the caching-nameserver package, the default configuration file is /etc/named.caching-nameserver.conf. To override this default configuration, you can create your own custom configuration file in /etc/named.conf. BIND will use the /etc/named.conf custom file instead of the default configuration file after you restart.

Nameserver Types

There are four primary nameserver configuration types:

master

Stores original and authoritative zone records for a namespace, and answers queries about the namespace from other nameservers.

slave

Answers queries from other nameservers concerning namespaces for which it is considered an authority. However, slave nameservers get their namespace information from master nameservers.

caching-only

Offers name-to-IP resolution services, but is not authoritative for any zones. Answers for all resolutions are cached in memory for a fixed period of time, which is specified by the retrieved zone record.

forwarding

Forwards requests to a specific list of nameservers for name resolution. If none of the specified nameservers can perform the resolution, the resolution fails.

A nameserver may be one or more of these types. For example, a nameserver can be a master for some zones, a slave for others, and only offer forwarding resolutions for others.

zone "example.com" {   
        type slave;   
        file "example.com.zone";   
        masters { 192.168.0.1; }; 
};


Reiniciamos el servicio de DNS:

service named restart

Otra forma:

En primer lugar tendremos que instalar varios paquetes:

caching-nameserver-x.y.z
bind-utils-xx.xx-x
bind-xx.xx-x

Montamos el cd con la distribución en /mnt/cdrom:

mount /mnt/cdrom

e instalamos estos paquetes:

rpm -Uvh /mnt/cdrom/rutaacceso/bind-xx.xx-x
rpm -Uvh /mnt/cdrom/rutaacceso/caching-nameserver-x.y.z
rpm -Uvh /mnt/cdrom/rutaacceso/bind-utils-xx.xx-x

O bien utilizando apt-get, yum o el sistema de instalación de tu distribución.

yum -y install bind bind-libs caching-nameserver bind-chroot

El paquete bind contiene todo el sistema de resolución de nombres. El paquete caching-nameserver contiene los datos necesarios para que nuestro servidor DNS sea un servidor válido para internet, va a actuar como servidor DNS para toda la red local. Por último el paquete bind-utils contiene varias utilidades para consultas y actualizaciones dinámicas.

/etc/named.conf

El fichero named.conf contiene todos los dominios que va a albergar nuestro servidor DNS. Si el sistema está recién instalado deberá contener, entre otras cosas:

options {

directory “/var/named”;

};

Indica que el resto de ficheros de configuración se encuentran en el directorio /var/named

zone "." {
  type hint;
  file "root.cache";
};

Este trozo de configuración indica al sistema de nombres de dominio que consulte a los servidores raíz de internet para resolver cualquier nombre que no sea local. De esta forma nuestro servidor actúa como servidor de internet.

Ahora vamos a configurar nuestra zona:

zone "centro.ies" in {
  type master;
  file "centro.ies";
  allow-update{
    127.0.0.1;
    192.168.1.1;
  };
};

Zone indica el nombre del dominio que estamos configurando, el resto son sus detalles. Type master indica que es el servidor principal de la zona. Si fuera un servidor secundario tendríamos que poner “type slave”.

La línea file indica qué fichero contiene los datos de la zona. Este fichero se debe encontrar en el directorio /var/named.

Por último, allow-update indica desde qué equipos se pueden realizar actualizaciones dinámicas, en nuestro caso sólo el mismo puede realizarlas. Si fuera un servidor secundario tendremos que poner la dirección del servidor principal.

En estos ficheros tendremos que poner direcciones IP y no nombres porque el sistema de resolución aun no está activo.

Configuración de la zona

Ahora tenemos que introducir una configuración inicial de la zona. No necesitamos introducir todos los equipos porque habilitaremos, mediante DHCP, el sistema de actualización dinámica, de forma que cuando un equipo se conecta se le asigna una dirección IP y un nombre y la correspondiente actualización de la zona.

Hechas estas consideraciones pasamos a descibir el fichero /var/named/centro.ies, que deber ser similar al siguiente:

$TTL    604800
@    IN   SOA  ns1.centro.ies. root.ns1.centro.ies. (
                        2002111502 ; serial
                        86400 ; refresh
                        7200 ; retry
                        2592000 ; expire
                        172800 ; default_ttl
                        )
@               IN      NS      ns1.centro.ies.
@               IN      MX      5       ns1.centro.ies.
ns1             IN      A       192.168.1.1
www.centro.ies.         IN      CNAME   ns1.centro.ies.
correo                  IN      CNAME   ns1.centro.ies.         
secretaria              IN      A       192.168.1.2
router                  IN      A       192.168.1.254
              

Los parámetro numéricos los dejaremos tal y como están, salvo quizás el número de serie que indica que es la segunda modificación (02) del día 15/11/2003 (20031105).

El resto de los parámetros:

@ equivale al dominio, centro.ies en este caso.

SOA significa start of autority e indica el nombre del equipo (ns1.centro.ies) y la dirección de correo de administrador (root.centro.ies), sustituyendo la cásica @ por un “.”.

@ IN NS ns1.centro.ies. indica que el servidor de nombres del dominio es ns1.centro.ies. (IN= internet NS=name server).

@ IN MX 5 ns1.centro.ies. indica que el servidor de correo electrónico del dominio es ns1.centro.ies. (MX=Mail eXchanger)

ns1 IN A 192.168.1.1 esta línea asigna la dirección IP al nombrede máquina. (A=address).

 
www.centro.ies. IN CNAME ns1.centro.ies.
 

correo IN CNAME ns1.centro.ies. estas líneas asignan dos alias a nuestro servidor principal, es decir ns1.centro.ies se llam también http://www.centro.ies y correo.cento.ies.

Nota importante: Podemos observar como algunos nombres acaban en punto. El punto indica un nombre completo; si no tiene punto el sistema le añade automáticamente el nombre del dominio. Por ejemplo correo es equivalente a correo.centro.ies. Sim embargo si ponemos correo.cento.ies (sin punto final) en realidad lo que estamos poniendo es correo.centro.ies.cento.ies. Esta es la causa más frecuente de errores a la hora de configurar el servicio DNS.

Las dos últimas líneas son dos nuevos registros de asignación de direcciones a nombres de máquina.

Verificación del DNS

Una vez configurado el servicio de nombres vamos a ponerlo en marcha y comprobar si tiene algún error o funciona correctamente.

El registro de incidencias anota en el fichero /var/log/messages el estado de inicio del sistema de nombres. Lo más cómodo es abrir una nueva consola y ejecutar:

tail -f /var/log/messages

para ir viendo las incidencia en el momento en que ocurren.

Ahora reiniciamos el servicio:

/etc/init.d/named restart

y comprobamos en la consola qué ha sucedido. Si todo es correcto, enhorabuena, en caso contrarío tendremos que volver a editar los ficheros de configuración, corregir los errores y volver a reiniciar el servicio.

Cuando tengamos el servicio en funcionamiento comprobaremos si la resolución la realiza correctamente. Ejecutamos:

nslookup ns1.centro.ies

nslookup www.centro.ies

y en ambos casos nos debe responder con la dirección IP del servidor Linux.




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: