AlternC ou l’Hébergement facile

samedi 12 avril 2003
par  Benjamin Sonntag, Olivier Duquesne (DaffyDuke)
popularité : 9%

AlternC est un ensemble de scripts fondé uniquement sur des Logiciels Libres. Grâce à sa facilité d’administration, il permet d’offrir un hébergement de qualité à moindre coût financier et humain.

AlternC, qu’est-ce que c’est ?

Inutile de paraphraser, voici le descriptif que l’on trouvera sur le site officiel  [1] : AlternC vise à créer une suite de logiciels d’hébergement facile à utiliser, facile à installer, basés uniquement sur des logiciels OpenSource, AlternC étant lui-même OpenSource.

Se basant sur la distribution Debian GNU/Linux ’Woody’, AlternC utilise d’autres logiciels tels Apache, Postfix, Bind ...

AlternC fournit un script d’installation (dans le fichier .deb), un système de configuration automatique, un bureau virtuel en PHP permettant de gérer les utilisateurs et les services (domaines, e-mails, comptes ftp, statistiques...). Il contient aussi une documentation d’API, permettant une personnalisation facile et rapide du bureau.

AlternC, comment ça marche ?

Il s’agit en fait d’un ensemble de classes et de fonctions php appelées depuis le "bureau". C’est depuis cette interface d’administration que vous modifierez la gestion de noms de domaines ou la base de données du site, et ce pour chaque compte hébergé. Notez que le fonctionnement a été séparé en deux parties : la première partie regroupe des classes servant à afficher les modifications et la seconde propose également des classes, permettant d’exécuter celles de la première partie. Pour chaque classe correspond un service à administrer  : domaines, ftp, mails, liste de diffusion, mysql, quota, statistiques, accès à la messagerie par une interface Web. Les autres services sont plutôt dédiées à l’administration proprement dite du serveur. Notez que vous pouvez n’installer que le ou les services qui vous sont nécessaires.

JPEG - 22.7 ko
Fonctionnement du bureau AlternC

AlternC, j’en veux !

Pour faire cet article, je suis parti d’une Debian Woody standard, version 7 CDs, achetée chez Ikarios [2]. L’installation pouvant s’effectuer grâce au système apt (et au fameux apt-get), j’en ai profité pour reconfigurer celui-ci avec les sources adéquates, je vous le livre ici (/etc/apt/sources.list) d’après les conseils de Jean-Yves LENHOF sur la liste de diffusion  :

# Debian standard . [3]


deb http://ftp.fr.debian.org/debian/ stable main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ stable main non-free contrib
deb http://ftp.easynet.be/ftp/debian-non-US stable/non-US main contrib non-free
deb-src http://ftp.easynet.be/ftp/debian-non-US stable/non-US main contrib non-free

# Mises à jour de sécurité
deb http://security.debian.org/ stable/updates main contrib non-free

# Pour OpenOffice.org (avec GNOME 2 et freetype ;-)) )
deb http://pkedu.fbt.eitn.wau.nl/~wouter/ ./

# Pour XFree 4.2.1
deb http://people.debian.org/~blade/woody/i386 ./

# Pour GNOME 2.2
deb http://ftp.acc.umu.se/mirror/mirrors.evilgeniuses.org.uk/debian/backports/woody/
gnome2.2/

# Pour AlternC
deb http://debian.alternc.org debian/

La technique standard pour mettre à jour est alors apt-get update suivi d’un apt-get dist-upgrade. Comptez deux bonnes heures avec une connexion câble 512 kBits

S’agissant d’une machine plutôt dédiée à un usage personnel, la plupart des services dépendant du paquet alternc n’est soit pas disponible sur ma machine, soit pas dans la version requise. Pas d’inquiétude, laissons faire le magique apt-get :


