22 oct 2008

VoIP para novatos - Configurar un DNS SRV para SIP

VoIP para novatos - Configurar un DNS SRV para SIP: "Configurar un DNS SRV para SIP
Usando BIND es fácil tener un balanceo de carga a una granja de servidores Asterisk.

Si esta granja obtiene los usuarios de un mismo lugar, cualquier endpoint SIP podrá registrase en cada uno de ellos, sin importarle que servidor es, ya que todos harán el mismo cometido.

Una configuración por ejemplo para 5 servidores Asterisk que recibirán las peticiones de igual forma, en el archivo de dominio sería la siguiente:

; Configuración de dominio.com
$TTL 86400
@ IN SOA dns administrador (
200706247 ; Serial formato: yyyymmddn donde n es un número cualquiera
10800 ; Refresh después de tres horas
3600 ; Reintentar después de una hora
604800 ; Expirar después de una semana
86400 ) ; TTL(Time to Live) mínimo de un día

IN NS dns
dominio.com. IN A 195.222.222.222
IN MX 10 dominio.com.
dns IN CNAME dominio.com.
www IN CNAME dominio.com.
ns1 IN A 195.222.222.222
ns2 IN A 195.222.222.222

sip IN A 195.222.222.221
sip2 IN A 195.222.222.222
sip3 IN A 195.222.222.223
sip4 IN A 195.222.222.224
sip5 IN A 195.222.222.225
backup IN A 195.222.222.226

_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip2.dominio.com.
_sip._udp.dominio.com."

20 oct 2008

20 consejos de Gartner para reducir el gasto en TI - Computerworld

20 consejos de Gartner para reducir el gasto en TI - Computerworld: "20 consejos de Gartner para reducir el gasto en TI

Votar esta noticia (10 votos) Versión para imprimir Versión impresora

En momentos económicos como los actuales, todos los departamentos de la empresa deben apretarse el cinturón. Para ayudar a los responsables de TI a sobrellevar una situación de recorte presupuestario, Gartner ofrece 20 consejos, con los que pretende ayudarles a recudir drásticamente sus gastos.

Los 20 consejos de Gartner para ayudar a ajustar o reducir gastos en el departamento de TI son los siguientes:

1. El sitio más obvio para empezar a recortar en los costes de personal. Gartner estima que el 37% del prepuesto medio de TI se dedica a la plantilla, lo que representa una gran oportunidad para ahorrar dinero. La consultora recomienda la combinación de congelar los procesos de contratación, reducir o eliminar los bonus especiales y reducir los contratos con proveedores externos. Además, las compañías globales que han inaugurado oficinas en áreas remotas deberían considerar la posibilidad de traer de vuelta a casa al personal.

2. Optimice los mandos intermedios. Es decir, en vez de tener una persona que gestiona a seis o siete empleados, ajuste un poco los mandos intermedios de forma que puedan gestionar alrededor de 20 personas. De esta, no sólo ahorra dinero, sino que también gana en eficacia.

3. Migrar hacia servicios compartidos. En otras palabras, consolidar cosas como los centros de atención en un grupo que dé servicio a toda la compañía.

4. Incluso si usted tiene que tomar prestado alguien de otra parte de la empresa, es conveniente que una persona de finanzas se incorpore a su equipo con el objetivo de analizar presupuestos y encontrar modos de ayudarle a ajustar gastos.

5. No ignore los costes “no gestionados” como la energía de las impresoras y de los data centers.

6. Compruebe sus facturas para asegurarse de que sus vendedores le cobran lo que viene en su contrato. Un ejemplo: si su proveedor inalámbrico hubiera acordado con usted no cobrarle el envío de nuevos teléfonos móviles a sus trabajadores remotos y, unos meses más tarde, empiezan a aparecer este tipo de cargos en su factura de telefonía móvil. Si no lo comprueba, nunca lo sabrá.

7. Elimine software y módulos que no están siendo utilizados.

8. Sea fuerte a la hora de negociar los contratos. No tenga miedo a cambiar de proveedor o al menos de dar el primer paso de estimar lo que le costaría el cambio.

9. Compre un servicio de gestión del gasto de telecomunicaciones, ya que el retorno de la inversión es considerable.

10. Despliegue un plan que abarque toda la organización a la hora de adquirir telefonía móvil. Esto será más barato que dejar que el personal se compre sus propios teléfonos y planes y que después lo pasen como gasto.

11. Si hay áreas de la empresa donde no es necesario cinco 9 de disponibilidad, apueste, por ejemplo, por tres 9. Esto le ayudará a ahorrar dinero cuando negocie con su proveedor.

