Ecran noir

Tutoriels, présentations et analyses sur Internet et les Logiciels Libres

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 19 février 2010

Installation d'un DNS

Je suis tombé dernièrement sur plusieurs billets parlant de l'installation de Bind (célèbre serveur DNS) chez soi pour se passer des serveurs de son FAI ou d'un autre prestataire :

J'ai donc passé moi aussi le cap sur mon serveur sous Debian. L'installation est on ne peut plus simple :

aptitude install bind9

Ensuite dans le fichier /etc/resolv.conf on remplace les références aux DNS précédemment utilisés par localhost (127.0.0.1) :

nameserver 127.0.0.1

Voulant également utiliser ce DNS pour mon PC de bureau sous Ubuntu, il m'a suffit de modifier l'adresse du serveur DNS via l'applet NetworkManager. Attention dans ce cas à bien ouvrir le port 53 (udp et tcp) du serveur si un firewall est actif, au moins sur le réseau local (le port 53 est utilisé pour les requêtes DNS).

Avant d'utiliser mon propre serveur DNS, j'utilisais ceux de OpenDNS. En faisant quelques tests, je me suis rendu compte d'une chose bizarre : lorsque l'on demande à OpenDNS l'adresse de Google (www.google.com), il nous redirige vers un serveur appartenant à OpenDNS (google.navigation.opendns.com) au lieu de nous donner l'adresse d'un serveur de Google ! Je pensais au début qu'OpenDNS voulait ainsi espionner nos requêtes vers Google, mais en réalité, il s'agit de contourner une pratique assez critiquable de Google et Dell. L'explication se trouve sur le blog d'OpenDNS.

Ceci montre en tout cas que les serveurs DSN peuvent être manipulés facilement pour vous rediriger sans que vous le sachiez sur des pages que vous n'aviez pas demandées. L'installation de son serveur DNS évite ce genre de désagrément !

dimanche 26 avril 2009

Spam : le fléau d'Internet

Tous les utilisateurs d'Internet ont eu l'occasion de recevoir dans leur boîte aux lettres des emails publicitaires incitant à acheter du Viagra, vantant les mérites d'un produit miracle ou encore promettant des gains substantiels : ce sont les spams, également appelés pourriels. Si ce genre de mail peut faire sourire au début, cela devient vite pénible surtout lorsque sa boîte aux lettres en est inondée.

Origine du mot

A l'origine, Spam est une marque de jambon en boîte de mauvaise qualité vendu dans les années 1940. Ce sont les Monty Python qui ont contribué à l'utilisation du terme spam pour désigner les emails publicitaires non sollicités. Dans l'un de leur sketch comique (video sur Youtube) le mot spam venait envahir toute la conversation en référence à une publicité pour la marque de jambon en boîte passant à la radio. Généralement on désigne par le terme ham (jambon en anglais) les emails n'étant pas des spams.

Un fléau mondial

Les spams sont envoyés par des robots qui utilisent des adresses emails trouvées sur Internet, par exemple dans les forums ou sur des sites communautaires. Ces robots sont souvent des ordinateurs zombies, c'est-à-dire des PC contrôlés à l'insu de leurs utilisateurs par des pirates informatiques.

En plus d'encombrer nos boîtes aux lettres, les spams coûtent beaucoup d'argent et d'énergie. Les administrateurs de systèmes informatiques doivent en effet mettre en place des systèmes de filtrage souvent complexes pour ne pas que leurs utilisateurs se retrouvent noyés sous les spams.
Une récente étude de McAfee indique qu'en 2008, 62 milliards de spams ont été envoyés, générant ainsi une consommation énergétique de 33 milliards de kWh soit l'équivalent de l'énergie dépensée par 2.4 millions de foyers américains ! Pas très écologique...

Le pire dans tout cela est que ce ne sont pas les spammeurs (ceux qui envoient les spams) qui paient la facture, mais ceux qui les reçoivent. Ce qui coute cher n'est pas l'envoi de mail, qui de toute manière est à la charge des machines zombies, mais le traitement qui doit être fait à la réception. Cette quasi gratuité pour les spammeurs est ce qui fait le succès des spams : Même si les publicités contenues dans les spams n'incitent finalement que peu de gens à acheter un produit, l'opération est au final très rentable.

Parades