colerpia:/etc/apt# apt-get install alternc
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
apache-ssl bind9 courier-authdaemon courier-base courier-imap  courier-imap-ssl courier-ldap courier-pop courier-pop-ssl courier-ssl ldap-utils libapache-mod-fastcgi libapache-mod-gzip libcgi-fast-perl libconvert-asn1-perl libfcgi-perl libio-stringy-perl libiodbc2 libisccc0 libisccfg0 libmime-perl libmm11 libmsgcat-perl libnet-ldap-perl mhonarc openssl perl-suid php4 php4-cgi php4-ldap php4-mysql phpmyadmin proftpd-common proftpd-mysql quota rsync slapd squirrelmail sympa
webalizer wwsympa wwwconfig-common
The following packages will be REMOVED:
bind webmin-wuftpd wu-ftpd
The following NEW packages will be installed:
alternc apache-ssl bind9 courier-authdaemon courier-base courier-imap courier-imap-ssl courier-ldap courier-pop courier-pop-ssl courier-ssl ldap-utils libapache-mod-fastcgi libapache-mod-gzip libcgi-fast-perl libconvert-asn1-perl libfcgi-perl libio-stringy-perl libiodbc2 libisccc0 libisccfg0 libmime-perl libmm11 libmsgcat-perl libnet-ldap-perl mhonarc openssl perl-suid php4 php4-cgi php4-ldap php4-mysql phpmyadmin proftpd-common proftpd-mysql quota rsync slapd squirrelmail sympa webalizer wwsympa wwwconfig-common
0 packages upgraded, 43 newly installed, 3 to
remove and 1  not upgraded.
Need to get 10.6MB of archives. After unpackin
g 34.2MB will be used.

Do you want to continue? [Y/n]

En général, si on veut qu’il se passe quelque chose, on répond "oui" (Y) , donc on souffle un grand coup et on y va.

debconf étant toujours présent, nous allons devoir répondre à quelques questions durant la procédure. Cela n’est absolument pas obligatoire. Il est tout à fait possible, et c’est même finalement recommandé, de passer outre debconf, AlternC se chargera de répondre à toutes ces questions.

  • Installation de pop3d et courrier (ils seront utiles pour le web-mail) : YES
  • Quel serveur sera utilisé par phpMyAdmin (pour administrer la base de données) : Apache, Apache-SSL ou les deux : BOTH
PNG - 47.7 ko
Configuration de phpMyAdmin
  • Souhaite-t-on configurer ProFTPd (serveur FTP) : YES, on le mettra en standalone, en acceptant les connexions anonymes (pour en faire un dépôt commun par exemple).
  • Concernant la configuration de Squirrelmail (Web-mail) : BOTH, pour qu’il soit disponible avec Apache et Apache-SSL.
  • Nous entamons alors une série de question "à cause" de Sympa, le gestionnaire de listes de diffusion. La langue choisie est le français French. Le nom de domaine choisi ici est colerpia.acme.com et les messages de l’administrateur parviendront à postmaster@colerpia.acme.com. Nous allons supporter les encryptions S/MIME (YES). Nous précisons un mot de passe pour l’administrateur "sympa" [4] et on ne purgera pas la "spool directory" ni les listes hébergées en cas de nettoyage du paquet Debian. Nous allons effectivement stocker les informations dans une base de Données, notre choix se portera sur MySQL. Le domaine utilisé par le serveur restera localhost car ici on ne dispose que d’une machine. Dans le cas d’une base de données dans un VLAN dorsal, il faudrait bien sûr préciser un nom de service. Le nom de notre base est tout simplement sympa_alternc sans modification particulière dans le fichier /etc/my.cnf . Le mot de passe de l’administrateur de cette base est alors à préciser. Nous n’avons pas encore configuré de base pour Sympa (No) et nous ne les purgerons pas en cas de --purge du paquet.
  • Les informations utilisateurs / noms de domaines seront stockés dans un annuaire LDAP. Nous le laissons choisir sa méthode d’initialisation avec le paramètre Auto. Le on (organization name) s’appuyera sur domain or host et le dn (domain name) sera ici acme.com. Nous précisons le mot de passe de l’administrateur de l’annuaire [5] et nous n’effectuerons pas de réplication (il s’agit d’une machine unique je le rappelle).
  • Après Sympa, il faut configurer son interface graphique ou plutôt Web devrais-je dire. Il s’agit de wwsympa. Celle-ci sera disponible à http://colerpia.cme.com/wws C’est à l’heure actuelle le seul point faible d’AlternC qui l’empêche d’être GPL à 100%. Comme nous ne pouvons pas encore ici l’entrer dans les deux versions du serveur Web Apache, nous choisirons uniquement Apache-SSL. Nous allons effectivement utiliser les options FastCGI bien qu’elles ne soient pas libres pour un gain de performances et le laisser modifier la configuration du serveur http. Le service s’appellera sans trop d’imagination AlternC’s Mailing Lists Service. Des cookies seront positionnés sur les postes clients en provenance de colerpia.acme.com avec une durée de vie de 30 minutes. Nous aurions tout à fait pu placer un cookie en provenance de .acme.com. Comme pour wwsympa, pas de purge.
  • Un des aspects importants d’un hébergement mutualisé est qu’aucun utilisateur ne puisse empiéter sur les ressources d’un autre. Cela est aussi vrai dans la gestion de l’espace disque, c’est pourquoi, nous allons fixer des quota d’espace utilisables. Quota enverra effectivement des alertes YES à daily reminders pour les utilisateurs dépassant leur crédit, les courriels auront pour expéditeur

root@colerpia.acme.com .

  • Le serveur de bases de données utilisé est MySQL, bien faire attention à répondre YES pour qu’il soit démarré lors du boot sinon le script d’initialisation mysql ne sera pas placé dans /etc/rc3.d .

On passe maintenant aux choses sérieuses sans lesquelles on n’en serait pas là, AlternC.

  • On commence par un avertissement , AlternC est susceptible de mettre une belle pagaille sur votre machine. Ne le testez surtout pas sur une machine de production !
  • L’analyseur de log http Webalizer s’installe dans /var/www/webalizer. Pourquoi pas après tout ?
  • ProFTPd va corriger quelques petites failles de sécurité dans son fichier de configuration.
  • Nouvel avertissement, oui, on y va pour AlternC.

Et le formidable apt-get découle :

Selecting previously deselected package alternc.
Unpacking alternc (from .../alternc_0.9 -14_i386.deb) ...
Setting up webalizer (2.01.10-2) ...

/var/www/webalizer created
Setting up openssl (0.9.6c-2.woody.2) ...

Setting up apache-ssl (1.3.26.1+1.48-0woody3) ...
creating selfsingned certificate replace it with one signed by a certification authority (CA)
enter your ServerName at the Common Name prompt

If you want your certificate to expire after x days call this programm with -days x
Using configuration from /usr/share/apa che-ssl/ssleay.cnf
Generating a 1024 bit RSA private key .......................................
..............................++++++
.....++++++
writing new private key to '/etc/apache-ssl/apache.pem'
-----
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]:FR
State or Province Name (full name) [Some-State]:Nord-Pas de Calais
Locality Name (eg, city) []:Lille
Organization Name (eg, company; recommended) []:Club Linux Nord-Pas de Calais
Organizational Unit Name (eg, section) []:
server name (eg. ssl.domain.tld; required!!!) []:colerpia.acme.com
Email Address []:daffyduke@lautre.net
Initializing apache config for immediate operation.
Installing new configuration file /etc/apache-ssl/httpd.conf ...
Installing new configuration file /etc/apache-ssl/access.conf ...
Installing new configuration file /etc/apache-ssl/srm.conf ...
Correcting mime_module loading.
The ServerAdmin is set to webmaster@colerpia.acme.com.
The DocumentRoot is set to /var/www.
Leaving existing site /var/www/index.html untouched.
Finding DSO mods..............................................found.
# LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so
# LoadModule env_module /usr/lib/apache/1.3/mod_env.so

On le laisse modifier les configurations Apache, répondre Y de temps en temps. Et voilà !  [6]

Bon, Sympa étant en passe de ne plus être utilisé, vous pouvez aussi ne pas vous priver d’un apt-get install alternc-mailman alternc-procmailbuilder mailman.

Debian ayant son petit bug à elle concernant les locales, nous vous invitons à refaire [7] un coup de dpkg-reconfigure locales après l’installation d’AlternC, de choisir en_US(ISO-8859-1 ou UTF-8) , fr_FR(ISO-8859-1) , es_ES(ISO-8859-1) puis choisissez la langue par défaut (fr_FR pour la France par exemple). Un petit coup de set-language-env (choisir fr) et c’est bon. Cela vous permettra également de proposer trois langues au choix pour l’interface d’administration.

Nous passons à la phase de configuration proprement dite d’AlternC. Les commentaires sont assez explicites dans le fichier en question (/etc/alternc/alternc.conf) néanmoins, je vous fournis le mien ici :


#exit
# lang=en_US:
#
# MAIN AlternC Configuration file.
# Change it before the first install (alternc.install) and remove the 'exit' on line 1
# WARNING : When you change anything in this file, please launch alternc.update to apply the changes
# Normally, you should not change it after initial installation, use the administration panel instead
#
lang=fr_FR:
#
# Ceci est le fichier principal de configuration d'AlternC
# Modifiez ce fichier avant la première installation (alternc.install) et enlevez le 'exit' en ligne 1
# ATTENTION : lorsque vous changez quelque chose dans ce fichier, merci de lancer alternc.update pour
# appliquer les modifications.
# en temps normal, vous ne devriez pas changer ce fichier après l'installation de départ. Utilisez
# de préférence le panneau de contrôle des administrateurs par le Web
#
###########################################################################


###########################################################################
# Configuration générale :

# Adresse IP (ou ip/prefixe) du(des) serveur(s) dont on veut autoriser le ping vers nous et le status apache (pour le monitoring de serveur.)
monitor_ip=172.18.3.35
# Adresse ip de moi-même !
myip=172.18.3.35
# Nom de domaine du serveur hébergé
# ATTENTION : ce domaine DOIT être de la forme sub.domaine.tld !
#fqdn=sub.domaine.tld
fqdn=colerpia.acme.com
# Nom du service d'hebergement (en toutes lettres)
hosting=AlternC
# Nom de périphérique de la partition contenant /var/alternc
#DATA_PART=/dev/hda1
DATA_PART=/dev/hda11

###########################################################################
# Configuration des quotas par défaut.

# Quota : Nombre de Comptes FTP autorisés par défaut
QUOTA_FTP=20
# Quota : Nombre de Kilos-Octets d'espace disque autorisés par défaut
QUOTA_WEB=51200
# Quota : Nombre de Domaines autorisés par défaut
QUOTA_DOMAINS=5
# Quota : Nombre de Listes de Diffusion autorisées par défaut
QUOTA_ML=2
# Quota : Nombre de Comptes Mails autorisés par défaut
QUOTA_MAILS=100
# Quota : Nombre de jeux de statistiques autorisés par défaut
QUOTA_STATS=5

###########################################################################
# Configuration du serveur de noms

# Adresse IP ou classe d'IP des machines à l'intérieur de notre réseau de confiance DNS, séparés par ';', facultatif
bind_internal=
# Nom du serveur DNS primaire (normalement, c'est le nom de la machine, ou un alias)
#ns1=ns1.domaine.tld
ns1=colerpia.acme.com
# Nom du serveur DNS secondaire
#ns2=ns2.domaine.tls
# Nom du serveur de mail (normalement, c'est le nom de la machine, ou un alias)
#mx=mail.domaine.tld
mx=colerpia.acme.com
# Adresse IP ou classe d'IP des machines esclaves DNS, séparés par ';', facultatif
bind_slaves=

###########################################################################
# Configuration de MySQL

# Base de données système de MySQL à créer
dbname=system
# Nom d'utilisateur mysql réservé pour le Bureau
dbuser=sysusr
# Mot de passe de l'utilisateur mysql du Bureau (ne peux pas commencer ou finir par un blanc)
dbpwd=pppppp
# Password du script mainteneur debian de mysql
myrandom=mmmmmmm

###########################################################################
# Configuration de Ldap

