ISPConfig 3 – Installation

Lundi 28 novembre 2011 12 commentaires


Depuis le temps que je voulais le faire, voici un petit tutoriel pour installer ISPConfig.

Fonctionnalités

ISPConfig vous permet de gérer l’hébergement de votre serveur dédié à l’aide d’une interface web. C’est ce que l’on appelle un « webmin ».

Utilisateurs

3 différents niveaux d’utilisateurs existent

  • Administrateur
  • Revendeur
  • Client

L’administrateur a tous les droits, le revendeur peut créer de nouveaux clients.

Les outils utilisés

  • HTTP: Apache2 and nginx
  • SMTP: Postfix
  • POP3/IMAP: Courier et Dovecot (1.2.x)
  • FTP: PureFTPd
  • DNS: BIND et MyDNS
  • Base de donnée: MySQL
  • Statistiques: Webalizer et AWStats
  • Virtualization: OpenVZ

Les services gérés

Sites web
  • Domaines des Virtual Host
  • SSL, CGI, SSI, Ruby, Python
  • PHP sous différents modes mod_php, FCGI, CGI et SuPHP
  • Différentes instances de PHP lancé par site web
  • Re-écriture, alias, redirections.
Utilisateurs FTP
Bases de données MySQL
Utilisateurs Shell (chrooté ou non)
Mails
  • SMTP
  • POP3, IMAP, POP3s, IMAP
  • Boites mails
  • Alias mail
  • Filtres de spam et virus
  • Les listes blanches / noires
  • La réponse automatique
  • La collecte de mail avec fetchmail
  • Listes de diffusion avec mailman
DNS
  • Un DNS wizzard pour créer des zones facilement
  • Réglage des zones et des enregistrements
  • Import depuis des fichiers bind
  • Support des enregistrements de type : A, AAAA, ALIAS, CNAME, HINFO, MX, NS, PTR, RP, SRV, TXT
  • Gestion des DNS Master/Slave
Virtualisation (à travers OpenVZ)
Parefeu
Statistiques avec Webalizer et AWStat
Quotas et limites
  • D’espace disque
  • de boite mail
  • De traffic

ISPConfig supporte beaucoup de langage et fonctionne sur la plupart des distributions Linux.
Je vais détailler ici la procédure d’installation et configuration sur une fraiche Debian Squeeze 6.

Mise a jour, synchronisation de l’heure et hostname

On fait les mise à jour :

apt-get update ; apt-get dist-upgrade

On fixe le nom de l’hôte

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

On vérifie :

hostname -f

On synchronise l’horloge système :

apt-get install ntp ntpdate

Installation des services mails

Aller hop, cul-sec :

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

Il vous sera alors demandé de répondre à certaines questions :

  • Type général de configuration mail: Internet Site
  • Domaine des mails système: sheebypanda.com
  • 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, supprimer les 2 fichiers suivants :

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

et modifier les fichiers suivants :

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

Puis dans chacun de ces fichiers, remplacer la ligne CN par votre domaine comme ci-dessous :

[...]
CN=sheebypanda.com
[...]

Puis recréer les certificats :

mkimapdcert
mkpop3dcert

On redémarer courier-pop-sll et courier-imap-ssl

/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

La configuration d’ISPConfig utilise amavisd qui charge SpamAssassin en interne, donc on peut arrêter SpamAssassin pour libérer un peu de RAM :

/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

Il vous sera alors posé les questions suivantes :

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

On autorise les nouveaux modules d’apache2 :

a2enmod suexec rewrite ssl actions include

Autorisez aussi ces deux derniers pour utiliser WebDav :

a2enmod dav_fs dav auth_digest

Puis redémarrez apache :

/etc/init.d/apache2 restart

Installation du FTP et des quotas :

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

Modifier le fichier suivant :

nano /etc/default/pure-ftpd-common

Puis vérifier que vous avez la même chose pour les deux lignes suivantes :

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

Pour que la partition accepte les quotas, éditer le fstab :

nano /etc/fstab

et ajouter « ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0″ aux options de la partition / comme ci-dessous :

#                
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 /               ext3    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1

puis lancer :

mount -o remount /
quotacheck -avugm
quotaon -avug

Installation de fail2ban

apt-get install fail2ban

puis autoriser le blocage des services que vous souhaitez sur le fichier.

