GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

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

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

Ceci est une description détaillée de la configuration d'un OpenSUSE 12.2 64 bits (x86_64) serveur qui offre tous les services nécessaires aux FAI et aux hébergeurs :serveur Web Apache (compatible SSL) avec prise en charge de PHP, CGI et SSI, serveur de messagerie Postfix avec SMTP-AUTH, TLS et utilisateurs de messagerie virtuelle, serveur DNS BIND, serveur FTP Pureftpd, MySQL serveur, Dovecot POP3/IMAP, Quota, Firewall, Mailman, etc. Depuis la version 3.0.4, ISPConfig est livré avec un support complet pour le serveur Web nginx en plus d'Apache ; ce tutoriel couvre la configuration d'un serveur qui utilise Apache, pas nginx.

J'utiliserai le logiciel suivant :

  • Serveur Web :Apache 2.2 avec PHP 5
  • Serveur de base de données :MySQL
  • Serveur de messagerie :Postfix avec des utilisateurs virtuels
  • Serveur DNS :BIND
  • Serveur FTP :pureftpd
  • POP3/IMAP :Pigeonnier
  • Webalizer et AWStats pour les statistiques de sites Web

Au final, vous devriez avoir un système qui fonctionne de manière fiable et qui est facilement gérable avec le panneau de contrôle ISPConfig 3. Le guide suivant concerne la version 64 bits d'OpenSUSE.

Je veux d'abord dire que ce n'est pas la seule façon de mettre en place un tel système. Il existe de nombreuses façons d'atteindre cet objectif, mais c'est la voie que je prends. Je n'émets aucune garantie que cela fonctionnera pour vous !

Avis :Ce guide est pour ISPConfig 3.0.1 ou plus récent. Il n'est pas adapté à ISPConfig 2.x !

Manuel ISPConfig 3

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

Sur environ 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.

Application de surveillance ISPConfig pour 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/.

1 Exigences

Pour installer un tel système, vous aurez besoin des éléments suivants :

  • Le DVD OpenSUSE 12.2 . Vous pouvez le télécharger ici :http://download.opensuse.org/distribution/12.2/iso/openSUSE-12.2-DVD-x86_64.iso
  • Une connexion Internet rapide...

2 Remarque préliminaire

Dans ce tutoriel, j'utilise le nom d'hôte server1.example.com avec l'adresse IP 192.168.0.100 et la passerelle 192.168.0.1. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant.

3 Le système de base

Démarrez à partir de votre DVD OpenSUSE 12.2 et sélectionnez Installation :

Sélectionnez votre langue, la disposition du clavier et acceptez les termes de la licence :

Le programme d'installation analyse votre matériel et crée le cache du référentiel de logiciels :

Sélectionnez Nouvelle installation :

Sélectionnez la région et le fuseau horaire :

Nous sélectionnons Autre> Sélection minimale du serveur (mode texte) ici car nous voulons installer un serveur sans bureau X-Window. Le système X-Window n'est pas nécessaire pour faire fonctionner le serveur et ralentirait le système. Nous effectuerons toutes les tâches d'administration sur le shell ou via une connexion SSH, par ex. via PuTTY depuis un poste de travail distant.

Cliquez sur Modifier la configuration de la partition... pour modifier les partitions proposées. Comme il s'agit d'une configuration de serveur, nous avons besoin d'une grande partition /srv au lieu de la partition /home :

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

4 Configurer les paramètres réseau

Nous utilisons Yast, l'outil de gestion du système OpenSuSE pour reconfigurer les paramètres de la carte réseau. Après le premier démarrage, le système est configuré pour obtenir l'adresse IP avec DHCP. Pour un serveur, nous le basculerons vers une adresse IP statique.

Exécuter

yast2

Sélectionnez Périphériques réseau> Paramètres réseau :

Sélectionnez votre carte réseau puis Modifier :

Sélectionnez Adresse IP attribuée statiquement et entrez l'adresse IP, le masque de sous-réseau et le nom d'hôte et enregistrez les modifications en sélectionnant Suivant :

Sélectionnez maintenant Nom d'hôte/DNS et entrez le nom d'hôte (par exemple, serveur1.exemple.com) et les serveurs de noms (par exemple, 8.8.8.8 et 8.8.4.4) :

Sélectionnez maintenant Routage et entrez la passerelle par défaut et appuyez sur OK :

