ISPConfig est un très bon outil d’administration de serveurs linux. Il permet d’administrer une multitude de services Web tel que :
– DNS (Bind, MyDNS)
– Des Database MySQL
– du HTTP (Apache & Nginx)
– du mail (Postfix, Dovecot)
Et tout un tas d’autres fonctionnalités. Tout ce qu’on peut faire en ligne de commande peut être géré depuis ce portail. L’utilité est de pouvoir gérer différents serveurs au travers d’un seul portail, d’avoir une vue d’ensemble de tous ses sites webs et pour finir, nous pouvons gérer des “clients” auquel nous allouons certains espaces sur notre serveur (compte FTP, espace web, service mail, base MySQL …).
Dans ce tuto nous allons voir comment installer ISPConfig sur un CentOs 6.4 avec du Apache ainsi que l’outil Dovecot comme serveur de mail. Je vous proposerai toute une suite de tutos basé sur ISPConfig et sa configuration & utilisation.
Passons maintenant à la première Partie, l’installation des pré-requis:
Je pars du principe que nous avons déjà installé notre distrib CentOS 6.4, configuré correctement le Firewall, désactivé SELinux, configuré le nom de notre serveur …
PRE-REQUIS
Passons à l’installation des pré-requis :
# yum groupinstall ‘Development Tools’
Installations des paquages nécessaires au bon fonctionnement d’ISPConfig 3 :
# yum install ntp httpd mod_ssl mysql-server php php-mysql php-mbstring phpmyadmin
# 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-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel
Il faut maintenant configurer MySQL afin de le sécuriser :
# mysql_secure_installation


Il faut maintenant inscrire dans la chkconfig les services que nous voulons lancer au démarrage :
# chkconfig –levels 235 httpd on
# chkconfig –levels 235 mysqld on
Nous allons installer le mod_ruby sur notre serveur apache. ISPconfig fonctionne avec au lieu de fonctionner avec CGI/FastCGI. Mais comme aucun package “mod_ruby” n’existe, nous allons le compiler nous même. On télécharge d’abord les dépendances :
# yum install httpd-devel ruby ruby-devel
Puis le mod_ruby à compiler :
# wget http://fossies.org/linux/www/apache_httpd_modules/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
Une fois mod_ruby installé, nous l’ajoutons dans la partie modules d’apache, afin qu’il soit chargé au démarrage d’apache :
# vim /etc/httpd/conf.d/ruby.conf
Insérer les lignes suivantes :
LoadModule ruby_module modules/mod_ruby.so RubyAddPath /1.8
On installe également suPHP :
# 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=yes
# make
# make install
On ajoute le module à PHP :
# vim /etc/httpd/conf.d/suphp.conf
Ajouter les lignes suivantes :
LoadModule suphp_module modules/mod_suphp.so
On crée le fichier de configuration de suphp :
# vim /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"
Le dernier module à installer est mod_python :
# yum install mod_python
Puis ajoutons l’outil Dovecot, un serveur IMAP / POP3 opensource. Dovecot est un MTA orienté sécurité.
# yum install dovecot dovecot-mysql
# chkconfig –levels 235 dovecot on
# service dovecot start
On install postfix (et on désactive sendmail) :
# yum install postfix
# chkconfig –levels 235 sendmail off
# chkconfig –levels 235 postfix on
# service sendmail stop
# service postfix restart
Ensuite, nous installons getmail, un MRA (mail retrieval agent) permettant de récupérer des mails depuis le protocol POP3, IMAP4 et d’autres .. :
# yum install getmail
Pour finir, nous installons un Webmail, squirrelmail, qui affichera nos boites de réceptions etc .. :
# yum install squirrelmail
# service httpd restart
Après avoir installé notre Webmail, il faut le configurer et lui dire que nous utilisons dovecot comme MTA (Mail Transport Agent) :
# /usr/share/squirrelmail/config/conf.pl




Nous venons d’installer tous nos packages pour l’utilisation de la messagerie. Il faut maintenant protéger cette messagerie contre les spams, virus et autres trojans :
# yum install amavisd-new spamassassin clamav clamd unzip bzip2 unrar perl-DBD-mysql
# 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
Ensuite nous installons un serveur FTP, afin qu’ISPconfig puisse y configurer des paramètres. Pour des mesures de sécurité, nous l’installerons avec openssl afin de fonctionner en FTPs :
# yum install pure-ftpd openssl
Une fois installé, on modifie la configuration de pure-ftpd pour qu’il utilise le protocole TLS afin de sécuriser les connexions. Pour cela :
# vim /etc/pure-ftpd/pure-ftpd.conf
# 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
Afin de pouvoir utiliser TLS avec pure-ftpd, il nous faut créer un certificat, on crée un répertoire pour l’accueillir :
# mkdir -p /etc/ssl/private/
Ensuite, nous générons le certificat :
# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Remplissez tous les champs, une fois le certificat créée, on change les droits :
# chmod 600 /etc/ssl/private/pure-ftpd.pem
Puis on configure pure-ftpd au démarrage et on le démarre :
# chkconfig –levels 235 pure-ftpd on
# service pure-ftpd start
Une fois le FTP configuré, ainsi que la sécurité TLS, nous installons le service DNS “Bind” :
# yum install bind bind-utils
Maintenant, nous créons un nouveau fichier named.conf :
# cat /dev/null > /etc/named.conf
# vim /etc/named.conf
# touch /etc/named.conf.local
Puis y insérons :
// // 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"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/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.ca"; }; include "/etc/named.conf.local";
Puis on configure le service bind au démarrage :
# chkconfig –levels 235 named on
# service named start
Installation d’ISPConfig 3
On télécharge la dernière version d’ISPConfig puis nous l’installons :
# wget http://downloads.sourceforge.net/project/ispconfig/ISPConfig%203/ISPConfig-3.0.5.3/ISPConfig-3.0.5.3.tar.gz?r=http%3A%2F%2Fwww.ispconfig.org%2Ffiles%2Ffile%2F2-ispconfig%2F&ts=1393540405&use_mirror=heanet
# tar xvzf ISPConfig-3.0.5.3.tar.gz
# cd ispconfig3_install/install/
# php -q install.php



L’installation est maintenant terminée, nous pouvons nous logger (admin / admin) et voir si tout fonctionne correctement:

J’espère que cet article vous a plus, l’installation est assez longue mais plutôt simple. Je publierai d’ici peu plusieurs articles sur la configuration, l’utilisation et l’installation de modules facultatifs à l’utilisation d’ISPConfig 3 sur CentOs 6.4.
Si ce billet vous a plût, n’hésitez pas à partager ;)
Bonjour,
J’ai suivis la procédure pas à pas et tous c’est parfaitement passé… sauf le redémarrage de apache…
Si je lance service httpd start je récupère le message :
Starting httpd: [Fri Apr 04 17:08:33 2014] [warn] NameVirtualHost *:443 has no VirtualHosts
[Fri Apr 04 17:08:33 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
[Fri Apr 04 17:08:33 2014] [warn] NameVirtualHost *:443 has no VirtualHosts
[Fri Apr 04 17:08:33 2014] [warn] NameVirtualHost *:80 has no VirtualHosts
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Une idée ?
Merci
ispconfig not open web https://hostname:8080
mailman service failed all service start