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

Le serveur parfait - CentOS 5.7 x86_64 [ISPConfig 3]

Le serveur parfait - CentOS 5.7 x86_64 [ISPConfig 3]

Ce tutoriel montre comment préparer un serveur CentOS 5.7 x86_64 pour l'installation d'ISPConfig 3, et comment installer ISPConfig 3. ISPConfig 3 est un panneau de contrôle d'hébergement Web qui vous permet de configurer les services suivants via un navigateur Web :serveur Web Apache, Postfix serveur de messagerie, MySQL, serveur de noms BIND, PureFTPd, SpamAssassin, ClamAV et bien d'autres.

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

Je n'émets aucune garantie que cela fonctionnera pour vous !

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.

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 3] - Page 2

4 Ajuster /etc/hosts

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

vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
192.168.0.100           server1.example.com server1
::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 est 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
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.101
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

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 frame :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        Lien encap :Loopback local
          inet addr :127.0.0.1  Mask :255.0.0.0
          UP LOOPBACK RUNNING  MTU :16436  Métrique : 1
          Rx droppers : 0 paquets :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 :

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*

Activez les dépôts contrib et centosplus :

vi /etc/yum.repos.d/CentOS-Base.repo

Modifiez les lignes ci-dessous :

[base]
[...]
exclude=postfix
[...]
[updates]
[...]
exclude=postfix
[...]
[centosplus]
[...]
enabled=1
includepkgs=postfix
[...]
[contrib]
[...]
enabled=1
[...]

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 groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'

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,usrquota,grpquota à la partition / (/dev/VolGroup00/LogVol00) :

vi /etc/fstab
/dev/VolGroup00/LogVol00 /                       ext3    defaults,usrquota,grpquota        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
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
/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 Apache, MySQL, phpMyAdmin

Nous activons d'abord le référentiel RPMforge sur notre système CentOS car de nombreux packages que nous allons installer au cours de ce didacticiel ne sont pas disponibles dans les référentiels CentOS 5.7 officiels :

wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm --import RPM-GPG-KEY.dag.txt

cd /tmp
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release- 0.5.2-2.el5.rf.x86_64.rpm