Pour configurer le pare-feu (au cas où vous ne l'auriez pas configuré lors de l'installation de base), sélectionnez Sécurité et utilisateurs> Pare-feu dans Yast :

Je souhaite installer ISPConfig à la fin de ce tutoriel qui est livré avec son propre pare-feu. C'est pourquoi je désactive maintenant le pare-feu OpenSUSE par défaut. Bien sûr, vous êtes libre de le laisser allumé et de le configurer selon vos besoins (mais vous ne devriez pas utiliser d'autre pare-feu plus tard car il interférera très probablement avec le pare-feu OpenSUSE).

Sélectionnez Désactiver le démarrage automatique du pare-feu et Arrêter le pare-feu maintenant, puis cliquez sur Suivant :

Appuyez sur Terminer et quittez Yast :

Ensuite, vous devriez vérifier avec

ifconfig

si votre configuration réseau est correcte. Si ce n'est pas le cas (par exemple, si eth0 est manquant), redémarrez le système...

reboot

... et vérifiez à nouveau votre configuration réseau par la suite - elle devrait maintenant être correcte.

5 Installer les mises à jour

Nous installons maintenant les dernières mises à jour à partir des référentiels openSUSE. Exécuter

zypper update 

Et puis redémarrez le serveur car vous avez probablement également installé des mises à jour du noyau :

reboot 

6 Installer des packages de base

Exécuter

zypper install  findutils readline glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ subversion make vim telnet cron iptables iputils man man-pages nano pico sudo perl-TimeDate

7 Quota journalisé

Pour installer le quota, exécutez

zypper install  quota

Modifiez /etc/fstab pour qu'il ressemble à ceci (j'ai ajouté ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 aux points de montage / et /srv) :

vi /etc/fstab
/dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part1 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part2 /                    ext4       acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 1
/dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part3 /srv                 ext4       acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0

Exécutez ensuite :

mount -o remonter /
mount -o remonter /srv

quotacheck -avugm
quotaon -avug

Ne vous inquiétez pas si vous voyez ces messages d'erreur - ils sont normaux lorsque vous exécutez quotacheck pour la première fois :

server1:~ # quotacheck -avugm
quotacheck :Scanning /dev/sda2 [/] done
quotacheck :Impossible de stat l'ancien fichier de quota utilisateur :aucun fichier ou répertoire de ce type
quotacheck :Impossible de stat l'ancien groupe fichier de quota :aucun fichier ou répertoire de ce type
quotacheck :impossible de déclarer l'ancien fichier de quota d'utilisateur :aucun fichier ou répertoire de ce type
quotacheck :impossible de déclarer l'ancien fichier de quota de groupe :aucun fichier ou répertoire de ce type
quotacheck :3872 répertoires et 32991 fichiers vérifiés
quotacheck :Ancien fichier introuvable.
quotacheck :Ancien fichier introuvable.
quotacheck :Analyse de /dev/sda3 [/srv] effectuée
quotacheck :Impossible de déclarer l'ancien fichier de quota d'utilisateur :aucun fichier ou répertoire de ce type />quotacheck :Impossible de déclarer l'ancien fichier de quota de groupe :aucun fichier ou répertoire de ce type
quotacheck :6 répertoires et 0 fichier vérifiés
quotacheck :Ancien fichier introuvable.
quotacheck :Ancien fichier introuvable.
ser ver1 :~ #

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

8 Installer Postfix, Dovecot, MySQL

Exécuter

zypper install  postfix postfix-mysql  mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron python

Si vous obtenez le message suivant, veuillez sélectionner pour désinstaller exim :

Problème : postfix-2.8.11-2.6.1.x86_64 entre en conflit avec exim fourni par exim-4.77-2.1.3.x86_64
 Solution 1 :  les actions suivantes seront effectuées  :
   ne pas installer postfix-2.8 .11-2.6.1.x86_64
  ne pas installer postfix-mysql-2.8.11-2.6.1.x86_64
 Solution 2 : désinstallation d'exim-4.77-2.1.3.x86_64

Choisir parmi les solutions ci-dessus par numéro ou ignorer, réessayer ou annuler [1/2/s/r/c] (c) : <-- 2

Vous devrez peut-être également désinstaller patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64 :

Problème : patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64 conflit avec python fourni par python-2.7.3-3.6.1.x86_64
 Solution 1 : désinstallation de patterns-openSUSE-minimal_base-conflicts- 12.2-5.5.1.x86_64
 Solution 2 : ne pas installer python-2.7.3-3.6.1.x86_64

Choisissez par numéro de solutions ci-dessus ou ignorez, réessayez ou annulez [1 /2/s/r/c] (c) : <-- 1

Créez le lien symbolique suivant :

ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

À ce stade, j'ai dû redémarrer car sinon MySQL a refusé de démarrer avec l'erreur :

Failed to issue method call: Unit mysql.service failed to load: No such file or directory. See system logs and 'systemctl status mysql.service' for details. 
reboot 

Démarrez MySQL, Postfix et Dovecot et activez le démarrage des services au démarrage.

systemctl enable mysql.service
systemctl start mysql.service

systemctl activer postfix.service
systemctl démarrer postfix.service

systemctl activer dovecot.service
systemctl démarrer dovecot.service

Maintenant, j'installe le package getmail :

zypper install  getmail

Pour sécuriser l'installation de MySQL, exécutez :

mysql_secure_installation

Plusieurs questions vont maintenant vous être posées :

server1 :~ # mysql_secure_installation




REMARQUE : L'EXÉCUTION DE TOUTES LES PARTIES DE CE SCRIPT EST RECOMMANDÉE POUR TOUS MySQL
      SERVEURS EN UTILISATION DE PRODUCTION ! VEUILLEZ LIRE ATTENTIVEMENT CHAQUE ÉTAPE !


Pour vous connecter à MySQL pour le sécuriser, nous aurons besoin du mot de passe
actuel pour l'utilisateur root. Si vous venez d'installer MySQL et 
vous n'avez pas défini le mot de passe root encore, le mot de passe sera vide,
vous devez donc juste appuyer sur entrée ici.

Entrez mot de passe actuel pour root (entre pour aucun) :<-- ENTER
OK, mot de passe utilisé avec succès, continuer ...

La définition du mot de passe root assure que personne ne peut se connecter à MySQL
utilisateur root sans l'autorisation appropriée.

Définir le mot de passe root ? [O/n] <-- O
Nouveau mot de passe : <-- votremotdepasseqlracine
Saisissez à nouveau le nouveau mot de passe  : <-- votremotdepasseqlracine
Mot de passe mis à jour avec succès !
Rechargement des tables de privilèges. .
 ... Succès !


Par défaut, une installation de MySQL a un utilisateur anonyme, permettant à n'importe qui
de se connecter à MySQL sans avoir d'avoir un compte d'utilisateur créé pour
eux. Ceci est un conçu uniquement pour les tests, et pour rendre l'installation 
un peu plus fluide. Vous devriez les supprimer avant de passer dans un 
environnement de production.

Supprimer les utilisateurs anonymes ? [O/n] <-- O
 ... Succès !

Normalement, root ne doit être autorisé à se connecter depuis 'localhost'. Cela
assure que quelqu'un ne ne peut pas deviner le mot de passe root depuis le réseau.

Interdire la connexion root à distance ? [O/n] <-- O
 ... Succès !

Par défaut, MySQL est fourni avec une base de données nommée "test" à laquelle n'importe qui peut
accéder. Cela est également conçu uniquement pour les tests et devrait être supprimé 
avant de passer dans un environnement de production .

Supprimer la base de données de test et y accéder ? [O/n] <-- O
 - Suppression de la base de données de test...
 ... Réussite !
 - Suppression des privilèges sur la base de données de test...
 ... Réussite !

Recharger les tableaux de privilèges garantira que tout les changements apportés jusqu'à présent 
prendront effet immédiatement.

Recharger les tableaux de privilèges maintenant ? [O/n] <-- O
 ... Réussite !

Nettoyage ...



Tout fait ! Si vous avez complété toutes les étapes ci-dessus, votre installation MySQL
devrait maintenant être sécurisée.

Merci d'utiliser MySQL !


serveur1 :~ #

Votre configuration MySQL devrait maintenant être sécurisée.

9 Amavisd-new, Spamassassin et Clamav

Installez les antivirus Amavisd-new, Spamassassin et Clamav. Exécuter

zypper install  amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

Ouvrez /etc/amavisd.conf...

vi /etc/amavisd.conf

... et ajoutez la ligne $myhostname avec votre nom d'hôte correct sous la ligne $mydomain :

[...]
$mydomain = 'example.com';   # a convenient default for other settings
$myhostname = "server1.$mydomain";
[...]

Créez ensuite un lien symbolique de /var/run/clamav/clamd vers /var/lib/clamav/clamd-socket :

mkdir -p /var/run/clamav
ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamd

OpenSUSE 12.2 a un répertoire /run pour stocker les données d'exécution. /run est maintenant un tmpfs, et /var/run est maintenant monté en liaison avec /run à partir de tmpfs, et donc vidé au redémarrage.

Cela signifie qu'après un redémarrage, le répertoire /var/run/clamav que nous venons de créer n'existera plus, et donc clamd ne pourra pas démarrer. Par conséquent, nous créons maintenant le fichier /etc/tmpfiles.d/clamav.conf qui créera ce répertoire au démarrage du système (voir http://0pointer.de/public/systemd-man/tmpfiles.d.html pour plus de détails) :

vi /etc/tmpfiles.d/clamav.conf
D /var/run/clamav 0755 root root -

Avant de démarrer amavisd et clamd, nous devons éditer le script d'initialisation /etc/init.d/amavis - je n'ai pas pu démarrer, arrêter et redémarrer amavisd de manière fiable avec le script d'initialisation par défaut :

vi /etc/init.d/amavis

Commentez les lignes suivantes dans la section de démarrage et d'arrêt :

[...]
    start)
        # ZMI 20100428 check for stale pid file
        #if test -f $AMAVIS_PID ; then
        #       checkproc -p $AMAVIS_PID amavisd
        #       if test $? -ge 1 ; then
        #               # pid file is stale, remove it
        #               echo -n "(stale amavisd pid file $AMAVIS_PID found, removing. Did amavisd crash?)"
        #               rm -f $AMAVIS_PID
        #       fi
        #fi
        echo -n "Starting virus-scanner (amavisd-new): "
        $AMAVISD_BIN start
        #if ! checkproc amavisd; then
        #    rc_failed 7
        #fi
        rc_status -v
        #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then
        #    rc_reset
        #    echo -n "Starting amavis-milter:"
        #    startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1
        #    rc_status -v
        #fi
        ;;
    stop)
        echo -n "Shutting down virus-scanner (amavisd-new): "
        #if checkproc amavisd; then
        #    rc_reset
            $AMAVISD_BIN stop
        #else
        #    rc_reset
        #fi
        rc_status -v
        #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then
        #    rc_reset
        #    echo -n "Shutting down amavis-milter: "
        #    killproc -TERM $AMAVIS_MILTER_BIN
        #    rc_status -v
        #fi
        ;;
[...]

Parce que nous avons changé le script d'initialisation, nous devons exécuter

systemctl --system daemon-reload

à présent.

Pour activer les services, exécutez :

systemctl enable amavis.service
systemctl enable clamd.service
systemctl start amavis.service
systemctl start clamd.service

10 Installer le serveur Web Apache 2 avec PHP5, Python, WebDAV

Installez Apache2 et suphp. Exécuter :

zypper install  apache2 apache2-mod_fcgid

Installez PHP5 :

zypper install  php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5
zypper install http://download.opensuse.org/repositories/server:/php/openSUSE_12.2/x86_64/suphp-0.7.1-5.1.x86_64.rpm

Exécutez ensuite ces commandes pour activer les modules Apache (dont WebDAV) :

a2enmod suexec
a2enmod réécriture
a2enmod ssl
a2enmod actions
a2enmod suphp
a2enmod fcgid
a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
racine chown :www /usr/sbin/suexec2
chmod 4755 /usr/sbin/suexec2

a2enflag SSL

Pour ajouter la prise en charge de Python, exécutez :

zypper install  apache2-mod_python
a2enmod python 

Ensuite, nous installons phpMyAdmin :

zypper install  phpMyAdmin

Pour nous assurer que nous pouvons accéder ultérieurement à phpMyAdmin à partir de tous les sites Web créés via ISPConfig en utilisant /phpmyadmin (par exemple http://www.example.com/phpmyadmin) et /phpMyAdmin (par exemple http://www.example.com/phpMyAdmin ), ouvrez /etc/apache2/conf.d/phpMyAdmin.conf...

vi /etc/apache2/conf.d/phpMyAdmin.conf

... et ajoutez les deux alias suivants dès le début :

Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin
Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin
[...]

Démarrez Apache :

systemctl activer apache2.service
systemctl démarrer apache2.service

10.1 PHP-FPM

À partir du prochain ISPConfig 3.0.5, il y aura un mode PHP supplémentaire que vous pourrez sélectionner pour une utilisation avec Apache :PHP-FPM. Si vous envisagez d'utiliser ce mode PHP, il est logique de configurer votre système pour cela maintenant afin que plus tard, lors de la mise à niveau vers ISPConfig 3.0.5, votre système soit prêt (la dernière version d'ISPConfig au moment de la rédaction de cet article est ISPConfig 3.0 .4.6).

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 :

mod_fastcgi est disponible à partir d'un référentiel tiers que nous pouvons activer comme suit :

zypper --gpg-auto-import-keys addrepo --name "Third-party modules for the Apache HTTP server. (Apache_openSUSE_12.2)" http://download.opensuse.org/repositories/Apache:/Modules/Apache_openSUSE_12.2/ apache-third-party-12.2

Ensuite, nous installons mod_fastcgi et PHP-FPM :

zypper install  apache2-mod_fastcgi php5-fpm

Malheureusement, il y a un bogue dans le paquet apache2-mod_fastcgi qui ne permet pas l'utilisation de la directive FastCgiExternalServer dans une section (voir Comment construire mod_fastcgi pour Apache2 sur OpenSUSE 12.2). C'est pourquoi nous devons reconstruire mod_fastcgi :

zypper install apache2-devel

wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
tar xvfz mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6/
cp Makefile.AP2 Makefile

ln -s /usr/include/apache2-worker/mpm.h /usr/include/apache2/
make top_dir=/usr/share/apache2
make top_dir=/usr/share/apache2 install

Avant de démarrer PHP-FPM, renommez /etc/php5/fpm/php-fpm.conf.default en /etc/php5/fpm/php-fpm.conf :

mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

Modifiez les permissions du répertoire de session de PHP :

chmod 1733 /var/lib/php5 

Ouvrez ensuite /etc/php5/fpm/php-fpm.conf...

vi /etc/php5/fpm/php-fpm.conf

... et changez error_log en /var/log/php-fpm.log :

[...]
error_log = /var/log/php-fpm.log
[...]

Il n'y a pas de fichier php.ini pour PHP-FPM sous OpenSUSE 12.2, nous copions donc le CLI php.ini :

cp /etc/php5/cli/php.ini /etc/php5/fpm/

Ouvrez ensuite /etc/php5/fpm/php.ini...

vi /etc/php5/fpm/php.ini

... et définissez cgi.fix_pathinfo sur 0 :

[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0
[...]

Créez ensuite les liens de démarrage du système pour php-fpm et démarrez-le :

systemctl activer php-fpm.service
systemctl démarrer php-fpm.service

PHP-FPM est un processus démon qui exécute un serveur FastCGI sur le port 9000, comme vous pouvez le voir dans la sortie de

netstat -tapn

server1 :~ # netstat -tapn
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale           Adresse étrangère         État       PID/Nom du programme
tcp        0      0 : 0.0.0.0 : 0.0.0. 80 0.0.0.0:* Écoutez 2329 / nginx
TCP 0 0 0.0.0.0:22 0.0.0.0:* Écoutez 1204 / sshd
TCP 0 0 127.0.0.1:9000 0.0.0.0:* Écoutez 2511 /php-fpm.conf)
TCP 0 0 0.0.0.0:3306 0.0.0.0:* Écoutez 2059 / MySQLD
TCP 0 0 192.168.0.100:22 192.168.0.199:1632 établi 1284/0
tcp        0      0 :::22                  :::*                    ÉCOUTER      1204/sshd
server1:~ #

Activez ensuite les modules Apache suivants...

actions a2enmod
a2enmod fastcgi
alias a2enmod

... et redémarrez Apache :

systemctl restart apache2.service

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

11 Installer PureFTPd

Installez le démon FTP pure-ftpd. Exécuter :

zypper install  pure-ftpd

systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service

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é.

OpenSSL est requis par TLS ; pour installer OpenSSL, nous exécutons simplement :

zypper install  openssl

Ouvrez /etc/pure-ftpd/pure-ftpd.conf...

vi /etc/pure-ftpd/pure-ftpd.conf

Si vous souhaitez autoriser le FTP et Sessions TLS, définissez TLS sur 1 :

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      1
[...]

Si vous souhaitez accepter uniquement les sessions TLS (pas de FTP), définissez TLS sur 2 :

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      2
[...]

Pour ne pas autoriser TLS du tout (uniquement FTP), définissez TLS sur 0 :

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      0
[...]

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 votre état ou Nom de la province.
Nom de la localité (par exemple, ville) [] :<-- Entrez votre ville.
Nom de l'organisation (par exemple, société) [Internet Widgits Pty Ltd] :<-- Entrez le nom de votre organisation (par exemple, le nom de votre entreprise).
Nom de l'unité organisationnelle (par exemple, section) [] :<-- Saisissez 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 permissions du certificat SSL :

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

Redémarrez enfin PureFTPd :

systemctl restart pure-ftpd.service 

C'est ça. Vous pouvez maintenant essayer de vous connecter en utilisant votre client FTP; cependant, vous devez configurer votre client FTP pour utiliser TLS - voir le chapitre suivant pour savoir comment faire cela avec FileZilla.

12 Installer BIND

Le serveur de noms BIND peut être installé comme suit :

zypper install  bind

Créez les liens de démarrage du système BIND et démarrez-le :

systemctl enable named.service
systemctl start named.service

13 Installer Webalizer et AWStats

Étant donné qu'ISPConfig 3 vous permet de choisir si vous souhaitez utiliser Webalizer ou AWStats pour créer les statistiques de votre site Web, nous installons les deux :

zypper install  webalizer perl-DateManip
zypper install http://download.opensuse.org/repositories/network:/utilities/openSUSE_12.2/noarch/awstats-7.0-14.1.noarch.rpm

14 Installer fail2ban

fail2ban peut être installé comme suit :

zypper install  fail2ban

15 Installer Jailkit

Jailkit peut être installé comme ceci :

zypper install http://download.opensuse.org/repositories/security/openSUSE_12.2/x86_64/jailkit-2.13-1.3.x86_64.rpm

16 Synchroniser l'horloge système

Si vous souhaitez que l'horloge système soit synchronisée avec un serveur NTP, procédez comme suit :

zypper install  xntp

Ajoutez ensuite les liens de démarrage du système pour ntp et démarrez ntp :

systemctl enable ntp.service
systemctl start ntp.service

17 Installer rkhunter

rkhunter peut être installé comme suit :

zypper install  rkhunter

18 Installer SquirrelMail

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

zypper install  squirrelmail-beta

Ensuite, nous créons les alias /webmail et /squirrelmail juste au début de /etc/apache2/conf.d/squirrelmail.conf afin que SquirrelMail soit accessible depuis n'importe quel vhost (par exemple http://www.example.com/webmail ou http://www.example.com/squirrelmail) :

vi /etc/apache2/conf.d/squirrelmail.conf
Alias /squirrelmail /srv/www/htdocs/squirrelmail
Alias /webmail /srv/www/htdocs/squirrelmail
[...]

Ensuite, nous créons le répertoire /srv/www/htdocs/squirrelmail/data et lui donnons des autorisations suffisantes pour que le groupe www puisse y écrire :

mkdir /srv/www/htdocs/squirrelmail/data
racine chown :www /srv/www/htdocs/squirrelmail/data
chmod 770 /srv/www/htdocs/squirrelmail/data

Redémarrez ensuite Apache :

systemctl restart apache2.service

Configurez ensuite SquirrelMail :

/srv/www/htdocs/squirrelmail/config/conf.pl

Nous devons dire à SquirrelMail que nous utilisons Dovecot :

AVERTISSEMENT :
  Le fichier "config/config.php" a été trouvé, mais il est pour 
  une ancienne version de SquirrelMail. Il est possible de toujours
  lire les valeurs par défaut de ce fichier mais soyez averti que de nombreuses
  préférences changent entre les versions. Il est recommandé de 
  vous commencer avec un propre config.php pour chaque mise à niveau que vous 
  faites. Pour ce faire cela, il suffit de déplacer config/config.php hors de la chemin.

Continuer le chargement avec l'ancien config.php [y/N] ? <-- o

Voulez-vous que je arrête de vous avertir [o/N] ? <-- y

