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

Le serveur parfait - OpenSUSE 12.1 x86_64 avec Apache2 [ISPConfig 3]

Le serveur parfait - OpenSUSE 12.1 x86_64 avec Apache2 [ISPConfig 3]

Ceci est une description détaillée de la configuration d'un OpenSUSE 12.1 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.1 . Vous pouvez le télécharger ici :http://download.opensuse.org/distribution/12.1/iso/openSUSE-12.1-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.1 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.

Le serveur parfait - OpenSUSE 12.1 x86_64 avec Apache2 [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, 145.253.2.75 et 8.8.8.8) :

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

yast2 -i 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

yast2 -i 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/sda1            swap                 swap       defaults              0 0
/dev/sda2            /                    ext4       acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 1
/dev/sda3            /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
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.1 x86_64 avec Apache2 [ISPConfig 3] - Page 4

8 Installer Postfix, Dovecot, MySQL

Exécuter

yast2 -i postfix postfix-mysql mysql mysql-community-server mysql-client libmysqlclient-devel dovecot12 dovecot12-backend-mysql pwgen cron python

Si vous obtenez l'erreur patterns-openSUSE-minimal_base-conflicts-12.1-25.21.1.x86_64 conflict with python fourni par python-2.7.2-7.1.3.x86_64, sélectionnez l'option désinstallation de patterns-openSUSE-minimal_base-conflicts- 12.1-25.21.1.x86_64 et appuyez sur OK -- Réessayez :

Appuyez sur Accepter sur l'écran suivant...

... et enfin OK :

Ouvrez /etc/postfix/master.cf...

vi /etc/postfix/master.cf

... et décommentez la ligne suivante :

[...]
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
[...]

Créez le lien symbolique suivant :

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

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 :

yast2 -i 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

yast2 -i 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.1 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, Ruby, Python, WebDAV

Installez Apache2 et suphp. Exécuter :

yast2 -i apache2 apache2-mod_fcgid

Installez PHP5 :

yast2 -i 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.1/x86_64/suphp-0.7.1-3.3.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

Ensuite, nous construisons le module mod_ruby Apache (il n'est pas disponible en tant que package OpenSUSE 12.1, nous devons donc le construire nous-mêmes) :

yast2 -i apache2-devel ruby ruby-devel

cd /tmp
wget http://modruby.net/archive/mod_ruby-1.3.0.tar.gz
tar zxvf mod_ruby-1.3.0.tar.gz
cd mod_ruby-1.3 .0/
./configure.rb --with-apr-includes=/usr/include/apr-1
make
make install

a2enmod ruby

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

yast2 -i apache2-mod_python
a2enmod python 

Ensuite, nous installons phpMyAdmin :

yast2 -i 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

Le serveur parfait - OpenSUSE 12.1 x86_64 avec Apache2 [ISPConfig 3] - Page 5

11 Facteur

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

yast2 -i mailman

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

/usr/lib/mailman/bin/newlist mailman

server1 :~ # /usr/lib/mailman/bin/newlist mailman
Entrez l'adresse e-mail de la personne qui gère la liste :<-- adresse e-mail d'administration , par ex. [email protected]
Mot de passe initial du mailman :<-- mot de passe admin pour la liste de mailman 
Appuyez sur Entrée pour notifier le propriétaire du mailman... <-- ENTER

server1:~ #

Créez les liens de démarrage du système pour Mailman...

systemctl enable mailman.service

... et démarrez-le :

  systemctl start mailman.service

Prochain redémarrage de Postfix :

systemctl restart postfix.service

Pour activer la configuration de Mailman Apache, exécutez...

a2enflag MAILMAN

... et redémarrez Apache :

systemctl restart apache2.service  

Après avoir installé ISPConfig 3, vous pouvez accéder à Mailman comme suit :

Vous pouvez utiliser l'alias /mailman pour tous les vhosts Apache (veuillez noter que suExec doit être désactivé pour tous les vhosts à partir desquels vous souhaitez accéder à Mailman !), ce qui signifie que vous pouvez accéder à l'interface d'administration de Mailman pour une liste à l'adresse http:///mailman/admin/, et la page Web pour les utilisateurs d'une liste de diffusion se trouve à http:///mailman/listinfo/.

Sous http:///pipermail/ vous pouvez trouver les archives de la liste de diffusion.

12 Installer PureFTPd

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

yast2 -i 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 :

yast2 -i 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.

13 Installer BIND

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

yast2 -i bind

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

systemctl enable named.service
systemctl start named.service

14 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 (au moment d'écrire ces lignes, il n'y avait pas de package AWStats pour OpenSUSE 12.1, donc j'installe celui pour OpenSUSE 11.4) :

yast2 -i webalizer perl-DateManip
zypper install http://download.opensuse.org/repositories/network:/utilities/openSUSE_11.4/noarch/awstats-7.0-14.1.noarch.rpm

15 Installer fail2ban

fail2ban peut être installé comme suit :

yast2 -i fail2ban

16 Installer Jailkit

Jailkit peut être installé comme ceci :

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

17 Synchroniser l'horloge système

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

yast2 -i 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

18 Installer rkhunter

rkhunter peut être installé comme suit :

yast2 -i rkhunter

Le serveur parfait - OpenSUSE 12.1 x86_64 avec Apache2 [ISPConfig 3] - Page 6

19 Installer SquirrelMail

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

yast2 -i 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 :

20 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


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


>> Initial configuration

Operating System: openSUSE 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 2048 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, company) [Internet Widgits Pty Ltd]: <-- ENTER
Organizational Unit Name (eg, sect ion) []: <-- ENTER
Common Name (eg, YOUR name) []: <-- ENTER
Email Address []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
chmod: cannot access `/etc/dovecot/dovecot-sql.conf~': No such file or directory
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 (eg, 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 ...
redirecting to systemctl
redirecting to systemctl
redirecting to systemctlredirecting to systemctl
redirecting to systemctl
redirecting to systemctl
redirecting to systemctl
redirecting to systemctl
Installation completed.
server1:/tmp/ispconfig3_install/install #

Clean up the /tmp directory:

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

Open /etc/suphp.conf...

vi /etc/suphp.conf

... and make sure that it contains x-httpd-suphp="php:/srv/www/cgi-bin/php" instead of x-httpd-suphp="php:/srv/www/cgi-bin/php5" towards the end of the file:

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

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):

20.1 ISPConfig 3 Manual

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.

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. In addition to that you can use this app to request details from servers that have ISPConfig installed (please note that the minimum installed ISPConfig 3 version with support for the ISPConfig Monitor App is 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 - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

  2. Le serveur parfait - Fedora 15 x86_64 [ISPConfig 2]

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

  4. Le serveur parfait - Ubuntu 11.04 [ISPConfig 3]

  5. Le serveur parfait - CentOS 5.6 x86_64 [ISPConfig 2]

Le serveur parfait - CentOS 6.2 x86_64 avec Apache2 [ISPConfig 3]

Le serveur parfait - CentOS 6.1 x86_64 avec nginx [ISPConfig 3]

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

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

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

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