jueves, 7 de junio de 2012

CDR-STATS en Asterisk

Prerequisitos tener instalado asterisk Addons, el tuto de como instalarlo esta en este mismo blog
http://it-yoda.blogspot.com.ar/2012/01/instalacion-de-asterisk-16.html

apt-get -y install python-setuptools python-dev build-essential
apt-get -y install libapache2-mod-python libapache2-mod-wsgi
easy_install pip
easy_install virtualenv

Instalamos MySQL y establecemos nuestra contraseña para el usuario root de la base de datos.

apt-get -y install mysql-server libmysqlclient-dev
apt-get -y install git-core
apt-get install mercurial
mkdir /usr/share/django_app/
cd /usr/src/
wget --no-check-certificate https://github.com/Star2Billing/cdr-stats/tarball/v1.4.0
mv v1.4.0 Star2Billing-cdr-stats-v1.4.0.tar.gz
tar xvzf Star2Billing-cdr-stats-*.tar.gz
rm -rf Star2Billing-cdr-stats-*.tar.gz 
mv cdr-stats cdr-stats-$DATETIME
mkdir /usr/share/django_app/cdr_stats
mv Star2Billing-cdr-stats-* cdr-stats
mv /usr/share/django_app/cdr_stats archive_cdr-stats-$DATETIME
ln -s /usr/src/cdr-stats/cdr_stats /usr/share/django_app/cdr_stats


pip install -r /usr/share/django_app/cdr_stats/requirements.txt
RANDPASSW=`</dev/urandom tr -dc A-Za-z0-9| (head -c $1 > /dev/null 2>&1 || head -c 50)`
sed -i "s/^SECRET_KEY.*/SECRET_KEY = \'$RANDPASSW\'/g" /usr/share/django_app/cdr_stats/settings.py
sed -i "s/DEBUG = True/DEBUG = False/g" /usr/share/django_app/cdr_stats/settings.py
sed -i "s/TEMPLATE_DEBUG = DEBUG/TEMPLATE_DEBUG = False/g" /usr/share/django_app/cdr_stats/settings.py

# Setup settings.py
sed -i "s/backends.sqlite3/backends.mysql/" /usr/share/django_app/cdr_stats/settings.py
sed -i "s/.*'NAME'/ 'NAME': 'cdrstats',#/" /usr/share/django_app/cdr_stats/settings.py
sed -i "/'USER'/s/''/'root'/" /usr/share/django_app/cdr_stats/settings.py
sed -i "/'PASSWORD'/s/''/'mi_password_root'/" /usr/share/django_app/cdr_stats/settings.py
sed -i "/'HOST'/s/''/'localhost'/" /usr/share/django_app/cdr_stats/settings.py
sed -i "/'PORT'/s/''/'3306'/" /usr/share/django_app/cdr_stats/settings.py
mysql -u root -p
Enter password:mi_password_root

#Creamos la base de datos

mysql> CREATE DATABASE cdrstats;
GRANT SELECT,INSERT ON cdrstats.* TO root@localhost IDENTIFIED BY 'mi_password_root';


mysql>USE cdrstats;
Database changed
mysql> CREATE TABLE cdr (
    ->   calldate datetime NOT NULL default '0000-00-00 00:00:00',
    ->   clid varchar(80) NOT NULL default '',
    ->   src varchar(80) NOT NULL default '',
    ->   dst varchar(80) NOT NULL default '',
    ->   dcontext varchar(80) NOT NULL default '',
    ->   channel varchar(80) NOT NULL default '',
    ->   dstchannel varchar(80) NOT NULL default '',
    ->   lastapp varchar(80) NOT NULL default '',
    ->   lastdata varchar(80) NOT NULL default '',
    ->   duration int(11) NOT NULL default '0',
    ->   billsec int(11) NOT NULL default '0',
    ->   disposition varchar(45) NOT NULL default '',
    ->   amaflags int(11) NOT NULL default '0',
    ->   accountcode varchar(20) NOT NULL default '',
    ->   uniqueid varchar(32) NOT NULL default '',
    ->   userfield varchar(255) NOT NULL default ''
    -> );
Query OK, 0 rows affected (0.03 sec)
quit 
python manage.py syncdb


#Collect static files from apps and other locations in a single location.
python manage.py collectstatic -l --noinput

