Configurando DHCP, hosts en Linux

# vi dhcpd.conf

ddns-update-style interim;
ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
# option domain-name “midominio.com”;
# option domain-name-servers 192.168.1.2;

range dynamic-bootp 192.168.1.20 192.168.1.40;
default-lease-time 21600;
max-lease-time 43200;

# host user6 {
# next-server user6.midominio.com;
# hardware ethernet 00:0C:F1:A9:04:5D;
# fixed-address 192.168.1.70;
# }
}

———————————-
# service dhcpd start

//monitoreo del dhcp
cat /var/lib/dhcp/dhcpd.leases

———————————–
vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.1.1 servidor.midominio.com servidor

Configurando ROUTER/NAT en Linux

Para que linux trabaje como router hay que modificar el archivo /etc/sysctl.conf, se cambia la linea net.ipv4.ip-forward=1

vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

Configurando NAT con Iptables

crear un archivo firewall.sh
touch firewall.sh
colocar lo siguiente con el comando vi

#!/bin/bash
iptables –flush

#configurando nat
iptables –table nat –flush
iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE
iptables –append FORWARD –in-interface eth0 -j ACCEPT

#configurando un acceso a un servidor SQL SERVER
iptables -A PREROUTING -t nat -p tcp -d 190.41.57.2 –dport 1433 -j DNAT –to-destination 192.168.1.130:1433

#configurando un acceso para puerto VNC
iptables -t nat -A PREROUTING -d 190.41.57.2 -m tcp -p tcp -i eth0 –dport 5900 -j DNAT –to-destination 192.168.1.130:5900

#para el correo
iptables -A INPUT -i eth0 -p tcp –sport 25 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 25 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p tcp –dport 110 -j ACCEPT

#acceso local
iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

/* SIP / UDP port 5060 */
iptables -A INPUT -p udp -m udp –dport 5060 -j ACCEPT
/* IAX2- IAX protocol */
iptables -A INPUT -p udp -m udp –dport 4569 -j ACCEPT
/* IAX */
iptables -A INPUT -p udp -m udp –dport 5036 -j ACCEPT
/* RTP */
iptables -A INPUT -p udp -m udp –dport 10000:20000 -j ACCEPT
/* MGCP - solo si usas MGCP */
iptables -A INPUT -p udp -m udp –dport 2727 -j ACCEPT

———————–
dar derechos de ejecucion al archivo firewall.sh
#ls -l firewall.sh
#chmod u+x firewall.sh

colocar ejecucion del archivo firewall.sh desde el arranque
#vi /etc/rc.local
/root/firewall.sh (suponiendo q el archivo esta en root)

Asterisk tiene 3 paquetes basicos que se necesitaran o no en su totalidad segun la necesidad especifica de nuestro proyecto, estos son asterisk, zaptel y libpri

El paquete Asterisk es el que incluye al programa principal, zaptel incluye los drivers de telefonia Zapata y el libpri incluye las librerias PRI necesarias para conectarse al RTPC (PSTN) utilizando este protocolo

el unico paquete mandatorio es asterisk, ya que libpri solo se necesitara e caso de que vayamos a utilizar interfaces PRI RDSI y zaptel en caso de utilizar tarjetas Zaptel, ahora bien en caso de requerir utilidades que necesiten de fuentes de temporizacion y no tengamos hardware zaptel instalado, se requiere instalar el paquete zaptel activando el modulo ztdummy

En cuanto a Linux se necesitaran los siguientes paquetes

kernel sources yheaders
gcc y sus dependencias (se sugiere la version 3.x o superior)
bison (necesario para los archivos de configuracion)
ncurses (necesario para la consola o CLI)
openssl y openssl-dev o libssl-dev (necesario para las librerias criptograficas)
libnewt (necesario para aplicaciones de Zaptel como el zttool)

Asterisk y sus librerias pueden descargarse en forma de archivos .tar.gz o desde el repositorio subversion, si deseamos descargar los archivos tar.gz. los podemos encontrar en:
http://ftp.digium.com/pub/asterisk/releases/

y los paquetes tendran nombre tales como “asterisk.version.tar.gz”, en el caso de la version 1.2 de Asterisk encontraremos paquetes como:

Asterisk astrisk-1.2.14.tar.gz
Zaptel zaptel-1.2.12.tar.gz
Libpri libpri-1.2-4-tar.gz
Asterisk-Addons asterisk-addons-1.2.5.tar.gz
Asterisk-Sounds asterisk-sounds-1.2.1.tar.gz

para otras versiones, por ejemplo la 1.4, los nombres de los paquetes cambian por 1.4

la descarga de los paquetes se puede hacer a traves del navegador de internet o por modo consola de linux con el comando

wget -passive-ftp ftp.digium.com/pub/asterisk/asterisk-1.*.tar.gz
wget -passive-ftp ftp.digium.com/pub/asterisk/zaptel-*.tar.gz
wget -passive-ftp ftp.digium.com/pub/asterisk/libpri-*.tar.gz

debemos reemplazar el * por el numero de version que deseamos decargar

se recomienda hacer las descargas en el directorio /usr/src de Linux

————————
Instalando Asterisk 1.2
————————

para descomprimir los archivos .tar.gz se utiliza el comando

#tar -zxvf archivocomprimido.tar.gz

el orden de instalacion de Asterisk y sus componentes debe hacerse en el siguiente orden

zaptel
libpri
asterisk
asterisk-addons
asterisk-sounds

Compilacion e Instalacion de Zaptel

#cd /usr/src/zaptel-version
#make clean
#make
#make zttool
#make install
#make install-udev

aunque el comando make clean no es indispensale la primera vez que compilamos el codigo, si nos asegura que eliminemos todo el codigo compilado que pueda existir de una compilacion anterior.

El comando make compila driver zaptel para el kernel de linux

si desea instalar la herramienta zttool se debe ejecutar el comando make zttool antes de continuar. Debemos recordar que para esto se necesitan los fuentes del paque libnewt de Linux

Luego debemos instalar los archivos compilados, lo que se ace con el comando make install, que colocara todo en su lugar para luego poder ejecutarlo.

Para resolver la dependencia de las reglas del udev del Kernel 2.6 de linux se ejecuta entonces el comando make install-udev. Esto no es necesario para instalaciones sobre el Kernel 2.4

Compilacion e Instalacion de Libpri

Para instalar las librerias Libpri se deben seguir los siguientes pasos como root. Recuerde que estas solo se necesitan si tendra hardware PRI RDSI en su sistema

#cd /usr/src/libpri-version
#make clean
#make
#make install

Compilacion e Instalacion de Asterisk

#cd /usr/src/asterisk-version
#make clean
#make
#make install

El tiempo total de instalacion dependera de la velocidad de su sistema, asi en un sistema con un procesador de ultima generacion no deberia tomar mas de 5 minutos

Para instalar los archivos de configuracion de ejemplo ejecute el comando

#make samples

Esto nos evita tener que crear y llenar los archivos de configuracion manualmente y nos coloca un archivo de ejemplo para cada uno de los archivos usados en la configuracion de Asterisk. Tenga en cuenta que los archivos copiados por este comando tendran los comentarios en el idioma ingles.

iniciando servicios

#servicce zaptel start
#asterisk

conectarse a asterisk CLI

#asterisk -vvvrc

listo ya tienen el asterisk instalado, solo queda configurar sus anexos (extensiones)