lunes, 20 de febrero de 2012

Utilizar SMTP server de gmail para servers en linux

Quien no se ha encontrado que cuando instala un paquete de crm,cms, e-commerce o cualquier herramienta/portal basado en Linux opensource ha querido tener las funcionalidades de envío de correo y no se ha visto capaz por varios motivos. Eso se puede solucionar utilizando el servidor SMTP de Gmail, que no se puede configurar como un postfix /relay normal, ya que pide conexiones seguras y certificado. No nos dejemos asustar, el proceso es fácil y lo detallo a continuación (nota: sobre Ubuntu):

Módulos necesarios:
Postfix y libsasl2-2 (instalables con apt-get install paquete )

Pasos:


      1. Instalación de libsasl2-2
        • sudo apt-get install libsasl2-2
          sudo apt-get install libsasl2-modules
      2.  Creación certificados
En raiz con usuario normal
/usr/lib/ssl/misc/CA.pl –newca
Esto creará el certificado, apuntar los diferentes apartados para después, ejemplo:
Making CA certificate
Generating a 1024 bit RSA private key
writing new private key to ?./demoCA/private/cakey.pem?
Enter PEM pass phrase: password
Verifying ? Enter PEM pass phrase: password
??
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) [US]: SP
State or Province Name (full name) []:Castillalamancha
Locality Name (eg, city) []:Albacete
Organization Name (eg, company) []:mycompany


Organizational Unit Name (eg, section) []:GRI
Common Name (eg, YOUR name) []:Miguel
Email Address []:username@gmail.com


Please enter the following “extra” attributes
to be sent with your certificate request
A challenge password []: [blanco a proposito]
An optional company name []:[blanco a proposito]
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem: password
Check that the request matches the signature
Signature ok

      1. Creación de servidor de certificación
Introducir en una sola línea y con los datos adecuados :
openssl req -new -nodes –subj '/CN=miguel/O=mycompany/C=SP/ST=Castillalamancha/L=Albacete/emailAddress=username@gmail.com' -keyout YOURSERVER-key.pem -out YOURSERVER-req.pem -days 3650
      1. Firmar el certificado
openssl ca -out YOURSERVER-cert.pem -infiles YOURSERVER-req.pem
Using configuration from
/usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem: [blanco a proposito]
Check that the request matches the signature
Signature ok
      1. Copiar los certificados a la carpeta de Postfix como root o sudo
# cd /home/youruserid/
# cp demoCA/cacert.pem YOURSERVER-key.pem YOURSERVER-cert.pem /etc/postfix
# chmod 644 /etc/postfix/YOURSERVER-cert.pem /etc/postfix/cacert.pem
# chmod 400 /etc/postfix/YOURSERVER-key.pem
      1. Modificación de fichero /etc/postfix/main.cf
## TLS Settings
#
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_cert_file = /etc/postfix/YOURSERVER-cert.pem
smtp_tls_key_file = /etc/postfix/YOURSERVER-key.pem
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/YOURSERVER-cert.pem
smtpd_tls_key_file = /etc/postfix/YOURSERVER-key.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtp_tls_loglevel = 2
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
#
## SASL Settings
# This is going in to THIS server
smtpd_sasl_auth_enable = no
# We need this
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtpd_sasl_local_domain = $myhostname
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtpd_sasl_application_name = smtpd


#Make sure the following lines are also in main.cf
relayhost = [smtp.gmail.com]:587
transport_maps = hash:/etc/postfix/transport
      1. Creación del fichero transport en /etc/postfix/
# vi /etc/postfix/transport


# Contents of /etc/postfix/transport
#
# This sends mail to Gmail
gmail.com smtp:[smtp.gmail.com]:587
#
      1. Crear el password SALS, poniendo nuestros datos de la cuenta gmail (crear una generica)
# cd /etc/postfix/sasl
# vi /etc/postfix/sasl/sasl_passwd