#preparamos el Apache y cargamos la configuracion en el archivo cdr-stats.conf


echo '
Listen *:9000

<VirtualHost *:9000>
DocumentRoot /usr/share/django_app/cdr_stats/
ErrorLog /var/log/err-cdr-stats.log
LogLevel warn

WSGIPassAuthorization On
WSGIDaemonProcess cdr_stats user=www-data user=www-data threads=25
WSGIProcessGroup cdr_stats
WSGIScriptAlias / /usr/share/django_app/cdr_stats/django.wsgi

<Directory /usr/share/django_app/cdr_stats>
Order deny,allow
Allow from all
</Directory>

</VirtualHost>


' > /etc/apache2/sites-enabled/cdr-stats.conf

#corregimos el archvode arriba
sed -i "s/@/'/g" /etc/apache2/sites-enabled/cdr-stats.conf

#asignamos permisos en python-egg
mkdir /usr/share/django_app/cdr_stats/.python-eggs
chmod 777 /usr/share/django_app/cdr_stats/.python-eggs


chown -R www-data.www-data /usr/share/django_app/cdr_stats/database/
#Reiniciamos el servicio de Apache
service apache2 restart

==========================================

Como ya dijimos en los prerequisitos que tenemos que tener  instalado el modulo cdr_addon_mysql, presente en los addons de Asterisk, es preciso indicar que se utilizara el campo uniqueid, este de manera predeterminada no viene activo cuando trabajamos con MySQL al guardar el CDR, así que debemos agregar la siguiente linea en el archivo Makefile que se encuentra de la carpeta de asterisk-addons-* y despues de esto compilar e instalar.
colocar en el archivo Makefile que se encuentra en /usr/src/asterisk-addons-*/Makefile
#agregar al final la siguiente línea tal como está


#Esta opcion es para Asterisk 1.4.18 o anterior

ASTCFLAGS+=-DMYSQL_LOGUNIQUEID  
# sino utilizar esta linea
CFLAGS+=-DMYSQL_LOGUNIQUEID


#Luego en /usr/src/asterisk-addons-*/ compilamos

make clean
./configure
make
make install


# y esta otra linea en el  /usr/src/asterisk-addons-*/cdr/cdr_addon_mysql.c :

#define MYSQL_LOGUNIQUEID

========================
Especificamos los parametros de conexión en /etc/asterisk/cdr_mysql.conf


[global]
hostname=localhost
dbname=cdrstats
table=cdr
password=mi_password_root
user=root
port=3306
loguniqueid=yes
userfield=1
===================
# verificamos que se haya cargado el módulo de mysql para asterisk
asterisk -rvvvv
asteriskpbx*CLI> module show like mysql
# y debería mostrar algo como lo siguiente
Module                         Description                              Use Count
cdr_addon_mysql.so             MySQL CDR Backend                        0
app_addon_sql_mysql.so         Simple Mysql Interface                   0
res_config_mysql.so            MySQL RealTime Configuration Driver      0
3
modules loadedI>
#ahora vemos el status de la conexión de MySQL
asteriskpbx*CLI> cdr mysql status
# mostrara algo como lo siguiente
Connected to cdrstats@localhost, port 3306 using table cdr for 1 hours, 1 minutes, 0 seconds.
  Wrote 1 records since last restart.
    -- Registered IAX2 '300' (AUTHENTICATED) at 127.0.0.1:32768
#Si dice Not Connected entonces verificar los parámetros de conexión a la base de datos e igual checar que la base de datos esté dada de alta.
#salimos
asteriskpbx*CLI> exit

#Checamos el registro de la base de datos
mysql -u root -p 
mi_password_root
mysql> select * from cdr;
+---------------------+-------------+-----+--------+-----------+------------------+
| calldate            | clid        | src | dst    | dcontext  | channel
+---------------------+-------------+-----+--------+-----------+------------------+
| 2012-07-06 21:36:44 | "1110" <Soporte > | 1110   |
+---------------------+-------------+-----+--------+-----------+------------------+
1
row in set (0.00 sec)
  ============


jueves, 19 de abril de 2012

Servidor DHCP en debian


Para instalar el servidor DHCP, ejecutamos el siguiente comando:

# apt-get install dhcp3-server

