Archives mensuelles : novembre 2010

Simplifier vos fichiers de configuration avec mod_macro

Si comme moi vous êtes allergiques au copier/coller, voici comment simplifier les fichiers de configuration Apache à l'aide d'un simple module : mod_macro.

Ce module permet la définition de macros, similaires à celles du pré-processeur C. Bien que basiques, elles permettent de factoriser une grande part de la configuration, tout particulièrement avec plusieurs virtualhosts.

Voici un exemple :

/etc/apache2/vhosts.d/01_poirsouille.org.conf
# Définition de la macro VH

        DocumentRoot "/home/poirsouille/public_html/$subdomain"
        ServerName $subdomain.poirsouille.org
        CustomLog /var/log/apache2/$subdomain_access_log combined
        ErrorLog /var/log/apache2/$subdomain_error_log

        
                Options Indexes FollowSymLinks
                Options +ExecCGI

                Order allow,deny
                Allow from all
        


# Autre macro pour la configuration SSL

        SSLEngine on
        SSLProtocol all -SSLv2

        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/ssl/apache2/$subdomain.poirsouille.crt
        SSLCertificateKeyFile /etc/ssl/apache2/poirsouille.key
        SSLCertificateChainFile /etc/ssl/apache2/sub.class1.server.ca.pem
        SSLCACertificateFile /etc/ssl/apache2/ca.pem
        
                SSLOptions +StdEnvVars
        

        
                SSLOptions +StdEnvVars
        
        
                CustomLog /var/log/apache2/ssl_request_log \
                        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
        





        Use VH photos



        Use VH tech

        SuexecUserGroup poirsouille poirsouille
        FCGIWrapper /home/poirsouille/public_html/cgi-bin/php-fcgi .php


        Use VH tech
        Use SSL tech
        SuexecUserGroup poirsouille poirsouille
        FCGIWrapper /home/poirsouille/public_html/cgi-bin/php-fcgi .php


 

Gentoo : monter un volume DM-crypt/LUKS au boot

DM-crypt et LUKS permettent de créer très simplement un volume totalement crypté. Si l'utilisation de cryptsetup sur Gentoo ne diffère pas de la procédure standard, le montage au boot n'utilise pas le fichier /etc/crypttab mais /etc/conf.d/dmcrypt.

Création du volume crypté

Voici les étapes à suivre pour créer un volume crypté /dev/mapper/data_secured à partir de la partition /dev/xvda2. Pour plus de détails, voir cet article.

# Formatage avec LUKS de la partition
cryptsetup --verbose --verify-passphrase luksFormat /dev/xvda2
# Ouverture de la partition LUKS
cryptsetup luksOpen /dev/xvda2 data_secured
# Création du système de fichiers Ext4
mkfs.ext4 /dev/mapper/data_secured

Le volume /dev/mapper/data_secured peut alors être monté et utilisé comme une partition normale (ne pas oublier le crypsetup luksOpen avant l'appel à mount cependant).

Monter le volume DM-crypt/LUKS au boot

Comme précisé dans le wiki Gentoo, on utilise le fichier /etc/conf.d/dmcrypt plutot que /etc/crypttab :

/etc/conf.d/dmcrypt
target=data_secured
source="/dev/xvda2"

Cela va indiquer aux scripts de boot Gentoo d'ouvrir le volume LUKS avant de monter les systèmes de fichiers (hors root, qui nécessite un initramfs spécifique pour être crypté). Si une passphrase est utilisée pour le volume, elle sera alors demandée au boot sur la console. A éviter donc sur un serveur distant sans accès à la console…

Il suffit ensuite d'ajouter une ligne dans /etc/fstab comme d'ordinaire :

/etc/fstab
/dev/mapper/data_secured        /var/torrent    ext4    errors=remount-ro,noatime,acl   0       2

A chaque reboot, la passphrase est demandée :

 * Setting up dm-crypt mappings ...
 * dm-crypt map data_secured ...
 * cryptsetup will be called with :   luksOpen /dev/xvda2 data_secured
Entrez la phrase de passe pour /dev/xvda2 :
                                                                          [ ok ]
                                                                          [ ok ]
 * Checking all filesystems .../dev/mapper/data_secured : propre, 473/3932160 fichiers, 10663788/15728383 blocs
                                           [ ok ]
 * Mounting local filesystems ...                                         [ ok ]
 * Mounting misc binary format filesystem ...                             [ ok ]

 

MyBB : Support HTTPS avec le plugin Google SEO

Je suis plutôt satisfait de MyBB pour la gestion du forum, mais il lui manque le support du HTTPS en parallèle avec le HTTP. En effet, il n'est possible de spévifier qu'une unique adresse de forum dans l'interface d'administration, et celle-ci inclut le protocole. Tous les liens internes du forum pointent alors vers celui spécifié…

J'ai trouvé ce plug-in pour MyBB 1.2, mais qui fonctionne parfaitement avec MyBB 1.6. Seul inconvénient, son incompatibilité avec le célèbre plugin Google SEO, et plus particulièrement le module redirect. En effet, le module redirect a part défaut une priorité supérieure à celle de dynbburl, et s'exécute donc avant que le protocol ne soit patché, forçant la redirection…

Il suffit de modifier légèrement dynbburl pour lui mettre une priorité plus forte :

inc/plugins/dynbburl.php
add_hook('global_start', 'dynbburl_run', 1);

function dynbburl_info()
{
        return array(
                'name'                  => 'Dynamic Board URL',
                'description'   => 'Changes the board URL dynamically based on requested page (only switches to HTTPS if applicable)',
                'website'               => 'http://mybbhacks.zingaburga.com/',
                'author'                => 'ZiNgA BuRgA',
                'authorsite'    => 'http://zingaburga.com/',
                'version'               => '1.0',
                'compatibility' => '1*',
                'guid'                  => ''
        );
}

function dynbburl_run()
{
        global $mybb;
        if(!empty($_SERVER['HTTPS']))
        {
                $mybb->settings['bburl'] = str_replace('http://', 'https://', $mybb->settings['bburl']);
        }
}
?>