(Si le lien ci-dessus ne fonctionne plus, vous pouvez trouver la version actuelle de rpmforge-release ici :http://packages.sw.be/rpmforge-release/)

Ensuite, nous pouvons installer les packages nécessaires avec une seule commande :

yum install ntp httpd mysql-server php php-mysql php-mbstring php-mcrypt phpmyadmin

Le serveur parfait - CentOS 5.7 x86_64 [ISPConfig 3] - Page 4

10 Installer Dovecot

Il existe un package Dovecot dans le référentiel CentOS, mais malheureusement, il ne prend pas en charge MySQL. Par conséquent, nous devons supprimer le Dovecot existant et installer un autre package Dovecot (de ATrpms) qui est fourni avec le support MySQL.

yum remove dovecot

Créez un nouveau fichier /etc/yum.repos.d/atrpms.repo...

vi /etc/yum.repos.d/atrpms.repo

... et insérez les lignes suivantes dans le fichier :

[atrpms]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/stable
failovermethod=priority
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable
#
[atrpms-testing]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms testing
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/testing
failovermethod=priority
enabled=1
exclude=dovecot-2*
includepkgs=dovecot dovecot-sieve

#
# requires stable and testing
#
[atrpms-bleeding]
name=Red Hat Enterprise Linux 5 - $basearch - ATrpms bleeding
baseurl=http://dl.atrpms.net/el5-$basearch/atrpms/bleeding
failovermethod=priority
enabled=0

Importez ensuite la clé gpg tge du dépôt atrpm...

wget http://ATrpms.net/RPM-GPG-KEY.atrpms
rpm --import RPM-GPG-KEY.atrpms

...et installez Dovecot :

yum install dovecot dovecot-sieve

Sur un système 64 bits, faites également ceci (ne le faites pas sur un système 32 bits !) :

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

Nous créons maintenant les liens de démarrage du système pour Dovecot :

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

Si Dovecot ne démarre pas avec l'erreur suivante :

Fatal: listen(::, 143) failed: Address already in use

... ouvrez /etc/dovecot.conf...

vi /etc/dovecot.conf 

... et ajoutez la ligne listen =*:

[...]
#listen = *, [::]
listen = *
[...]

Essayez ensuite de redémarrer Dovecot :

/etc/init.d/dovecot start 

11 Installer Postfix avec le support MySQL

Le package Postfix "normal" du référentiel CentOS n'a pas MySQL, mais le package Postfix du référentiel CentOS Plus en a. Nous supprimons donc Postfix...

yum remove postfix

... et réinstallez-le, cette fois depuis le référentiel CentOS Plus :

yum install postfix   

Ensuite, désactivez Sendmail et démarrez Postfix et MySQL :

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

chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
/etc/init.d/sendmail stop
/etc/init.d/postfix start

12 Installer Getmail

Getmail peut être installé comme suit :

yum install getmail

13 Définir les mots de passe MySQL et configurer phpMyAdmin

Définissez des mots de passe pour le compte racine MySQL :

mysql_secure_installation

[[email protected] tmp]# mysql_secure_installation




REMARQUE : L'EXÉCUTION DE TOUTES 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 tmp]#

Maintenant, nous configurons phpMyAdmin. Nous modifions la configuration d'Apache afin que phpMyAdmin autorise les connexions non seulement à partir de l'hôte local (en commentant la strophe ) :

vi /etc/httpd/conf.d/phpmyadmin.conf
#
#  Web application to manage MySQL
#

#<Directory "/usr/share/phpmyadmin">
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Ensuite, nous changeons l'authentification dans phpMyAdmin de cookie à http :

vi /usr/share/phpmyadmin/config.inc.php
[...]
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Ensuite, nous créons les liens de démarrage du système pour Apache et le démarrons :

chkconfig --levels 235 httpd sur
/etc/init.d/httpd start

Vous pouvez maintenant diriger votre navigateur vers http://server1.example.com/phpmyadmin/ ou http://192.168.0.100/phpmyadmin/ et vous connecter avec le nom d'utilisateur root et votre nouveau mot de passe root MySQL.

14 Installer Amavisd-new, SpamAssassin et ClamAV

Pour installer amavisd-new, spamassassin et clamav, exécutez la commande suivante :

yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql

Ouvrez /etc/sysconfig/amavisd...

vi /etc/sysconfig/amavisd

... et décommentez la ligne CONFIG_FILE="/etc/amavisd.conf":

### Uncomment this if you want to use amavis with sendmail milter interface.
### See README.milter for details.
#
#MILTER_SOCKET="local:/var/amavis/amavis-milter.sock"
#MILTER_SOCKET="[email protected]"

### These are other defaults.
#AMAVIS_ACCOUNT="amavis"
CONFIG_FILE="/etc/amavisd.conf"
#MILTER_FLAGS=""

Ensuite, nous commençons freshclam, amavisd et clamd...

sa-update
chkconfig --levels 235 amavisd on
chkconfig --levels 235 clamd on
/usr/bin/freshclam
/etc/init.d/amavisd start
/etc/init.d/clamd start

... et créez les répertoires nécessaires :

mkdir /var/run/amavisd /var/spool/amavisd /var/spool/amavisd/tmp /var/spool/amavisd/db
chown amavis /var/run/amavisd /var/spool/amavisd /var/ spool/amavisd/tmp /var/spool/amavisd/db
ln -s /var/run/clamav/clamd.sock /var/spool/amavisd/clamd.sock

Le serveur parfait - CentOS 5.7 x86_64 [ISPConfig 3] - Page 5

15 Installation d'Apache2 avec mod_php, mod_fcgi/PHP5 et suPHP

ISPConfig 3 vous permet d'utiliser mod_php, mod_fcgi/PHP5, cgi/PHP5 et suPHP site par site.

mod_fcgid n'est pas disponible dans les référentiels CentOS officiels, mais il existe un package pour CentOS 5.x dans le référentiel de test centos.karan.org. Nous activons le dépôt comme suit :

cd /etc/yum.repos.d/
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo

Ensuite, nous ouvrons /etc/yum.repos.d/kbsingh-CentOS-Extras.repo...

vi /etc/yum.repos.d/kbsingh-CentOS-Extras.repo

... et définissez gpgcheck sur 0 et enabled sur 1 dans la section [kbs-CentOS-Testing] :

[...]
# pkgs in the -Testing repo are not gpg signed
[kbs-CentOS-Testing]
name=CentOS.Karan.Org-EL$releasever - Testing
gpgcheck=0
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/testing/$basearch/RPMS/

Ensuite, nous pouvons installer Apache2 avec mod_php5, mod_fcgid et PHP5 :

yum install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-mbstring php-mcrypt php-mhash php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel

Ensuite, nous ouvrons /etc/php.ini...

vi /etc/php.ini

... et modifiez le rapport d'erreur (pour que les avis ne soient plus affichés) et ajoutez cgi.fix_pathinfo =1 à la fin du fichier :

[...]
;error_reporting  =  E_ALL
error_reporting = E_ALL & ~E_NOTICE
[...]
cgi.fix_pathinfo = 1

Ensuite, nous installons suPHP :

cd /tmp
wget http://suphp.org/download/suphp-0.7.1.tar.gz
tar xvfz suphp-0.7.1.tar.gz
cd suphp-0.7 .1/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=owner --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable- SUPHP_USE_USERGROUP=oui
faire
faire installer

Ensuite, nous ajoutons le module suPHP à notre configuration Apache...

vi /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so

... et créez le fichier /etc/suphp.conf comme suit :

vi /etc/suphp.conf
[global]
;Path to logfile
logfile=/var/log/httpd/suphp.log
;Loglevel
loglevel=info
;User Apache is running as
webserver_user=apache
;Path all scripts have to be in
docroot=/
;Path to chroot() to before executing script
;chroot=/mychroot
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
;Check wheter script is within DOCUMENT_ROOT
check_vhost_docroot=true
;Send minor error messages to browser
errors_to_browser=false
;PATH environment variable
env_path=/bin:/usr/bin
;Umask to set, specify in octal notation
umask=0077
; Minimum UID
min_uid=100
; Minimum GID
min_gid=100
[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/usr/bin/php-cgi"
;Handler for CGI-scripts
x-suphp-cgi="execute:!self"

Enfin, nous redémarrons Apache :

/etc/init.d/httpd restart

15.1 Rubis

À partir de la version 3.0.3, ISPConfig 3 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 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 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

... et redémarrez Apache :

/etc/init.d/httpd restart

15.2 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 

16 Installer PureFTPd

PureFTPd peut être installé avec la commande suivante :

yum install pure-ftpd

Créez ensuite les liens de démarrage du système et lancez PureFTPd :

chkconfig --levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start

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 :

yum install openssl

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

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

Si vous souhaitez autoriser les sessions FTP et 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
[...]

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) [GB] :<-- Entrez le nom de votre pays (par exemple, "DE").
Nom de l'État ou de la province (nom complet) [Berkshire] :<-- Entrez votre État ou votre province Nom.
Nom de la localité (par exemple, ville) [Newbury] :<-- Saisissez votre ville.
Nom de l'organisation (par exemple, société) [My Company Ltd] :<-- Saisissez 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 ou le nom d'hôte de votre serveur) [] :<-- 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 :

 /etc/init.d/pure-ftpd restart

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.

