Archives pour la catégorie ‘Administration’

Apache : désactiver le support SSLv2

<VirtualHost 172.16.0.14:443>
   ServerName www.site.fr
   DocumentRoot /home/www/sites/site.fr/www/html
   ErrorLog /home/www/sites/site.fr/www/logs/error_log
   Customlog /home/www/sites/site.fr/www/logs/access_log combined

   SSLEngine on
   SSLProtocol -all +SSLv3 +TLSv1
   SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
   SSLCertificateFile /etc/apache2/ssl/www_site_fr.crt
   SSLCertificateKeyFile /etc/apache2/ssl/www_site_fr.key
</VirtualHost>

Nginx : désactiver le support SSLv2

server {
   listen       172.16.0.15:443;
   server_name  mon.site.fr;
   root         /usr/local/www/mon.site.fr;
   index        index.php;

   ssl                  on;
   ssl_certificate      ssl/mon_site_fr.crt;
   ssl_certificate_key  ssl/mon_site_fr.key;
   ssl_session_timeout  5m;
   ssl_protocols SSLv3 TLSv1;
   ssl_ciphers HIGH:!ADH:!MD5;
   ssl_prefer_server_ciphers   on;
}

Munin : monitorer la température des disques durs sous FreeBSD & Mac OS X


Je vous fais part de mon patch pour le plugin hddtemp_smartctl de Munin afin que la température des disques durs puisse être monitorée sous FreeBSD, OpenBSD, NetBSD et Mac OS X :

http://exchange.munin-monitoring.org/plugins/hddtemp_smartctl/details

Pour rappel, ce plugin nécessite le port sysutils/smartmontools. La commande smartctl n’étant fonctionnelle que sous root, il faut adapter la configuration de Munin dans le fichier /usr/local/etc/munin/plugin-conf.d/plugins.conf :

[hddtemp_smartctl]
user root

Pour tester le bon fonctionnement du plugin, rien de plus simple :

$ perl /usr/local/etc/munin/plugins/hddtemp_smartctl
disk0.value 50

MySQL : activer le mode lecture seule

Pour empêcher les modifications de vos bases de données lors des opérations de maintenance, il est utile d’activer le mode read only de MySQL :

mysql> set GLOBAL read_only=true;

A cet instant, toutes les requêtes d’écritures seront refusées et seul l’utilisateur root pourra effectuer des modifications. Une fois terminées, il faut réactiver le mode read/write :

mysql> set GLOBAL read_only=false;

A noter qu’il existe la méthode du verrou exclusif. Dans ce cas, la connexion client de l’utilisateur root ne doit pas être coupée (le verrou serait automatiquement relâché) et toutes les requêtes d’écriture des utilisateurs, y compris root, seront mises en attente puis exécutées à la libération du verrou :

mysql> FLUSH TABLES WITH READ LOCK;
mysql> [...]
mysql> UNLOCK TABLES

OpenSSL : vérifier la date d’expiration d’un certificat de sécurité

Script pour vérifier la date d’expiration de vos certificats SSL :

#!/bin/bash
#
# check_cert.sh
#
# Boris HUISGEN <bhuisgen@hbis.fr>
#

