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

Le serveur parfait - Fedora 15 x86_64 [ISPConfig 2]

Le serveur parfait - Fedora 15 x86_64 [ISPConfig 2]

Ceci est une description détaillée de la configuration d'un Fedora 15 serveur qui offre tous les services nécessaires aux FAI et hébergeurs :serveur Web Apache (compatible SSL) avec PHP5/Ruby/Python, serveur de messagerie Postfix avec SMTP-AUTH et TLS, serveur DNS BIND, serveur FTP Proftpd, serveur MySQL, Dovecot POP3/ IMAP, Quota, Firewall, etc. et si vous le souhaitez, vous pouvez installer le panneau de contrôle d'hébergement Web gratuit ISPConfig (c'est-à-dire que ISPConfig s'exécute dessus dès la sortie de la boîte).

J'utiliserai le logiciel suivant :

  • Serveur Web :Apache 2.2.17
  • PHP 5.3.6
  • Rubis
  • Python
  • Serveur de base de données :MySQL 5.5.12
  • Serveur de messagerie :Postfix
  • Serveur DNS :BIND9 (chrooté)
  • Serveur FTP :proftpd
  • Serveur POP3/IMAP :Dovecot
  • Webalizer pour les statistiques de sites Web

Veuillez noter que cette configuration ne fonctionne pas pour ISPConfig 3 ! Il n'est valable que pour ISPConfig 2 !

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 !

1 Exigences

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

  • Téléchargez l'image ISO du DVD Fedora 15 à partir d'un miroir près de chez vous (la liste des miroirs peut être trouvée ici :http://mirrors.fedoraproject.org/publiclist/Fedora/15/), par ex. http://ftp.tu-chemnitz.de/pub/linux/fedora/linux/releases/15/Fedora/x86_64/iso/Fedora-15-x86_64-DVD.iso
  • une connexion Internet...

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.

Assurez-vous que le système que vous souhaitez mettre à niveau dispose de plus de 600 Mo de RAM. Sinon, le système risque de se bloquer lorsqu'il essaie de démarrer avec le message suivant :

Trying to unpack rootfs image as initramfs...

3 Installer le système de base

Démarrez à partir de votre DVD Fedora 15. Sélectionnez Installer un nouveau système ou mettre à niveau un système existant :

Le test du support d'installation peut prendre beaucoup de temps, nous sautons donc ce test ici :

Choisissez ensuite votre langue :

Sélectionnez votre disposition de clavier :

Je suppose que vous utilisez un disque dur connecté localement, vous devez donc sélectionner Périphériques de stockage de base ici :

Comme nous voulons une nouvelle installation de Fedora, cliquez ensuite sur le bouton Oui, supprimer toutes les données :

Renseignez le nom d'hôte du serveur :

Choisissez votre fuseau horaire :

Donnez un mot de passe à root :

Ensuite, nous procédons au partitionnement. Sélectionnez Remplacer le(s) système(s) Linux existant(s). Cela vous donnera une petite partition /boot et une grande partition / ce qui nous convient :

Sélectionnez Écrire les modifications sur le disque :

Le disque dur est en cours de formatage :

Maintenant, nous sélectionnons le logiciel que nous voulons installer. Décochez Graphical Desktop et cochez Web Server à la place. Ensuite, cochez Personnaliser maintenant. Ensuite, sélectionnez les référentiels supplémentaires Fedora 15 - x86_64 et Fedora 15 - x86_64 - Updates (si vous êtes sur un système i686, les noms sont probablement Fedora 15 - i686 et Fedora 15 - i686 - Updates) :

Comme les deux derniers référentiels ont besoin d'une connexion Internet, une nouvelle fenêtre apparaît dans laquelle vous devez configurer votre carte réseau. Sélectionnez votre carte réseau et cliquez sur OK :

Allez dans l'onglet Wired, sélectionnez l'interface réseau (veuillez noter que Fedora 15 utilise des noms BIOS pour les périphériques, c'est pourquoi votre carte réseau est nommée comme p3p1 au lieu de eth0 - nous changerons cela plus tard; vous pouvez trouver plus d'informations à ce sujet sur http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming) et cliquez sur Modifier... :

Cochez la case Se connecter automatiquement et accédez à l'onglet Paramètres IPv4 et sélectionnez Manuel dans le menu déroulant Méthode. Renseignez un, deux ou trois serveurs de noms (séparés par une virgule) dans le champ Serveurs DNS (par exemple 8.8.8.8,8.8.4.4), puis cliquez sur le bouton Ajouter à côté de la zone Adresses :

Donnez maintenant à votre carte réseau une adresse IP statique et un masque de réseau (dans ce didacticiel, j'utilise l'adresse IP 192.168.0.100 et le masque de réseau 255.255.255.0 à des fins de démonstration ; si vous n'êtes pas sûr des bonnes valeurs, http://www. subnetmask.info pourrait vous aider). Renseignez également votre passerelle (ex. 192.168.0.1) et cliquez sur le bouton Enregistrer... :

Cliquez ensuite sur Fermer dans la fenêtre Connexions réseau :

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

4 Changer le nom de votre carte réseau en ethx

Nous devons maintenant configurer Fedora pour qu'il n'utilise plus les noms de périphériques BIOS pour notre interface réseau. Au lieu de p3p1, nous avons besoin de notre bon vieux eth0 (car sinon le pare-feu d'ISPConfig deviendra fou et bloquera tout car il attend eth0 au lieu de p3p1). Ouvrez /etc/grub.conf...

vi /etc/grub.conf

... et ajoutez biosdevname=0 à la ligne du noyau :

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/vg_server1-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.38.6-27.fc15.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.38.6-27.fc15.x86_64 ro root=/dev/mapper/vg_server1-lv_root rd_LVM_LV=vg_server1/lv_root rd_LVM_LV=vg_server1/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=de rhgb quiet biosdevname=0
        initrd /initramfs-2.6.38.6-27.fc15.x86_64.img

Redémarrez ensuite le système :

reboot

Après le redémarrage, votre carte réseau doit s'appeler eth0. Exécuter...

ifconfig

... pour vérifier :

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:15:60:FA
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255. 255.0
          inet6 addr : fe80::20c:29ff:fe15:60fa/64 Scope : Link
          UP BROADCAST RUNNING MULTICAST   MTU : 1 500  Métrique : 1
           Paquets RX :48 erreurs perdues : 0 erreurs 0 dépassement :0 trame :0
          Paquets TX :58 erreurs :0 abandonnés :0 dépassement :0 porteuse :0
          collisions :0 txqueuelen :1 000
          RX octets :5 226 (5,1 Kio)  TX octets : 9 682 (9,4 Kio)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr : ::1/128 Portée :Hôte
          UP LOOPBACK RUNNING  MTU : 16436  Métrique : 1
          Paquets RX :2 erreurs :0 abandonnés :0 dépassement :0 frame :0
          Paquets TX :2 erreurs :0 abandonnés :0 dépassement :0 porteuse :0
          collisions :0 txqueuelen :0
          Octets RX :100 (100,0 b)  Octets TX :100 (100,0 b)
[[email protected] ~]#

5 Ajuster /etc/hosts

Ensuite, nous éditons /etc/hosts. Faites en sorte qu'il ressemble à ceci :

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100   server1.example.com     server1

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Il est important d'ajouter une ligne pour server1.example.com et de supprimer server1.example.com et server1 de la ligne 127.0.0.1.

6 Configurer le pare-feu

(Vous pouvez ignorer ce chapitre si vous avez déjà désactivé le pare-feu à la fin de l'installation de base du système.)

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 Fedora 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 Fedora).

Exécuter

system-config-firewall

et désactiver le pare-feu.

Pour vérifier que le pare-feu a bien été désactivé, vous pouvez lancer

iptables -L 

ensuite. Le résultat devrait ressembler à ceci :

[[email protected] ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target prot opt source               destination

Chaîne OUTPUT (policy ACCEPT)
target     prot opt source               destination
[[email protected] ~]#

7 Désactiver SELinux

SELinux est une extension de sécurité de Fedora qui devrait fournir une sécurité étendue. À mon avis, vous n'en avez pas besoin pour configurer un système sécurisé, et cela cause généralement plus de problèmes que d'avantages (pensez-y après avoir effectué une semaine de dépannage car un service ne fonctionnait pas comme prévu, puis vous découvrir que tout allait bien, seul SELinux causait le problème). Par conséquent, je le désactive (c'est indispensable si vous souhaitez installer ISPConfig plus tard).

Modifiez /etc/selinux/config et définissez SELINUX=disabled :

vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Ensuite, nous devons redémarrer le système :

reboot

8 Installer des logiciels

Nous importons d'abord les clés GPG pour les packages logiciels :

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Ensuite, nous mettons à jour nos packages existants sur le système :

yum update

Maintenant, nous installons certains packages logiciels qui seront nécessaires plus tard :

yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp gcc gcc-c++

9 quota journalisé

(Si vous avez choisi un schéma de partitionnement différent du mien, vous devez ajuster ce chapitre afin que le quota s'applique aux partitions où vous en avez besoin.)

Pour installer le quota, nous exécutons cette commande :

yum install quota

Modifiez /etc/fstab et ajoutez ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 à la partition / (/dev/mapper/vg_server1-lv_root) :

vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed May 25 15:57:24 2011
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_server1-lv_root /                       ext4    defaults,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 1
UUID=366ba6a7-7e68-4ec9-9743-4b02dd105180 /boot                   ext4    defaults        1 2
/dev/mapper/vg_server1-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

Puis lancez

mount -o remount /

quotacheck -avugm
quotaon -avug

pour activer le quota.

10 Installer un serveur DNS chrooté (BIND9)

Pour installer un BIND9 chrooté, nous procédons comme suit :

yum install bind-chroot

Ensuite, nous modifions quelques autorisations :

chmod 755 /var/named/
chmod 775 /var/named/chroot/
chmod 775 /var/named/chroot/var/
chmod 775 /var/named/chroot/var/ named/
chmod 775 /var/named/chroot/var/run/
chmod 777 /var/named/chroot/var/run/named/
cd /var/named/chroot/ var/named/
ln -s ../../ chroot

Ensuite, nous ouvrons /etc/sysconfig/named et nous nous assurons qu'il contient la ligne suivante pour indiquer à BIND qu'il s'exécute chrooté dans /var/named/chroot :

vi /etc/sysconfig/named
[...]
ROOTDIR=/var/named/chroot

Ouvrez ensuite /etc/rsyslog.conf...

vi /etc/rsyslog.conf

... et ajoutez-y la ligne $AddUnixListenSocket /var/named/chroot/dev/log :

[...]
$AddUnixListenSocket /var/named/chroot/dev/log

Redémarrez rsyslog :

/etc/init.d/rsyslog restart

Ensuite, nous créons les liens de démarrage du système pour BIND :

chkconfig --levels 235 named on

Nous ne démarrons pas BIND maintenant car il échouera à cause d'un /var/named/chroot/etc/named.conf manquant. Celui-ci sera créé plus tard par ISPConfig (si vous utilisez le gestionnaire DNS d'ISPConfig, c'est-à-dire).

Le serveur parfait - Fedora 15 x86_64 [ISPConfig 2] - Page 4

11 MySQL 5

Pour installer MySQL, nous procédons comme suit :

yum install mysql mysql-devel mysql-server

Ensuite, nous créons les liens de démarrage du système pour MySQL (afin que MySQL démarre automatiquement à chaque démarrage du système) et démarrons le serveur MySQL :

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

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

netstat -tap | grep mysql

Il devrait afficher quelque chose comme ceci :

[[email protected] ~]# netstat -tap | grep mysql
tcp        0      0 *:mysql                    * :*                        ÉCOUTER      1151/mysqld
[[email protected] ~]#

Si ce n'est pas le cas, modifiez /etc/my.cnf et commentez l'option skip-networking :

vi /etc/my.cnf
[...]
#skip-networking
[...]

et redémarrez votre serveur MySQL :

/etc/init.d/mysqld restart 

Exécuter

 mysql_secure_installation 

pour définir un mot de passe pour l'utilisateur root (sinon n'importe qui peut accéder à votre base de données MySQL !).

[[email protected] ~]# mysql_secure_installation




REMARQUE : L'EXÉCUTION DE TOUTES LES PARTIES DE CE SCRIPT EST RECOMMANDÉE POUR TOUS MySQL
      SERVEURS EN PRODUCTION UTILISER! 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 (entrez pour aucun) : <-- ENTER
OK, mot de passe utilisé avec succès, continuons ...

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] <-- ENTRER
Nouveau mot de passe : <-- votremotdepasseqlracine
Saisir à nouveau le nouveau mot de passe : <-- votremotdepasseqlracine
Mot de passe mis à jour avec succès !
Rechargement des tableaux 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] <-- ENTER
 ... 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] <-- ENTER
 ... 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] <-- ENTER
 - 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] <-- ENTER
 ... Réussi !

Nettoyage ...



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

Merci d'utiliser MySQL !


[exemple @unixlinux.online ~]#

12 Postfix avec SMTP-AUTH et TLS

Maintenant, nous installons Postfix et Dovecot (Dovecot sera notre serveur POP3/IMAP) :

yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot

Maintenant, nous configurons SMTP-AUTH et TLS :

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl_security_options =noanonymous'
postconf -e 'broken_sasl_auth_clients =yes'
postconf -e 'smtpd_sasl_authenticated_header =yes'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces =all'
postconf -e 'mynetworks =127.0.0.0/8 [::1]/128'

Nous devons éditer /usr/lib64/sasl2/smtpd.conf pour que Postfix autorise les connexions PLAIN et LOGIN (sur les systèmes 32 bits, ce fichier se trouve dans /usr/lib/sasl2/smtpd.conf). Cela devrait ressembler à ceci :

vi /usr/lib64/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login

Ensuite, nous créons les certificats pour TLS :

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Ensuite, nous configurons Postfix pour TLS :

postconf -e 'smtpd_tls_auth_only =no'
postconf -e 'smtp_use_tls =yes'
postconf -e 'smtpd_use_tls =yes'
postconf -e 'smtp_tls_note_starttls_offer =yes'
postconf - e 'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile =/etc/postfix /ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e 'smtpd_tls_session_cache_timeout =3600s'
postconf -e 'tls_random_source =dev:/dev/urandom'

Ensuite, nous définissons le nom d'hôte dans notre installation Postfix (assurez-vous de remplacer server1.example.com par votre propre nom d'hôte) :

postconf -e 'myhostname = server1.example.com'

Après ces étapes de configuration, vous devriez maintenant avoir un /etc/postfix/main.cf qui ressemble à ceci (j'ai supprimé tous les commentaires) :

cat /etc/postfix/main.cf
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.8.3/samples
readme_directory = /usr/share/doc/postfix-2.8.3/README_FILES
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
mynetworks = 127.0.0.0/8 [::1]/128
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = server1.example.com

Lancez maintenant Postfix et saslauthd :

chkconfig sendmail désactivé
chkconfig --levels 235 postfix activé
chkconfig --levels 235 saslauthd activé
chkconfig --levels 235 dovecot activé
/etc/init.d/sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start

Avant de démarrer Dovecot, nous devons activer l'authentification en clair. Ouvrez /etc/dovecot/conf.d/10-auth.conf...

vi /etc/dovecot/conf.d/10-auth.conf

... et ajoutez la ligne disable_plaintext_auth =no :

[...]
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you're connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
#disable_plaintext_auth = yes
disable_plaintext_auth = no
[...]

Lancez ensuite Dovecot :

  /etc/init.d/dovecot start

Pour voir si SMTP-AUTH et TLS fonctionnent correctement, exécutez maintenant la commande suivante :

telnet localhost 25 

Après avoir établi la connexion à votre serveur de messagerie Postfix, tapez

ehlo localhost 

Si vous voyez les lignes

250-STARTTLS 

et

250-AUTH LOGIN PLAIN

tout va bien.

[[email protected] ssl]# telnet localhost 25
Essai ::1...
Connecté à localhost.
Le caractère d'échappement est '^]'.
220 server1. example.com ESMTP Postfix
<-- ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
<-- quit
221 2.0.0 Bye
Connexion fermée par un hôte étranger.
[[email protected] ssl]#

