Bonjour à tous,

ISPConfig 3.1 est sorti en rajoutant le support natif de PHP 7 et de Let’s Encrypt ce qui est une petite révolution.

On va donc voir comment mettre en place le tout sur une installation Debian 8 comme toujours 🙂

Comme d’habitude, pas de mails pour moi sur le serveur, pas de phpmyadmin non plus.

 

Installation des sources :

Pour commencer, nous allons installer des sources personnalisées, car, on va prendre beaucoup de ressources en dehors des dépôts Debian officiels pour avoir des paquets à jour.

Maintenant, renseignez toutes les sources nécessaires dans votre sources.list :

rm /etc/apt/sources.list
nano /etc/apt/sources.list
#Stable
deb http://mirrors.kernel.org/debian/ jessie main contrib non-free
deb-src http://mirrors.kernel.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
deb http://mirrors.kernel.org/debian/ jessie-updates main contrib non-free
deb-src http://mirrors.kernel.org/debian/ jessie-updates main contrib non-free
deb http://mirrors.kernel.org/debian/ jessie-backports main contrib non-free
deb-src http://mirrors.kernel.org/debian/ jessie-backports main contrib non-free

#NGINX - Mainline
deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx

#Dotdeb - php7.0 7
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

#MariaDB
deb [arch=amd64,i386] http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main
deb-src http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.1/debian jessie main

 

Maintenant, installez les packages nécessaires :

apt-get update && apt-get install software-properties-common python-software-properties -y

 

Téléchargez les clés nécessaires pour les dépôts et installez-les :

mkdir /tmp/keys/
cd /tmp/keys
wget http://nginx.org/keys/nginx_signing.key
wget https://www.dotdeb.org/dotdeb.gpg
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db #MariaDB
apt-key add nginx_signing.key && apt-key add dotdeb.gpg

 

Maintenant, mettez votre système à jour :

wget -O- https://raw.githubusercontent.com/stylersnico/debian-scripts/master/upgrade-and-clean-system.sh | sh

Installation des composants nécessaires :

Installez tous les packages nécessaires :

apt-get install nginx mariadb-server openssl git quota quotatool rkhunter snmp binutils ufw vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl 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 php7.0-fpm php7.0-curl php7.0-mysql php7.0-mbstring php7.0-gd php7.0-intl php7.0-imap php7.0-pspell php7.0-recode php7.0-snmp php7.0-tidy php7.0-json php7.0-opcache fcgiwrap memcached pure-ftpd-common pure-ftpd-mysql bind9 dnsutils haveged fail2ban build-essential autoconf automake libtool flex bison debhelper binutils -y

 

Installez la dernière version de Jailkit :

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
./debian/rules binary
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

 

Virez la configuration par défaut de nginx et créez les dossiers nécessaires :

