Configurer un serveur web sous Debian

debian

Un jour ou l’autre il est fort probable que souhaitiez prendre un serveur dédié pour l’hébergement de votre site et/ou des sites de vos clients.
Il existe déjà de nombreux tutoriels sur internet mais à mon goût beaucoup d’entre eux incitent à installer plein de services inutiles.

Voici donc mon tutoriel pour vous aider à configurer, étape par étape, votre serveur web sous Debian.

Debian : mise à jour du système

Pour commencer vérifiez si votre machine est bien à jour avec la commande suivante :

apt-get update && apt-get upgrade

Si tout est à jour cela va être très rapide sinon patientez quelques instants.

Installation des services pour votre serveur web

Il faut maintenant installer les services indispensables au bon fonctionnement votre serveur à savoir php5, apache2 et mysql server :

apt-get install apache2 php5 mysql-server

Suivez simplement les différentes étapes, il n’y a rien de bien compliqué.
Je vous recommande d’utiliser un mot de passe complexe, pour cela je trouve le site Générateur de mot de passe très utile.

On va également activer le module apache « mod_rewrite » pour la ré-écriture d’url :

a2enmod rewrite

Puis on redémarre apache2 :

service apache2 restart

Afin de faciliter l’administration de vos bases de données, nous allons installer phpmyadmin :

apt-get install phpmyadmin

Vous pouvez dès à présent accéder à PhpMyAdmin en ajoutant /phpmyadmin à la suite de l’url de votre serveur.

Choix de l’emplacement de vos sites internet

Vous pouvez laisser vos sites dans l’emplacement par défaut (var/www) ou bien choisir de les déplacer pour une meilleure organisation auquel cas je vous recommande le dossier /home.

Si vous souhaitez rester dans le dossier par défaut, vous pouvez passer directement à l’étape suivante.

Voici les quelques étapes pour placer vos sites dans le dossier home :

  • Rendez vous dans le dossier home :

cd /home/

  • Créez votre dossier en utilisant le nom de votre site

mkdir monsite

  • Dans ce nouveau dossier nous allons créer le sous dossier « www » qui contiendra notre site et « logs » pour les messages d’erreurs

mkdir ./www et mkdir ./logs

  • Éditez le fichier de configuration d’Apache2, recherchez puis copiez/collez pour chacun de vos sites ces quelques lignes  :

nano /etc/apache2/apache2.conf

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Pensez bien entendu à modifier le chemin d’accès par celui vers votre site (ex : /home/votresite/www) et on en profite pour modifier la ligne « AllowOvveride » en « All » pour autoriser la ré-écriture d’url.

Faites cela pour chacun des sites que vous souhaitez héberger sur votre serveur.

Configuration des vhosts sur votre serveur

Il est maintenant temps de configurer vos virtuals hosts afin d’indiquer à Apache où se trouve vos sites.

Rendez-vous dans le dossier « sites-available » d’Apache :

cd /etc/apache2/sites-available/

Ce dossier contient un fichier « default » dont le nom peut légèrement varier (dans mon cas 000-default.conf), pour le trouver tapez simplement la commande :

ls -lha

Puis faites une copie de ce fichier en utilisant pour le label de votre nouveau fichier, le nom de votre site :

cp default.conf votre-site.conf

Ouvrez ensuite le fichier fraîchement créé pour le modifier :

nano votre-site.conf

Là encore rien de bien compliqué :

  • Ajoutez en en-tête :
    • ServerName votre-site.fr
    • ServerAlias www.votre-site.fr
  • ServerAdmin : votre e-mail@votre-site.fr
  • DocumentRoot : le chemin vers le dossier contenant votre site soit dans notre cas /var/www ou /home/votre-site/www
  • ErrorLog et CustomLog
    • Si votre site se trouve dans /var/www, n’y touchez pas
    • Sinon modifiez les url par :
      • ErrorLog /home/votre-site/logs/errors/log
      • CustomLog /home/votre-site/logs/access.log combined

Activez ensuite votre site avec la commande a2ensite (apache2 enable site) :

a2ensite votre-site

Répétez ces différentes actions pour chacun de vos sites.

Pour finir redémarrez apache :

service apache2 restart

Création des utilisateurs et des bases de données avec PhpMyAdmin

Nous avons installé PhpMyAdmin, autant profiter de son interface pour créer les différents utilisateurs.

Rendez-vous sur l’interface de gestion : www.votre-serveur.com/phpmyadmin