Configuration de SquirrelMail : Lire : config.php (1.5.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. Interface utilisateur
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Paramètres de langue
11. Ajustements

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 viser et vous assurer 
tout est correct. Cela ne change pas tout. Il y a 
seuls quelques paramètres qui vont changer .

Veuillez sélectionner votre serveur IMAP :
    bincimap    = serveur Binc IMAP 
    courier     = serveur Courier IMAP 
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 ont découvert certaines
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 viser et vous assurer 
tout est correct. Cela ne change pas tout. Il y a 
seuls quelques paramètres qui vont changer .

Veuillez sélectionner votre serveur IMAP :
    bincimap    = serveur Binc IMAP 
    courier     = serveur Courier IMAP 
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
sent_folder =send
draft_folder =drafts
show_prefix_option = faux
          default_sub_of_inbox = faux
show_contain_subfolders_op tion = false
            optional_delimiter = detect
                delete_folder = false
      force_username_lowercase = true

Appuyez sur Entrée pour continuer... <-- ENTER


Configuration de SquirrelMail  : Lisez : config.php (1.5.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. Interface utilisateur
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Paramètres de langue
11. Ajustements

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.5.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. Interface utilisateur
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Paramètres de langue
11. Ajustements

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

Command >> S

Données sauvegardées dans config.php



Activation des plugins ; données d'enregistrement sauvegardées dans plugin_hooks.php

Appuyez sur entrée pour continuer... <-- ENTRÉE


Configuration SquirrelMail : Lire : config.php (1.5.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. Interface utilisateur
6. Carnets d'adresses
7. Message du jour (MOTD)
8. Plugins
9. Base de données
10. Paramètres de langue
11. Ajustements

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

Après avoir créé un site Web dans ISPConfig, vous pouvez accéder à SquirrelMail en utilisant les alias /webmail ou /squirrelmail :

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

19 ISPConfig 3

Avant d'installer ISPConfig 3, assurez-vous que le répertoire /var/vmail/ existe :

mkdir /var/vmail/

Téléchargez la version actuelle d'ISPConfig 3 et installez-la. Le programme d'installation d'ISPConfig configurera tous les services comme Postfix, Dovecot, etc. pour vous. Une configuration manuelle telle que requise pour ISPConfig 2 n'est plus nécessaire.

Vous avez maintenant également la possibilité de laisser le programme d'installation créer un vhost SSL pour le panneau de contrôle ISPConfig, afin que ISPConfig soit accessible en utilisant https:// au lieu de http://. Pour ce faire, appuyez simplement sur ENTRÉE lorsque vous voyez cette question :Voulez-vous une connexion sécurisée (SSL) à l'interface Web ISPConfig (y,n) [y] :.

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

Lancez maintenant le processus d'installation en exécutant :

php -q install.php

serveur1 :/tmp/ispconfig3_install/install # php -q install.php


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


>> Configuration initiale

Système d'exploitation  : openSUSE ou compatible, version inconnue.

    Suivant seront quelques questions pour la configuration principale alors soyez prudent.
    Les valeurs par défaut sont entre [crochets] et peuvent être acceptées avec  .
    Appuyez sur "quitter" (sans les guillemets) pour arrêter le programme d'installation.


Sélectionnez la langue (en,de) [en] : <-- ENTRER

Mode d'installation (standard,expert) [standard] : <-- ENTRER

Nom d'hôte complet (FQDN) du serveur, par exemple serveur1.domaine.tld  [serveur1.exemple.com] : <-- ENTER

nom d'hôte du serveur MySQL [localhost] : <-- ENTER

MySQL nom d'utilisateur root [root] : <-- ENTER

mot de passe root MySQL [] : <-- votremotdepasseqlracine

Base de données MySQL à créer [dbispconfig] : <-- ENTER

Jeu de caractères MySQL [utf8] : <-- ENTER

Générer une clé privée RSA 2048 bits
............................................ ................++++
................................ ......................+++
écriture de la nouvelle clé privée à 'smtpd.key'
-----
Vous allez être invité à saisir des informations qui seront incorporées
dans votre demande de certificat.
Ce que vous êtes sur le point de saisir est ce qu'on appelle un Nom distingué ou un DN.
Il il y a un peu de champs mais vous pouvez en laisser certains vides
Pour certains champs il y aura une valeur par défaut,
Si vous entrez '.', le champ sera laissé en vide.
--- --
Nom du pays (code à 2 lettres) [AU] : <-- ENTER
Nom de l'État ou de la province (nom complet) [Some-State] : <-- ENTER
Nom de la localité ( par exemple, ville) [] : <-- ENTER
Nom de l'organisation (par exemple, société) [Internet Widgits Pty Ltd] : <-- ENTER
Nom de l'unité organisationnelle (par exemple, sect ion) [] : <-- ENTER
Nom commun (par exemple, VOTRE nom) [] : <-- ENTER
Adresse e-mail [] : <-- ENTER
Configuration de Jailkit
Configurer Dovecot
Configurer Spamassassin
Configurer Amavisd
Configurer Getmail
Configurer Pureftpd
Configurer BIND
Configurer Apache
Configurer Vlogger
Configurer Apps vhost
Configuration Bastille Firewall
Configuration Fail2ban
Installation ISPConfig
ISPConfig Port [8080] : <-- ENTER

Voulez-vous un système sécurisé (SSL ) connexion à l'interface web ISPConfig (y,n) [y] : <-- ENTER

Génération de la clé privée RSA , module de long 4096 bits
......+ +
.....................................++
c'est 65537 (0x10001)
Vous allez être invité à saisir des informations qui seront incorporées 
dans votre demande de certificat.
Ce que vous êtes sur le point de saisir est ce qu'on appelle un Nom distingué ou un DN .
Il existe un nombre de champs mais vous pouvez laisser certains vides.
Pour certains champs il y aura une valeur par défaut,
Si vous saisissez '.', le champ sera laissé vide.
-----
Nom du pays (code à 2 lettres) [AU] :<-- ENTER
Nom de l'État ou de la province (nom complet) [Some-State] : <-- ENTER
Nom de la localité (par exemple, ville) [] : <-- ENTER
Nom de l'organisation (par exemple, société) [Internet Widgits Pty Ltd] : <-- ENTER
Nom de l'unité organisationnelle (par exemple, section) [] : <-- ENTER
Nom commun (par exemple, VOTRE nom) [] :<-- ENTER
Adresse e-mail [] : <-- ENTER

Veuillez saisir les attributs "supplémentaires" suivants
à envoyer avec votre demande de certificat
Un défi mot de passe [] : <-- ENTER
Un nom de société facultatif [] : <-- ENTER
en écrivant la clé RSA
Configuration DBServer
Installation ISPConfig crontab
no crontab for root
pas de crontab pour getmail
Redémarrage des services ...
redirection vers systemctl
redirection vers systemctl
redirection vers systemctl
redirection vers systemctl
redirection vers systemctl
redirection vers systemc tl
redirection vers systemctl
redirection vers systemctl
Installation terminée.
server1 :/tmp/ispconfig3_install/install #

Nettoyez le répertoire /tmp :

cd /tmp
rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Ouvrez /etc/suphp.conf...

vi /etc/suphp.conf

... et assurez-vous qu'il contient x-httpd-suphp="php:/srv/www/cgi-bin/php" au lieu de x-httpd-suphp="php:/srv/www/cgi-bin/php5 " vers la fin du fichier :

[...]
[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/srv/www/cgi-bin/php"
[...]

Ensuite, vous pouvez accéder à ISPConfig 3 sous http(s)://server1.example.com:8080/ ou http(s)://192.168.0.100:8080/ (http ou https dépend de ce que vous avez choisi lors de l'installation). Connectez-vous avec le nom d'utilisateur admin et le mot de passe admin (vous devez changer le mot de passe par défaut après votre première connexion) :

19.1 Manuel ISPConfig 3

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

Sur environ 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.

19.2 Application ISPConfig Monitor pour 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/.

  • OpenSUSE :http://www.opensuse.org/
  • ISPConfig :http://www.ispconfig.org/

Panels
  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 - OpenSUSE 12.3 x86_64 (nginx, Dovecot, ISPConfig 3)

  4. Le serveur parfait - Fedora 15 x86_64 [ISPConfig 3]

  5. Le serveur parfait - CentOS 6.1 x86_64 avec Apache2 [ISPConfig 3]

Le serveur parfait - CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

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

Le serveur parfait - CentOS 6.4 x86_64 (nginx, 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)

Le serveur parfait - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3)