martes, diciembre 17, 2013

Sincronización con ntp

 
Dentro de un cluster en linux (vicidial) es necesario tener la misma hora en todos los servidores, para eso se utiliza el servicio de ntp, el cual a su vez sincroniza su hora con un horario en internet.
Para que todos nuestros servidores tengan la misma hora, se selecciona un servidor dentro del cluster el cual sera el encargado de comunicarse a internet y el que repartira la hora a los demas servidores.

#Para validar los servidores ntp a los que se esta conectando, el * signica con el que esta haciendo Sync
ntpq -p

#Editar archivo para agregar el servidor con el que hara Sync
nano /etc/ntp.conf

#Se agregan las rutas de los logs
driftfile /var/lib/ntp/drift/ntp.drift
logfile /var/log/ntp


#Opcion iburst le dice que se sincronice inmediatamente
server 192.168.10.10 iburst

#Se reinicia el servicio de ntp
/etc/init.d/ntp restart

#Se verifica nuevamente los servidores ntp
ntpq -p

Ejemplo de /etc/ntp.conf

driftfile /var/lib/ntp/drift/ntp.drift
logfile /var/log/ntp

server 172.16.0.5 iburst

martes, agosto 13, 2013

Usar nano con Context Highlighting

Cuando estamos escribiendo scripts en shell es mas comodo si tenemos el codigo con color para las variables, funciones y tipos de datos, con el editor nano es posible agregar esta funcionalidad.

Primero debemos editar el siguiente archivo para agregar las "librerias" para cada lenguaje
/etc/nanorc

Agregamos los siguientes includes dependiendo del lenguaje que queremos instalar
include "/usr/share/nano/asterisk.nanorc"
include "/usr/share/nano/php.nanorc"
include "/usr/share/nano/html.nanorc"
include "/usr/share/nano/sh.nanorc"
 
Si no cuentan con los archivos los pueden descargar de la siguiente ruta
wget http://pbxinaflash.net/source/nano/asterisk.nanorc
wget http://pbxinaflash.net/source/nano/php.nanorc
wget http://pbxinaflash.net/source/nano/sh.nanorc

Una vez descargados no olvidar incluirlos en /etc/nanorc.

SSH : Llaves publicas

El dia de hoy me encontre con la situacion de tener que agregar llaves publicas entre dos servidores para de esa forma poder comunicarme mediante ssh sin necesidad de un password, es un metodo de confianza entre dos equipos en el que se crean un par de llaves, una privada y una publica, en donde la llave publica es la que se distribuye a los servidores a los que deseamos conectarnos sin necesidad de estar poniendo un password, bien empezemos.

Primero creamos las llaves
ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
d2:bf:d1:b0:79:95:1b:84:ce:db:e5:19:69:da root@server
The key's randomart image is:
+--[ RSA 2048]----+
|               .o|
|             . ++|
|            . =.o|
|       .   o o E.|
|      . S . o +o |
|       . . = + +o|
|          = + o .|
|           +     |
|          .      |
+-----------------+

Despues enviamos la Llave publica al server destino
cat .ssh/id_rsa.pub | ssh root@ServerDestino 'cat >> .ssh/authorized_keys'

*Algunas veces es necesario enviar la llave publica al authorized_keys2
cat .ssh/id_rsa.pub | ssh root@ServerDestino 'cat >> .ssh/authorized_keys2'

Con esto ya podemos acceder a nuestro servidor mediante ssh sin necesidad de password, lo cual en mi caso es muy util al momento de realizar scripts en donde necesito acceder a recursos que se encuentran en otro servidor, saludos.

miércoles, julio 03, 2013

Sangoma A102

Datos de configuracion de una tarjeta Sangoma A102
No es un manual paso a paso como configurar una tarjeta Sangoma A102, pero son los comandos y archivos con los que me tope para poder configurar una, los detalles especificos dependen del cliente o proveedor y el modelo de la tarjeta (T1 / E1) estos comandos fueron para una E1 en un ambiente Linux con Asterisk instalado en un Elastix, espero les sirva de guia.

Configurar Tarjeta sangoma
wancfg_dahdi

Ver Estatus
dahdi_cfg   -vvvv

Configuracion General
 /etc/dahdi/system.conf

Configuracion de troncales (para cada SPAN)
/etc/asterisk/chan_dahdi.conf

Configuracion del Wanpipe
/etc/wanpipe/wanpipe1.conf

Ver si hay alarmas en tarjeta
wanpipemon -i w1g1 -c Ta

Dentro del CLI de Asterisk para probar sustituyendo X por numero a marcar
originate DAHDI/5/XXXXXXXXXX application Playback demo-instruct

nano /etc/dahdi/system.conf
#autogenerated by /usr/sbin/wancfg_dahdi do not hand edit
#autogenrated on 2012-11-28
#Dahdi Channels Configurations
#For detailed Dahdi options, view /etc/dahdi/system.conf.bak
loadzone=mx
defaultzone=mx

#Sangoma A102 port 1 [slot:4 bus:3 span:1] <wanpipe1>
span=1,1,0,ccs,hdb3
bchan=1-15,17-31
echocanceller=mg2,1-15,17-31
hardhdlc=16

#Sangoma A102 port 2 [slot:4 bus:3 span:2] <wanpipe2>
span=2,2,0,ccs,hdb3
bchan=32-46,48-62
echocanceller=mg2,32-46,48-62
hardhdlc=47


//etc/asterisk/chan_dahdi.conf

[trunkgroups]

[channels]
context=default
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
canpark=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
relaxdtmf=yes
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
immediate=no

;Sangoma A102 port 1 [slot:4 bus:3 span:1] <wanpipe1>
switchtype=euroisdn
context=from-pstn
;pridialplan=unknown
pridialplan=local
group=0
echocancel=yes
signalling=pri_cpe
channel =>1-15,17-31,32-46,48-62

Respaldar / Restaurar / Exportar MySQL

Respaldar / Restaurar una Base de Datos en MySQL

mysqldump BaseDatos > NombreArchivo.sql
Con este comando ejecutado desde la consola de comandos de tu servidor linux puedes pasar completamente una base de datos a un archivo con extension "sql"

Generalmente tenemos instalado la utileria de zip en nuestro linux y podemos aprovechar para ahorrar espacio con los respaldos de las bases de datos
zip NombreArchivoComprimido NombreArchivo.sql

Si lo que queremos respaldar u obtener solo la estructura de la base de datos o algunos lo conocen como esquema de la base de datos, ejecutamos el siguiente comando
mysqldump -d BaseDatos > NombreArchivo.sql

Exportar contenido de una Base de Datos a un archivo separado por comas

Algunas veces queremos vaciar el contenido de una tabla o de una vista a un archivo de Excel, la forma mas simple es exportar esos datos a un archivo separado por comas para despues abrirlo en Excel, el comando es el siguiente
SELECT * INTO OUTFILE '/tmp/MiArchivo.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM tabla

sábado, abril 20, 2013

Hosting multiples websites con Apache2



Debian

Hosting multiples websites con Apache2


Para tener en nuestro servidor varios dominios debemos configurar los records DNS de nuestro proveedor de dominio, una vez que nuestro dominio este apuntando a nuestro servidor, podemos crear una carpeta en específico para que todo el contenido web este controlado, para eso seguimos los siguientes pasos.

Tenemos 2 carpetas

/etc/apache2/sites-available

/etc/apache2/sites-enabled

En la primera carpeta están los sitios disponibles pero no necesariamente habilitados, y en la segunda carpeta tenemos todos los sitos habilitados.

Cuando el servidor inicia carga la configuración de la carpeta /etc/apache2/sites-enabled

Y la carpeta /etc/apache2/sites-available es totalmente ignorada.


Asi que se espera que escribas una configuración de host en la carpeta /etc/apache2/sites-available

Y después hacer un link simbolico a la carpeta de sitios habilitados 
 /etc/apache2/sites-enabled

Esto hara que cada que se inicie el sistema se lean las dos configuraciones.


Y Debian incluye dos utilerías para realizar este trabajo más sencillo

a2ensite y a2dissite


Empezamos creando el archivo de configuración para nuestro sitio

/etc/apache2/sites-available/www.misitio.com

#
#  Example.com (/etc/apache2/sites-available/www.misitio.com)
#
<VirtualHost *:80>
        ServerAdmin webmaster@example.com
        ServerName  www.misitio.com
        ServerAlias misitio.com

        # Indexes + Directory Root.
        DirectoryIndex index.html
        DocumentRoot /home/www/www.misitio.com/htdocs/

        # CGI Directory
        ScriptAlias /cgi-bin/ /home/www/www.misitio.com/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>


        # Logfiles
        ErrorLog  /home/www/www.misitio.com/logs/error.log
        CustomLog /home/www/www.misitio.com/logs/access.log combined
</VirtualHost>

Una vez creado el archivo de configuración solo hay que habilitarlo

a2ensite www.misitio.com

Y reniciamos el servicio de apache2

/etc/init.d/apache2 reload

sábado, abril 13, 2013

Tinyproxy

Tinyproxy

Tinyproxy es un servidor proxy HTTP ligero, pequeño y rapido, su instalación y configuración es muy sencilla, solo sigue estos pasos para su instalación en Debian.



En la consola de comandos escribir:
apt-get install tinyproxy

Una vez instalado se edita el archivo de configuración:
nano /etc/tinyproxy.conf
Allow 127.0.0.1
Allow 192.168.1.10 #IP de equipo que tiene permiso de conectarse

Parar / Iniciar Servicio
service tinyproxy stop
service tinyproxy start

Archivo log del servicio
/var/log/tinyproxy/tinyproxy.log

 Una vez instalado tendras a tu disposición un servidor proxy para las necesidades que tengas, ya sea para restringir el acceso a internet o para enmascarar algunas direcciones, saludos.

sábado, marzo 16, 2013

Cambiar password de root en MySQL


Muchas veces, o por lo menos a mi me ha pasado varias veces, que cuando tienes varios servidores MySQL no es una buena practica de seguridad ponerles a todos la misma clave de root, y mucho menos dejarlos a todos con la clave vacia...
Y algunas veces, como a todo ser humano esas claves se me olvidan, por lo que es necesario cambiar la clave, pero como la cambias si no puedes entrar al sistema? Para eso sigue estos pasos:

1. Detenemos el servicio de MySQL
/etc/init.d/mysql stop
 
2. Iniciamos MySQL en modo sin privigelios
mysqld_safe --skip-grant-tables&
 
3. Hacemos un login a MySQL sin password
mysql -u root

4. Cambiamos el password dentro de MySQL
UPDATE mysql.user SET Password = PASSWORD('NuevoPassword') WHERE User='root';
 
5. Salimos de MySQL
exit;
 
6. Reiniciamos el servicio de MySQL   
/etc/init.d/mysql restart
 
Con esto ya podemos iniciar MySQL con el password que actualizamos. 

viernes, marzo 08, 2013

2da Vez

6 años despues entro a ver este blog olvidado.