Installation d’ISPConfig

Bonjour à vous tous !

Si vous avez déjà fait un peu d’admin serveur, vous vous rendez vite compte que l’installation de base est toujours la même, installation de php, configuration, vhost, accès ftp et db, … et on recommence pour chaque utilisateur.

Je me suis intéressé à ISPConfig (dans sa version 3).

Installation d’ISPConfig

Casper development - ISPConfig - Home

Pour ma pars, je fonctionne avec Debian 8, et ils ont pensé à moi 🙂 Un guide est fourni avec toutes les explications détaillées afin de procéder à l’installation (des guides existes également pour d’autres OS évidemment)

Le guide: https://www.howtoforge.com/tutorial/perfect-server-debian-8-jessie-apache-bind-dovecot-ispconfig-3/

Suivez le scrupuleusement, le fait de zapper une étape pourrait tout faire planter.
Il vaut également mieux suivre le tutos depuis une fresh install au risque d’avoir des éléments manquant. Pour ma pars je l’ai effectivement sur plusieurs vps Ovh sans aucun problème.

Quelques points où il faut tout de même faire attention et ne pas foncer tête baissée :

  • A l’étape 8, la commande présentée installe maria Db comme système de base de données. Si vous souhaitez utiliser mysql, utilisé plutôt la commande suivante :
    apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo
  • Ne faites pas l’étape 11 (suPhp)
  • L’étape 13 peut être optionnel

Une fois finalisé, vous voilà heureux possesseur d’un serveur tout frais avec ISPConfig 3.
Vous pouvez dès lors vous connecter sur votre interface via https://votre_ip:8080 (ou un autre port si vous avez mis un autre dans le processus d’installation), avec le login et le mot de passe admin (Il va de soi que je vous conseille de le changer, via Tools > User settings > Password and language, ou via System > User Management > Cp user > admin).

Avant de passer à la configuration, je vous invite à ajouter quelques éléments de sécurités en plus:

Interdire l’accès root

  • Ajouté un groupe pour les utilisateurs qui seront autorisés
    addgroup sshusers_ispconfig
  • Créons l’utilisateur
    adduser user1
  • Ajout de l’utilisateur dans le groupe crée
    usermod -a -G sshusers_ispconfig user1
  • Modifions ssh
    nano /etc/ssh/sshd_config

    • Recherché la ligne « PermitRootLogin » et changé yes pour no
    • Ajouté une ligne: « AllowGroups sshusers sshusers_ispconfig »
      Pourquoi j’autorise deux groupes ? Il semble qu’ISPConfig crée son propre groupe sshusers et afin d’éviter de faire doublon j’ai préféré créer mon propre groupe et d’autoriser les deux.
      Je vous invite également à changer le port de connexion ssh.
  • Effectué un /etc/init.d/ssh restart
  • Ouvrez une nouvelle fenêtre ssh et connectez vous avec le nouvel utilisateur afin de vérifier si tout est ok.

Amélioré la configuration de fail2ban

Vous l’avez normalement déjà installé si vous avez correctement suivi le processus d’installation. Je vous invite donc à configurer fail2ban plus Vous l’avez normalement déjà installer si vous avez correctement suivi le processus d’installation. Je vous invites donc à configurer fail2ban plus précisemment..

Ouvrez le fichier jail.conf
nano /etc/fail2ban/jail.conf

Plusieurs éléments peuvent être intéressant à modifier

ignoreip = 127.0.0.1/8

Vous pouvez ajouter d’autre adresse ip qui seront ignorées dans les filtres de ban. Il suffit de les ajouter à la suite en utilisant simplement un espace comme séparateur.
Si vous avez une ip fixe par exemple, c’est l’endroit idéal pour la placer (Pour la petite histoire, je n’ai pas de fixe à mon domicile et j’ai réussi à me faire ban de mon serveur, pas cool en développement ^^).

  • bantime = 600* : 600 secondes, c’est le temps pendant lequel le hackeur en herbe, ou le type pas doué (genre moi :p ) sera bannis. Dix minutes ce n’est pas beaucoup en tout cas. Mettez au moins 3600 (1 heure)
  • findtime = 600* : c’est la durée sur laquelle des tentatives de connexion seront recherchées. Avec 600 secondes, une tentative peut être faite toutes les 601 secondes sans risquer le ban. Je vous conseille de l’augmenter également.
  • maxretry = 3* : Nombre max de tentatives, 3 me semble bien, mais libre à vous de l’adapter 🙂

Vous avez un peu plus bas dans ce document les informations pour envoyer les alertes de ban par mails (honnêtement je ne vous le conseille pas: si vous avez une attaque vous allez vous retrouver avec des milliers de mail – c’est du vécu)

En descendant encore dans le fichier vous arrivez sur une section plus intéressante, c’est la partie « JAILS »: donc les différentes zone qui vont être contrôlées par fail2ban.
Parcourez les différentes jail et passez *enable* à **true** les éléments que vous désirez controler.

Remarque par rapport au premier filtre : Si vous avez modifier votre port ssh (4321 au lieu du 22 de base par exemple), modifier la jail ssh en fonction.

[ssh]

enabled = true
port = ssh 4321
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Ensuite, un /etc/init.d/fail2ban restart pour activer ces nouveaux filtres.

Pour en lire plus sur fail2ban, je vous conseille ce lien: https://www.isalo.org/wiki.debian-fr/Fail2ban

Effectué la requêtes suivante afin de vérifier que tout tourne
/usr/bin/fail2ban-client status

Vous devriez avoir un retour du style :

Casper development - ISPConfig - Fail2ban

Si vous avez une erreur, vous pouvez exécuter
systemctl status fail2ban.service -l
Cela vous permettra de connaitre les erreurs.

Le point suivant est la configuration d’ISPConfig

1. La création des utilisateurs, vhost, ftp et base de données
2. La configuration des DNS et des mails

Lire la suite : configuration d’ISPConfig

Merci de m’avoir lu 🙂
Jérémy

Laisser un commentaire

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