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 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.