#contents of sasl_passwd
#
gmail-smtp.l.google.com youruser@gmail.com:password
smtp.gmail.com youruser@gmail.com:password
      1. Hashear los siguiente ficheros (los convertirá a .db)
# postmap /etc/postfix/sasl/sasl_passwd && postmap /etc/postfix/transport
      1. Reiniciar postfix y comprobar
# /etc/init.d/postfix restart


Instalar  mailutils
# which mails
# apt-get install mailutils
# which mailx
# echo "testing" |mailx -s "testing"
youruser@gmail.com


Los errores se pueden ver en:
# tail -f /var/log/mail.log

Tags

100 consejos 2 steps trouble 50gb cloud free acceso remoto acronis active directory activex AD administracion linux alta dyndns.com analytics android ape APN apt-get articulo request tracker 4 auditoria auditoría wireless b2b Backup backup on line backup online Backupify banco de españa Bancos bash bat bitlocker blogger_TID bloqueo usuario boomerang box box.net broute btrieve bugtraking bussines caducado cálculo callrecorder camara ip cambios catastro certificados Chrome cif Citrix Cloud cloud backup cloud computing cloud server cloudring cloudringapp.com cluod storage cmd cms CNMV comandos comercio electroinco Comisiones TPV computing condiciones tienda consola contraseña root cookie cookies Copia de seguridad copia seguridad correo correo electronico correo eléctronico cpu creacion servidor crm CSS desastre diagramly diferido directorio activo directorios disable dmesg Docs DOS drivers dropbox dropittome dropsync du du -sch dyndns e-commerce e-commerce mail shop ecommerce enviar mas tarde envío escritorio compartido esquemas estructura etiquetas inteligentes excel excepciones exclude dropbox exec Execpciones Java fhs ficheros find firewall firma fiscal flujo for formulario formularios free space ftp gdocs gdrive gmail gmail 2 pasos problema godaddy google apps google drive google history google search google+ GOYSCRIPT grabación de llamadas hacienda hang-out hangout hoja host dinamico i.e iass indra intalacion webmin interfaz metro internet explorer ip dinamica ipcam iva e-commerce Java joomla LAMP LDAP ley ley blogger ley cookies libros limpiar ubuntu linux linux password linux root logística LPIC mail mail notification mail server mamp MCSA memoria alta microsoft Ministerio Justicia Mis Documentos copia de seguridad molero monitor rendimiento montar usb mount mrw mta multishop mx Mysql net use NFC notificacion notificaciones novell 5.1 nube nube hibrida nube privada nube publica objetivo web Office on line Oracle organizaciones paas Pasarela de pago password root PAW pearltrees pedidos perfmon portapapeles postfix postfix gmail powershell precio prerequisitos ecommerce prestashop privacidad privacidad datos programación correo electrónico protección de datos proxy psexec puertos purgar pymes rackspace rackspace.com recover root recovery password linux recuperar root password recursos redirección registradores.org registro registry remoto rendimiento. windows 7 request tracker request tracker 4 article RESEVI ring rkhunter root linux root password root ubuntu rootkit router rt saas sals scheduled task script scripting scripts Secure SSH seguimiento seguridad send later server sincronización siret sitios seguros skydrive smalll server smartphone smtp smtp gmail relay smtp notification SSH ssl substitución system systernals tamaño directorio telefónica templates thatwe thunderbird ticketing tienda online tienda virtual tienda web token TPV virtual track translation two steps verification ubuntu ubuntu 12 ubuntu gmail relay unix upload urdangarín usb usbdisk ubuntu usuario validate.tpl variable VDA VDAAGENT verificación dos pasos vi virtual appliance virtualización novell visio vmware vritualdesktop w8 w8 gmail Wannacry webdav webmaster tools webmin websigner websigner.cab wifislax windos azure windows windows 7 windows 8 Windows Azure windows2012 windows8 wordpress workstation WPA xampp xargs XENDESKTOP zimbra on rackspace