nano /etc/fail2ban/jail.local

Enfin, redémarrer 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

Il vous sera alors demandé :

  • Select language (en,de) [en]:ENTER
  • Installation mode (standard,expert) [standard]: ENTER
  • Full qualified hostname (FQDN) of the server, eg server1.domain.tld [server1.example.com]: 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.com:8080/
L’identifiant et mot de passe par défaut sont admin / admin

[source]

Mots-clefs : , , , ,

Commentaires

  1. Tarok dit :

    Pas de faille avec ispconfig 3 ?

    Faut-il mieux faire une install de serveur à la main ou via cet outil ?

  2. ATHE GOMEZ dit :

    Bonjour, Sincère remerciement. J’ai suivi votre tuto et je suis arrivé a bout de mon installation sans trop de soucis.
    ISPCONFIG3 marche pour l’instant très bien.

    Cependant je voudrait changer l’adresse mail root pour la perte éventuelle du mot de passe.

    Si vous pouvez m’indiquer comment faire!?

    Merci

  3. Nic1101 dit :

    Bonjour, c’est pour changer le mot de passe de «root» ? Du moins, c’Est ce que j’ai compris. Pour le fiare, voici :

    - Tout d’abord, loggez-vous sur votre panel et cliquez sur «email».
    - Ensuite, cliquez sur «Boîte email», à gauche.
    - Sélectionnez ensuite votre email (root@domaine.com)
    - Changez le mot de passe et cliquez sur enregistrer.

    Nic11101

  4. jm dit :

    Bravo, beau tuto et qui fonctionne – fait assez rare pour être souligné.
    Merci encore

  5. Jean-Pierre Cottin dit :

    Bonjour,

    Merci pour cet excellent tuto, qui m’a permis d’installer ISP tranquillement, sans stress, sur une dedibox, tout en étant carrément novice.

    ça fonctionne impeccablement bien.

  6. Yurexa dit :

    Bonjour,

    J’ai un petit souci : au moment de taper les commandes « quotacheck -avugm » et « quotaon -avug », j’ai dans l’ordre d’apparition les erreurs suivantes :
    **Avec quotacheck -avugm**
    - quotacheck: Cannot stat() mounted device /dev/root: No such file or directory
    - quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.

    **Avec quotaon -avug**
    - quotaon: Cannot stat() mounted device /dev/root: No such file or directory

    Quelles sont les causes de telles erreurs ? Je n’ai eu aucun autre problème du début de l’installation jusqu’à ces commandes.
    Merci d’avance :-)

  7. Wiloooo dit :

    Bonsoir,

    Je vais vous paraître stupide, mais j’ai essayé voir tutoriel sur mon vkimsufi cela dit ça ne marche pas il me dit apt not found et quand j’essaye avec sudo c’est aussi « sudo » not found !
    y a-t-il une manipulation à faire avant de faire votre tutoriel, il faut savoir que mon serveur est totalement vierge.

    merci :)

  8. SheebyPanda dit :

    T’as bien une debian-like ?

  9. KarlK dit :

    Bonjour,

    Merci pour cet excellent tutoriel. J’ai une question/problème. Le smtp ne marche pas, y a t’il quelque chose de particulier à faire pour le rendre opérant ?

  10. Mandimby dit :

    comment créer les utilisateurs de pureftpd avec ISPConfig;J’ai suivi votre tuto.Tout va bien mais le blem j n peux pas acceder avec ftp

  11. s2prod dit :

    C’est un excellent tuto, car je suis une grosse quiche et je m’en suis sorti sans problème. Mais comme je suis une grosse feignasse, j’ai trouvé encore plus simple avec script réalisé un par un néerlandais qui automatise toute l’installation from scratch : http://www.e-rave.nl/automatic-debian-system-installation-for-ispconfig-3

  12. WiT PC dit :

    Bonjour, super tuto merci.
    Juste une petite modif à ne pas oublier pour la gestion des dns :

    éditer le fichier de conf de bind

    /etc/bind/named.conf.options

    remplacer 127.0.0.0 par any pour que bind écoute sur les adresses ip externes du serveur.

    Et ajouter les ports ouvert dans le firewall. Depuis l’interface web d’ispconfig : système, pare feu, ajouter et valider ce qu’il propose par défaut.