La première des parades pour lutter contre le courrier indésirable est de ne pas diffuser son adresse email partout sur Internet. Ne mettez jamais votre adresse sur des forums publics. Vous pouvez utiliser si besoin une adresse jetable disponible par exemple sur le site Jetable.org.
Malheureusement cela ne suffit pas, les spammeurs sont malins. Une de leurs techniques consiste à essayer des adresses emails un peu au hasard. Par exemple si le spammeur connait une adresse du type toto@free.fr, il va essayer d'envoyer ses spams à toutes les adresses de la forme prénom@free.fr. Sur le lot certaines marcheront.

Lorsque l'on administre un serveur de mail on se rend compte de l'ampleur du phénomène et il devient vite indispensable de filtrer les emails reçus. Sur ma seule boîte personnelle, je reçois plus de 100 pourriels par jour. Sans filtre, le mail serait inutilisable.

Dans des prochains billets, je détaillerai l'installation de différentes méthodes de filtrage que l'on peut utiliser sur un serveur de mail :

  • Utilisation d'une liste noire : Certains sites maintiennent à jour des listes noires d'adresses IP de machines envoyant des spams. On peut utiliser ses adresses pour refuser tout mail provenant de ces machines.
  • Analyse du contenu des mails : Des programmes comme Spamassasin sont capables d'analyser le contenu d'un mail est de dire si c'est un spam. L'analyse utilise une méthode statistique (on parle de filtre bayésien) ou se base sur la recherche de mots clés comme "viagra". Ce filtrage peut être fait par le serveur de mail ou par un logiciel client comme Thunderbird.
  • Utilisation de la technique de la liste grise : Cette technique consiste à refuser temporairement tous les emails reçus. Si le mail n'est pas envoyé par un spammeur, il sera renvoyé plus tard et accepté. Les spammeurs ne prennent généralement pas le temps de renvoyer les mails ayant échoués.
  • Authentification de l'envoyeur : des normes comme SPF ou DKIM permettent de s'assurer que l'envoyeur d'un email est bien celui qu'il prétend être. En effet bien des spammeurs essayent de se faire passer pour quelqu'un d'autre. Cela peut être particulièrement dangereux si l'on se fait passer pour votre banque dans l'espoir de vous voler vos codes d'accès.

mercredi 8 avril 2009

Changement d'URL

J'ai changé l'URL de mon blog. Il est maintenant accessible à partir de http://nicolas.dutertry.com/ecran-noir. L'ancienne URL reste valide et se redirige automatiquement sur la nouvelle.

mardi 7 avril 2009

Installation de Postfix sur Debian

Mon serveur personnel fait office de serveur de mail. Dans ce tutoriel nous allons voir quelles manipulations j'ai effectuées pour en arriver là. Afin d'avoir un serveur de mail réellement utilisable, il est nécessaire d'avoir un nom de domaine à soi (par exemple mondomaine.com). Il faut avoir dans son DNS un enregistrement correspondant à l'adresse IP de la machine hébergeant le serveur (par exemple mcsr.mondomaine.com) ainsi qu'un enregistrement MX pointant sur cette machine. Cela permet d'avoir des adresses email de la forme user@mondomaine.com.

J'ai choisi Postfix comme serveur de mail car il est largement utilisé et très bien documenté. En plus de Postfix on installera Procmail pour le traitement des mails reçus et Courier-IMAP pour l'accès aux mails depuis l'extérieur en IMAP.

Dans ce tutoriel les utilisateurs du serveur de mail sont les mêmes que les utilisateurs Unix. Il est possible de configurer Postfix pour gérer ses utilisateurs dans une base de données, mais ce n'est pas ce que nous ferons ici. Les mails de chaque utilisateur seront stockés dans le répertoire Maildir de leur répertoire home.

Installation des composants

Les composants sont installés sur Debian avec la commande apt-get :

apt-get install postfix courier-imap-ssl courier-imap procmail mailutils

Le paquet mailutils contient, comme son nom l'indique, des utilitaires en ligne de commande pour les mails. Par défaut sous Debian un serveur de mail est déjà installé. Il s'agit d'Exim. Il sera désinstallé automatiquement lors de l'installation de Postfix.

Lorsqu'on vous le demandera, choisissez de ne rien configurer pour Postfix. La configuration sera créée plus tard.

Configuration de Postfix

La configuration de Postfix se trouve dans le fichier /etc/postfix/main.cf. Ce fichier ne doit pas encore exister.
Créez tout d'abord un fichier /etc/mailname contenant votre nom de domaine (mondomaine.com).
Créez ensuite le fichier /etc/postfix/main.cf avec le contenu suivant :

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
mydestination = mcsr.mondomaine.com, mondomaine.com, localhost
# Si vous avez un fournisseur d'accès :
# relayhost = smtp.votrefai.tld
relayhost =
mynetworks = 192.168.0.0/24, 127.0.0.0/8, [::1]/128, [xxxx:xxxx:xxxx:xxxx::]/64
myhostname = mcsr.mondomaine.com
mydomain = mondomaine.com

# Tres important
#home_mailbox = Maildir/
mailbox_command = procmail -a "$EXTENSION"

unkown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases

mailbox_size_limit = 0
recipient_delimiter = +

inet_interfaces = all
inet_protocols = all

#smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination

Dans ce fichier, les lignes commençant par # sont des commentaires. Remplacez mondomaine.com et mcsr.mondomaine.com par votre nom de domaine et le nom de votre serveur.
Voici le détail des paramètres de ce fichier :

myorigin

Indique le domaine (la partie après @) qui apparaitra dans les mails envoyés directement depuis le serveur. C'est le cas par exemple pour certains mails automatiques envoyés en cas d'erreur. La valeur est ici renseignée dans le fichier /etc/mailname.

mydestination

Indique les domaines des mails que le serveur doit conserver. Lorsque Postfix reçoit un mail, il doit le conserver si ce mail est à destination d'un de ses utilisateurs ou le transférer vers un autre serveur si ce n'est pas le cas. Il utilise pour cela le domaine du mail.

mynetworks

Indique les adresses IP des machines clientes privilégiées. Par défaut ces machines sont les seules autorisées à envoyer des mails vers l'extérieur. Il est important de correctement valoriser ce paramètre pour ne pas faire de votre serveur un relais pour spams. J'ai utilisé ici la syntaxe permettant de spécifier une plage d'adresses IP : 192.168.0.0/24. Le /24 veut dire que les 24 premiers bits sont significatifs. Postfix acceptera donc les IPs allant de 192.168.0.0 à 192.168.0.255. Comme mon serveur fonctionne aussi en IPv6 j'ai ajouté les adresses IPv6 de mon réseau (remplacez les xxxx par les bonnes valeurs).

myhostname

Il s'agit du nom d'hôte complet du serveur.

mydomain

Le nom de domaine du serveur.

mailbox_command

Indique la commande à utiliser pour copier les mails reçus dans la boîte aux lettres. On utilise ici Procmail.

alias_maps

Indique la base de données à utiliser pour les alias. Les alias permettent de donner plusieurs adresses emails à un même utilisateur. Pour prendre en compte ces alias, il est nécessaire de lancer la commande suivante :

postalias /etc/aliases


Une fois la configuration créée, on peut redémarrer Postfix :

/etc/init.d/postfix restart

Création du dossier Maildir

Chaque utilisateur du serveur doit avoir un dossier Maildir permettant de stocker ses mails. On commence par créer ce dossier dans le répertoire /etc/skel qui sert de modèle lors de la création d'un nouvel utilisateur. On utilise pour cela la commande maildirmake qui crée le répertoire au format mail :

cd /etc/skel
maildirmake.courier Maildir &&  maildirmake.courier Maildir/.Sent &&  maildirmake.courier Maildir/.Trash && maildirmake.courier Maildir/.Drafts &&  maildirmake.courier Maildir/.Lists
chmod a+xr -R Maildir

Pour chaque utilisateur existant, on copie le répertoire Maildir vers le répertoire home (remplacez user par le nom d'utilisateur) :

cp -R /etc/skel/Maildir /home/user
chown -R user:user /home/user/Maildir

Les utilisateurs qui seront créés dans le futur disposeront automatiquement du répertoire Maildir.

Configuration de Procmail

Grâce au paramètre mailbox_command, nous avons demandé à Postfix d'utiliser Procmail pour gérer les mails reçus. Procmail est un utilitaire assez puissant qui permet de classer les mails en fonction de règles. Ces règles sont écrites pour chaque utilisateur dans le fichier .procmailrc du répertoire home. la syntaxe de ce fichier est un peu barbare et je ne vais pas expliquer ici toutes les possibilités. Vous pouvez vous référer à cet article pour plus de détails.
Le fichier .procmailrc est composé de recettes qui indiquent comment traiter les mails reçus. Une recette commence toujours par :0 et a le format suivant :

:0 [drapeaux] [ : [verrou_local] ]
<zéro ou plusieurs conditions (une par ligne)>
<exactement une ligne d'action>

Les conditions commencent par * et s'expriment en expressions régulières. A chaque mail reçu, la ligne d'action est exécutée si toutes les conditions sont remplies par le mail.
Nous allons créer dans /etc/skel le fichier .procmailrc modèle pour tout nouvel utilisateur :

MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/

:0:
$DEFAULT

En en-tête de fichier, nous avons défini des variables. Le fichier ne contient qu'une seule recette très simple qui copie chaque mail reçu dans le répertoire Maildir (la recette ne contient aucune condition donc tous les mails reçus seront traités par cette recette).
le : après :0 indique qu'il faut locker l'action pour ne pas que plusieurs mails soient copiés dans Maildir en même temps car cela pourrait corrompre le répertoire.
La ligne d'action contient juste le nom d'un répertoire. Pour Procmail cela veut dire de copier le mail dans ce répertoire.
Pour chaque utilisateur existant, on copie le fichier .procmailrc vers le répertoire home (remplacez user par le nom d'utilisateur) :

cp -R /etc/skel/.procmailrc /home/user
chown user:user /home/user/.procmailrc

Il n'est pas nécessaire de redémarrer Postfix car le fichier .procmailrc est relu à chaque fois.

Redirection

Pour certains utilisateur, on veut forwarder tous les mails reçu au lieu de les conserver sur le serveur. Dans ce cas on écrira le .procmailrc de cette manière :

MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/

:0
! user@gmail.com

Le ! indique à Procmail qu'il faut rediriger les mails reçus. Remplacez user@gmail.com par la bonne adresse email de redirection.

Spam

Dans ce tutoriel, je n'ai pas parlé du traitement des spams. Pourtant ce traitement est indispensable si l'on ne veut pas se retrouver submergé. En collaboration avec SpamAssassin, Procmail permet de filtrer les spams, j'y reviendrai prochainement dans un billet dédié.

Récupération des mails depuis un poste client

Il n'y a aucune configuration à faire pour courier-IMAP. Vous avez donc tout de suite accès en IMAP à votre boîte aux lettres.
Votre serveur est maintenant prêt à recevoir et envoyer des emails !

samedi 14 mars 2009

Publication de Jalore

Je viens de mettre en ligne Jalore, une bibliothèque Java que j'ai écrite et qui permet de lire des fichiers log générés par des applications. Toutes les informations se trouvent sur le site dédié à Jalore (en anglais uniquement pour l'instant).

Jalore est bien entendu un logiciel libre, sous licence Apache ce qui n'impose aucune restriction sur son utilisation.

samedi 7 mars 2009

Installation d'Apache sur Debian

Dans ce tutoriel nous allons voir comment installer et configurer Apache afin d'héberger sur son serveur plusieurs sites web. En plus d'Apache, on installera la base de données MySQL et le moteur de page PHP afin d'avoir une vraie plateforme LAMP (Linux, Apache, PHP, MySQL) qui nous permettra de faire tourner des applications web toutes prêtes telles qu'un blog ou un webmail, mais aussi de créer ses propres applications web.

Installation des composants

L'installation des composants est très simple sous Debian. Avec l'utilisateur root on exécute :

apt-get install apache2 apache2-doc mysql-server php5 libapache2-mod-php5 php5-mysql

Un mot de passe root vous sera demandé pour la base MySQL. Attention il s'agit du root de MySQL qui est différent du root Linux.

Une fois l'installation terminée vous pouvez vérifier que les nouveaux services apache et mysql tournent bien :

netstat -nltp

Par défaut Apache écoute sur le port 80 et MySQL sur le port 3306.

Connectez-vous à MySQL (avec le root MySQL) pour vérifier que cela fonctionne :

mysql -u root -p
mysql> show databases;
mysql> exit

Configuration d'Apache

Tous les fichiers de configuration d'Apache se trouvent dans le répertoire /etc/apache2. On y trouve notamment :

  • Le fichier apache2.conf : fichier de configuration principal d'Apache
  • Le fichier ports.conf : configuration des ports d'écoute
  • Le répertoire conf.d : répertoire contenant divers fichiers de configuration
  • Le répertoire mods-availables : répertoire des modules disponibles (mais pas nécessairement activés)
  • Le répertoire mods-enabled : répertoire des modules activés (liens symboliques vers mods-availables)
  • Le répertoire sites-availables : répertoire des sites disponibles (mais pas nécessairement activés)
  • Le répertoire sites-enabled : répertoire des sites activés (liens symboliques vers sites-availables)

Pour activer un module (c'est-à-dire une fonctionnalité supplémentaire pour Apache) on utilise la commande a2enmod. Celle-ci va créer un lien symbolique dans le répertoire mods-enabled vers le fichier du module dans mods-available. Pour désactiver un module on utilise la commande a2dismod.

Pour créer un nouveau site, on crée la configuration associée dans le répertoire sites-availables et on l'active avec la commande a2ensite. Par défaut un seul site est disponible (fichier default), ce qui est suffisant si vous ne voulez gérer qu'un seul site. Sinon il faudra créer d'autres sites grâce aux hôtes virtuels.

A chaque fois que l'on modifie la configuration d'Apache, il faut le redémarrer :

/etc/init.d/apache2 restart

Activation de PHP

Normalement le module php pour Apache doit être activé par défaut suite à l'installation. Les fichiers php5.load et php5.conf doivent être présents dans mods-enabled. Si ce n'est pas le cas on utilise a2enmod :

a2enmod php5
/etc/init.d/apache2 restart

Les hôtes virtuels

Apache vous permet de gérer plusieurs sites sur un même serveur grâce au système d'hôtes virtuels. Supposons que vous ayez acheté un nom de domaine (mondomaine.com par exemple) et que vous vouliez héberger un blog à l'adresse blog.mondomaine.com, un site personnel à l'adresse user.mondomaine.com ainsi que le classique www.mondomaine.com. Avant de configurer Apache, vous devez configurer votre DNS pour que les noms des sites soient résolus en l'adresse IP de votre serveur.

Dans Apache, il est nécessaire d'activer la résolution des hôtes virtuels par nom dans le fichier /etc/apache/ports.conf. Normalement cela est déjà le cas par défaut :

NameVirtualHost *:80

Cette directive indique à Apache de résoudre les hôtes virtuels par nom pour les requêtes arrivant sur le port 80. Le caractère * signifie que cette résolution ne tient pas compte de l'adresse IP d'écoute.

Nous allons maintenant configurer les 3 sites. Pour chaque site il faut créer un fichier de configuration dans le répertoire site-availables. Il existe déjà un fichier default que nous allons utiliser pour www.mondomaine.com. Dans ce fichier le répertoire racine est paramétré comme étant /var/www. Nous allons le modifier pour mettre /var/www/default et préciser que ce site a pour nom www.mondomaine.com grâce à la directive ServerName. Au final le fichier default ressemble à cela :

<VirtualHost *:80>
	ServerName www.mondomaine.com
	DocumentRoot /var/www/default

	<Directory /var/www/default>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
...
</VirtualHost>

Dans la directive VirtualHost il est indispensable de préciser *:80 pour qu'Apache fasse le lien avec la directive NameVirtualHost.

Pour les 2 autres sites on crée 2 nouveaux fichiers blog et user (remplacez user par le nom de l'utilisateur) dans site-availables. Ces sites auront pour racine /var/www/blog et /home/user/public_html.
Le fichier blog contient :

<VirtualHost *:80>
	ServerName blog.mondomaine.com
	DocumentRoot /var/www/blog
	<Directory /var/www/blog>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
</VirtualHost>

Le fichier user contient :

<VirtualHost *:80>
	ServerName user.mondomaine.com
	DocumentRoot /home/user/public_html
	<Directory /home/user/public_html>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
</VirtualHost>

Il faut maintenant créer les répertoires racines des sites :

mkdir /var/www/default /var/www/blog /home/user/public_html

Dans chacun des répertoires on peut mettre, pour commencer, un fichier index.html contenant simplement le nom du site.

Il faut ensuite activer les nouveaux sites :

a2ensite blog user

Puis redémarrer Apache :

/etc/init.d/apache2 restart

Avec Firefox accédez à vos 3 sites et vérifier que cela fonctionne. Vous pouvez maintenant compléter les répertoires des sites avec du vrai contenu.

SSL

Nous allons maintenant activer le SSL dans Apache pour pouvoir y accéder par https. Il n'est pas possible d'utiliser simplement les hôtes virtuels par nom en SSL. Nous aurons donc un seul site accessible en https (www.mondomaine.com).

Le module ssl doit être activé :

a2enmod ssl

Vérifiez dans ports.conf qu'Apache écoute bien sur le port 443 :

<IfModule mod_ssl.c>
	Listen 443
</IfModule>

Pour fonctionner, le protocole https nécessite un certificat serveur. Nous allons utiliser openssl pour générer un certificat auto-signé :

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt -keyout /etc/apache2/server.key

Répondez aux questions posées en faisant attention au "Common Name". Sa valeur doit être l'adresse de votre site (www.mondomaine.com).

Le fichier de configuration du site SSL existe déjà. Il s'agit du fichier default-ssl dans site-availables. Modifiez-le comme le fichier default pour changer la racine du site en /var/www/default puis remplacer la référence au certificat avec celui que nous avons créé :

SSLCertificateFile /etc/apache2/server.crt
SSLCertificateKeyFile /etc/apache2/server.key

Activez alors le site SSL :

a2ensite default-ssl
/etc/init.d/apache2 restart

Vous pouvez maintenant tester que votre site est accessible en SSL. Attention : Le certificat que nous avons généré est auto-signé. Firefox devrait donc afficher une page d'alerte de sécurité et vous devrez ajouter une exception pour accéder à votre site. Pour avoir un "vrai" certificat, il faut passer par un organisme de certification qui vous le fournira moyennant paiement.

Sécurité

Voici quelques petits trucs qui permettent de cacher des informations qui pourraient aider une personne malveillante.

Les informations sur la version du serveur ne doivent pas être visibles. Dans le fichier /etc/apache/conf.d/security recherchez et modifiez les directives ServerTokens et ServerSignature pour avoir :

ServerTokens Prod

ServerSignature Off

Dans tous les fichiers de configuration des hôtes virtuels, pensez à utiliser l'option -Indexes qui empêche de voir la liste des fichiers d'un répertoire :

<Directory ...>
	Options -Indexes
</Direction>

Installation de Dotclear

Pour terminer ce tutoriel voici comment j'ai procédé à l'installation de Dotclear pour héberger mon blog.

Téléchargez la dernière version de Dotclear 2 sur http://fr.dotclear.org/ et décompressez l'archive dans le répertoire /var/www/blog. Vous obtiendrez un répertoire /var/www/blog/dotclear. Suivez les instructions pour une installation multiblogs dans la documentation. A côté du répertoire dotclear vous devriez donc avoir un répertoire pour votre blog (par exemple monblog).

D'après moi, il vaut mieux isoler l'application d'administration des blogs pour qu'elle ne soit accessible qu'en https. C'est plus sûr car cette application nécessite un mot de passe. Au final on accèdera au blog via l'url http://blog.mondomaine.com/monblog et pour l'administration on utilisera https://www.mondomaine.com/dotclear/admin.

Dans le fichier de configuration de l'hôte virtuel blog.mondomaine.com on ajoute :

<Location /dotclear>
	Order allow,deny
	deny from all
</Location>

Ceci permet d'interdire l'accès à l'administration de Dotclear par blog.mondomaine.com.

Pour rendre l'application d'administration accessible en https par www.mondomaine.com, on modifie la configuration du site SSL en ajoutant :

Alias /dotclear /var/www/blog/dotclear
<Directory /var/www/blog/dotclear>
	Options -Indexes FollowSymLinks MultiViews
	AllowOverride None
	Order allow,deny
	allow from all
</Directory>

jeudi 26 février 2009

Black-out contre HADOPI

samedi 21 février 2009

Internet est-il en danger ?

Les députés de notre pays s'apprêtent à discuter de la mise en place de la loi "Création et Internet" censée lutter contre le piratage des oeuvres artistiques sur Internet. A cette occasion et même si le sujet a déjà fait beaucoup parlé de lui sur la toile, je ne peux m'empêcher de dénoncer l'attitude des politiques à l'égard d'Internet.

La loi "Création et Internet" doit en théorie permettre de repérer les téléchargements illégaux sur Internet et d'envoyer un email d'avertissement aux internautes fraudeurs. Au bout de deux avertissements la connexion Internet d'un "pirate" pourra être coupée. Je ne reviendrai pas en détail sur le contenu de cette loi et sur tous les problèmes qu'elle pose. D'autres l'ont fait avant moi :

Au delà de cette loi, c'est l'attitute des politiques à l'égard d'Internet que je trouve inquiétante. L'image qui est donnée de ce média est pitoyable. Internet ne serait qu'un repaire de pirates et de pédophiles et en conséquence il faudrait analyser et filtrer tout ce qui y transite :

  • La loi "Création et Internet" va obliger les fournisseurs d'accès Internet (Free, Orange, Neuf, etc) à mettre en place des systèmes d'écoute pour repérer les téléchargement illégaux
  • Fréderic Lefebvre (porte parole de l'UMP) a récemment déclaré :

L’absence de régulation du Net provoque chaque jour des victimes ! Combien faudra-t-il de jeunes filles violées pour que les autorités réagissent ?

Vouloir lutter contre la pédophilie est une cause noble, mais mettre en place un système de filtrage d'Internet ne me paraît pas être la solution adaptée. D'ailleurs beaucoup pensent qu'installer un tel système de manière efficace est impossible. Alors pourquoi le gouvernement insiste tant sur ce sujet ? Soit les politiques ne comprennent rien aux nouvelles technologies. C'est possible mais les politiques sont entourés de conseillers qui devraient pouvoir les aider à comprendre. Soit au contraire, ils ont bien compris que cet espace de liberté pouvait être un formidable contre-pouvoir et ils veulent donc être en mesure de le contrôler. On utilise alors les pédophiles et les pirates afin que l'opinion publique se convainque qu'un contrôle est nécessaire. Cette façon de faire n'est pas nouvelle : Bush a envahi l'Irak pour contrôler le pétrole dans la région en affirmant vouloir lutter contre le terrorisme.

Un fois le système de filtrage mis en place, qui peut savoir comment il sera utilisé. Aujourd'hui les sites pédophiles, nazis, etc. Mais demain ? Les blogs politiquement incorrects ? Les opinions des opposants au gouvernement ? Nul ne peut savoir jusqu'où cela peut aller. Rappelons qu'en Chine, une requête dans Google sur Tian'anmen ne renvoie aucun résultat sur les événements de 1989.

J'espère me tromper, mais si les gouvernements des différents pays du monde prennent tous cette même direction, nous nous orientons vers un Internet bridé où seuls les sites officiels seront accessibles et devenant ainsi un média à l'image de la télévison. Si c'est le cas Internet est bien en danger.

lundi 16 février 2009

Debian Lenny devient une release officielle

Debian vient d'annoncer la sortie officielle de la version 5.0 (Lenny). Vous pouvez trouver le détail de cette sortie sur le site de Debian.

Lenny était en préparation depuis 22 mois, ce qui peut paraître long, mais c'est un gage de qualité car de nombreux tests ont ainsi pu être effectués. Ceci fait de Debian Lenny un candidat idéal pour un serveur. C'est d'ailleurs le système d'exploitation que j'ai choisi pour mon Microclient.
D'autres distributions GNU/Linux comme Ubuntu ou Fedora sortent de nouvelles releases très régulièrement (tous les 6 mois) et sont plus axès sur les PC de bureaux car elles intègrent les dernières nouveautés, mais elles sont en contrepartie moins stables.

mardi 10 février 2009

Installation de Debian sur le Microclient Sr avec une clé USB

Un système d'exploitation doit être installé sur le Microclient Senior afin d'en faire un serveur. J'ai choisi la distribution GNU/Linux Debian. Voyons comment procéder à l'installation à partir d'une simple clé USB.

Prérequis

Pour suivre ce tutoriel, vous aurez besoin :

  • D'un Microclient Senior contenant un disque dur (Linux sera installé sur ce disque)
  • D'une clé USB de 256 Mo minimum
  • D'un PC sous Linux pour préparer la clé (Ubuntu dans ce tutoriel)
  • D'une connexion Internet

Choix de la distribution

La méthode doit fonctionner avec n'importe quelle distribution de GNU/Linux moyennant quelques adaptations. Utilisant Ubuntu sur mon PC de bureau, je voulais un système assez proche pour le Microclient. Il existe la version serveur d'Ubuntu, mais j'ai décidé d'utiliser Debian car :

  • Ubuntu est basé sur Debian donc les 2 distributions se ressemblent fortement (même système de gestion des paquets). Je ne serai pas dérouté avec Debian.
  • Debian utilise un vrai root, contrairement à Ubuntu où on a un utilisateur classique servant d'administrateur (avec sudo). La commande sudo est bien pratique sur un PC de bureau, mais pour un serveur ça me paraît plus sûr de bien séparer les choses.
  • Debian est réputé pour sa stabilité, alors qu'Ubuntu utilise les toutes dernières versions des logiciels ce qui risque d'être un peu moins stable.

Au départ je voulais utiliser la version stable de Debian (etch), mais pour des problèmes de compatibilité avec la carte son du Microclient, j'ai dû passer à la version testing (lenny). Normalement lenny deviendra très prochainement une version stable.
Dans ce tutoriel, on commencera par installer Debian etch avant de mettre à jour le système vers Debian lenny (j'ai cru voir quelque part que l'installation directe de lenny sur le Microclient ne fonctionnait pas, mais je n'ai pas testé).

Nom de domaine

Comme on souhaite faire du Microclient un serveur, il est indispensable d'avoir une adresse IP fixe et un nom de domaine associé, par exemple mondomaine.com. Selon votre fournisseur d'accès vous pouvez avoir une IP fixe gratuitement ou en payant. Etant chez Free, je dispose d'une adresse IP fixe gratuitement et même d'une adresse IPV6 pour toutes les machines connectées à la Freebox. Le nom de domaine s'achète chez un registar. J'ai acheté le mien chez Gandi pour environ 15 euro par an.
Décidez d'un nom pour votre machine, par exemple mcsr. Le nom complet de votre machine sera mcsr.mondomaine.com. On ne détaillera pas dans ce tutoriel les manipulations à faire pour configurer le réseau.

Préparation de la clé USB

Copie de l'installateur Debian

L'installateur Debian présenté ici permet d'utiliser l'image ISO d'un CD d'installation avec une clé USB.
On commence par copier l'installateur Debian sur la clé USB. Attention ceci va supprimer tout le contenu de la clé USB.
Téléchargez l'image de la clé USB sur le site de Debian :

wget ftp://ftp.debian.org/debian/dists/etch/main/installer-i386/current/images/hd-media/boot.img.gz

Branchez la clé USB sur votre PC de bureau. Si la clé a été montée automatiquement, démontez-la. Dans la suite, on suppose que la clé est reconnue en tant que /dev/sdf (Attention à ne pas vous tromper de répertoire ou vous pourriez effacer tout votre disque dur).
Pour copier l'installateur sur la clé on utilise zcat qui va dézipper l'image avant de la copier :

sudo zcat boot.img.gz > /dev/sdf

Il se peut qu'un message d'erreur apparaîsse à l'exécution de cette commande (problème de droit). Dans ce cas changer les permissions de /dev/sdf avant de recommencer :

sudo chmod 777 /dev/sdf

Une fois la copie terminée, revenez aux permissions par défaut pour /dev/sdf.

Copie de l'image ISO de Debian

On va maintenant copier l'image ISO de Debian etch dans sa version "netinstall" car elle ne prend pas beaucoup de place. Comme son nom l'indique, cette version téléchargera la plupart des paquets sur Internet.
Téléchargez cette image :

wget http://cdimage.debian.org/debian-cd/current/i386/iso-cd/debian-40r6-i386-netinst.iso

Copiez-la sur la clé USB :

sudo mount /dev/sdf /mnt
sudo cp debian-40r6-i386-netinst.iso /mnt/
sudo umount /mnt

La clé USB est prête !

Installation

Pour installer Debian sur le Microclient, il est necessaire d'y brancher un clavier, un écran, un cable réseau ainsi que la clé USB. Au démarrage du Microclient, la clé doit être reconnue et l'écran d'installation de Debian doit apparaître.
debian-install.png
Procédez alors à l'installation normalement en appuyant sur Entrée. Lorsqu'on vous le demandera, renseignez le nom de la machine avec le nom que vous avez choisi (par exemple mcsr) et le nom de domaine avec votre nom de domaine (par exemple mondomaine.com).
Vous devrez également choisir un mot de passe pour l'utilisateur root et créer un utilisateur classique. Prenez le temps de bien choisir les mots de passe.

Lors de la sélection des logiciels à installer, ne cocher que le système de base. Le reste sera installé plus tard en fonction des besoins.
debian-software-selection.png
Les fichiers doivent être copiés sur le disque dur du Microclient qui doit être reconnu comme /dev/hdc. Vous pouvez utiliser toutes les options de partionnement par défaut.
Une fois l'installation terminée, vous pouvez vous connecter avec l'utilisateur créé durant l'installation.

Upgrade

Pour passer de etch à lenny modifiez le fichier /etc/apt/sources.list en tant que root. Remplacez toutes les occurrences de "etch" par "lenny". Vous pouvez en profiter pour supprimer les références au cdrom qui ne servent à rien.
Toujours en root, mettez à jour la distribution :

apt-get update
apt-get dist-upgrade

Redémarrez la machine. Debian est prêt à fonctionner !

Serveur SSH

En utilisation normale, le Microclient ne sera pas branché à un écran ni à un clavier. Il faut pouvoir y accéder à distance. Pour cela on installe un serveur SSH. Sous Debian rien de plus simple :

apt-get install openssh-server

Pour plus de sécurité, il vaut mieux désactiver la connexion directe en root par SSH. Dans le fichier /etc/ssh/sshd_config remplacez la ligne :

PermitRootLogin yes

Par :

PermitRootLogin no

Redémarrez ensuite le serveur SSH :

/etc/init.d/ssh restart

Vous devrez donc vous connecter avec votre utilisateur classique par SSH, puis utiliser la commande su pour passer en root. Je reviendrai plus en détails dans un prochain billet sur la sécurité du serveur.

- page 1 de 2