17 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
touch /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.local
vi /var/named/chroot/etc/named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named/chroot/var/named";
        dump-file       "/var/named/chroot/var/named/data/cache_dump.db";
        statistics-file "/var/named/chroot/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/chroot/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion no;
        allow-recursion { none; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.root";
};
include "/var/named/chroot/var/named/named.local";

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

18 Installer Vlogger, Webalizer et AWStats

Vlogger, webalizer et AWStats peuvent être installés comme suit :

yum install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

cd /tmp
wget http://n0rp.chemlab.org/vlogger/vlogger-1.3.tar.gz
tar xvfz vlogger-1.3.tar.gz
mv vlogger-1.3/vlogger /usr/sbin/
rm -rf vlogger*

19 Installer Jailkit

Jailkit n'est nécessaire que si vous souhaitez chrooter les utilisateurs SSH. Il peut être installé comme suit (important :Jailkit doit être installé avant ISPConfig - il ne peut pas être installé après !) :

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./configure
make
make install
cd ..
rm -rf jailkit-2.14*

20 Installer fail2ban

Ceci est facultatif mais recommandé, car le moniteur ISPConfig essaie d'afficher le journal :

yum install fail2ban

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

21 Installer rkhunter

rkhunter peut être installé comme suit :

yum install rkhunter

The Perfect Server - CentOS 5.7 x86_64 [ISPConfig 3] - Page 6

22 Install SquirrelMail

To install the SquirrelMail webmail client, run...

yum install squirrelmail

... and restart Apache:

/etc/init.d/httpd restart

Then configure SquirrelMail:

/usr/share/squirrelmail/config/conf.pl

We must tell SquirrelMail that we are using Courier-IMAP/-POP3:

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <-- D


SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others.  If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct.  This does not change everything.  There are
only a few settings that this will change.

Please select your IMAP server:
    bincimap    = Binc IMAP server
    courier     = Courier IMAP server
    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          = University of Washington's IMAP server

    quit        = Do not change anything
Command >> <-- dovecot


SquirrelMail Configuration : Read: config.php
---------------------------------------------------------
While we have been building SquirrelMail, we have discovered some
preferences that work better with some servers that don't work so
well with others.  If you select your IMAP server, this option will
set some pre-defined settings for that server.

Please note that you will still need to go through and make sure
everything is correct.  This does not change everything.  There are
only a few settings that this will change.

Please select your IMAP server:
    bincimap    = Binc IMAP server
    courier     = Courier IMAP server
    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          = University of Washington's IMAP server

    quit        = Do not change anything
