Le serveur parfait - CentOS 6.0 x86_64 [ISPConfig 2]
Ce tutoriel montre comment configurer un CentOS 6.0 serveur (x86_64) qui offre tous les services nécessaires aux FAI et aux hébergeurs Web :serveur Web Apache (compatible SSL), serveur de messagerie Postfix avec SMTP-AUTH et TLS, serveur DNS BIND, serveur FTP Proftpd, serveur MySQL, Dovecot POP3/IMAP, Quota, pare-feu, etc. Ce didacticiel est écrit pour la version 64 bits de CentOS 6.0, mais devrait également s'appliquer à la version 32 bits avec très peu de modifications. En fin de compte, vous devriez avoir un système qui fonctionne de manière fiable, et si vous le souhaitez, vous pouvez installer le panneau de contrôle d'hébergement Web gratuit ISPConfig 2 (c'est-à-dire qu'ISPConfig s'exécute dessus dès la sortie de la boîte).
J'utiliserai le logiciel suivant :
- Serveur Web :Apache 2.2.15 avec PHP 5.3.2
- Serveur de base de données :MySQL 5.1.52
- 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 les deux DVD CentOS 6.0 depuis un miroir à côté de vous (la liste des miroirs se trouve ici :http://isoredirect.centos.org/centos/6/isos/x86_64/).
- 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 Installer le système de base
Démarrez à partir de votre premier DVD CentOS 6.0 (DVD 1). Sélectionnez Installer ou mettre à niveau un système existant :
Le test du support d'installation peut prendre beaucoup de temps, nous sautons donc ce test ici :
L'écran de bienvenue du programme d'installation de CentOS apparaît. Cliquez sur Suivant :
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 :
Vous pouvez voir l'avertissement suivant - Erreur de traitement du lecteur. Si vous voyez ceci, cliquez sur le bouton Tout réinitialiser pour continuer :
Renseignez le nom d'hôte du serveur (ex. serveur1.exemple.com), puis cliquez sur le bouton Configurer le réseau :
Allez dans l'onglet Wired, sélectionnez l'interface réseau (probablement eth0) et cliquez sur Edit... :
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 Appliquer... :
La configuration du réseau est maintenant terminée. Cliquez sur le bouton Suivant :
Le serveur parfait - CentOS 6.0 x86_64 [ISPConfig 2] - Page 2
4 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 |
5 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 CentOS 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 CentOS).
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] ~]#
6 Désactiver SELinux
SELinux est une extension de sécurité de CentOS 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
7 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 gcc gcc-c++ telnet flex
8 quotas
(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 Mon Jul 11 16:29:27 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=6a119ddb-46eb-4054-a17c-8968ea87369f /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.
9 Installer un serveur DNS chrooté (BIND9)
Pour installer un BIND9 chrooté, nous procédons comme suit :
yum install bind-chroot
Alors faites ceci :
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
cp /var/named/named.localhost /var/named/chroot/var/named/named.localhost
cp /var/named/named.ca /var/named/chroot/var/named/named.ca
cp /var/named/named.empty /var/named/chroot/var/named/named.empty
cp /var/named/named.loopback /var/named/chroot/var/named/named.loopback
chgrp named /var/named/chroot/var/named/named.localhost /var/named /chroot/var/named/named.ca /var/named/chroot/var/named/named.empty /var/named/chroot/var/named/named.loopback
touch /var/named/chroot/ etc/named.conf
chkconfig --levels 235 nommé sur
/etc/init.d/named start
BIND s'exécutera dans une prison chroot sous /var/named/chroot/var/named/. J'utiliserai ISPConfig pour configurer BIND (zones, etc.).
Le serveur parfait - CentOS 6.0 x86_64 [ISPConfig 2] - Page 4
10 MySQL (5.1)
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 une ligne comme celle-ci :
[[email protected] ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql * :* ÉCOUTER 2044/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
Définissez des mots de passe pour le compte racine MySQL :
mysql_secure_installation
[[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 (entre pour aucun) :
OK, mot de passe utilisé avec succès, passons à ...
La définition du mot de passe root assure que personne ne peut se connecter à la racine MySQL
utilisateur 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 ~]#
11 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
Ensuite, 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'
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.6.6/samples readme_directory = /usr/share/doc/postfix-2.6.6/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 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 |
Par défaut, le démon Dovecot de CentOS ne fournit que les services IMAP et IMAPs. Parce que nous voulons également POP3 et POP3, nous devons configurer Dovecot pour le faire. Nous éditons /etc/dovecot/dovecot.conf et activons la ligne protocols =imap pop3 :
vi /etc/dovecot/dovecot.conf
[...] # Protocols we want to be serving. protocols = imap pop3 [...] |
Ensuite, nous devons activer l'authentification en clair :
vi /etc/dovecot/conf.d/10-auth.conf
[...] # 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 = no [...] |
Démarrez maintenant Postfix, saslauthd et Dovecot :
chkconfig --levels 235 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
/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 PLAIN LOGIN
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 PLAIN LOGIN
250-AUTH=PLAIN LOGIN
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.
11.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 - CentOS 6.0 x86_64 [ISPConfig 2] - Page 5
12 Apache2 Avec PHP, Ruby, Python, WebDAV
Maintenant, nous installons Apache avec PHP (c'est PHP 5.3.2) :
yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc 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
12.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, modifiez /etc/httpd/conf.d/php.conf et commentez 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
12.2 Installer mod_ruby
Pour CentOS 6.0, 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://www.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
)
12.3 Installer mod_python
Le package mod_python est disponible à partir des référentiels EPEL que nous pouvons activer comme suit :
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch. rpm
rpm -ivh epel-release-6-5.noarch.rpm
yum install yum-priorities
Modifier /etc/yum.repos.d/epel.repo...
vi /etc/yum.repos.d/epel.repo
... et ajoutez la ligne priority=10 à la section [epel] :
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
Pour installer mod_python, on lance simplement...
yum install mod_python
... et redémarrez ensuite Apache :
/etc/init.d/httpd restart
12.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
13 ProFTPd
ISPConfig prend mieux en charge proftpd que vsftpd, supprimons donc vsftpd :
yum remove vsftpd
Nous pouvons maintenant installer ProFTPd depuis le dépôt EPEL comme suit :
yum install proftpd
Pour des raisons de sécurité, vous pouvez également ajouter la ligne suivante à /etc/proftpd.conf (merci à Reinaldo Carvalho ; plus d'informations peuvent être trouvées ici :http://proftpd.org/localsite/Userguide/linked/userguide.html) :
vi /etc/proftpd.conf
[...] IdentLookups off [...] |
Nous pouvons maintenant créer les liens de démarrage du système pour ProFTPd :
chkconfig --levels 235 proftpd on
Et enfin nous lançons Proftpd :
/etc/init.d/proftpd start
14 Webaliseur
Pour installer webalizer, lancez simplement
yum install webalizer
15 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
16 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-Archive-Tar perl-NetAddr-IP
17 La fin
La configuration du serveur est maintenant terminée. Vous pouvez maintenant y installer ISPConfig en suivant ces instructions :http://www.ispconfig.org/manual_installation.htm
Avant d'installer ISPConfig, il y a une chose importante que vous devez faire. Ouvrez /usr/include/stdio.h et remplacez getline par parseline à la ligne 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 [...] |
Si vous ne le faites pas, l'installation échouera à cause de l'erreur suivante :
htpasswd.c:101 : erreur :types en conflit pour âgetlineâ
/usr/include/stdio.h:673 : remarque :la déclaration précédente de âgetlineâ était ici
make[2] :*** [htpasswd. o] Erreur 1
make[2] :Départ du répertoire `/home/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1] :*** [build-support] Erreur 1
make[1] :Départ du répertoire `/home/install_ispconfig/compile_aps/apache_1.3.41'
make :*** [build] Erreur 2
ERREUR :Impossible de créer Apache
Vous pouvez annuler la modification de /usr/include/stdio.h après l'installation réussie d'ISPConfig (mais n'oubliez pas de la modifier chaque fois que vous souhaitez mettre à jour ISPConfig !).
17.1 Une note sur SuExec
Si vous souhaitez exécuter des scripts CGI sous suExec, vous devez spécifier /var/www comme répertoire de base pour les sites Web créés par ISPConfig car le suExec de CentOS est compilé avec /var/www comme Doc_Root. Exécuter
/usr/sbin/suexec -V
et la sortie devrait ressembler à ceci :
[[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] ~]#
Ainsi, si vous souhaitez utiliser suExec avec ISPconfig, ne modifiez pas la racine Web par défaut (qui est /var/www) si vous utilisez le mode expert lors de l'installation d'ISPConfig (en mode standard, vous ne pouvez de toute façon pas modifier la racine Web, vous 'll être en mesure d'utiliser suExec dans tous les cas).
18 liens
- CentOS :http://www.centos.org/
- ISPConfig 2 :http://www.ispconfig.org/ispconfig-2/