Hacemos un backup de nuestro archivo de configuración original para esto copiamos el archivo /etc/dhcp3/dhcpd.conf a /etc/dhcp3/dhcpd.conf.ori.

#cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.ori

Borramos el archivo dhcpd.conf y lo volvemos a crear vacio.

#rm etc/dhcp3/dhcpd.conf
#vim etc/dhcp3/dhcpd.conf

Editamos el archivo y colocamos los parámetros de nuestra red.

authoritative;
subnet 10.5.0.0 netmask 255.255.0.0 {
   range 10.5.100.1 10.5.120.254;
   option domain-name-servers 10.5.0.17;
   option domain-name "mired.interna";
   option routers 10.5.0.1;
   option broadcast-address 10.5.255.255;
   default-lease-time 600000;
   max-lease-time 720000;
}

Una vez que guardamos los cambios en el archivo /etc/dhcp3/dhcpd.conf.

Restarteamos el servicio

# /etc/init.d/dhcp3-server restart

La configuración anterior es para nuestra red 10.5.0.0/24 donde dara IPs automáticas con el rango 10.5.100.1 10.5.120.254.
El nombre del dominio es mired.interna. La dirección de router o puerta de enlace es 10.5.0.1. , el servidor de dns es el 10.5.0.17

Para ver las direcciones IP que asigna ejecutamos el siguiente comando

#cat /var/lib/dhcp3/dhcpd.leases

lunes, 16 de abril de 2012

Significado campos Master.csv asterisk

Muchas veces nos preguntamos cual es el significado de los campos del archivo que nos informa los detalles de las llamadas que se realizaron, por tal motivo publico lo que significa cada campo.

La informacion se guarda en el siguiente archivo /var/log/asterisk/cdr-csv/Master.csv que tiene los siguientes campos:

;Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})},${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})}


clid: Caller*ID con el texto (80 characters)
src: número del caller ID (string, 80 characters)
dst: extensión destino (string, 80 characters)
dcontext: contexto destino (string, 80 characters)
channel: canal utilizado (80 characters)
dstchannel: Destination channel if appropriate (80 characters)
lastapp: La última aplicación o accion realizada (80 characters) por lo general es HANGUP     cuando el destino corta la llamada sin contestar y es DIAL cuando el origen llama y la llamada es atendida o no por el destinatario.
lastdata: La última solicitud de datos (arguments) (80 characters) es a quien se solicita que atienda la llamada. esta informacion la saca del extensions.conf
start: comienzo de la llamada (date/time)
answer: respuesta de la llamada (date/time)
end: fin de la llamada (date/time)
duration: duración de la llamada en segundos, desde que fue discada hasta el corte (integer)
billsec: duración de la llamada en segundos, desde que fue atendida hasta el corte (integer)
disposition: estado de la llamada (atendida, no atentendida, ocupado, fallida).
amaflags: Se usa para guardar en los CDR  temas de facturación . Puede ser "default", "omit", "billing", o "documentation"
accountcode: código de la cuenta a utilizar: cuenta de facturación de Asterisk, (string, 20 characters)
uniqueid: identificador de canal unico (32 characters)
user field: A user-defined field, maximum 255 characters




miércoles, 4 de abril de 2012

Convertir Telefono Cisco 7912 con soporte SIP


En este tutorial vamos a explicar como convertir nuestro telefono Cisco 7912 con soporte SIP para poder utilizarlo con Asterisk
El Cisco 7912 por defecto no tiene soporte para el protocolo SIP, para que pueda funcionar con SIP es necesario actualizar el firmware del telefono.

