ISPConfig 3 – Installation

Lundi 28 novembre 2011 1 commentaire


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 ?