mkdir /etc/nginx/sites-enabled && rm /etc/nginx/conf.d/*

 

Si vous voulez un accès externe aux bases de données MariaDB, vous devez modifier le fichier de configuration de MariaDB :

nano /etc/mysql/my.cnf

 

Recherchez l’option bind-address à la ligne 47 et commentez-la :

Avant :

bind-address            = 127.0.0.1

Après :

#bind-address            = 127.0.0.1

 

Ajoutez également la ligne suivante après la ligne bind-adress :

sql-mode="NO_ENGINE_SUBSTITUTION"

 

Sauvegardez en effectuant la combinaison de touches Ctrl+O et redémarrez MariaDB:

systemctl restart mysql

 

Maintenant, on va modifier la configuration de notre serveur FTP :

nano /etc/default/pure-ftpd-common

 

Vérifiez que le démarrage soit en STANDALONE et que virtualchroot soit sur TRUE

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

On va maintenant autoriser les sessions par TLS pour plus de sécurité

echo 1 > /etc/pure-ftpd/conf/TLS
mkdir -p /etc/ssl/private/

 

On va maintenant générer un certificat SSL dans le dossier que l’on vient de créer :

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

 

Changez les permissions du certificat :

chmod 600 /etc/ssl/private/pure-ftpd.pem

 

Redémarrez le serveur FTP :

/etc/init.d/pure-ftpd-mysql restart

 

Pour que Fail2Ban surveille notre serveur FTP nous allons devoir créer un fichier de configuration spécifique :

nano /etc/fail2ban/jail.local

 

Remplissez-le avec ceci :

[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3

 

On va maintenant créer un filtre :

nano /etc/fail2ban/filter.d/pureftpd.conf

 

Et le remplir avec cela :

[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex =

 

Lancez l’assistant de sécurisation de MariaDB avec la commande suivante :

mysql_secure_installation

 

Maintenant, ajoutez le support de quota sur votre serveur.

Éditez le fichier fstab :

nano /etc/fstab

 

Ajoutez ceci à la suite de / ext4 errors=remount-ro :

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

 

Par exemple le fichier ressemble à ça chez moi après modification :

# /etc/fstab: static file system information.
#
# Use ‘blkid’ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=5bc31ecc-d864-44dc-bea4-d409696cb577 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

 

Ensuite, lancez les commandes suivants pour appliquer la nouvelle configuration de Quota à chaud :

mount -o remount /
quotacheck -avugm
quotaon -avug

 

Maintenant, installez le client Let’s Encrypt pour que ISPConfig puisse gérer les certificats :

cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt/
./letsencrypt-auto --help

 

Installez la configuration nécessaire pour Nginx avec les commandes suivantes :

cd /etc/ssl/certs && openssl dhparam -out dhparam.pem 4096
cd /etc/nginx/
rm nginx.conf
wget https://www.abyssproject.net/wp-content/uploads/2016/01/nginx.conf_.txt
mv nginx.conf_.txt nginx.conf
service php7.0-fpm restart && service nginx restart

Installation de ISPConfig 3.1 :

Téléchargez la dernière version avec la commande suivante :

wget http://downloads.sourceforge.net/project/ispconfig/ISPConfig%203/ISPConfig-3.1/ISPConfig-3.1.tar.gz && tar xfz ISPConfig-3.1.tar.gz
cd ispconfig3_install/install/
cat dist/conf/debiantesting.conf.php > dist/conf/debian40.conf.php && cat dist/conf/debiantesting.conf.php > dist/conf/debian60.conf.php

 

Et lancez l’installation avec la commande suivante :

php -q install.php

 

Suivez les instructions de l’installateur, mais lorsqu’il vous laissera le choix entre l’installation standard et expert, choisissez expert

Select language (en,de) [en]:
Installation mode (standard,expert) [standard]: expert

 

Lorsqu’il vous demandera pour la configuration des mails, il faudra lui répondre non, car nous n’avons pas installé postfix.

Configure Mail (y,n) [Y]: n

 

Vous pouvez laisser tous les autres paramètres par défaut.

 

Création d’un premier site :

Maintenant, rendez-vous sur l’interface d’ISPConfig 3.1 accessible à l’adresse suivante :

https://fqdndevotreserveur.ext:8080/

 

Connectez-vous avec les identifiants admin/admin (par défaut, changez-les). Vous aurez la nouvelle interface qui est plutôt sympathique.

Cliquez sur Go  to Sites :

installation-ispconfig-3.1-debian-01

 

Ensuite, cliquez sur Add new website :

installation-ispconfig-3.1-debian-02

 

Pour finir, ajoutez votre domaine, indiquez si vous utilisez le sous-domaine en www., cochez la case Let’s Encrypt SSL et choisissez PHP-FPM :

installation-ispconfig-3.1-debian-03

 

Cliquez sur Save, attendez 5 petites minutes et votre site sera automatiquement configuré pour utiliser un certificat Let’s Encrypt, sans les mains 🙂

installation-ispconfig-3.1-debian-04