miércoles, 11 de junio de 2014

ssh y scp con autenticación de clave pública

http://vjavierf.wordpress.com/2013/01/29/ssh-y-scp-con-autenticacion-de-clave-publica/

 Scritp para backup

#!/bin/bash
#La línea anterior indica el intérprete de comandos a utilizar. 
#Las líneas que empiezan por "#" son comentarios

echo "Montando Tu unidad Externa"
mount /dev/sdd1 /media/unidad_externa

echo "Copiando Ficheros de tu home a /media/unidad_externa"
cp -vr /home/pedro/* /media/unidad_externa

echo "Copiado, desmontando unidad"

umount /dev/sdd1

sábado, 31 de mayo de 2014

Entorno lxde

#lo primero que se debe hacer una vez instalado zentyal y actualizado es reinstalar el entorno lxde

sudo apt-get remove pcmanfm
sudo apt-get purge pcmanfm
sudo apt-get clean pcmanfm
sudo apt-get instal lxde
sudo apt-get install lxde
sudo reboot

#Para ejecurar un programa al iniciar sesion de lxde se debe modificar el siguiente archivo ( /etc/xdg/lxsession/LXDE/autostart )
#para adicionar el programa o comando que se quiere ejecutar anteponiendo el @

#Para instalar el nomachine lo ideal es descargarlo de la pagina e instalarlo con el siguiente comando.

dpkg -i nomachine_4.2.23_1_i386.deb

# y ejecutar el servidor nxserver

/etc/init.d/nxserver start

#Para iniciar el virtualbox automaticamente se debe crear un script y ejecutarlo desde el autostart de lxde

@sh /usr/bin/script

#el contenido del script debe tener:


#!/bin/bash
# -*- ENCODING: UTF-8 -*-
VBoxManage startvm "efw" poweron
exit

#Donde efw es el nombre de la maquina virtual.

jueves, 24 de octubre de 2013

Instalación Asterisk 11.6.0 En Ubuntu Sserver 12.04


Este es un instructivo para la instalación de Asterisk 11.6.0 el cual esta actualizado hasta la fecha. Adicional se muestra como se realiza la instalación FreePBX.

Lo primero es actualizar nuestro sistema, es importante resaltar que esta instalacion se debe realizar una vez formateado nuestro server a UBUNTU 12.04.

sudo -i
apt-get update
apt-get upgrade

Unas vez actualizado procedemos a reiniciar el server.

init - 6

Despues de reiniciado el server procedemos a instalar dependencias necesarias para la instalacion de Asterisk y Freepbx.

sudo apt-get install -y gpm ssh openssl libssl-dev vi­m libncurses5-dev libnewt-dev libxml2-dev sqlite3 libsqlite3-dev libmysqlclient15-dev ubuntu-restricted-extras subversion mysql-server mysql-client libmysqlclient15-dev make openssh-server apache2 bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox pkg-config automake libtool autoconf git uuid uuid-dev linux-headers-`uname -r` build-essential

Si presentas problemas al instalar estas librerías trata de instalarlas una por una.
Ahora ingresamos como usuario root y nos ubicamos en la carpeta /usr/src

sudo -i
cd /usr/src

Descargamos los paquetes necesarios.


Procedemos ahora a descomprimir los paquetes y a compilarlos.

tar zxvf dahdi*
cd dahdi*
make
make install
make config

cd ..

tar zxvf libpri*
cd libpri*
make && make install
sudo make config

cd ..

tar zxvf asterisk*
cd asterisk*
./configure
./contrib/scripts/get_mp3_source.sh #### Este comando se ejecuta si al momento de la instalación el server lo pide.
make menuselect
make
make install
make samples
make config

/etc/init.d/dahdi start
/etc/init.d/asterisk start

asterisk -rvvvvv

tar -xvzf dahdi-tools*
cd dahdi-tools*
./configure
make
make install
make config

/etc/init.d/dahdi restart
dahdi_genconf
dahdi_cfg -vvvvvvvvvvvv

cd ..

sudo tar -xvzf asterisk-addons-1.6.2.4.tar.gz
cd asterisk-addons-1.6.2.4/
./configure
make menuselect
make
make install
make samples

exit

###### INSTALACION DE FREEPBX

##### DEPENDENCIAS DE GOOGLE VOICE

cd /usr/src
sudo wget https://iksemel.googlecode.com/files/iksemel-1.4.tar.gz
sudo tar xf iksemel-1.4.tar.gz
cd iksemel-1.4
sudo ./configure
sudo make
sudo make install

export VER_FREEPBX=2.11
cd /usr/src
sudo svn co http://www.freepbx.org/v2/svn/freepbx/branches/${VER_FREEPBX} freepbx
cd freepbx

##### CREACION DE USUARIO ASTERISK

sudo adduser asterisk --disabled-password --no-create-home --gecos "Asterisk User"
sudo chown asterisk. /var/run/asterisk
sudo chown -R asterisk. /etc/asterisk
sudo chown -R asterisk. /var/{lib,log,spool}/asterisk
sudo chown -R asterisk. /usr/lib/asterisk
sudo mkdir /var/www/html
sudo chown -R asterisk. /var/www/

###### MODIFICACIONES DE APACHE

sudo sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
sudo sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
sudo service apache2 restart

##### CONFIGURACION DE BASE DE DATOS

export ASTERISK_DB_PW=amp109
sudo mysqladmin -u root create asterisk -p
sudo mysqladmin -u root create asteriskcdrdb -p
sudo mysql -u root asterisk -p < SQL/newinstall.sql
sudo mysql -u root asteriskcdrdb -p < SQL/cdr_mysql_table.sql

sudo mysql -u root -p -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"

sudo mysql -u root -p -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"

sudo mysql -u root -p -e "flush privileges;"

sudo ./start_asterisk start
sudo ./install_amp --webroot /var/www/freepbx

### Si sale error al ejecutar el comando anterior prueba con el siguiente

sudo ./install_amp --username=asteriskuser --password=$ASTERISK_DB_PW --webroot /var/www/freepbx


sudo amportal a ma installall
sudo amportal a reload

ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal start 

Una vez Hecho esto!! se procede a ingresar via WEB.


Recuerda que esos datos los configuraste al momento de la instalación de Freepbx.
Después de ingresar vía web aparecerá en el freepbx el siguiente error
Symlink from modules failed
Para corregirlo ejecutar.

cd /etc/asterisk
rm ccss.conf confbridge.conf features.conf sip.conf iax.conf logger.conf extensions.conf sip_notify.conf

después desde el freepbx en la opcion module admin, debes desinstalar ‘Camp On’ y luego volverlo a instalar.
Listo eso es todo.. espero les funcione.


jueves, 30 de junio de 2011

FLASH OPERATOR PANEL

sudo -i
vi /etc/asterisk/manager.conf

[usuariopanel]
secret = panelpass
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
;permit=192.168.0.0/255.255.255.0 ;SI TU PANEL NO VA ESTAR EN EL MISMO SERVER.
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

vi /var/www/freepbx/panel/op_server.cfg

Configurar el fop server.

Editar op_server.cfg y cambiar los parámetros apropiados para su configuración.

manager_host es el nombre de host o dirección IP de su Assudo -i
vi /etc/asterisk/manager.conf
terisk. si esta en el
mismo server es 127.0.0.1.
manager_user es la definida por el usuario en manager.conf (a raíz de este ejemplo de
configuración, debe ser "usuariopanel"(sin las comillas))
manager_secret es el secret definido para el usuario (a raíz de este ejemplo de
configuración, debe ser "panelpass"(sin las comillas))
security_code es el código para desbloquear el panel.

cd /var/www/freepbx/panel/
cp flash/* /var/www/freepbx/panel/sudo -i
vi /etc/asterisk/manager.conf


despues editar en /var/www/freepbx/admin/views/panel.php

vi /var/www/freepbx/admin/views/panel.php

debe quedar son la siguiente fuente.

src="../panel/index.html"

luego ejecutar.

chmod a+x op_server.pl

amportal stop_fop

./op_server.pl

y ya se puede ver en http://x.x.x.x/freepbx/admin/panel.php

y por ultimo

amportal restart

INSTALACIÓN DE FREEPBX

cd /usr/src/
sudo wget http://mirror.freepbx.org/freepbx-2.9.0.tar.gz
sudo tar -xzvf freepbx-2.9.0.tar.gz
cd freepbx-2.9.0

Editaremos el sources.list de nuestro apt para que recoja de los repositorios de debían multimedia, ya que necesitamos el paquete lame y no se encuentra en los repositorios oficiales de debían.

sudo vi /etc/apt/sources.list

Y añadimos al final del archivo las dos siguientes lineas:

deb http://oktan.ls.fi.upm.es/debian-multimedia/ stable main
deb-src http://oktan.ls.fi.upm.es/debian-multimedia/ stable main

luego actualizamos

sudo apt-get update

Nos dará error debido a que no hemos instaladola keys del repositorio, para ello instalamos debian-multimedia-keyring pasando del Aviso de autenticaión:

sudo apt-get install debian-multimedia-keyring
sudo apt-get update

sudo apt-get install libxml2-dev apache2 libapache2-mod-php5 php5 php-pear php5-mysql php5-gd bison libncurses5-dev libaudiofile-dev curl sox php-db lame libssl-dev

Editaremos el archivo /etc/php5/apache2/php.ini

sudo vi /etc/php5/apache2/php.ini

y buscaremos la linea

upload_max_filesize = 2M

y la cambiaremos por

upload_max_filesize =40M

Tambien dejaremos a Off en este archivo la opción magic_quotes_gpc

magic_quotes_gpc = Off

Crearemos un grupo y un usuario llamados asterisk con los siguientes comandos:
sudo groupadd asterisk
sudo useradd -c "asterisk PBX" -d /var/lib/asterisk -g asterisk asterisk
Crearemos el directorio /var/run/asterisk:
sudo mkdir /var/run/asterisk
Ahora editaremos la configuración de asterisk para que utilice el directorio que acabamos de crear como directorio de ejecución:
sudo vi /etc/asterisk/asterisk.conf
La linea a cambiar es la que dice

astrundir => /var/run

y la debemos dejar así:

astrundir => /var/run/asterisk
Ahora instalremos unos cuantos paquetes perl necesarios para FreePBX y Asterisk con los siguientes comandos:
sudo perl -MCPAN -e 'install +YAML'
Contesaremos a todo que si hasta que nos deje de nuevo en la consola
sudo perl -MCPAN -e "install IPC::Signal"
sudo perl -MCPAN -e "install Net::Telnet"
sudo perl -MCPAN -e "install Proc::WaitStat"
Ahora crearemos las bases de datos necesarias para que FreePBX vaya llenando las tablas con nuestras configuraciones y luego pase a los archivos de asterisk lo necesario para su funcionamiento, recordad que los passwords que pedirán estos comandos son los que pusimos en la instalación de mysql-server
sudo mysqladmin create asteriskcdrdb -p
sudo mysql --user=root --password=TU_PASSWORD asteriskcdrdb < /usr/src/freepbx-2.9.0/SQL/cdr_mysql_table.sql
sudo mysqladmin create asterisk -p
sudo mysql --user root -p asterisk < /usr/src/freepbx-2.9.0/SQL/newinstall.sql
sudo mysql --user root -p
mysql> GRANT ALL PRIVILEGES on asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'TU_PASSWORD_ASTERISK';

mysql> GRANT ALL PRIVILEGES on asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'TU_PASSWORD_ASTERISK';

mysql> FLUSH PRIVILEGES;

mysql> quit

Perfecto ya tenemos creadas las bases de datos con sus tablas y sus datos, ahora debemos decirle a apache2 que se ejecute como el usuario que creamos llamado asterisk y que pertenezca al grupo llamado tambien asterisk, para ello editaremos el archivo /etc/apache2/envvars y sustituiremos www-data por asterisk.
sudo vi /etc/apache2/envvars
Lo dejaremos así:
# envvars - default environment variables for apache2ctl

# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=asterisk
export APACHE_RUN_GROUP=asterisk
export APACHE_PID_FILE=/var/run/apache2.pid

Reinciamos apache2:
sudo /etc/init.d/apache2 restart
Luego nos aparecerá el siguiente error

apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Para corregir este problema, necesitas editar el archivo httpd.conf
sudo vi /etc/apache2/httpd.conf
Por defecto el archivo httpd.conf esta en vacío, simplemente escribe lo siguiente.

ServerName localhost

Guarda el archivo y cierra el editor, y finalmente reinicias el servidor.

sudo /etc/init.d/apache2 restart


Antes de lanzar la instalación de FreePBX, debemos asegurarnos que asterisk está funcionando:
sudo kill -9 `pidof asterisk`
sudo asterisk
sudo ./install_amp
Nos debe aparecer algo como esto:
Checking for PEAR DB..OK
Checking for PEAR Console::Getopt..OK
Checking user..OK
Checking if Asterisk is running..running with PID: 29968..OK
Checking for /etc/amportal.conf../etc/amportal.conf does not exist, copying default
Creating new /etc/amportal.conf
Enter your USERNAME to connect to the 'asterisk' database:
[asteriskuser]
Enter your PASSWORD to connect to the 'asterisk' database:
[amp109] TU_PASSWORD
Enter the hostname of the 'asterisk' database:
[localhost]
Enter a USERNAME to connect to the Asterisk Manager interface:
[admin]
Enter a PASSWORD to connect to the Asterisk Manager interface:
[amp111] TU_PASSWORD
Enter the path to use for your AMP web root:
[/var/www/html]
/var/www/freepbx
Created /var/www/freepbx
Enter the IP ADDRESS or hostname used to access the AMP web-admin:
[xx.xx.xx.xx]
Enter a PASSWORD to perform call transfers with the Flash Operator Panel:
[passw0rd] TU_PASSWORD
Use simple Extensions [extensions] admin or separate Devices and Users [deviceanduser]?
[extensions]
Enter directory in which to store AMP executable scripts:
[/var/lib/asterisk/bin]

Created /var/lib/asterisk/bin
Enter directory in which to store super-user scripts:
[/usr/local/sbin]
Si llegado el caso nos aparece este error:
Checking for PEAR DB..FAILED
[FATAL] PEAR must be installed (requires DB.php). Include path: .:/usr/share/php:/usr/share/pear
entonces la solución es ejecutar en la consola
sudo pear install DB
y nuevamente ejecutar sudo ./install_amp
Después reiniciamos amportal

sudo amportal restart
Podemos comprobar visitando la página web de nuestra nueva centralita abriendo un navegador y entrando en la dirección http://xxx.xxx.xxx.xxx/freepbx
Aprovecharemos y actualizaremos FreePBX, entrad en FreePBX Administration de ahí os moveis a Module Admin, pulsad en Check for updates Online, y luego pinchad en Download All y Upgrade All y luego Process, repetir el proceso varias veces veces hasta que no quede nada por actualizar.
Para que podamos sacar llamadas por los canales Dahdi necesitaremos editar el archivo /etc/amportal.conf
sudo vi /etc/amportal.conf
Buscamos la linea comentada que pone
# ZAP2DAHDICOMPAT=true|false
La cual debe quedar asi:
ZAP2DAHDICOMPAT=true
De esta forma FreePBX sabrá configurar Asterisk para que utilize los canales Dahdi con la nueva nomenclatura y no con la antigua.
Reiniciad amportal:
sudo amportal restart­
Para que Asterisk y FreePBX se inicien cuando encendamos el equipo tendremos que realizar lo siguiente:
sudo vi /etc/init.d/inicia_asterisk.sh
Y añadiremos lo siguiente:
#!/bin/bash
/usr/local/sbin/amportal start

Demosle permisos de ejecución:
sudo chmod a+x /etc/init.d/inicia_asterisk.sh
Ahora crearemos un enlace simbólico para que al inicio del sistema llame al script que acabamos de crear:
sudo ln -s /etc/init.d/inicia_asterisk.sh /etc/rc2.d/S92inicia_asterisk
OK ESO ES TODO!!!

viernes, 20 de mayo de 2011

SERVICIO DE FAX EN ELASTIX

Primero debemos crear una extensión IAX.









Para nuestro caso elegimos la 401 y llenamos los siguientes campos.
User Extension = 401
Display Name = FAX
Secret = passwordfax

Una vez creada la extensión seleccionamos la pestaña superior que dice FAX y luego en la parte izquierda la opción New Virtual Fax. Allí introducimos los datos de nuestra extensión de Fax y el correo al cual queremos que nos lleguen los Faxes.





Recuerde que una vez creado nuestro FAX deberá aparecer con status Running and idle on ttyIAX1 de lo contrario no esta corriendo nuestro servicio de haylafax o IAXmoden en nuestra maquina. Por lo cual se debe iniciar por consola con las siguientes lineas.


# service iaxmodem start
# service hylafax start


Listo ya se puede decir que podemos recibir nuestros Faxes correctamente a nuestra maquina, pero no a nuestro correo. Para ello debemos configurar nuestro Postfix.

Configurando el servidor Postfix

La configuración de nuestro servidor postfix se encuentra en el archivo /etc/postfix/main.cf por tanto:

cd /etc/postfix
vi main.cf


Luego cambiamos las siguientes líneas:

#myhostname = host.domain.tld
#myhostname = virtual.domain.tld

Por:

myhostname = elastix.mydominio.com
#myhostname = virtual.domain.tld


Luego cambiamos:

#mydomain = domain.tld

Por:

mydomain = mydominio.com

ahora ingresamos el servidor SMTP por el cual se enviara el correo, que en nuestro caso es GMAIL.

#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]


Por:

#relayhost = $mydomain
#relayhost = [gateway.my.domain]
relayhost = smtp.gmail.com:587
#relayhost = uucphost
#relayhost = [an.ip.add.ress]


Guardamos los cambios realizados a main.cf, luego recargamos la configuración de POSTFIX.


postfix reload


Luego necesitas modificar otra vez el archivo main.cf con los siguientes cambios, estos estan al final del archivo.

################################
#Ingresado por yb-webadmin
mydomain =mydominio.com
myhostname = elastix.mydominio.local


Configurando la cuenta de correo
Creamos el archivo sasl_passwd (sin extension)

vi /etc/postfix/sasl_passwd

Dentro del archivo registramos la cuenta de correo (existente) y su respectiva clave, esta es la cuenta desde la cual se enviaran los correos.


smtp.gmail.com:587 usuario@gmail.com:miclavedegmail


Grabamos el archive sasl_passwd.
Luego lo ciframos:

postmap hash:/etc/postfix/sasl_passwd

Luego editamos el archive main.cf

vi /etc/postfix/main.cf

Agregamos las siguientes lineas al final

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =


grabamos el archivo y recargamos la configuracion del POSTFIX.

postfix reload

Como gmail usa SSL, necesitamos un certificado SSL, así que creamos uno propio, el cual será usado por el TLS

mkdir /etc/postfix/tls
cd /etc/postfix/tls
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

Dejar el 'challenge password' vacio:
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Agregar las siguientes lineas en el archivo /etc/postfix/main.cf:

smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/tls/smtpd.key
smtpd_tls_cert_file = /etc/postfix/tls/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/tls/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
tls_daemon_random_source = dev:/dev/urandom


Reiniciamos los servicios:

service saslauthd restart
service postfix restart


Para que inicien en el boot:

chkconfig postfix on
chkconfig saslauthd on

Para Revizar los logs de nuestro servicio de correo usamos:


tail -f /var/log/maillog


Abre otra consola y envia un correo para provar que esta funcionando correctamente.

mail destinatario@dominio.com
Subject: test
hello
.
Cc:


Luego de esto en el log debe salir algo parecido a esto y lo que importa es la palabra SENT:

elastix postfix/smtp[3257]: 08EAE21566: to=, relay=smtp.gmail.com[74.125.45.109]:587, delay=9.2, delays=0.21/0.06/6.8/2.1, dsn=2.0.0, status=sent (250 2.0.0 OK 1227556872 34sm10144335yxl. May 20:50:26 elastix postfix/qmgr[3250]: 08EAE21882: removed

Y Ya esta!!

miércoles, 4 de mayo de 2011

Problema del NAT en Asterisk

Hace un tiempo me encontre con el siguiente problema en una de mis instalaciones donde el cliente solicitaba una extensión por fuera de la red Local.

estaba usando X-lite mediante una cuenta SIP. La extensión se registraba OK.
Luego intentaba hacer una llamada y al establecerce no se escuchaba nada, al cabo de un rato la llamada se colgaba sola.

En un principio, todo parece ir bien, se inicia la llamada, se escucha el tono, y suena el teléfono de destino. El problema viene al descolgar, es decir, cuando el audio se establece entre los participantes de la conversación. En este punto, pueden pasar 2 cosas: que el llamante lo escuche a su interlocutor o que no haya audio en absoluto.

El protocolo SIP solo lleva la señalización de la llamada, mientras que el tráfico de audio (RTP) se intenta llevar a cabo de extremo a extremo. El problema viene por que el puerto al que se manda el audio es aleatorio. El router es capaz de dirigir correctamente la señalización, pero es incapaz de saber si el tráfico RTP es de esa llamada, y no sabe a donde mandarlo (debería mandárselo al mismo que la señalización). Como consecuencia, el audio no fluye correctamente entre los 2 interlocutores.

La solucion es Simple..

Instalé el Softphone Zoiper Mediante una Cuenta IAX y problema solucionado.