if [ $# -eq 0 ];
then
   echo "$Usage: $0 <certificate_file>" ;
   exit 1;
fi

FILE=$1

if [ ! -e $FILE ] ; then
   echo "$1 file does not exist."
   exit 2;
fi

EXPIRE_DATE=$(openssl x509 -in $FILE -noout -enddate | cut -f2 -d=);

echo "Certificate file: $FILE";
echo "Expiration date: $EXPIRE_DATE";

exit 0;

Exemple :

# check_cert.sh /usr/local/etc/openvpn/server.crt
Certificate file: /usr/local/etc/openvpn/server.crt
Expiration date: Jun 24 14:31:45 2011 GMT

Apache : activer la compression gzip

Après avoir compilé et activé le module mod_deflate d’Apache, la directive suivante est à ajouter au virtual host :

<IfModule mod_deflate.c>
   SetOutputFilter DEFLATE

   # disable compression for broken browsers
   BrowserMatch ^Mozilla/4 gzip-only-text/html
   BrowserMatch ^Mozilla/4\.0[678] no-gzip
   BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
   BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

   # disable compression for images
   SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
   # disable compression for PDF files
   SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
   # disable compression for binaries and archives
   SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
   # proxy cache support
   Header append Vary User-Agent env=!dont-vary

   # deflate log support
   #DeflateFilterNote Input instream
   #DeflateFilterNote Output outstream
   #DeflateFilterNote Ratio ratio
   #LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
   #Customlog /var/log/apache2/deflate_log deflate
</IfModule>

FreeBSD : activer le support SSH depuis l’installation en mode ‘fixit’

Le mode ‘Fixit’ présent sur le CD / DVD d’installation de FreeBSD 8 est utile pour dépanner votre système ou encore effectuer une installation custom (ZFS et cie).

Pour améliorer votre confort, un vrai terminal est préférable, encore faut-il que le support SSH soit activé. Pour ce faire, on commence par l’initialisation réseau :

Fixit# ifconfig em0 192.168.1.166
Fixit# route add default 192.168.1.254
Fixit# echo 'nameserver 192.168.100.254' > /etc/resolv.conf

Ensuite, la configuration du serveur SSH :

Fixit# mkdir /etc/ssh
Fixit# cp /dist/etc/ssh/sshd_config /etc/ssh
Fixit# echo PermitRootLogin yes >> /etc/ssh/sshd_config
Fixit# ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N ''
Fixit# ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
Fixit# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''

Et la configuration d’un environnement minimal pour l’utilisateur root (qui n’aura d’ailleurs aucun mot de passe) :

Fixit# mkdir /root
Fixit# ln -s /mnt2/bin/csh /bin/csh
Fixit# echo "setenv PATH ‘/bin:/sbin:/usr/bin:/usr/sbin:/stand:/mnt2/stand:/mnt2/bin:/mnt2/sbin:/mnt2/usr/bin:/mnt2/usr/sbin’" > /root/.cshrc
Fixit# echo “setenv EDITOR ‘/mnt2/usr/bin/ee’” >> /root/.cshrc
Fixit# echo “set prompt=’Fixit# ‘” >> /root/.cshrc
Fixit# /mnt2/usr/sbin/sshd

Et c’est parti, on peut maintenant agir à distance :

$ ssh root@192.168.1.166
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
	The Regents of the University of California.  All rights reserved.

Fixit#


Vi : conversion d’encodage des fichiers

L’éditeur vi permet de convertir rapidement l’encodage des fichiers.

Pour l’encodage UTF-8 :

$ vi fichier.txt
:set fileencoding=utf-8
:x

Pour l’encodage ISO-8859-1 :

$ vi fichier.txt
:set fileencoding=latin1
:x

Bind : journaliser les requêtes DNS

Pour enregistrer l’ensemble des requêtes soumises à votre serveur DNS bind, il faut ajouter ce bloc à votre fichier de configuration :

// Logging
logging {
 category "default" { "debug"; };
 category "general" { "debug"; };
 category "database" { "debug"; };
 category "security" { "debug"; };
 category "config" { "debug"; };
 category "resolver" { "debug"; };
 category "xfer-in" { "debug"; };
 category "xfer-out" { "debug"; };
 category "notify" { "debug"; };
 category "client" { "debug"; };
 category "unmatched" { "debug"; };
 category "network" { "debug"; };
 category "update" { "debug"; };
 category "queries" { "debug"; };
 category "dispatch" { "debug"; };
 category "dnssec" { "debug"; };
 category "lame-servers" { "debug"; };

 channel "debug" {
 file "/var/log/named.log" versions 3 size 10m;
 print-time yes;
 print-category yes;
 };
};

L’ensemble des requêtes et opérations effectuées par le serveur sera alors logué. Voici un exemple de sortie type :

18-May-2010 09:46:06.775 queries: client 192.168.2.26#64549: query: www.liberation.fr IN A +
18-May-2010 09:46:06.776 queries: client 192.168.2.26#64550: query: images.apple.com IN A +
18-May-2010 09:46:06.776 queries: client 192.168.2.26#64551: query: permanent.nouvelobs.com IN A +
18-May-2010 09:46:06.823 queries: client 192.168.1.4#58414: query: pagead2.googlesyndication.com IN A +
18-May-2010 09:46:06.997 queries: client 192.168.2.26#64552: query: tempsreel.nouvelobs.com IN A +
18-May-2010 09:46:07.022 queries: client 192.168.1.4#57886: query: googleads.g.doubleclick.net IN A +
18-May-2010 09:46:08.023 queries: client 192.168.1.4#57582: query: oswald.pages.de IN A +
18-May-2010 09:46:08.024 queries: client 192.168.1.4#61346: query: twitter.com IN A +
18-May-2010 09:46:08.024 queries: client 192.168.1.4#51376: query: www.facebook.com IN A +
18-May-2010 09:46:08.733 queries: client 192.168.100.25#43974: query: 10.1.168.192.sbl-xbl.spamhaus.org IN A +
18-May-2010 09:46:08.797 queries: client 192.168.100.25#43974: query: 10.1.168.192.bl.spamcop.net IN A +
18-May-2010 09:46:08.859 queries: client 192.168.100.25#43974: query: 10.1.168.192.cbl.abuseat.org IN A +
18-May-2010 09:46:08.859 queries: client 192.168.100.25#43974: query: 10.1.168.192.rbl.mail-abuse.org IN A +
18-May-2010 09:46:09.317 queries: client 192.168.2.29#57087: query: www.facebook.com IN A +
18-May-2010 09:46:09.516 queries: client 192.168.100.25#43974: query: hookah.nl IN MX +
18-May-2010 09:46:09.558 lame-servers: host unreachable resolving 'ns2.sekeris.nl/A/IN': 2a00:d78:0:102:193:176:144:2#53
18-May-2010 09:46:09.558 lame-servers: host unreachable resolving 'ns2.sekeris.nl/AAAA/IN': 2001:7b8:606::28#53
18-May-2010 09:46:09.558 lame-servers: host unreachable resolving 'ns2.sekeris.nl/A/IN': 2001:500:2e::1#53
18-May-2010 09:46:09.558 lame-servers: host unreachable resolving 'ns2.sekeris.nl/AAAA/IN': 2a00:d78:0:102:193:176:144:2#53
18-May-2010 09:46:09.558 lame-servers: host unreachable resolving 'ns2.sekeris.nl/AAAA/IN': 2001:610:0:800d::2#53

Exim : loguer le sujet des mails

Suite à mon article pour Postfix, voici la méthode pour ajouter le sujet des mails dans les logs d’Exim. L’option suivante est à ajouter dans votre fichier de configuration :

log_selector = +subject
Haut de page