Comment installer ISPConfig pour administrer son serveur sur Debian

Introduction

ISPConfig simplifie la gestion des différents services liés à l'hébergement web tels que la configuration DNS, la gestion des noms de domaines, le courrier électronique ou le transfert de fichiers par FTP.

Pré-requis

Afin d'obtenir les dernières version des paquet on met à jour les dépôts apt:

apt-get update

Si ce n'est pas déjà fait, on défini le nom d'hôte du serveur :

echo example.com > /etc/hostname
/etc/init.d/hostname.sh start

Pour vérifier si le hostname est bien changé on utilise :

hostname -f

On synchronise l'horloge de votre système avec ntp :

apt-get install ntp ntpdate

Installation des service mails

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql   courier-pop courier-pop-ssl  courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl courier-maildrop getmail4 rkhunter binutils sudo

Plusieurs précisions vous sont demandées:

  • Type général de configuration mail: Internet Site
  • Domaine des mails système: example.com (à remplacer par votre domaine)
  • Nouveau mot de passe pour l’utilisateur « root » MySQL: motdepasse
  • Créer des répertoire pour l’administration web ?: Non
  • Certificat SSL requis : Ok

Pendant l’installation, les certificats SSL pour IMAP et POP3 sont créés avec le domaine localhost. Pour changer cela, supprimez les 2 fichiers suivants :

rm -f /etc/courier/imapd.pem /etc/courier/pop3d.pem

et modifieé les fichiers suivants :

nano /etc/courier/imapd.cnf
nano /etc/courier/pop3d.cnf

Et dans chacun de ces fichiers, modifiez le CN par votre domaine (exemple : example.nodilex.io)

[...]
CN=example.nodilex.io
[...]

Puis recréez les certificats :

mkimapdcert
mkpop3dcert

On redémarrer ensuite les services de courrier :

/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart

Installation des anti-spams :

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl

IPSConfig se charge de SpamAssasion en interne, donc nous pouvons le desactiver :

/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove

Installation d'apache et ses composants

apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby

Plusieurs infos vous sont demandées:

  • Serveur web à configurer automatiquement : apache2
  • Configurer la base de donnée pour phpmyadmin avec dbconfig-common ? : Non

On active des modules apache2 :

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest

Puis on redémarre apache :

/etc/init.d/apache2 restart

Installation du FTP et des quotas :

apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool

Editez la configuration de proftpd ce fichier :

nano /etc/default/pure-ftpd-common

Puis vérifiez que ces deux lignes sont configurées comme suit:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Il faut éditer le fstab pour que les partitions soient prises en compte :

nano /etc/fstab

et ajouter cette ligne :

 ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0

Puis

mount -o remount /
quotacheck -avugm
quotaon -avug

Installation de fail2ban

Fail2ban permet de limiter les tentatives d'intrusions en bannissant les adresses IP après un nombre défini de tentatives de connexion ratées.

apt-get install fail2ban

Pour activer le blocage des services souhaités il faut éditer le fichier jail.local:

nano /etc/fail2ban/jail.local

Enfin, redémarrez fail2ban

/etc/init.d/fail2ban restart

Installation d'ISPConfig

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
php -q install.php

Information à préciser:

  • Select language (en,de) [en]:ENTER
  • Installation mode (standard,expert) [standard]: ENTER
  • Full qualified hostname (FQDN) of the server, eg example.nodilex.io [example.nodilex.io]: ENTER
  • MySQL server hostname [localhost]: ENTER
  • MySQL root username [root]: ENTER
  • MySQL root password []: PASSWORD
  • MySQL database to create [dbispconfig]: ENTER
  • MySQL charset [utf8]: ENTER
  • Country Name (2 letter code) [AU]: ENTER
  • State or Province Name (full name) [Some-State]: ENTER
  • Locality Name (eg, city) []: ENTER
  • Organization Name (eg, company) [Internet Widgits Pty Ltd]: ENTER
  • Organizational Unit Name (eg, section) []: ENTER
  • Common Name (eg, YOUR name) []: ENTER
  • Email Address []: ENTER
  • ISPConfig Port [8080]:ENTER

Après cela, vous pouvez accéder à ISPConfig à l’adresse http://example.nodilex.io:8080/

L’identifiant et mot de passe par défaut sont admin / admin

Vous avez une question ou une suggestion ? N'hésitez pas à réagir dans les commentaires !