Rendez-vous ensuite dans la partie « utilisateurs » et cliquez sur « Ajouter un utilisateur ».

Choisissez un nom et un mot de passe (laissez % dans client), puis cochez « Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base. »

Validez et répétez cette opération pour chacun de vos sites.

Remarque : là encore je vous recommande d’utiliser des mots de passe complexes.

Configuration du FTP

Maintenant que la base de données est en place, il ne manque plus que la configuration d’un serveur FTP. Il en existe de nombreux mais l’un des plus utilisé est proftpd, c’est donc celui-ci que je vous propose.

Commencez par l’installer :

apt-get install proftpd

Lorsqu’il vous est demandé de choisir comment lancer proftpd, choisissez « standalone » (indépendant en français).

Pour finir on le configure :

nano /etc/proftpd/proftpd.conf

Voici les données à modifier :

  • ServerName : le nom de votre serveur (au choix)
  • Dé-commenter la ligne DefaultRoot si vous souhaitez avec plusieurs vhost sur votre serveur
  • Pour finir ajoutez à la fin du fichier « RootLogin off »  pour interdire la connexion en root.

Et redémarrez le service :

sudo service proftpd restart

Il vous suffit maintenant d’ajouter des utilisateurs, pour cela :

  • Créez un groupe d’utilisateur

addgroup ftpusers

  • Ajoutez ces quelques lignes à votre fichier proftpd.conf :

DefaultRoot ~ ftpusers
<Limit ALL>
DenyGroup !ftpusers
</Limit>

  • Et on créer l’utilisateur (remplacez pseudo par le nom d’utilisateur que vous souhaitez et chemin par le chemin qui pointe vers le dossier de votre choix)

adduser pseudo –ingroup ftpusers –shell /bin/false –home chemin

  • Suivez simplement les informations demandées
  • On définis les permissions via les commandes (pensez à remplacer « chemin » par le votre !)

chmod 775 chemin
chown pseudo chemin

  • Entrez la commande suivante

echo /bin/false >> /etc/shells

  • Recommencez l’opération pour chaque utilisateur

Installer un serveur mail

Pour votre serveur e-mail, je vous propose d’utiliser postfix.

On commence par l’installer :

apt-get install postfix

On ajoute postfix au groupe sasl

sudo adduser postfix sasl

On passe ensuite à la configuration :

sudo dpkg-reconfigure postfix

Voici les différentes étapes :

  • Internet Site
  • System mail : renseignez le nom de domaine de votre serveur
  • Pour le reste laissez les valeurs par défaut

C’est tout ! Bien sûr vous pouvez faire une configuration plus poussée cependant dans la grande partie des cas cette configuration suffira.

Sécuriser son serveur web

Voici quelques conseils pour sécuriser votre serveur :

Éviter les attaques grâce à fail2ban

Fail2Ban est un petit outil qui va observer les logs de connexion à votre compte root et bannir les ip échouant plusieurs fois.

Pour l’installer c’est très simple :

apt-get install fail2ban

Modifiez ensuite son fichier de configuration :

nano /etc/fail2ban/jail.conf

Sur la ligne « ignoreip », ajoutez-y votre adresse ip et pensez à le faire pour tous vos postes de travail, en les séparant simplement par un espace.

Modifier la ligne « destemail » par votre adresse e-mail pour être notifié lorsqu’une adresse ip est bannie.

Paramétrez la rubrique SSH comme suit :

  • enabled = true (on active)
  • bantime = 1800 (vous pouvez mettre -1 pour un bannissement à vie)
  • maxretry = 4 (nombre d’essaie avant de bannir

Laissez le reste comme c’est et re-demarrez fail2ban :

service fail2ban restart

Modifier le chemin d’accès à phpmyadmin

Pour empêcher toute tentative d’intrusions dans votre base, le plus simple est encore de changer le chemin d’accès à phpmyadmin !

Éditez simplement son fichier de configuration :

nano /etc/phpmyadmin/apache.conf

Et modifiez la ligne « Alias /phpmyadmin /usr/share/phpmyadmin » par le chemin de votre choix, par exemple « Alias /mabase /usr/share/phpmyadmin »

Redémarrez Apache2 :

service apache2 force-reload

Désormais pour accéder à phpmyadmin, vous devez vous rendre sur la nouvelle url à savoir : votre-serveur/mabase

Merci à AxessWeb pour tout ses bons conseils

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *