AlexNogard: Tutos IT

Linux & Opensource : Supervision : Centreon, Nagios, Owncloud ..

By

Installation d’ISPconfig 3 sur CentOs 6.4 (Apache & Dovecot)

ispconfig logo

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

secure mysql

secure mysql

secure mysql

secure mysql

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

Squirrelmail configuration

Squirrelmail configuration

Squirrelmail configuration

Squirrelmail configuration

Squirrelmail configuration

Squirrelmail configuration

Squirrelmail configuration

Squirrelmail configuration

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

ISPConfig 3 installation

ISPConfig 3

installation ISPConfig 3

installation ISPConfig 3

installation ISPConfig 3

installation ISPConfig 3

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

ISPConfig 3 : Admin Panel

ISPConfig 3 : Admin Panel

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

2 Responses to Installation d’ISPconfig 3 sur CentOs 6.4 (Apache & Dovecot)

  1. Jean Levoux says:

    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

  2. kulbir says:

    ispconfig not open web https://hostname:8080

    mailman service failed all service start

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>