GNU/Linux >> Tutoriels Linux >  >> Debian

Le serveur parfait - Debian 8 Jessie (Apache2, BIND, Dovecot, ISPConfig 3)

Ce tutoriel montre comment préparer un serveur Debian Jessie (avec Apache2, BIND, Dovecot) pour l'installation d'ISPConfig 3, et comment installer ISPConfig 3. Le panneau de contrôle d'hébergement web ISPConfig 3 vous permet de configurer les services suivants via un navigateur web :Serveur Web Apache ou nginx, serveur de messagerie Postfix, serveur Courier ou Dovecot IMAP/POP3, serveur de noms MySQL, BIND ou MyDNS, PureFTPd, SpamAssassin, ClamAV, et bien d'autres. Cette configuration couvre Apache (au lieu de nginx), BIND (au lieu de MyDNS) et Dovecot (au lieu de Courier).

1 Remarque préliminaire

Dans ce tutoriel, j'utiliserai le nom d'hôte server1.example.com avec l'adresse IP 192.168.1.100 et la passerelle 192.168.1.1. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant. Avant de poursuivre, vous devez disposer d'une installation minimale de Debian 8. Il peut s'agir d'une image minimale Debian de votre fournisseur d'hébergement ou vous utilisez le didacticiel sur le serveur Debian minimal pour configurer le système de base.

2 Installer le serveur SSH (facultatif)

Si vous n'avez pas installé le serveur OpenSSH lors de l'installation du système, vous pouvez le faire maintenant :

apt-get install ssh openssh-server

À partir de maintenant, vous pouvez utiliser un client SSH tel que PuTTY et vous connecter depuis votre poste de travail à votre serveur Debian Jessie et suivre les étapes restantes de ce tutoriel.

3 Installer un éditeur de texte shell (facultatif)

Nous utiliserons nano éditeur de texte dans ce tutoriel. Certains utilisateurs préfèrent l'éditeur vi classique, c'est pourquoi nous allons installer les deux éditeurs ici. Le programme vi par défaut a un comportement étrange sur Debian et Ubuntu; pour résoudre ce problème, nous installons vim-nox :

apt-get install nano vim-nox

Si vi est votre éditeur préféré, remplacez nano par vi dans les commandes suivantes pour modifier les fichiers.

4 Configurer le nom d'hôte

Le nom d'hôte de votre serveur doit être un sous-domaine tel que "server1.example.com". N'utilisez pas un nom de domaine sans partie de sous-domaine comme "example.com" comme nom d'hôte car cela causera des problèmes plus tard avec votre configuration de messagerie. Vous devez d'abord vérifier le nom d'hôte dans /etc/hosts et le modifier si nécessaire. La ligne doit être :"Adresse IP - espace - nom d'hôte complet, y compris domaine - espace - partie sous-domaine". Pour notre nom d'hôte server1.example.com, le fichier ressemblera à ceci :

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.1.100 server1.example.com server1# Les lignes suivantes sont souhaitables pour les hôtes compatibles IPv6 ::1 localhost ip6-localhost ip6-loopbackff02 ::1 ip6-allnodesff02 ::2 ip6 -allrouters

Modifiez ensuite le fichier /etc/hostname :

nano /etc/hostname

Il ne contiendra que la partie sous-domaine, dans notre cas :

serveur1

Enfin, redémarrez le serveur pour appliquer la modification :

redémarrer

Connectez-vous à nouveau et vérifiez si le nom d'hôte est correct maintenant avec ces commandes :

nomhôte
nomhôte -f

La sortie doit ressembler à ceci :

[email protected] :/tmp# hostname
server1
[email protected] :/tmp# hostname -f
server1.example.com

5 Mettre à jour votre installation Debian

Assurez-vous d'abord que votre /etc/apt/sources.list contient le référentiel jessie/updates (cela garantit que vous obtenez toujours les dernières mises à jour de sécurité), et que les référentiels contrib et non-free sont activés (certains packages tels que libapache2- mod-fastcgi ne sont pas dans le référentiel principal).

nano /etc/apt/sources.list
#deb cdrom :[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 NETINST Binary-1 20150425-12:50]/ jessie main

deb http://ftp.us.debian .org/debian/ jessie main contrib non-free
deb-src http://ftp.us.debian.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

Exécuter :

apt-obtenir la mise à jour

Pour mettre à jour la base de données des packages apt

apt-get upgrade

