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

Le serveur parfait - CentOS 5.7 x86_64 [ISPConfig 2]

Le serveur parfait - CentOS 5.7 x86_64 [ISPConfig 2]

Ce tutoriel montre comment configurer un CentOS 5.7 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 5.7, 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 avec PHP 5.1.6
  • Serveur de base de données :MySQL 5.0
  • 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 5.7 ou les huit CD CentOS 5.7 depuis un miroir à côté de vous (la liste des miroirs se trouve ici :http://isoredirect.centos.org/centos/5/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 CD CentOS 5.7 (CD 1) ou du premier DVD CentOS 5.7. Appuyez sur à l'invite de démarrage :

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 :

J'installe CentOS 5.7 sur un nouveau système, donc je réponds Oui à la question Souhaitez-vous initialiser ce lecteur, en effaçant TOUTES LES DONNÉES ?

Nous devons maintenant sélectionner un schéma de partitionnement pour notre installation. Par souci de simplicité, je sélectionne Supprimer les partitions Linux sur les lecteurs sélectionnés et créer la disposition par défaut. Cela se traduira par une petite partition /boot et une grande partition / ainsi qu'une partition swap. Bien sûr, vous êtes libre de partitionner votre disque dur comme bon vous semble. Ensuite, j'ai cliqué sur Suivant :

Répondez à la question suivante (Etes-vous sûr de vouloir faire cela ?) par Oui :

Passons aux paramètres réseau. Le paramètre par défaut ici est de configurer les interfaces réseau avec DHCP, mais nous installons un serveur, donc les adresses IP statiques ne sont pas une mauvaise idée... Cliquez sur le bouton Modifier en haut à droite.

Dans la fenêtre qui apparaît, décochez Configuration IP dynamique (DHCP) et Activer le support IPv6 et attribuez à votre carte réseau une adresse IP statique (dans ce tutoriel, j'utilise l'adresse IP 192.168.0.100 à des fins de démonstration) et un masque de réseau approprié (par ex. 255.255.255.0 ; si vous n'êtes pas sûr des bonnes valeurs, http://www.subnetmask.info peut vous aider) :

Définissez le nom d'hôte manuellement, par ex. server1.example.com, et entrez une passerelle (par exemple 192.168.0.1) et jusqu'à deux serveurs DNS (par exemple 8.8.8.8 et 145.253.2.75) :

Choisissez votre fuseau horaire :

Donnez un mot de passe à root :

Le serveur parfait - CentOS 5.7 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
# Ne supprimez pas la ligne suivante, sinon divers programmes# nécessitant une fonctionnalité réseau échoueront.127.0.0.1 localhost.localdomain localhost192.168.0.100 server1 .exemple.com serveur1 ::1 localhost6.localdomain6 localhost6

5 Configurer des adresses IP supplémentaires

(Cette section est totalement facultative. Elle montre simplement comment ajouter des adresses IP supplémentaires à votre interface réseau eth0 si vous avez besoin de plusieurs adresses IP. Si vous êtes d'accord avec une seule adresse IP, vous pouvez ignorer cette section.)

Supposons que notre interface réseau soit eth0. Ensuite, il y a un fichier /etc/sysconfig/network-scripts/ifcfg-eth0 qui contient les paramètres pour eth0. Nous pouvons l'utiliser comme exemple pour notre nouvelle interface réseau virtuelle eth0:0 :

cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:0

Nous voulons maintenant utiliser l'adresse IP 192.168.0.101 sur l'interface virtuelle eth0:0. Par conséquent, nous ouvrons le fichier /etc/sysconfig/network-scripts/ifcfg-eth0:0 et le modifions comme suit (nous pouvons omettre la ligne HWADDR car il s'agit de la même carte réseau physique) :

vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
# Contrôleur Gigabit Ethernet Intel Corporation 82545EM (cuivre)DEVICE=eth0:0BOOTPROTO=staticBROADCAST=192.168.0.255IPADDR=192.168.0.101NETMASK=255.255.255.0 NETWORK=192.168.0.0ONBOOT=oui

Ensuite, nous devons redémarrer le réseau :

/etc/init.d/network restart

Vous pouvez également ajuster /etc/hosts après avoir ajouté de nouvelles adresses IP, bien que cela ne soit pas nécessaire.

Exécutez maintenant

ifconfig

Vous devriez maintenant voir votre nouvelle adresse IP dans la sortie :

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:89:71:35
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255. 255,0
         UP BROADCAST RUNNING MULTICAST   MTU : 1 500  Métrique : 1
          Paquets RX :307 abandonnés :0 dépassement :0 image :0
          Paquets TX :251 erreurs :0 abandonné :0 :0 porteur :0
          collisions :0 txqueuelen :1 000
          Octets RX :29 217 (28,5 Ko)  Octets TX : 45 961 (44,8 Ko)

eth0:0    Link encap:Ethernet HWaddr 00:0C:29:89:71:35
          inet adr :192.168.0.101  Bcast :192.168.0.255  Masque :255.255.255.0
          Métrique :150
lo        Link encap :Local Loopback
          inet addr :127.0.0.1  Mask :255.0.0.0
          UP LOOPBACK RUNNING  MTU :16436  Métrique : 1
          Rx droppers :0 erpeder paquets : 8 :0 dépassement :0 trame :0
          Paquets TX :8 erreurs :0 abandonnés :0 dépassement :0 porteur :0
          collisions :0 txqueuelen :0
          octets RX :560 (560.0 b)  octets TX :560 (560.0 b)

[[email protected] ~]#

6 Désactiver le pare-feu et SELinux

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

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

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 également (c'est indispensable si vous souhaitez installer ISPConfig plus tard).

Exécuter

system-config-securitylevel

Définissez le niveau de sécurité et SELinux sur Désactivé et appuyez sur OK :

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

redémarrer

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 :

mise à jour miam

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

yum installer fetchmail wget bzip2 décompresser zip nmap openssl lynx fileutils gcc gcc-c++

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 :

quota d'installation yum

Modifiez /etc/fstab et ajoutez,usrquota,grpquota à la partition / (/dev/VolGroup00/LogVol00) :

vi /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults,usrquota,grpquota 1 1LABEL=/boot /boot ext3 defaults 1 2tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0/dev/VolGroup00/LogVol01 swap swap defaults 0 0

Puis lancez

touch /aquota.user /aquota.group
chmod 600 /aquota.*
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 installer 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 /usr/share/doc/bind-9.3.6/sample/var/named/named.local /var/named/ chroot/var/named/named.local
cp /usr/share/doc/bind-9.3.6/sample/var/named/named.root /var/named/chroot/var/named/named.root
touch /var/named/chroot/etc/named.conf
chkconfig --levels 235 named on
/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 5.7 x86_64 [ISPConfig 2] - Page 4

10 MySQL (5.0)

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      3486/mysqld
[[email protected] ~]#

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

vi /etc/mon.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'

Nous devons éditer /usr/lib64/sasl2/smtpd.conf pour que Postfix autorise les connexions PLAIN et LOGIN. Sur un Centos 5.7 32 bits, vous devez éditer le fichier /usr/lib/sasl2/smtpd.conf à la place. Cela devrait ressembler à ceci :

vi /usr/lib64/sasl2/smtpd.conf
pwcheck_method :saslauthdmech_list :connexion simple

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 'monnomhôte =serveur1.exemple.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/postfixcommand_directory =/usr/sbindaemon_directory =/usr/libexec/postfixmail_owner =postfixinet_interfaces =allmydestination =$myhostname, localhost.$ mondomaine, localhostunknown_local_recipient_reject_code =550alias_maps =hash:/etc/aliasesalias_database =hash:/etc/aliasesdebug_peer_level =2debugger_command =PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin xxgdb $daemon_directory/$ process_name $process_id &sleep 5sendmail_path =/usr/sbin/sendmail.postfixnewaliases_path =/usr/bin/newaliases.postfixmailq_path =/usr/bin/mailq.postfixsetgid_group =postdrophtml_directory =nomanpage_directory =/usr/share/mansample_directory =/usr/share/ doc/postfix-2.3.3/samplesreadme_directory =/usr/share/doc/postfix-2.3.3/README_FILESsmtpd_sasl_local_domain =smtpd_sasl_auth_enable =yessmtpd_sasl_security_options =noanonymousbroken_sasl_auth_clients =yessmtpd_sasl_authenticated_header =yessmtpd_sasl_authenticated_tperd =yes strictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destinationmynetworks =127.0.0.0/8smtpd_tls_auth_only =nosmtp_use_tls =yessmtpd_use_tls =yessmtp_tls_note_starttls_offer =yessmtpd_tls_key_file =/etc/postfix/ssl/smtpd.keysmtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crtsmtpd_tls_CAfile =/etc/postfix/ssl /cacert.pemsmtpd_tls_loglevel =1smtpd_tls_received_header =yessmtpd_tls_session_cache_timeout =3600stls_random_source =dev:/dev/urandommyhostname =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.conf et activons la ligne protocols =imap imaps pop3 pop3s :

vi /etc/dovecot.conf
[...]# Protocoles que nous voulons servir :imap imaps pop3 pop3s# Si vous souhaitez uniquement utiliser dovecot-auth, vous pouvez définir this à "none".protocols =imap imaps pop3 pop3s[...]

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 LOGIN PLAIN 

tout va bien.

[[email protected] ssl]# telnet localhost 25
Essai 127.0.0.1...
Connecté à localhost.localdomain (127.0.0.1).
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

quitter 

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 5.7 x86_64 [ISPConfig 2] - Page 5

12 Apache2 Avec PHP, Ruby, Python, WebDAV

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

yum installer php php-devel php-gd php-imap php-ldap 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 sur

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
> LoadModule php5_module modules/libphp5.so # L'utilisation de la construction "ZTS" avec worker est expérimentale, et aucun module # partagé n'est supporté. LoadModule php5_module modules/libphp5-zts.so## Permet à l'interpréteur PHP de gérer les fichiers avec une extension .php.##AddHandler php5-script .php#AddType text/html .php## Ajouter index.php à la liste des fichiers qui serviront d'index de répertoire#.#DirectoryIndex index.php## Décommentez la ligne suivante pour permettre à PHP d'imprimer joliment les fichiers .phps# en tant que code source PHP :##AddType application/x-httpd-php -source .phps

Ensuite, nous redémarrons Apache :

/etc/init.d/httpd restart

12.2 Installer mod_ruby

Pour CentOS 5.7, 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 installer 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

... et redémarrez Apache :

/etc/init.d/httpd restart

12.3 Installer mod_python

Pour installer mod_python, on lance simplement...

yum installer 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 supprimer vsftpd

Parce que CentOS n'a pas de package proftpd, nous devons compiler Proftpd manuellement :

cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xvfz proftpd-1.3.3e.tar .gz
cd proftpd-1.3.3e/
./configure --sysconfdir=/etc
make
make install
cd ..
rm - en proftpd-1.3.3e*

Le binaire proftpd est installé dans /usr/local/sbin, mais nous en avons besoin dans /usr/sbin, nous créons donc un lien symbolique :

ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

Créez maintenant le script d'initialisation /etc/init.d/proftpd :

vi /etc/init.d/proftpd
#!/bin/sh# $Id :proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $## proftpd Ce script shell s'occupe du démarrage et de l'arrêt# proftpd.## chkconfig:- 80 30# description:ProFTPD est un serveur FTP amélioré mettant l'accent sur \# la simplicité, la sécurité et la facilité de configuration. \# Il présente une syntaxe de configuration très proche d'Apache, \# et une infrastructure de serveur hautement personnalisable, \# y compris la prise en charge de plusieurs serveurs FTP "virtuels", \# FTP anonyme et une visibilité des répertoires basée sur les autorisations.# processname :proftpd# config :/etc/proftp.conf# pidfile :/var/run/proftpd.pid# Bibliothèque de fonctions source.. /etc/rc.d/init.d/functions# Configuration réseau source.. /etc/sysconfig/network# Vérifiez que le réseau est activé.[ ${NETWORKING} ="no" ] &&exit 0[ -x /usr/sbin/proftpd ] || exit 0RETVAL=0prog="proftpd"start() { echo -n $"Démarrage de $prog :" démon proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] &&touch /var/lock/subsys/proftpd}stop() { echo -n $"Arrêt de $prog :" killproc proftpd RETVAL=$? echo [ $RETVAL -eq 0 ] &&rm -f /var/lock/subsys/proftpd}# Voyez comment nous avons été appelés.case "$1" in start) start;; stop STOP;; statut) statut proftpd RETVAL=$?;; redémarrer) arrêter démarrer;; condrestart) if [ -f /var/lock/subsys/proftpd ] ; puis stop start fi;; reload) echo -n $"Relecture de la configuration de $prog :" killproc proftpd -HUP RETVAL=$? écho;; *) echo "Utilisation :$prog {start|stop|restart|reload|condrestart|status}" exit 1esacexit $RETVAL

Ensuite, nous rendons le script init exécutable :

chmod 755 /etc/init.d/proftpd

Ensuite, nous ouvrons /etc/proftpd.conf et changeons le groupe en personne :

vi /etc/proftpd.conf
[...]Groupe personne[...]

Pour des raisons de sécurité, vous pouvez également ajouter les lignes suivantes à /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
[...]DefaultRoot ~IdentLookups offServerIdent on "FTP Server ready."[...]

Pour vous assurer que les utilisateurs FTP peuvent utiliser la commande chmod, commentez la section  :

[...]# Empêcher l'utilisation de SITE CHMOD par défaut## DenyAll#[...] 

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

chkconfig --levels 235 proftpd sur

Et enfin nous lançons Proftpd :

/etc/init.d/proftpd start

14 Webaliseur

Pour installer webalizer, lancez simplement

yum installer 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 installer 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, et si vous le souhaitez vous pouvez maintenant installer ISPConfig 2 dessus.

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

  • CentOS :http://www.centos.org/
  • ISPConfig 2 :http://www.ispconfig.org/ispconfig-2/

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

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

  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.1 x86_64 avec nginx [ISPConfig 3]

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

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

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

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

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