12. Considere la posibilidad de comprar un sistema de videoconferencia más que estar continuamente alquilándolo.

13. Donde sea posible, utilice Internet como un sustituto a los caros servicios de transporte WAN.

14. Aplace la migración a Vista. Si el hardware PC todavía sirve, considere la posibilidad de realizarlo otro año.

15. Utilice productos commodity donde sea posible y evite lo mejor de cada caso en zonas donde con lo necesario es suficiente.

16. Consolide y virtualice servidores.

17. Reduzca los costes de almacenamiento a través de técnicas como la de-duplicación.

18. Utilice mejor los procesos y la política para optimizar el uso de las herramientas existentes.

19. Despliegue telefonía IP y VoIP como una forma de recortar gastos para traslados, incorporaciones y cambios.

20. Recoja licencias de software no usadas y reutilícelas cuando un nuevo empleado haga una petición.

18 oct 2008

OpenVPN (RoadWarrior)

SercH: "OpenVPN (RoadWarrior)

Que tal lectores, aqui les dejo un breve pero muy buen articulo para que puedan configurar y poner a trabajar OpenVPN en la forma RoadWarrior.

Preparando el Servidor"

Para poder hacer los siguiente ya debemos de tener instalado OpenVPN en nuestro servidor.

Lo primero que debemos de hacer es crear los certificados y claves, esto es facil en openvpn ya que cuenta con algunos scripts ya armados que nos ayudaran a hacer esto. Por eso lo primero que recomiendo que hagamos es copiar el directorio donde estan almacenados los scripts a /etc/openvpn que sera el directorio donde tendremos los archivos de configuracion.Para hacer lo que acabamos de mencionar ejecutamos el siguiente comando:


#cp -a /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn
#cd /etc/openvpn/easy-rsa


Creando el Certificado de Autoridad

Una vez copiado los scripts y estando en la carpeta a donde los copiamos ahora lo que vamos a hacer es generar el certificado de autoridad (CA); este se genera por unica vez en el servidor y sera uno de los arcivos que tendremos que copiar y enviar a los clientes, para que al intentar conectarse con el server se verifique este certificado y el servidor de los correspondientes permisos. Bueno empezemos con el siguiente comando:

#. vars

al ejecutar este comando estaremos inicializando las variales de ambiente y nos debera aparecer algo como esto:

#NOTE: when you run ./clean-all, I will be doing a rm -rf on
/etc/openvpn/easy-rsa/keys

Despues vamos a inicializar el directorio de las claves si ubiese algun archivo este script se encarga de limpiarlo:

#sh clean-all

Y por ultimo, ejecutamos el siguiente script:

#sh build-ca

con este ultimo script nos generara elcertificado de autoridad (CA) y nos pedira varios datos los cuales recomiendo que sean lo mas reales posibles ya que en futuras configuraciones se nos va a pedir alguno de estos datos lo que nos aparecera y los datos que nos pedira sera algo como esto:

Generating a 1024 bit RSA private key
...........................................................................................
.................................++++++.....................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [EUA]:MX
State or Province Name (full name) [San Francisco]:GDL
Locality Name (eg, city) [California]:JALISCO
Organization Name (eg, company) [OpenVPN-TEST]:OFICINA
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:openvpnserver
Email Address [me@myhost.mydomain]:serch@hotmail.com

OJO: NO DEJAR EN BLANCO Common Name

Creando Certificado Certificado y Clave para Servidor

Ahora vamos a generar el correspondiente certifatiado del servidor como tambien su clave de encriptacion para lo cual vamos a hacer lo siguiente:

#sh build-key-server servidor

nos va a pedir ciertos datos nuevamente, estos tendran que ser iguales a los que ingresamos en el certificado de CA como son Country Name, State or Province Name, Locality Name y Organization Name y el resto podra ser distinto:


sh build-key-server servidor
Generating a 1024 bit RSA private key
......................++++++
.........................++++++
writing new private key to 'servidor.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [EUA]:MX
State or Province Name (full name) [San Francisco]:GDL
Locality Name (eg, city) [California]:JALISCO
Organization Name (eg, company) [OpenVPN-TEST]:OFICINA
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:servidor
Email Address [me@myhost.mydomain]:serch@hotmail.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok


Esto creara dos archivos ( servidor.crt y servidor.key ) en la carpeta /etc/openvpn/easy-rsa/keys los cuales debemos de copiarlos a /etc/openvpn


