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
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 © 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.
24 Links
- CentOS:http://www.centos.org/
- ISPConfig:http://www.ispconfig.org/