Tapez

quit 

pour revenir au shell du système.

12.1 Maildir

Dovecot utilise le format Maildir (pas mbox), donc si vous installez ISPConfig sur le serveur, assurez-vous d'activer Maildir sous Gestion -> Serveur -> Paramètres -> E-mail. ISPConfig effectuera alors la configuration nécessaire.

Si vous ne souhaitez pas installer ISPConfig, vous devez configurer Postfix pour envoyer des e-mails au Maildir d'un utilisateur (vous pouvez également le faire si vous utilisez ISPConfig - cela ne fait pas de mal;-)) :

postconf -e 'home_mailbox =Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

Le serveur parfait - Fedora 15 x86_64 [ISPConfig 2] - Page 5

13 Apache2 Avec PHP, Ruby, Python, WebDAV

Maintenant, nous installons Apache avec PHP5 (c'est PHP 5.3.6) :

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel

Modifiez ensuite /etc/httpd/conf/httpd.conf :

vi /etc/httpd/conf/httpd.conf

et remplacez DirectoryIndex par

[...]
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl
[...]

Configurez maintenant votre système pour démarrer Apache au démarrage :

chkconfig --levels 235 httpd on

Démarrez Apache :

/etc/init.d/httpd start

13.1 Désactiver PHP globalement

(Si vous ne prévoyez pas d'installer ISPConfig sur ce serveur, veuillez ignorer cette section !)

Dans ISPConfig, vous configurerez PHP par site Web, c'est-à-dire que vous pouvez spécifier quel site Web peut exécuter des scripts PHP et lequel ne le peut pas. Cela ne peut fonctionner que si PHP est désactivé globalement, car sinon tous les sites Web pourraient exécuter des scripts PHP, peu importe ce que vous spécifiez dans ISPConfig.

Pour désactiver PHP globalement, nous éditons /etc/httpd/conf.d/php.conf et commentons les lignes AddHandler et AddType :

vi /etc/httpd/conf.d/php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
#AddHandler php5-script .php
#AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps

Ensuite, nous redémarrons Apache :

/etc/init.d/httpd restart

13.2 Rubis

À partir de la version 2.2.20, ISPConfig a un support intégré pour Ruby. Au lieu d'utiliser CGI/FastCGI, ISPConfig dépend de la disponibilité de mod_ruby dans Apache du serveur.

Pour Fedora 15, il n'y a pas de package mod_ruby disponible, nous devons donc le compiler nous-mêmes. Nous installons d'abord quelques prérequis :

yum install httpd-devel ruby ruby-devel

Ensuite, nous téléchargeons et installons mod_ruby comme suit :

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

Enfin, nous devons ajouter le module mod_ruby à la configuration d'Apache, nous créons donc le fichier /etc/httpd/conf.d/ruby.conf...

vi /etc/httpd/conf.d/ruby.conf
LoadModule ruby_module modules/mod_ruby.so
RubyAddPath /1.8

... et redémarrez Apache :

/etc/init.d/httpd restart

(Si vous omettez la directive RubyAddPath /1.8, vous verrez des erreurs comme les suivantes dans le journal des erreurs d'Apache lorsque vous appelez des fichiers Ruby :

[Jeu 26 mai 02:05:05 2011] [error] mod_ruby :ruby:0:in `require' :aucun fichier de ce type à charger -- apache/ruby-run (LoadError)
[Jeu 26 mai 02 :05:05 2011] [error] mod_ruby : échec de l'exigence d'apache/ruby-run
[Jeu 26 mai 02:05:05 2011] [error] mod_ruby :erreur dans ruby

)

Vous pouvez trouver plus de détails sur mod_ruby dans cet article.

13.3 Installer mod_python

Pour installer mod_python, on lance simplement...

yum install mod_python

... et redémarrez ensuite Apache :

/etc/init.d/httpd restart

13.4 WebDAV

WebDAV devrait déjà être activé, mais pour vérifier cela, ouvrez /etc/httpd/conf/httpd.conf et assurez-vous que les trois modules suivants sont actifs :

vi /etc/httpd/conf/httpd.conf
[...]
LoadModule auth_digest_module modules/mod_auth_digest.so
[...]
LoadModule dav_module modules/mod_dav.so
[...]
LoadModule dav_fs_module modules/mod_dav_fs.so
[...]

Si vous devez modifier /etc/httpd/conf/httpd.conf, n'oubliez pas de redémarrer Apache après :

/etc/init.d/httpd restart 

14 ProFTPd

ISPConfig prend mieux en charge proftpd que vsftpd, supprimons donc vsftpd et installons proftpd :

yum remove vsftpd
yum install proftpd

Nous pouvons maintenant créer les liens de démarrage du système pour Proftpd et le démarrer :

chkconfig --levels 235 proftpd on
/etc/init.d/proftpd start

15 Webaliseur

Pour installer webalizer, lancez simplement

yum install webalizer

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 :

yum install ntp

chkconfig --levels 235 ntpd on
ntpdate 0.pool.ntp.org
/etc/init.d/ntpd start

17 Installer des modules Perl

ISPConfig est livré avec SpamAssassin qui a besoin de quelques modules Perl pour fonctionner. Nous installons les modules Perl requis avec une seule commande :

yum install perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 perl-ExtUtils-AutoInstall perl-NetAddr-IP perl-Archive-Tar

18 ISPConfig

The configuration of the server is now finished. You can now install ISPConfig on it, following these instructions:http://www.ispconfig.org/manual_installation.htm

Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 673:

vim /usr/include/stdio.h
[...]
/* Like `getdelim', but reads up to a newline.

   This function is not part of POSIX and therefore no official
   cancellation point.  But due to similarity with an POSIX interface
   or due to the implementation it is a cancellation point and
   therefore not marked with __THROW.  */
extern _IO_ssize_t parseline (char **__restrict __lineptr,
                            size_t *__restrict __n,
                            FILE *__restrict __stream) __wur;
#endif
[...]

If you don't do this, the installation will fail because of the following error:

htpasswd.c:101:error:conflicting types for âgetlineâ
/usr/include/stdio.h:653:note:previous declaration of âgetlineâ was here
make[2]:*** [htpasswd.o] Error 1
make[2]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Error 1
make[1]:Leaving directory `/home/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Error 2
ERROR:Could not make Apache

You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).

18.1 A Note On SuExec

If you want to run CGI scripts under suExec, you should specify /var/www as the web root for websites created by ISPConfig as Fedora's suExec is compiled with /var/www as Doc_Root. Run

/usr/sbin/suexec -V

and the output should look like this:

[[email protected] ~]# /usr/sbin/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"
[[email protected] ~]#

So if you want to use suExec with ISPconfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).

  • Fedora:http://fedoraproject.org/
  • Network Device Naming:http://fedoraproject.org/wiki/Features/ConsistentNetworkDeviceNaming
  • ISPConfig:http://www.ispconfig.org/

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

  2. Le serveur parfait - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]

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

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

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

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

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

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)