# Mot de passe de l'utilisateur non root du serveur ldap
ldap_userpwd=pppmmmm
# Mot de passe de root du serveur ldap
ldap_rootpwd=mmmpppp

###########################################################################
# Configuration du Smtp

# Adresses ip des reseaux autorisés en SMTP (ou ip/préfixe) séparés par espace
#mynetwork=192.168.0.0/24
mynetwork=172.18.3.0/24

Il est très important de ne pas faire ce que j’ai fait ici, c’est-à-dire de préciser des mots de passe pour les administrateurs du Bureau, de MySQL et de LDAP. De même au niveau de l’adressage, Apache est censé tourner sur sa propre adresse IP de service, cet article n’étant qu’un test fonctionnel !

La commande miracle est alors alternc.install  :

-------------------------------------------------------------------------
This is the main install perl script for AlternC
This script should be launched only once, when installing AlternC
on a new server. THIS SCRIPT ERASE ALL DATA ON THE AlternC SYSTEM !!
(/var/alternc) YOU HAVE BEEN WARNED !
-------------------------------------------------------------------------

Are you sure that you want to install AlternC software on this computer ?

Starting professional ftp daemon:  - No certificate files found!
proftpd.

Creating user root, with password root (change it as soon as possible)
setquota: Not all specified mountpoints are using quota.

AlternC Install complete.
You may use you server now. Don't forget to change your root password
as soon as possible.
If you use this software, please send a mail to tech@alternc.org
so that we know who use it :) and build some kind of statistics. Thanks.

Et voilà, ça marche !

PNG - 32.2 ko
Bienvenue sur AlternC !
Connectez-vous sur AlternC pour afficher...

Vous pouvez alors, comme indiqué, changer le mot de passe de l’administrateur.

Les adresses utiles étant :

PNG - 32 ko
Le Bureau d’AlternC
... l ’interface d’administration quivous permettra d’ajouter des utilisateurs, des domaines, des sites Web, des listes de diffusion...

J’ai installé AlternC, et après ?

Quelques petits bugs subsistent au niveau des scripts d’initialisation pas forcément au bon endroit, ceux des bases LDAP qui cafouillent, etc. Pour cela, voici une bonne référence : Mantis. Si vous voulez jouer avec AlternC sans modifier votre machine, foncez ! Ça se passe sur http://dev.alternc.org/admin en vous logeant avec l’utilisateur demo et le mot de passe demo.

De la documentation existe bien évidemment, elle se situe sur le site officiel d’AlternC, à http://www.alternc.org/doc.

Mais qui utilise déjà AlternC ?

Quelques références :

AlternC, je veux participer

Comme tout logiciel libre, AlternC est entièrement ouvert. En vue de le stabiliser et surtout de pouvoir le diffuser rapidement, vous pouvez vous aussi participer à son développement. Il suffit de vous inscrire sur les listes de diffusions du projet.


Je ne suis pas certain que cela soit bien passé dans cet article, AlternC est disponible ici : http://www.alternc.org.

L’installation en images et en couleurs (mais loin d’être indispensable puisqu’AlternC répond déjà à ces questions) est visible sur mon site perso http://daffyduke.lautre.net/alternc....

La méthode présentée ici utilise le paquet Debian qui à ce jour est encore buggué, rendez-vous sur le site des développeurs pour le patch de stabilité.


[1] http://www.alternc.org.

[2] http://ikarios.com/form/#debian.

[3] Voir aussi l’excellent article de Gaétan.

[4] c’est jamais sympa un admin de toute façon :-)

[5] Non, ça n’a rien à voir avec France Telecom.

[6] Attention, si vous avez d’autres services intéressants, indiqués dans le fichier de configuration d’Apache (personnellement j’avais WIMS) vous devrez aller rechercher des bouts d’httpd.conf dans les httpd.conf0 ou httpd.conf1.

[7] C’est même obligatoire si vous voulez qu’AlternC puisse fonctionner !


Commentaires

Brèves

28 février 2011 - Nouvelles du Libre

Retrouvez tous les articles du site de l’association Club Linux Nord-Pas de Calais en suivant le (...)