Creando Certificados y Claves de Encriptacion para los Clientes


Lo mismo que hicimos en el paso anterior lo haremos pero ahora para los clientes, esto lo debemos de hacer el numero de veces que sea necesario para crear los certificados para los clientes que se vallan a conectar, ahora ejecutamos el siguiente script:

#sh build-key cliente

De la misma forma que con el servidor nos va a pedir datos de nuevo entre los cuales seran Country Name, State or Province Name, Locality Name y Organization Name estos tambien tendran que ser identicos a los antes ingresados el resto sera diferente:

sh build-key client1

Generating a 1024 bit RSA private key

...............................................................................................++++++

......++++++

writing new private key to 'cliente.key'

-----

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [EUA]:MX
State or Province Name (full name) [San Francisco]:GDL
Locality Name (eg, city) [California]:JALISCO
Organization Name (eg, company) [OpenVPN-TEST]:OFICINA
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:cliente
Email Address [me@myhost.mydomain]:serch@hotmail.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok

Al ejecutar el script le pasamos el parametro "cliente", que sera el nombre que tendra el certificado y claves de encriptacion. Si necesitas generar nuevos certificados y llaves para mas clientes se ejecuta el script cambiando solo que le pasamos ejemplo:

#sh build-key cliente2

de esta forma generaremos certificado y llave de encriptacion con el nombre cliente2.

Generando Parametro De Diffie-Hellman

Ejecutando el siguiente script, generaremos el parametro Diffie-Hellman. Este lo que hara es generarnos el cambio de llaves de forma segura, para ello ejecutamos el siguiente comando:

#sh build-dh

Al hacer esto se creara un archivo dh1024.pem dentro del directorio /etc/openvpn/easy-rsa/keys y lo deberemos de copiar dentro de /etc/openvpn, como se explica a continuacion.


Copiando Cada Cosa En Su Lugar

Una vez hecho todo lo anterior tendremo varios archivos en el directorio /etc/openvpn/easy-rsa/key: algunos se copiaran en el cliente y otros en el servidor, vamos a ver cuales hay que copiar y a donde.

SERVIDOR: En el servidor copiaremos al directorio /etc/openvpn los siguientes archivos:

*ca.crt
*ca.key
*servidor.key
*servidor.crt
*dh1024.pem

Nota: En el caso de que creemos mas adelante mas certificados y claves para mas cleintes se nos pedira que los archivos ca.crt y ca.key esten dentro de /etc/openvpn/easy-rsa/keys, ya que al ejecutar el script sh clear-all lo que hariamos sera limpiar todo lo que este en este directorio, es por eso que debemos copiarlos de regreso si vamos a crear nuevos certificados para clientes, lo podremos hacer de la siguiente manera:

cp /etc/openvpn/ca.crt /etc/openvpn/easy-rsa/keys
cp /etc/openvpn/ca.key /etc/openvpn/easy-rsa/keys

CLIENTE: Como lo hicmos con el servidor, ahora pasaremos los archivos necesarios al directorio /etc/openvpn de cada cliente. Estos son:

*ca.crt
*cliente.crt
*cliente.key


Configuracion Del Servidor

Para la configuracion necesitaremos crear un archivo de configuracion tanto para el servidor como para los clientes.Este contendra todos los parametros de configuracion y debera que tener la extension .conf y debera de estar alojado en /etc/openvpn. Veamos los parametros que debemos de poner al archivo, que en este caso se llamara servidor.conf.

port 1194
proto udp
dev tun
ca ca.crt
cert ca.crt
key servidor.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
persist-key
persist-tun
status openvpn-status.log
verb 4

Parametros a destacar:

* ca: indica como se llama el certificado de autoridad.
* cert: indica como se llama el certificado del servidor.
* key: nombre de la clave de encriptacion.
* dh: indica como se llama el parametro Diffie-Hellman.
* Server: indica las direcciones que se le asignaran a las interfaces TUN/TAP
de los clientes, el servidro siempre tendra la .1.
*push: le indica al servidor que red podra tener alcance los clientes que se
conecten con el.


Configuracion Del Cliente

Como lo habiamos dicho anteriormente los clientes tambien deberan de tener su archivo de configuracion que tendra al igual que el servidor la extension .conf y estar ubicado en /etc/openvpn. Estos con los parametros del archivo de configuracion del cliente llamado cliente.conf.


client
dev tun
proto udp
remote miempresa.dyndns.org
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca ca.crt
cert cliente.crt
key cliente.key
comp-lzo
verb 4

Parametros a destacar:

* client: actuara como cliente, y algunas configuraciones las tomara del servidor.
* nobind: que no actue como servidor, que solamente vaya como cliente
* ca: indica como se llama el certificado de autoridad.
* cert: indica como se llama el certificado del servidor.
* key: nombre de la clave de encriptacion.

Configuracion Cliente Windows

Una de las virtudes de OpenVPN es que esta preparado para trabajar entre distintas plataformas que seguramente a muchos de nosotros nos suceda. Es por esto que vamos a ver de donde y como configurar la aplicacion para windows asi como donde se tienen que alojar los diferentes archivos que mencionamos con anterioridad.

Bueno al Grano:

Primero descargaremos el paquete para windows de la siguiente pagina http://openvpn.net/index.php/downloads.html de donde bajaremos la version OpenVPN 2.1_rc12 -- released on 2008.09.23 o la mas reciente que sea rc ya que esta ya viene preparada para trabajar con el problematico pero muy vendido windows vista. Lo instalamos como cualquier programa de windows y nos lo instalara en C:\Archvivos de programa\OpenVPN aqui dentro hay otro directorio que se llama config y sera dentro de este donde debemos de copiar los certificados y las cables de encriptacion generados por el servidor, tambien aqui sera donde crearemos el archivo de configuracion tal cual lo hicimos con GNU/LINUX. La unica diferencia es que este archivo de configuracion llevara la extension .ovpn para que pueda ser reconocido por el programa; y ademas debemos de comentar las lineas user nobody y group nobody, ya que windows necesita ejecutar la aplicacion como administrador. Otra diferencia es que hay que indicarle la ubicacion del certificado y llave de encpritacion usando "\\" para indicar los directorios. A continuacion veremos un ejemplo del archivo cliente.ovpn:

client
dev tun
proto udp
float
remote miempresa.dyndns.org
nobind
persist-key
persist-tun
ca "c:\\Archivos de programa\\OpenVPN\\config\\ca.crt
cert "c:\\Archivos de programa\\OpenVPN\\config\\cliente.crt
key "c:\\Archivos de programa\\OpenVPN\\config\\cliente.key
comp-lzo
verb 4

Con esto tendremos el archivo de configuracion de nuestro cliente.


Iniciando Cliente Bajo Windows

En la parte inferior derecha (a un lado del reloj) tendremos dos computadoras en rojo y un mundo para iniciar el cleinte debemos de dar doble click en el icono e inmediatamente se abrira una ventana donde nos mostrara el proceso de conexion con el servidor hasta que se nos asigne una direccion IP que estara en el rango 10.8.0.0
y las dos computadores se deberan de poner en verde y una vez realizada esto tambien se conectara nuestra interface TUN/TAP.


IPTABLES

En Iptables solo hay que permitir el trafico entre la interface tun0 y la red interna de la siguiente manera:

/sbin/iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 192.168.1.0/24 -j ACCEPT


Con esto tendremos configurado y Funcionado un Servidor OpenVPN en RoadWarrior

15 oct 2008

blog.aliax.net: Aclarando SIP y NAT

blog.aliax.net: Aclarando SIP y NAT: "Aclarando SIP y NAT

En vista de la ensalada de soluciones existentes para abordar el tema de SIP y NAT me propongo tratar de explicar algunas de ellas. Igualmente trataré de desmentir algunas hipótesis que se escuchan de vez en cuando.
Problema del NAT en SIP y RTP

No voy a excederme relatando los problemas que ocasiona el NAT para las comunicaciones SIP. Supongamos un cliente SIP detrás de NAT que trata de comunicarse con otro fuera de su NAT, ambos usuarios usan el mismo proxy SIP:
Usuario SIP origen:

* SIP URI: ibc@mydomain.org
* IP privada: 192.168.1.33
* IP pública del router NAT: 81.35.221.20

Usuario SIP destino:

* SIP URI: destino@mydomain.org
* IP pública: 88.95.20.130

Proxy SIP:

* Dominio: mydomain.org
* IP pública: 60.55.201.100

El mensaje SIP INVITE que enviaría mi usuario sería así:
INVITE sip:destino@mydomain.org SIP/2.0
Via: SIP/2.0/UDP 192.168.1.33:5060;rport;branch=z9hG4bKjyofoqmp
Max-Forwards: 70
To:
From: 'Iñaki' ;tag=nrrrx
Call-ID: xetazdjyktlpsfo@192.168.1.33
CSeq: 800 INVITE
Contact:
Content-Type: application/sdp
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,N"