El archivo que necesitamos bajar de la pagina de CISCO es el CP7912080001SIP060412A.ZIP que corresponde al firmware que posee soporte para protocolo SIP.

  • bmp2logo.exe (Convert bitmap file to Cisco IP phone binary format)
  • cfgfmt.exe (Convert SIP profile from text to binary (Windows))
  • cfgfmt.linux (Convert SIP profile from text to binary (Linux))
  • cfgfmt.sun (Convert SIP profile from text to binary (Solaris))
  • prserv.exe (Capture Cisco IP phone debug outputs (Windows))
  • prserv.linux (Capture Cisco IP phone debug outputs (Linux))
  • prserv.sun (Capture Cisco IP phone debug outputs (Solaris))
  • sip_ptag.dat (SIP parameter tags file for use with 'cfgfmt.exe')
  • sipexample.txt (Sample Cisco 7905G/7912G IP phone SIP profile
  • gkdefault.cfg
  • CP7912080001SIP060412A.sbin (Cisco 7912G generic binary profile for quick upgrade )

    1. Descomprimir el archive y el, elegir los archivos, CP7912080001SIP060412A.sbin, gkdefault.cfg y gkdefault.txt, los cuales deberán ser copiados en otro directorio que será utilizado por el programa de TFTP de su preferencia.
    2. Para el caso de de el presente trabajo se utizara el programa SOLARWIN-TFTP de la empresa 3COM, si usted necesita dicho programa se puede descargar del sitio http://solarwinds.net/ .
    3. Ejecute el archivo de instalación, cuando haya finalizado, se habrá creado un subdirectorio denominado c:\TFTP-Root\, en cual deben colocarse los archivos de configuración descritos en el numeral 1).
    4. configure los valores de red a fin de que tengan los mismos valores que el teléfono. Si desconoce estos valores, puede presionar el botón  configuración y elegir la opción Setting para determinar el valor por defecto.
    5. Si desea editar alguno de los valores de la configuración del teléfono, debe utilizar el teclado numérico del teléfono y digite la siguiente secuencia de teclas: * - * - # (asterisco, asterisk, numeral) lo que le habilitara las opciones de edición de cada valor. El password por defecto es 1234.
    6. en el campo de Setting/Lan Setting/ en la opción TFTP Server, debe colocarse la dirección IP de su maquina o de la maquina que tenga instalado Solarwind, y en el valor de IP LAN debe colocarse el valor que se asignara a el IP7912G.
    7. En su maquina donde se tenga instalado SOLARWIND debe configurarse en las opciones FILE/Server Configuración, tal como se muestra en la siguiente grafica:
    8. En la solapa de Security debe configurarse la opción Trasmit and Receive Files, para efectuar la carga del nuevo archivo de firmware.
    9. a fin de verificar que existe comunicación entre el teléfono y la computadora debe efectuar un ping a la dirección de Red de teléfono, si se responde satisfactoriamente entonces puede afectarse la actualización de los archivos. C:\> Ping 192.168.1.101
    10. En la pantalla principal de SolarWind se mostraran los mensajes correspondientes a la carga del nuevo firmware, y en la pantalla del teléfono se observaran los mensajes de actualización del mismo.
    11.  Una vez finalizada la carga, deberá apagar y encender el teléfono para verificar el cambio de firmware.
    12. Con la tecla de configuración vuelva a entrar al modo configuración y en la opción Configuración/SIP Configuración deberá colocar los siguientes valores.
·         Servidor PROXY : 192.168.1.108 (IP de mi asterisk)
·         ID USUARIO : 1111
·         PASSWORD : 1111
·         PUERTO : 5060
·         USER LOGIN ID: YES
·         LOGIN ID: 1111

    1. En la opción de Adicionar Extensiones de TRIXBOX proceda a crear el número de teléfono 1111, y asígnelo a un grupo.
    2.  A partir de este momento podrá utilizar su teléfono dentro del entorno de Asterisk

martes, 27 de marzo de 2012

postfix gmail error warning: SASL authentication failure: No worthy mechs found

Problema

El postfix una vez configurada una cuenta de gmail para el envio de correo nos da el siguiente error var.log.mail.log

Sep 23 15:10:24 monitor postfix/qmgr[1683]: 4CF941E68211: from=, size=356, nrcpt=1 (queue active)
Sep 23 15:10:24 monitor postfix/smtp[1685]: warning: SASL authentication failure: No worthy mechs found
Sep 23 15:10:24 monitor postfix/smtp[1685]: 4CF941E68211: SASL authentication failed; cannot authenticate to server smtp.gmail.com[209.85.229.109]: no mechanism available
Sep 23 15:10:24 monitor postfix/smtp[1685]: warning: SASL authentication failure: No worthy mechs found
Sep 23 15:10:24 monitor postfix/smtp[1685]: 4CF941E68211: to=, relay=smtp.gmail.com[209.85.229.108]:587, delay=313, delays=313/0.01/0.18/0, dsn=4.7.0, status=deferred (SASL authentication failed; cannot authenticate to server smtp.gmail.com[209.85.229.108]: no mechanism available)


