Sysena

Tag: linux

Serveur postfix avec google apps

by on jan.17, 2011, under Systeme

Ce petit guide à pour but de vous aider à configurer postfix pour envoyer des mails via un compte google apps (ou gmail). Ça évitera quelques calvities précoces :D

Ce guide utilise le domaine « sysena.com » ou dans le cas des adresses mails  »domain.tld » (pour ne pas me faire spammer gratuitement). Pensez à le remplacer partout ou c’est nécessaire.

Installation de Postfix

apt-get install postfix (ou eventuellement dpkg-reconfigure postfix si vous l’avez deja installé).

Répondez aux différentes questions :

Satellite sysem
System mail name : sysena.com
SMTP relay host : smtp.gmail.com
Root and postmaster : mail
Other destinations to accept mail : sysena.com, localhost (et d'autres si nécéssaire)
Force synchronous updates : yes
local networks : laissez par défaut (à moins que vous ne sachiez explicitement ce que vous faites)
Mailbox size limit : 0 (illimité)
Local address extension character : +
Internet protocols to use : ipv4 dans la plupart des cas

Mise à jour du fichier de configuration

Ajoutez/Modifiez les champs du fichier /etc/postfix/main.cf

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

Il est possible de tout mettre à la fin du fichier,  avec d’éventuel doublon, postfix ne tiendra compte que de la dernière valeur.

Création du fichier sasl_passwd

echo "smtp.gmail.com user@domain.tld:password" > /etc/postfix/sasl_passwd

Hashage du fichier

postmap /etc/postfix/sasl_passwd

A ce stade la, votre serveur est déjà fonctionnel. Vous pouvez tester l’envoi de mail via :

echo test | mail "user@domain.tld"

Maintenant, on peut customiser un peu. (et pourquoi pas :p)

Création d’un certificat racine

cd /usr/lib/ssl/misc/
./CA.pl -newca

Afficher »

root@ks33059:/usr/lib/ssl/misc# ./CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Generating a 1024 bit RSA private key
...........++++++
..............++++++
writing new private key to './demoCA/private/cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
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) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:sysena.com
Organizational Unit Name (eg, section) []:Sysena
Common Name (eg, YOUR name) []:Sysena
Email Address []:name@domain.tld
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:xxxxxxxxxxxxxxx
An optional company name []:
Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            AA:AA:AA:AA:AA:AA:AA:AA
        Validity
            Not Before: Dec 30 23:20:30 2010 GMT
            Not After : Dec 29 23:20:30 2013 GMT
        Subject:
            countryName               = FR
            stateOrProvinceName       = France
            organizationName          = sysena.com
            organizationalUnitName    = Sysena
            commonName                = Sysena
            emailAddress              = name@domain.tld
        X509v3 extensions:
            X509v3 Subject Key Identifier:
                AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA
            X509v3 Authority Key Identifier:
                keyid:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA
                DirName:/C=FR/ST=France/O=sysena.com/OU=Sysena/CN=Sysena/emailAddress=name@domain.tld
                serial:AA:AA:AA:AA:AA:AA:AA:AA
            X509v3 Basic Constraints:
                CA:TRUE
Certificate is to be certified until Dec 29 23:20:30 2013 GMT (1095 days)
Write out database with 1 new entries
Data Base Updated

Création d’une clé privé

openssl req -new -nodes -subj '/C=FR/ST=France/O=sysena.com/OU=Sysena/CN=Sysena/emailAddress=name@domain.tld/L=Paris' -keyout sysena-key.pem -out sysena-req.pem -days 3650

Afficher »

Generating a 1024 bit RSA private key
.....++++++
..............++++++
writing new private key to 'sysena-key.pem'
-----

Création d’un certificat signé

openssl ca -out sysena-cert.pem -infiles sysena-req.pem

Afficher »

Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            8b:94:cc:41:ee:02:0a:4f
        Validity
            Not Before: Dec 31 00:57:43 2010 GMT
            Not After : Dec 31 00:57:43 2011 GMT
        Subject:
            countryName               = FR
            stateOrProvinceName       = France
            organizationName          = sysena.com
            organizationalUnitName    = Sysena
            commonName                = Sysena
            emailAddress              = name@domain.tld
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA
            X509v3 Authority Key Identifier:
                keyid:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA:AA
