Sysena

Tag: debian6

Installation JDK 7 Oracle sur debian 6 (squeeze) via un dépot

by on oct.28, 2012, under Java, Systeme

Depuis que les JRE/JDK Oracle ne peuvent plus être packagé librement, il est devenu moins pratique d’installer un JDK sur debian.
Un PPA maintenu par webupd8 permet de remédier à ce problème. Voila comment procéder :

su -
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
apt-get install ca-certificates
apt-get update
apt-get install oracle-java7-installer
exit

Source : http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html

Leave a Comment :, , more...

Debian6 squeeze – absence des clés de vérification des signatures de paquets

by on mai.18, 2011, under Systeme

Billet rapide.
Si vous avez régulièrement un message d’erreur en utilisant apt et/ou aptitude après l’installation d’une nouvelle VM debian 6 :

W: GPG error: http://security.debian.org squeeze/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA
W: GPG error: http://ftp.debian.org squeeze Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA

Il suffit d’installer :
apt-get install debian-archive-keyring

Voila ;)

Leave a Comment : more...

Optimisation de apache2-mpm-worker sur debian 6 squeeze, pour un reverse proxy

by on mai.16, 2011, under Systeme

La version threadé de apache 2 a la facheuse tendance d’être tres gourmant en environnement linux. Mais ce n’est pas de sa faute ! C’est la faute de linux ;o)
Par défaut, la mémoire alloué à la stack d’un thread est de 8mo (sous debian6), ce qui est beaucoup beaucoup beaucoup trop dans la majorité des cas. En utilisant apache2-mpm-worker, automatiquement vous allez donc consommer beaucoup de mémoire pour rien.

Apache

Voici une configuration basique :

    StartServers          2 => nombre de process au démarrage
    MinSpareThreads      25 => nombre minimum de thread libre
    MaxSpareThreads      75 => nombre maximum de thread libre
    ThreadLimit          64 => limite de thread (au total)
    ThreadsPerChild      25 => nombre de thread par process
    MaxClients          150
    MaxRequestsPerChild   0

Avec une configuration basique, comme celle ci, vous allez consommer 2 x 25 x 8 = 400mo … avec 0 client (startServers x MinSpareThreads x taille de la pile) . En période de pointe, jusqu’à 64 x 8 = 512 mo. Tout ça pour rien !

Pour un apache utilisé en reverse proxy, avec le minimum de module nécessaire (proxy, proxy_ajp, proxy_http, rewrite, deflate etc…) vous n’avez ABSOLU pas besoin d’autant de stack.

Éditez votre script d’init (/etc/init.d/apache2), et ajoutez au début du script :

ulimit -s 512

Cela aura pour effet de brider la stack à 512ko.
Avec la même configuration, votre apache consommera désormais 2 x 25 x 0.5 = 25 mo au démarrage, et seulement 64 x 0.5 = 32 mo en période de pointe.

Il existe la directive threadstacksize qui permet théoriquement de régler la taille de la stack autrement qu’une limitation via ulimit. Malheureusement, comme l’indique la documentation d’apache 2.3, ce flag ne fonctionne que pour fixer une stack supérieur à la taille par défaut du système. (non indiqué dans la doc apache 2.2). Pour fixer une taille inférieur, le seul moyen est d’utiliser ulimit -s.

Note : faites attention quand meme, si vous utilisez votre apache avec beaucoup de module. Vous aurez peut etre besoin d’un tout petit peu plus que 512 ko de stack. A vous d’ajuster ce parametre en fonction de vos besoins. Sachez que mon reverse proxy tourne très bien avec 128ko de stack, pour les quelques modules cités précédement.

 

Leave a Comment :, more...

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...