Solucion

#apt-get install libsasl2-modules
#/etc/init.d/postfix restart


FUENTE:http://elmurodelsaber.com

viernes, 9 de marzo de 2012

Mensajes de voz por correo


En este documento detallaremos los pasos necesarios para que cuando alguien nos deje un mensaje de voz en nuestro buzón, se envié por mail un archivo wav con el mensaje que nos dejaron. En este caso utilizaremos una cuenta de gmail para el envió del mensaje.

Prerequisitos
Tener instalado Postfix

#apt-get install postfix libsasl2-modules
En el archivo /etc/asterisk/voicemail.conf configuramos la casilla del interno y agregamos las siguientes líneas:
[default]
1004 => 1234,Jefe Ventas,micuenta@yahoo.com

Configurar una cuenta Gmail en Postfix para enviar correo de Asterisk

Utilizamos una cuenta creada en gmail  "cuenta@gmail.com" y su contraseña: "contraseña"
Pasos:

1) editamos el archivo /etc/postfix/main.cf.
2) Eliminamos el contenido.
3) Agregamos las siguientes líneas: 

# SMTP relayhost
relayhost = [smtp.gmail.com]:587
## TLS Settings
smtp_tls_loglevel = 1
smtp_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtp_tls_cert_file = /etc/postfix/certs/mycert.pem
smtp_tls_key_file = /etc/postfix/certs/mykey.pem
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/certs/CAcert.pem
smtpd_tls_cert_file = /etc/postfix/certs/mycert.pem
smtpd_tls_key_file = /etc/postfix/certs/mykey.pem
smtpd_tls_received_header = yes
smtpd_use_tls = yes
# configuracion tls
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
# alias de mapeo interno a externo
smtp_generic_maps = hash:/etc/postfix/generic

4) Creamos el archivo sasl_passwd en /etc/postfix/
5) Agregamos las siguientes líneas:
[smtp.gmail.com]:587  cuenta@gmail.com:contraseña
6) Creamos el archivo generic en /etc/postfix/
7) Agregamos las siguientes líneas:
root@localhost.localdomain cuenta@gmail.com

aquí tenemos que cambiar el localhost por el nombre de la maquina y el
localdomain por el dominio local, lo podemos ver en /etc/hosts.

8) Cambiamos los permisos escribiendo lo siguiente:
chmod 600 /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/generic
9) Se cifran los archivos
postmap /etc/postfix/sasl_passwd
postmap /etc/postfix/generic

 En muchos foros aparece que para crear los certificados se deben seguir los siguientes pasos

[root@asterisk]# mkdir /etc/postfix/certs/
[root@asterisk]# cd /etc/postfix/certs/
[root@asterisk]# cd certs
[root@asterisk]# openssl dsaparam 1024 -out dsa1024.pem
[root@asterisk]# openssl req -x509 -nodes -days 3650 -newkey
dsa:dsa1024.pem -out mycert.pem -keyout mykey.pem
[root@asterisk]# ln -s mycert.pem CAcert.pem
[root@asterisk]# openssl req -x509 -new -days 3650 -key /etc/postfix/
certs/mykey.pem -out /etc/postfix/certs/mycert.pem
[root@asterisk]# rm dsa1024.pem
Cuando uno utiliza estos certificados para con una cuenta de gmail nos sale un error que se puede ver en los logs de mail (/var/log/mail) que decía:

certificate verification failed for smtp.gmail.com[74.125.157.109]:587: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority 

El problema radica en el hecho de que Google ha cambiado proveedores de certificados de Thawte a Equifax, y su sistema de correo no reconoce la autoridad de certificación de Equifax como válido. La solución es añadir una copia del certificado de Equifax como certificado root   local de Postfix.  Para solucionar este problema hacemos el paso 10.
 Hacer previamente estos pasos:

[root@asterisk]# mkdir /etc/postfix/certs/
[root@asterisk]# cd /etc/postfix/certs/
[root@asterisk]# ln -s mycert.pem CAcert.pem
10) Creamos una copia local de los certificados Equifax y  Thawte que utiliza Gmail :