Certificate is to be certified until Dec 31 00:57:43 2011 GMT (365 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Si vous obtenez le message d’erreur « TXT_DB error number 2″, écrasez le fichier « demoCA/index.txt » par « demoCA/index.txt.old ». (Problème de certificat en double, que vous ne pouvez évidement pas révoquer). Il est aussi possible de jouer avec certains fichiers de conf, mais on va au plus simple ;p (voir no_unique_subject).

Copie des certificats vers postfix et permissions

cp demoCA/cacert.pem sysena-cert.pem sysena-key.pem /etc/postfix/
chmod 644 /etc/postfix/sysena-cert.pem /etc/postfix/cacert.pem
chmod 400 /etc/postfix/sysena-key.pem

Modification de la configuration de postfix

Ajoutez ça à la fin de votre fichier de configuration (ou modifiez les champs existants), ça vous evitera le man postfix hyper indigeste :D

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
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_cert_file = /etc/postfix/sysena-cert.pem
smtp_tls_key_file = /etc/postfix/sysena-key.pem
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/sysena-cert.pem
smtpd_tls_key_file = /etc/postfix/sysena-key.pem
smtp_use_tls = yes
smtpd_tls_received_header = yes
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
smtpd_sasl_auth_enable = no
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_local_domain = $myhostname
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtpd_sasl_application_name = smtpd
relayhost = [smtp.gmail.com]:587
transport_maps = hash:/etc/postfix/transport

Voila, la configuration est terminée.

Ajouter le certificat Equifax_Secure

Vous constaterez dans vos logs un message d’erreur désagréable :
certificate verification failed for smtp.gmail.com[209.85.229.109]:25: untrusted issuer /C=US/O=Equifax/OU=Equifax Secure Certificate Authority
Pour corriger le problème :
cat /etc/ssl/certs/Equifax_Secure_CA.pem >> /etc/postfix/cacert.pem

Si google change de certificat (avant c’etait thawte), il suffit de copier le bon certificat dans « cacert.pem ». ;)

Créer un fichier « transport »

Pour que les mails soient correctement acheminé, vous devez créer un fichier transport, que vous avez deja renseigné dans la conf.

echo "gmail.com smtp:[smtp.gmail.com]:587" >> /etc/postfix/transport
postmap /etc/postfix/transport

Problème rencontré avec google apps

/!\ Il est important d’utiliser une adresse différente de votre catch-all pour l’envoi de mail. En effet, tous les mails envoyés à partir de l’adresse utilisé par postfix, à destination de l’adresse utilisé par postfix (catch-all inclus), resteront uniquement dans la boite d’envoi. Ce comportement m’a causé pas mal de problème, avant de finalement trouver d’ou ça venait ! Créez donc une adresse dédié à l’envoi de mail par postfix, comme noreply@domain.tld, par exemple, et vous n’aurez plus de problème :)

Forward des mails locaux

Si vous souhaitez que tous les mails locaux, (comme les crons par exemple), soient automatiquement envoyé par postfix vous pouvez :
Créer un fichier .forward, contenant l’adresse vers laquelle forwarder à la racine du home de chaque utilisateur.
Ou, éditer le fichier /etc/aliases, et associer chaque utilisateur à une adresse mail. Par exemple :
root: root@domain.tld

Guide très complet

Si vous voulez creuser un peu le sujet, vous pouvez aller jeter un oeil sur cet excellent guide, très (trop ?) complet : http://souptonuts.sourceforge.net/postfix_tutorial.html

Leave a Comment :, , , more...

Effacer une partition sous linux

by on oct.23, 2010, under Systeme

Petit billet rapide, aide mémoire ;)
Utiliser la commande df pour connaitre le nom des partitions :

df -h

Remplir de 0 une partition (réinstallation, etc…) :

dd if=/dev/zero of=/dev/sda2 bs=1M

Remplir de valeurs aléatoires une partition (disque qui part à la poubelle) :

dd if=/dev/urandom of=/dev/sda2 bs=1M

Sans préciser le numéro de partition (sda2), c’est l’ensemble du disque qui est réécrit (sda). L’option bs permet d’indiquer la taille des « paquets » lors de la copie. 1K, 1M, 1G etc….

Leave a Comment : more...