Command >> dovecot

              imap_server_type = dovecot
         default_folder_prefix = 
                  trash_folder = Trash
                   sent_folder = Sent
                  draft_folder = Drafts
            show_prefix_option = false
          default_sub_of_inbox = false
show_contain_subfolders_option = false
            optional_delimiter = detect
                 delete_folder = false

Press any key to continue... <-- press a key


SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <--S


SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages

D.  Set pre-defined settings for specific IMAP servers

C   Turn color off
S   Save data
Q   Quit

Command >> <--Q

One last thing we need to do is modify the file /etc/squirrelmail/config_local.php and comment out the $default_folder_prefix variable - if you don't do this, you will see the following error message in SquirrelMail after you've logged in:Query:CREATE "Sent" Reason Given:Invalid mailbox name.

vi /etc/squirrelmail/config_local.php
<?php

/**
 * Local config overrides.
 *
 * You can override the config.php settings here.
 * Don't do it unless you know what you're doing.
 * Use standard PHP syntax, see config.php for examples.
 *
 * @copyright &copy; 2002-2006 The SquirrelMail Project Team
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version $Id: config_local.php,v 1.2 2006/07/11 03:33:47 wtogami Exp $
 * @package squirrelmail
 * @subpackage config
 */

//$default_folder_prefix                = '';
?>

Now you can type in http://server1.example.com/webmail or http://192.168.0.100/webmail in your browser to access SquirrelMail.

23 Install ISPConfig 3

To install ISPConfig 3 from the latest released version, do this:

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

The next step is to run

php -q install.php

This will start the ISPConfig 3 installer:

[[email protected] install]# php -q install.php


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


>> Initial configuration

Operating System: CentOS 5 or compatible

    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 []: <-- yourrootsqlpas sword

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) [GB]: <-- ENTER
State or Province Name (full name) [Berkshire]: <-- ENTER
Locality Name (eg, city) [Newbury]: <-- ENTER
Organization Name (eg, company) [My Company Ltd]: <-- ENTER
Organizational Unit Name (eg, section) []: <-- ENTER
Common Name (eg, your name or your server's hostname) []: <-- ENTER
Email Addre ss []: <-- ENTER
Configuring Jailkit
Configuring Dovecot
Configuring Spamassassin
Configuring Amavisd
Configuring Getmail
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring Vlogger
Configuring Apps vhost
Configuring Firewall
Installing ISPConfig
ISPConfig Port [8080]: <-- ENTER

Configuring DBServer
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Restarting services ...
Stopping MySQL:                                            [  OK  ]
Starting MySQL:                                            [  OK  ]
Shutting down postfix:                                     [  OK  ]
Starting postfix:                                          [  OK  ]
Stopping saslauthd:                                        [FAILED]
Starting saslauthd:                                        [  OK  ]
Shutting down Mail Virus Scanner (amavisd):                [  OK  ]
Starting Mail Virus Scanner (amavisd):                     [  OK  ]
Stopping Clam AntiVirus Daemon:                            [  OK  ]
Starting Clam AntiVirus Daemon:Bytecode:Security mode set to "TrustSigned".
                                                           [  OK  ]
Stopping Dovecot Imap:                                     [  OK  ]
If you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.
Fatal: listen(::, 143) failed: Address already in use
Starting Dovecot Imap:                                     [FAILED]
Stopping httpd:                                            [  OK  ]
[Mon Sep 26 13:29:58 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
Starting httpd:                                            [  OK  ]
Stopping pure-ftpd:                                        [  OK  ]
Starting pure-ftpd:                                        [  OK  ]
Installation completed.
[[email protected] install]#

The installer automatically configures all underlying services, so no manual configuration is needed.

If Dovecot fails to start with the following error:

Fatal: listen(::, 143) failed: Address already in use

... open /etc/dovecot.conf...

vi /etc/dovecot.conf 

... and add the line listen =*:

[...]
#listen = *, [::]
listen = *
[...]

Then try to start Dovecot again:

/etc/init.d/dovecot start

Afterwards you can access ISPConfig 3 under http://server1.example.com:8080/ or http://192.168.0.100:8080/. Log in with the username admin and the password admin (you should change the default password after your first login):

The system is now ready to be used.

23.1 ISPConfig 3 Manual

In order to learn how to use ISPConfig 3, I strongly recommend to download the ISPConfig 3 Manual.

On about 300 pages, it covers the concept behind ISPConfig (admin, resellers, clients), explains how to install and update ISPConfig 3, includes a reference for all forms and form fields in ISPConfig together with examples of valid inputs, and provides tutorials for the most common tasks in ISPConfig 3. It also lines out how to make your server more secure and comes with a troubleshooting section at the end.

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

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)