Creamos  un archivo llamado Equifax_Secure_CA.pem en el  /etc/postfix/ que contenga lo siguiente:
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE
ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT
B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB
nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR
fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW
8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG
A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE
CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG
A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS
spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB
Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961
zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB
BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95
70+sB3c4
-----END CERTIFICATE-----

Creamos  un archivo llamado Thawte_Premium_Server_CA.pem en el  /etc/postfix/ que contenga lo siguiente:

-----BEGIN CERTIFICATE-----
MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT
DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs
dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE
AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl
ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT
AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU
VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2
aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ
cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2
aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh
Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/
qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm
SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf
8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t
UCemDaYj+bvLpgcUQg==
-----END CERTIFICATE-----

11) Agregamos los certificados a nuestro certificado root
cat /etc/postfix/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem
echo >> /etc/postfix/cacert.pem
cat /etc/postfix/Thawte_Premium_Server_CA.pem >> /etc/postfix/cacert.pem

12) Reiniciamos el postfix
 /etc/init.d/postfix reload

13) Probamos el envió desde la terminal:
echo "contenido a ser enviado en el correo" | mail -s "asunto del correo"  tucuenta@email.com

Como detectar equipos obsoletos en AD con oldcmp


Muchas veces nos sucede a la gente que trabajamos en IT que nuestros compañeros de soporte técnico  formatean la PC sin avisarnos ni sacarla de dominio, por lo cual nos quedan equipos obsoletos en el Active Directory. En este documento vamos a ver los pasos necesarios para borrar dichos  equipos en Active Directory en Windows server 2003.
Para poder ver cuales son los equipos obsoletos en Active Directory vamos a usar la herramienta olcmp. La cual la podemos bajar de el siguiente link. www.joeware.net/freetools/tools/oldcmp/
Una vez descargada la aplicación la guardamos en la raíz de nuestro disco c:\>
Desde una línea de comandos ejecutamos: oldcmp /report /age 180
Este comando nos genera un archivo html con la PCs que no se registraron al dominio en los últimos 180 dias.





Ahora seleccionamos el text del campo Search Filter y lo copiamos
(&(objectcategory=computer)(pwdLastSet<=128777925504890000))
Nos conectamos a un Domain Controller y creamos una consulta de Active Directory:
Inicio -> ejecutar -> dsa.msc



Pulsamos con el botón derecho sobre Consultas guardadas -> Nuevo -> Consulta.



Le damos un nombre a la consulta en el campo Nombre y pulsamos sobre Definir consulta…

En el desplegable Buscar: Seleccionamos Búsqueda personalizada.
En la pestaña Opciones avanzadas pegamos el valor Search File que hemos conseguido con el programa oldcmp y pulsamos sobre Aceptar y Aceptar de nuevo.
Ahora en la columna de la derecha en la mmc de Usuarios y equipos de Active Directory nos aparecerán todos los equipos que no se han validado en el dominio durante más de 180 días. (NO SE PUEDEN ELIMINAR TODAVÍA).
Pulsamos con el botón derecho sobre la consulta creada y pulsamos sobre Exportar lista para crear un fichero que podamos usar para hacer un ping a cada uno de los equipos. Esto nos servirá para comprobar realmente si estos se pueden eliminar.
Advertencia: En ocasiones existen equipos que no contactan con Active Directory en 180 días bien por que no se han reiniciado o por que nadie ha iniciado sesión desde ellos, en ese caso aparecerá en esta lista.
Para chequear que todos los equipos que vamos a eliminar van a ser realmente válidos para su eliminación vamos a realizar un último paso que es realizar un ping a la lista de elementos que nos ha devuelto la consulta LDAP.
Para hacerlo podemos seguir este procedimiento:
Suponiendo que el fichero exportado se llama equiposobsoletos.txt desde una línea de comandos ejecutamos el siguiente comando:

(for /F %i in (equiposobsoletos.txt) do ping -n 1 %i) >resultado.txt

Cuando tengamos el proceso finalizado debemos ejecutar el siguiente comando para detectar los equipos que responden a ping:

C:\>@find /i "Haciendo ping a" resultado.txt

El resultado de este find son los equipos que no debemos eliminar. También podemos hacer un ping inverso “ping –a” para detectar si realmente no es un problema con el dns.
Finalmente y para terminar con este proceso ya podemos eliminar todos los equipos devueltos por la consulta excepto los listados en el paso anterior.

FUENTE: http://www.megacrack.es