et pour installer les dernières mises à jour (s'il y en a).

6 Modifier le shell par défaut

/bin/sh est un lien symbolique vers /bin/dash, cependant nous avons besoin de /bin/bash, pas de /bin/dash. C'est pourquoi nous procédons comme suit :

dpkg-reconfigure dash

Utiliser dash comme shell système par défaut (/bin/sh) ? <- non

Si vous ne le faites pas, l'installation d'ISPConfig échouera.

7 Synchroniser l'horloge système

C'est une bonne idée de synchroniser l'horloge système avec un NTP (n réseau t temps p rotocol) sur Internet. Exécutez simplement

apt-get install ntp ntpdate

et l'heure de votre système sera toujours synchronisée.

8 Installer Postfix, Dovecot, MySQL, phpMyAdmin, rkhunter, binutils

Nous pouvons installer Postfix, Dovecot, MySQL, rkhunter et binutils avec une seule commande :

apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo

Si vous préférez MySQL à MariaDB, remplacez les packages "mariadb-client mariadb-server" dans la commande ci-dessus par "mysql-client mysql-server".

Les questions suivantes vous seront posées :

Type général de configuration de messagerie :<-- Site Internet
Nom de messagerie système :<-- server1.example.com
Nouveau mot de passe pour l'utilisateur "root" de MariaDB :<-- yourrootsqlpassword
Répéter mot de passe pour l'utilisateur "root" de MariaDB : <-- yourrootsqlpassword

Ouvrez ensuite les ports TLS/SSL et de soumission dans Postfix :

nano /etc/postfix/master.cf

Décommentez les sections de soumission et smtps comme suit et ajoutez des lignes si nécessaire afin que cette section du fichier master.cf ressemble exactement à celle ci-dessous.

[...]submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
- o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions=$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions=$dender_mua_sender br /># -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - - - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o smtpd_reject_unlisted_recipient=no
# -o smtpd_client_restrictions =$mua_client_restrictions
# -o smtpd_helo_restrictions=$mua_helo_restrictions
# -o smtpd_sender_r estrictions=$mua_sender_restrictions
# -o smtpd_recipient_restrictions=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING[...]

Redémarrez ensuite Postfix :

redémarrage postfixé du service

Nous voulons que MariaDB écoute sur toutes les interfaces, pas seulement sur localhost, donc nous modifions /etc/mysql/my.cnf et commentons la ligne bind-address =127.0.0.1 :

nano /etc/mysql/my.cnf
[...]# Au lieu de sauter la mise en réseau, la valeur par défaut est désormais d'écouter uniquement sur# localhost qui est plus compatible et n'est pas moins sécurisé.#bind-address =127.0.0.1[...]

Ensuite, nous redémarrons MySQL :

service redémarrage mysql

Vérifiez maintenant que la mise en réseau est activée. Exécuter

netstat -tap | grep mysql

Le résultat devrait ressembler à ceci :

[email protected] :/tmp# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* ECOUTEZ 27371/mysqld

9 Installer Amavisd-new, SpamAssassin et Clamav

Pour installer amavisd-new, SpamAssassin et ClamAV, nous lançons

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj noarch 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 3 utilise amavisd qui charge la bibliothèque de filtres SpamAssassin en interne, nous pouvons donc arrêter SpamAssassin pour libérer de la RAM :

service spamassassin stop
systemctl disable spamassassin

10 Installer Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear et mcrypt

Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear et mcrypt peuvent être installés comme suit :

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 libruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-pspell php5-recode php5 -sqlite php5-tidy php5-xmlrpc php5-xsl memcached libapache2-mod-passenger

Vous verrez les questions suivantes :

Serveur Web à reconfigurer automatiquement : <- apache2
Configurer la base de données pour phpmyadmin avec dbconfig-common ? <- oui
Entrez le mot de passe de l'utilisateur administratif ? <- yourrootmysqlpassword
Entrez le mot de passe de l'application phpmyadmin ? <-  Appuyez simplement sur Entrée

Exécutez ensuite la commande suivante pour activer les modules Apache suexec, rewrite, ssl, actions et include (plus dav, dav_fs et auth_digest si vous souhaitez utiliser WebDAV) :

les actions SSL de réécriture a2enmod suexec incluent dav_fs dav auth_digest cgi

et activez le module en exécutant :

service apache2 redémarrage

NOTE MISE À JOUR :SuPHP ne devrait plus être installé, passez à l'étape 11

SuPHP n'est plus disponible pour Debian Jessie. Le mode suphp ne devrait plus être utilisé dans ISPConfig car il existe de meilleurs modes PHP comme php-fpm et php-fcgi disponibles. Si vous avez vraiment besoin de suphp pour des raisons héritées, suivez les étapes de ce chapitre pour le compiler manuellement :

apt-get install apache2-dev build-essential autoconf automake libtool flex bison debhelper binutils
cd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz
wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 cd suphp-0.7.2
autoreconf -if
./configure --prefix=/usr/ --sysconfdir=/etc/suphp/ --with-apr=/usr/bin /apr-1-config --with-apache-user=www-data --with-setid-mode=owner --with-logfile=/var/log/suphp/suphp.log
make
faire installer

Créez le répertoire de configuration suphp et le fichier suphp.conf :

mkdir /var/log/suphp
mkdir /etc/suphp
nano /etc/suphp/suphp.conf
[global]
;Chemin d'accès au fichier journal
logfile=/var/log/suphp/suphp.log

;Loglevel
loglevel=info

;L'utilisateur Apache s'exécute en tant que
webserver_user=www-data

;Chemin dans lequel tous les scripts doivent se trouver
docroot=/var/www

;Chemin vers chroot() avant d'exécuter le script
;chroot=/mychroot

; Options de sécurité
allow_file_group_writeable=false
allow_file_others_writeable=false
allow_directory_group_writeable=false
allow_directory_others_writeable=false

;Vérifier si le script se trouve dans DOCUMENT_ROOT
check_vhost_docroot =true

;Envoie des messages d'erreur mineurs au navigateur
errors_to_browser=false

;Variable d'environnement PATH
env_path=/bin:/usr/bin

;Umask à définir, à spécifier en notation octale
umask=0022

; UID minimal
min_uid=100

 ; GID minimum
min_gid=100


[gestionnaires]
;Gestionnaire pour les scripts php
x-httpd-suphp="php:/usr/ bin/php-cgi"

;Gestionnaire pour les scripts CGI
x-suphp-cgi=execute:!self
umask=0022

Ensuite, nous allons ajouter un fichier de configuration pour charger le module suphp dans apache :

echo "LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so"> /etc/apache2/mods-available/suphp.load

Et puis ouvrez /etc/apache2/mods-available/suphp.conf...

nano /etc/apache2/mods-available/suphp.conf

... et ajoutez le contenu suivant :

 AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_AddHandler application/x-httpd-suphp  suPHP_Engine on  # Par défaut, désactiver suPHP pour les applications Web empaquetées par Debian, car les fichiers # appartiennent à root et ne peuvent pas être exécutés par suPHP à cause de min_uid.  suPHP_Engine off # # Utiliser un fichier de configuration php spécifique (un répertoire contenant un fichier php.ini)# suPHP_ConfigPath /etc/php5/cgi/suphp/# ​​# Dit à mod_suphp de NE PAS gérer requêtes avec le type .# suPHP_RemoveHandler 

Activez le module suphp dans apache :

a2enmod suphp

Redémarrez ensuite Apache :

redémarrage du service apache2

12 XCache et PHP-FPM

XCache est un cache d'opcode PHP gratuit et ouvert pour la mise en cache et l'optimisation du code intermédiaire PHP. Il est similaire à d'autres cacheurs d'opcodes PHP, tels que eAccelerator et APC. Il est fortement recommandé d'en installer un pour accélérer votre page PHP.

XCache peut être installé comme suit :

apt-get install php5-xcache

Maintenant, redémarrez Apache :

redémarrage du service apache2

12.2 PHP-FPM

À partir d'ISPConfig 3.0.5, il existe un mode PHP supplémentaire que vous pouvez sélectionner pour une utilisation avec Apache :PHP-FPM.

Pour utiliser PHP-FPM avec Apache, nous avons besoin du module Apache mod_fastcgi (veuillez ne pas le confondre avec mod_fcgid - ils sont très similaires, mais vous ne pouvez pas utiliser PHP-FPM avec mod_fcgid). Nous pouvons installer PHP-FPM et mod_fastcgi comme suit :

apt-get install libapache2-mod-fastcgi php5-fpm

Assurez-vous d'activer le module et de redémarrer Apache :

a2enmod actions fastcgi alias
service redémarrage apache2

13 Installer Mailman

ISPConfig vous permet de gérer (créer/modifier/supprimer) des listes de diffusion Mailman. Si vous souhaitez utiliser cette fonctionnalité, installez Mailman comme suit :

apt-get install mailman

Sélectionnez au moins une langue, par exemple :

Langues à prendre en charge : <-- fr (anglais)
Liste de sites manquante <-- Ok

Avant de pouvoir démarrer Mailman, une première liste de diffusion appelée mailman doit être créée :

nouvelle liste de facteur
[email protected] : # newlist mailman
Saisissez l'adresse e-mail de la personne qui gère la liste : <-- l'adresse e-mail de l'administrateur, par ex. [email protected]
Mot de passe initial mailman : <-- mot de passe admin pour la liste mailman 
Pour finir la création de votre liste d'envoi , vous de vaut modifier votre /etc/aliases (ou
équivalent) fichier en en ajoutant les lignes suivantes et éventuellement en exécutant le programme
`newaliases' :

## mailman mailing list
mailman :              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin :        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces :      "|/var/lib/mailman/mail/mailman rebondit mailman"
mailman-confirm :      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join :         "|/var/lib/mailman/mail/mailman join mailman"
mailman- congé :        "|/var/lib/mailman/mail/mailman congé mailman"
mailman-owner :        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request :      "| /var/lib/mailman/mail/mailman request mailman"
mailman-subscribe :    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsu bscribe :  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

Appuyez sur Entrée pour notifier le propriétaire du mailman... <-- ENTER

[email protected] :~#

Ouvrez ensuite /etc/aliases...

vi /etc/aliases

... et ajoutez les lignes suivantes :

[...]## mailman mailing listmailman:"|/var/lib/mailman/mail/mailman post mailman"mailman-admin:"|/var/lib/mailman/mail/mailman admin mailman"mailman- rebondit :"|/var/lib/mailman/mail/mailman rebondit mailman"mailman-confirm :"|/var/lib/mailman/mail/mailman confirme mailman"mailman-join :"|/var/lib/mailman/mail /mailman rejoindre mailman"mailman-leave :"|/var/lib/mailman/mail/mailman quitter mailman"mailman-owner :"|/var/lib/mailman/mail/mailman propriétaire mailman"mailman-request :"|/ var/lib/mailman/mail/mailman demande mailman"mailman-subscribe:"|/var/lib/mailman/mail/mailman s'abonner mailman"mailman-unsubscribe:"|/var/lib/mailman/mail/mailman se désabonner mailman" 

Exécuter

nouveaux alias

ensuite et relancez Postfix :

redémarrage postfixé du service

Enfin, nous devons activer la configuration de Mailman Apache :

ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf

Cela définit l'alias /cgi-bin/mailman/ pour tous les vhosts Apache, ce qui signifie que vous pouvez accéder à l'interface d'administration Mailman pour une liste à http://server1.example.com/cgi-bin/mailman/admin/, et le page Web pour les utilisateurs d'une liste de diffusion peut être trouvé à http://server1.example.com/cgi-bin/mailman/listinfo/.

Sous http://server1.example.com/pipermail, vous trouverez les archives de la liste de diffusion.

Redémarrez ensuite Apache :

redémarrage du service apache2

Démarrez ensuite le démon Mailman :

démarrage du facteur de service

14 Installer PureFTPd et quota

PureFTPd et quota peuvent être installés avec la commande suivante :

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

Editez le fichier /etc/default/pure-ftpd-common...

nano /etc/default/pure-ftpd-common

... et assurez-vous que le mode de démarrage est défini sur autonome et définissez VIRTUALCHROOT=true :

[...]STANDALONE_OR_INETD=autonome[...]VIRTUALCHROOT=true[...]

Nous configurons maintenant PureFTPd pour autoriser les sessions FTP et TLS. FTP est un protocole très peu sûr car tous les mots de passe et toutes les données sont transférés en texte clair. En utilisant TLS, toute la communication peut être cryptée, ce qui rend le FTP beaucoup plus sécurisé.

Si vous souhaitez autoriser les sessions FTP et TLS, exécutez

echo 1> /etc/pure-ftpd/conf/TLS

Pour utiliser TLS, nous devons créer un certificat SSL. Je le crée dans /etc/ssl/private/, donc je crée d'abord ce répertoire :

mkdir -p /etc/ssl/private/

Ensuite, nous pouvons générer le certificat SSL comme suit :

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Nom du pays (code à 2 lettres) [AU] :<-- Saisissez le nom de votre pays (par exemple, "DE").
Nom de l'État ou de la province (nom complet) [Some-State] :<-- Saisissez le nom de votre État ou de votre province.
Nom de la localité (par exemple, ville) [] :<-- Saisissez votre ville.
Nom de l'organisation (par exemple, société) [Internet Widgits Pty Ltd] :<-- Saisissez votre nom d'organisation (par exemple, le nom de votre entreprise).
Nom de l'unité organisationnelle (par exemple, section) [] :<-- Entrez le nom de votre unité organisationnelle (par exemple, "Service informatique").
Nom commun (par exemple, VOTRE nom) [] :<-- Saisissez le nom de domaine complet du système (par exemple, "serveur1.exemple.com").
Adresse e-mail [] : <-- Saisissez votre adresse e-mail.

Modifiez les autorisations du certificat SSL :

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

Redémarrez ensuite PureFTPd :

redémarrage du service pure-ftpd-mysql

Modifiez /etc/fstab. Le mien ressemble à ceci (j'ai ajouté ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 à la partition avec le point de montage /):

nano /etc/fstab
# /etc/fstab :informations statiques sur le système de fichiers.
#
# Utilisez 'blkid' pour imprimer l'identifiant universel unique d'un
# périphérique ; cela peut être utilisé avec UUID=comme un moyen plus robuste de nommer les périphériques
# qui fonctionne même si des disques sont ajoutés et supprimés. Voir fstab(5).
#
#
# / était sur /dev/sda1 lors de l'installation
UUID=3dc3b58d-97e5-497b-8254-a913fdfc5408 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap was on /dev /sda5 lors de l'installation
UUID=36bf486e-8f76-492d-89af-5a8eb3ce8a02 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Pour activer le quota, exécutez ces commandes :

monter -o remonter /
quotacheck -avugm
quotaon -avug

15 Installer le serveur DNS BIND

BIND peut être installé comme suit :

apt-get install bind9 dnsutils

16 Installer Vlogger, Webalizer et AWStats

Vlogger, Webalizer et AWStats peuvent être installés comme suit :

apt-get install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Ouvrez ensuite /etc/cron.d/awstats...

nano /etc/cron.d/awstats

... et commentez tout ce qui se trouve dans ce fichier :

#MAILTO=root#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] &&/usr/share/awstats/tools/update.sh# Générer des statiques rapports :#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] &&/usr/share/awstats/tools/buildstatic.sh

17 Installer Jailkit

Jailkit n'est nécessaire que si vous souhaitez chrooter les utilisateurs SSH. Il peut être installé comme suit (important :Jailkit doit être installé avant ISPConfig - il ne peut pas être installé après !) :

apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit- 2.17
./debian/rules binaire

Vous pouvez maintenant installer le package Jailkit .deb comme suit :

cd ..
dpkg -i jailkit_2.17-1_*.deb
rm -rf jailkit-2.17*

18 Installer fail2ban

Ceci est facultatif mais recommandé, car le moniteur ISPConfig essaie d'afficher le journal :

apt-get install fail2ban

Pour que fail2ban surveille PureFTPd et Dovecot, créez le fichier /etc/fail2ban/jail.local :

nano /etc/fail2ban/jail.local

[pureftpd]enabled =trueport =ftpfilter =pureftpdlogpath =/var/log/syslogmaxretry =3[dovecot-pop3imap]enabled =truefilter =dovecot-pop3imapaction =iptables-multiport[name=dovecot-pop3imap, port="pop3, pop3s,imap,imaps", protocol=tcp]logpath =/var/log/mail.logmaxretry =5[postfix-sasl]enabled =trueport =smtpfilter =postfix-sasllogpath =/var/log/mail.logmaxretry =3 

Créez ensuite les deux fichiers de filtre suivants :

nano /etc/fail2ban/filter.d/pureftpd.conf
[Definition]failregex =.*pure-ftpd :\(.*@\) \[WARNING\] L'authentification a échoué pour l'utilisateur.*ignoreregex =
nano /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]failregex =(?:pop3-login|imap-login):.*(?:Échec de l'authentification|Connexion abandonnée \(échec de l'authentification|Connexion abandonnée \(tentative d'utilisation désactivée|Déconnecté \(échec de l'authentification| Connexion interrompue \(\d+ tentatives d'authentification).*rip=(?P\S*),.*ignoreregex =

Ensuite, pour ajouter la ligne ignoreregex dans le fichier de filtre postfix-sasl, exécutez :

echo "ignoreregex =">> /etc/fail2ban/filter.d/postfix-sasl.conf

Redémarrez ensuite fail2ban :

redémarrage du service fail2ban

19 Installer squirrelmail

Pour installer le client de messagerie Web SquirrelMail, exécutez

apt-get install squirrelmail

Configurez ensuite SquirrelMail :

squirrelmail-configure

Nous devons dire à SquirrelMail que nous utilisons Dovecot-IMAP/-POP3 :

Configuration de SquirrelMail : Lire : config.php (1.4.0)
------------------------------ ---------------------------
Menu principal --
1. Préférences de l'organisation
2. Paramètres du serveur
3. Paramètres par défaut du dossier
4. Options générales
5. Thèmes
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Langues

D. Définir des paramètres prédéfinis pour des serveurs IMAP spécifiques

C   Activer la couleur 
S   Enregistrer les données 
Q   Quitter

Commande >> <-- D


Configuration de SquirrelMail : Lire : config.php
--------------------------- ------------------------------
Pendant que nous construisons SquirrelMail, nous avons découvert certaines
préférences qui fonctionnent mieux avec certains serveurs qui ne fonctionnent pas si 
bien avec d'autres. Si vous sélectionnez votre serveur IMAP, cette option définira certains paramètres prédéfinis pour ce serveur.

Veuillez noter que vous aurez toujours de passer par et vérifier 
tout est correct. Cela ne change pas tout. Il ne seulement quelques paramètres qui vont changer .

Veuillez sélectionner votre serveur IMAP :
    bincimap    = Binc IMAP server
    courier     = Courier IMAP server 
Cyrus =Cyrus IMAP Server
DoveCot =DoveCot Secure IMAP Server
Exchange =Microsoft Exchange IMAP Server
HmailServer =HmailServer
MacOSX =Mac OS X MailServer
Mercury32 =Mercury /32
    uw          = Serveur IMAP de l'Université de Washington 
    gmail       = Accès IMAP aux comptes Google mail (Gmail) 

    quitter        = Ne modifier rien 
Commande >> <-- dovecot


SquirrelMail Configuration : Lire : config.php
----------------------- ----------------------------------
Pendant que nous construisons SquirrelMail, nous avons découvert quelques 
préférences qui fonctionnent mieux avec certains serveurs qui ne fonctionnent pas aussi 
bien avec d'autres. Si vous sélectionnez votre serveur IMAP, cette option définira certains paramètres prédéfinis pour ce serveur.

Veuillez noter que vous aurez toujours de passer par et vérifier 
tout est correct. Cela ne change pas tout. Il ne seulement quelques paramètres qui vont changer .

Veuillez sélectionner votre serveur IMAP :
    bincimap    = Binc IMAP server
    courier     = Courier IMAP server 
Cyrus =Cyrus IMAP Server
DoveCot =DoveCot Secure IMAP Server
Exchange =Microsoft Exchange IMAP Server
HmailServer =HmailServer
MacOSX =Mac OS X MailServer
Mercury32 =Mercury /32
    uw          = Serveur IMAP de l'Université de Washington 
    gmail       = Accès IMAP aux comptes Google mail (Gmail) 

    quitter        = Ne modifier rien 
Command >> dovecot

imap_server_type =dovecot
default_folder_prefix =
trash_folder =trash
Send_folder =envoyé
draft_folder =drafts
show_prefix_option =false
default_sub_of_in_inbox = faux
show_contain_subfolders_option = fa lse
            optional_delimiter = detect
                delete_folder = false

Appuyez sur n'importe qu'une touche pour continuer... <-- appuyez sur une touche

Configuration de SquirrelMail : Lire :config.php (1.4.0)
-------------------------------------------------- -------------------
Menu principal --
1. Préférences de l'organisation
2. Paramètres du serveur
3. Paramètres par défaut du dossier
4. Options générales
5. Thèmes
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Langues

D. Définir des paramètres prédéfinis pour des serveurs IMAP spécifiques

C   Activer la couleur 
S   Enregistrer les données 
Q   Quitter

Commande >> <-- S


Configuration de SquirrelMail : Lire : config.php (1.4.0)
---------------------- -----------------------------------
Menu principal --
1. Préférences de l'organisation
2. Paramètres du serveur
3. Paramètres par défaut du dossier
4. Options générales
5. Thèmes
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Langues

D. Définir des paramètres prédéfinis pour des serveurs IMAP spécifiques

C   Activer la couleur 
S   Enregistrer les données 
Q   Quitter

Commande >> <-- Q

Nous allons maintenant configurer SquirrelMail afin que vous puissiez l'utiliser à partir de vos sites Web (créés via ISPConfig) en utilisant les alias /squirrelmail ou /webmail. Ainsi, si votre site Web est www.example.com, vous pourrez accéder à SquirrelMail en utilisant www.example.com/squirrelmail ou www.example.com/webmail.

La configuration Apache de SquirrelMail se trouve dans le fichier /etc/squirrelmail/apache.conf, mais ce fichier n'est pas chargé par Apache car il ne se trouve pas dans le répertoire /etc/apache2/conf.d/. Par conséquent, nous créons un lien symbolique appelé squirrelmail.conf dans le répertoire /etc/apache2/conf.d/ qui pointe vers /etc/squirrelmail/apache.conf et rechargeons ensuite Apache :

cd /etc/apache2/conf-enabled/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
service reload apache2

Ouvrez maintenant /etc/apache2/conf-enabled/squirrelmail.conf...

nano /etc/apache2/conf-enabled/squirrelmail.conf

... et ajoutez les lignes suivantes au conteneur pour vous assurer que mod_php est utilisé pour accéder à SquirrelMail, quel que soit le mode PHP que vous sélectionnez pour votre site Web dans ISPConfig :

[...] Options FollowSymLinks  AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_admin_flag allow_url_fopen Off php_value include_path . php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname php_flag register_globals off   DirectoryIndex index.php  # l'accès à configtest est limité par défaut pour éviter les fuites d'informations 
 order deny,allow deny from all allow from 127.0.0.1 [ ...]

Créez le répertoire /var/lib/squirrelmail/tmp...

mkdir /var/lib/squirrelmail/tmp

... et faites en sorte qu'il appartienne à l'utilisateur www-data :

chown www-data /var/lib/squirrelmail/tmp

Recharger Apache :

service rechargement apache2

C'est déjà fait - /etc/apache2/conf-enabled/squirrelmail.conf définit un alias appelé /squirrelmail qui pointe vers le répertoire d'installation de SquirrelMail /usr/share/squirrelmail.

Vous pouvez désormais accéder à SquirrelMail depuis votre site Web comme suit :

http://192.168.0.100/squirrelmail
http://www.example.com/squirrelmail

Vous pouvez également y accéder depuis le vhost du panneau de contrôle ISPConfig (après avoir installé ISPConfig, voir le chapitre suivant) comme suit (cela ne nécessite aucune configuration dans ISPConfig) :

http://server1.example.com:8080/squirrelmail

Si vous souhaitez utiliser l'alias /webmail au lieu de /squirrelmail, ouvrez simplement /etc/apache2/conf-enabled/squirrelmail.conf

nano /etc/apache2/conf-enabled/squirrelmail.conf

... et ajoutez la ligne Alias ​​/webmail /usr/share/squirrelmail :

Alias ​​/squirrelmail /usr/share/squirrelmailAlias ​​/webmail /usr/share/squirrelmail[...]

Puis rechargez Apache :

service rechargement apache2

Vous pouvez maintenant accéder à Squirrelmail comme suit :

http://192.168.1.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (après avoir installé ISPConfig, consultez le chapitre suivant)

 

Si vous souhaitez définir un vhost comme webmail.example.com où vos utilisateurs peuvent accéder à SquirrelMail, vous devez ajouter la configuration vhost suivante à /etc/apache2/conf-enabled/squirrelmail.conf :

vi /etc/apache2/conf-enabled/squirrelmail.conf

[...] DocumentRoot /usr/share/squirrelmail ServerName webmail.example.com

Bien sûr, il doit y avoir un enregistrement DNS pour webmail.example.com qui pointe vers l'adresse IP que vous utilisez dans la configuration vhost. Also make sure that the vhost webmail.example.com does not exist in ISPConfig (otherwise both vhosts will interfere with each other!).

Now reload Apache...

/etc/init.d/apache2 reload

... and you can access SquirrelMail under http://webmail.example.com!

20 Install ISPConfig 3

To install ISPConfig 3 from the latest released version, do this:

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

The next step is to run

php -q install.php

This will start the ISPConfig 3 installer. The installer will configure all services like Postfix, Dovecot, etc. for you. A manual setup as required for ISPConfig 2 (perfect setup guides) is not necessary.

NOTE:Do not be alarmed that the ISPConfig 3 installer identifies Debian Jessie as unknown version. This does not interfere with any functionality and will be fixed with the next ISPConfig update.

[email protected]:/tmp/ispconfig3_install/install# php -q install.php
PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf.d/ming.ini on line 1 in Unknown on line 0


--------------------------------------------------------------------------------
 _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | | `--. \  __/  | | / _ \| '_ \| _| |/ _` | |_ |
 _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |
                                             |___/
--------------------------------------------------------------------------------


>> Initial configuration

Operating System: Debian or compatible, unknown version.

    Following will be a few questions for primary configuration so be careful.
    Default values are in [brackets] and can be accepted with .
    Tap in "quit" (without the quotes) to stop the installer.


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 [ ]: <-- yourrootsqlpassword

MySQL database to create [dbispconfig]: <-- ENTER

MySQL charset [utf8]: <-- ENTER

Generating a 4096 bit RSA private key
.............................................................++
.........................................................................................................................++
writing new private key to 'smtpd.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- ENTER
State or Province Name (full name) [Some-State]: <-- ENTER
Locality Name (eg, city) []: <-- ENTER
Organization Name (eg, comp any) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Bastille Firewall
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- ENTER

Generating RSA private key, 4096 bit long modulus
.................................................................................................++
........++
e is 65537 (0x10001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
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 (e.g. server FQDN or YOUR name) []: <-- ENTER
Email Address []: <-- ENTER

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- ENTER
An optional company name []: <-- ENTER
writing RSA key
Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were
not closed cleanly..
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Stopping amavisd: amavisd-new.
Starting amavisd: amavisd-new.
Stopping ClamAV daemon: clamd.
Starting ClamAV daemon: clamd .
Restarting IMAP/POP3 mail server: dovecot.
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:22 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:443 has no VirtualHosts
[Tue May 07 02:36:23 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
Restarting web server: apache2 ... waiting .
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -H -O clf:/var/log/pure-ftpd/transfer.log -Y 1 -D -u 1000 -A -E -b -8 UTF-8 -B
Installation completed.
[email protected]:/tmp/ispconfig3_install/install#

The installer automatically configures all underlying services, so no manual configuration is needed.

You now also have the possibility to let the installer create an SSL vhost for the ISPConfig control panel, so that ISPConfig can be accessed using https:// instead of http://. To achieve this, just press ENTER when you see this question:Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]:.

Afterwards you can access ISPConfig 3 under http(s)://server1.example.com:8080/ or http(s)://192.168.0.100:8080/ ( http or https depends on what you chose during installation). Log in with the username admin and the password admin (you should change the default password after your first login):

The system is now ready to be used.

20.1 ISPConfig 3 Manual

Afin d'apprendre à utiliser ISPConfig 3, je vous recommande fortement de télécharger le manuel ISPConfig 3.

Sur plus de 300 pages, il couvre le concept derrière ISPConfig (administrateur, revendeurs, clients), explique comment installer et mettre à jour ISPConfig 3, inclut une référence pour tous les formulaires et champs de formulaire dans ISPConfig ainsi que des exemples d'entrées valides, et fournit des tutoriels pour les tâches les plus courantes dans ISPConfig 3. Il explique également comment rendre votre serveur plus sécurisé et est accompagné d'une section de dépannage à la fin.

20.2 ISPConfig Monitor App For Android

Avec l'application ISPConfig Monitor, vous pouvez vérifier l'état de votre serveur et savoir si tous les services fonctionnent comme prévu. Vous pouvez vérifier les ports TCP et UDP et envoyer un ping à vos serveurs. En plus de cela, vous pouvez utiliser cette application pour demander des détails aux serveurs sur lesquels ISPConfig est installé (veuillez noter que la version minimale installée d'ISPConfig 3 avec prise en charge de l'application ISPConfig Monitor est 3.0.3.3 ! ); ces détails incluent tout ce que vous savez du module Monitor dans le panneau de configuration ISPConfig (par exemple, les services, les journaux de messagerie et système, la file d'attente de messagerie, les informations sur le processeur et la mémoire, l'utilisation du disque, les quotas, les détails du système d'exploitation, le journal RKHunter, etc.), et bien sûr , comme ISPConfig est compatible avec plusieurs serveurs, vous pouvez vérifier tous les serveurs contrôlés à partir de votre serveur maître ISPConfig.

Pour obtenir des instructions de téléchargement et d'utilisation, veuillez visiter http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

21 Additional Notes

21.1 OpenVZ

If the Debian server that you've just set up in this tutorial is an OpenVZ container (virtual machine), you should do this on the host system (I'm assuming that the ID of the OpenVZ container is 101 - replace it with the correct VPSID on your system):

VPSID=101
for CAP in CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE CHOWN DAC_READ_SEARCH SETGID SETUID NET_BIND_SERVICE NET_ADMIN SYS_CHROOT SYS_NICE
do
  vzctl set $VPSID --capability ${CAP}:on --save
done

  • Debian :http://www.debian.org/
  • ISPConfig :http://www.ispconfig.org/

Debian
  1. Le serveur parfait – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

  2. Le serveur parfait - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

  3. Le serveur parfait – CentOS 7.1 avec Apache2, Postfix, Dovecot, Pure-FTPD, BIND et ISPConfig 3

  4. Le serveur parfait - Debian 8.4 Jessie (Apache2, BIND, Dovecot, ISPConfig 3.1)

  5. Le serveur parfait - Debian 8.6 (nginx, BIND, Dovecot, ISPConfig 3.1)

Le serveur parfait - Ubuntu 12.10 (Apache2, BIND, Dovecot, ISPConfig 3)

Le serveur parfait - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3)

Le serveur parfait - Debian Wheezy (nginx, BIND, Dovecot, ISPConfig 3)

Le serveur parfait - Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)

Le serveur parfait - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)

Le serveur parfait - Debian Wheezy (Apache2, BIND, Dovecot, ISPConfig 3)