AlternC
Suite logicielle de gestion de serveur web & mail
Chapitre VII - Technique : Administration Système et AlternC
Suite logicielle de gestion de serveur web & mail
Chapitre VII - Technique : Administration Système et AlternC
AlternC comme si vous y étiez, le livre :
L’installation d’AlternC est relativement aisée, elle utilise le système de paquets logiciels de Debian, qui signe numériquement les logiciels fournis, et résout pour vous les dépendances entre programmes.
Ainsi, lorsque vous installerez AlternC, tous les logiciels nécessaires au bon fonctionnement de votre serveur web et email seront automatiquement installés.
Pour installer et configurer correctement votre serveur, vous devez :
Les commandes de ce chapitre devront être saisies telles quelles dans une console connectée à votre serveur sur le compte root (d’où le # en début de ligne qui signale une console administrateur).
Le serveur AlternC que nous allons installer s’appellera demo.alternc.org.
Tout d’abord nous allons configurer debconf
debconf est l’outil de Debian qui vous interroge lors des installations de package.
Nous avons choisi de lui demander de poser toutes les questions, et pas seulement les questions critiques.
# sudo dpkg-reconfigure debconf
Ces panneaux sont gris clair et sur fond bleu, ils s’appellent les questions debconf, et exigent de votre part la plus grande attention : ce sont les réponses à ces questions qui détermineront les paramètres par défaut des services que vous installerez. Ici, debconf demande quelle interface utiliser pour répondre aux questions. Nous choisissons « dialogue » (ou dialog en anglais)
Ensuite, debconf demande quelle priorité doivent avoir les questions auxquelles il faudra répondre pour installer un package.
Choisir « basse » permet d’afficher l’ensemble des questions posées par le système.
Ensuite, installer apache2, postfix et default-mysql-server-core, ce qui signale à AlternC que l’installation concernera un unique serveur. En effet, il est possible d’installer AlternC en le répartissant sur plusieurs machines et mettre postfix ou mariadb sur une autre machine. Apache2 doit être installé pour signaler à AlternC l’utilisation de cette version d’apache (AlternC est compatible avec apache 2.4)
# sudo apt install -y apache2 libapache2-mpm-itk postfix default-mysql-server-core
Debconf demandera plusieurs fois, pendant cette installation, de définir un mot de passe pour Mariadb : ne jamais remplir ce formulaire, sans quoi AlternC ne pourra pas à s’installer. Le mot de passe général Mariadb sera défini à l’issue de l’installation.
Lors de l’installation de Postfix, debconf posera de nombreuses questions.
La question portant sur le type de configuration du serveur de mail postfix est la plus importante : répondre « Site Internet » ici, sans quoi AlternC ne pourra pas s’installer faute d’une configuration de postfix correcte.
Puis, debconf demande le nom de domaine du serveur. Entrer le nom du sous-domaine qui pointe vers votre serveur, et qui sera l’adresse de votre panel AlternC :
Ensuite, Debconf posera probablement de nombreuses questions. À l’exception de celles qui seront présentées ici, valider toujours la valeur par défaut proposée par Debian : ces valeurs sont bien pensées pour obtenir un serveur stable et performant.
Postfix finit donc de s’installer et apt rend la main …
###
Une fois ces pré-requis satisfaits, il est possible d’installer AlternC :
# sudo apt install -y alternc
Debian propose alors d’installer toutes les dépendances et pose les questions des packages en dépendance, ainsi que les questions d’installation d’AlternC lui-même.
Rappel : Debconf posera probablement de nombreuses questions pendant l’installation. À l’exception de celles qui seront présentées ici, valider toujours la valeur par défaut proposée par Debian : ces valeurs sont bien pensées pour obtenir un serveur stable et performant.
Lors de l’installation de PhPMyAdmin, debconf demande quel serveur web configurer. Cocher « apache2 » puis OK.
Au bout d’un certain temps, les questions posées par debconf concerneront AlternC lui-même (le titre en haut du panneau de question le prouve)
L’installation d’AlternC commence donc. Renseigner les informations avec soin :
Tout d’abord le nom DNS du panel. C’est cette adresse, en http ou https, qui donnera accès au panel AlternC d’administration de votre serveur.
Ensuite, debconf demande le nom du service d’hébergement. C’est ce nom qui sera affiché dans le menu principal d’AlternC et sur la fenêtre de login.
Renseigner ici l’IP du serveur. S’il est derrière un NAT, renseigner ici l’IP natée (192.168.X.Y)
Renseigner ici l’IP publique du serveur, donc typiquement pas une IP en 10.x ou 192.168.X ou 172.X, mais bien une IP joignable sur Internet.
Ce paramètre est le nom du serveur MX, à savoir la machine qui recevra les mails. Laisser la valeur par défaut qui doit être celle du nom du sous-domaine contenant le panel.
Les deux paramètres qui suivent correspondent en général aux DNS primaire et secondaire de l’hébergeur du serveur.
Le primaire peut parfois être votre serveur lui-même.
Le secondaire devrait, idéalement, faire tourner le package alternc-slavedns (voir le chapitre correspondant dans ce livre) pour synchroniser la liste des domaines hébergés avec les serveurs AlternC dont il est le slave dns.
Si vous avez besoin d’un service de DNS secondaire pour AlternC, vous pouvez contacter la liste de discussion dev@alternc.org : nous disposons d’un tel service sur ns2.alternc.org, service que nous mettons gracieusement à disposition à nos utilisateurs.
Ces paramètres correspondent à la configuration de Mariadb et ne doivent, en général, pas être modifiés.
Ici, enfin,il est possible d’indiquer un mot de passe Mariadb… ou de laisser AlternC en génèrer un aléatoire.
Si vous utilisez un serveur de supervision (comme Nagios par exemple), renseigner son IP ici : cela autorisera ce serveur de supervision à utiliser les ressources de votre serveur.
La question suivante est particulière : elle ne sert que si vous utilisez une ferme de serveurs « plusieurs serveurs sous AlternC qui se répartissent la charge. Cette fonction est en pré-version, et nécessite de très bien connaître AlternC pour être utilisée. Laissez donc ce champ vide à ce jour.
Une fois l’installation terminée, vous devez voir un message de l’installeur d’AlternC qui vous signale que le compte administrateur d’AlternC, nommé « admin », a été créé avec succès.
Ce compte admin a pour mot de passe « admin », connectez-vous donc au panel et modifiez-le dès que possible !
Enfin, comme nous n’avons défini aucun mot de passe pour le serveur Mariadb de votre serveur, il faut sécuriser notre serveur de base de données. Pour cela lancer la commande suivante :
# mysql_secure_installation
Note: running all parts of this script is recommended for all mysql servers in production use! please read each step carefully!
In order to log into Mariadb to secure it, we’ll need the current password for the root user. If you’ve just installed Mariadb, and you haven’t set the root password yet, the password will be blank, so you should just press enter here.
Enter current password for root (enter for none): (taper enter ici)
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the Mariadb root user without the proper authorisation.
Set root password? [Y/n] (taper y et enter)
New password: (entrez un mot de passe neuf)
Re-enter new password: (confirmez votre mot de passe)
Password updated successfully!
Reloading privilege tables.. … Success!
By default, a Mariadb installation has an anonymous user, allowing anyone to log into Mariadb without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
Remove anonymous users? [Y/n] (taper y)
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] (taper y)
… Success!
By default, Mariadb comes with a database named ‘test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
Remove test database and access to it? [Y/n] (taper y)
Dropping test database…
Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
Reload privilege tables now? [Y/n] (taper y)
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your Mariadb installation should now be secure. Thanks for using Mariadb!
Ainsi, votre serveur Mariadb n’aura pas de compte sans mot de passe, et ne sera donc pas ouvert à tous sans authentification.
Une fois votre serveur installé, vous pouvez taper la commande suivante, qui vous montre la liste des processus et des ports de communication en attente sur votre serveur. Cela vous permet de constater l’ouverture des ports suivants :
TCP : 25 110 143 993 995 : pour les services SMTP IMAP POP
TCP : 80 443 : pour les services HTTP et HTTPS
TCP: 21 : pour le FTP
TCP : 3306 : pour MySQL / Mariadb (noter qu’il n’écoute que sur 127.0.0.1, ce qui rend votre serveur de base de données non joignable de l’extérieur, ce qui est bien en terme de sécurité)
UDP et TCP : 53 : Pour le service de nommage des domaines (le DNS)
TCP 22 : Le SSH
Pour faire pointer le sous-domaine de votre panel sur votre serveur, utilisez les serveurs DNS de votre registrar, et faites pointer le sous-domaine vers l’adresse IP de votre serveur.
Une fois AlternC installé avec succès (et seulement une fois cela fait) vous pouvez ajouter des extensions, appelés modules, qui sont installables sous forme de package debian à part.
Le package AlternC-awstats permet d’utiliser le logiciel de statistiques web Awstats[2] pour générer des pages de statistiques pour vos sites web. Pour l’installer, taper :
##### Code Awstats
# sudo apt install -y alternc-awstats
Il vous demande confirmation de l’installation, et installe en même temps les dépendances.
AlternC-mailman est un package permettant d’utiliser dans vos noms de domaines hébergés des listes de discussion et de diffusions par mail utilisant le logiciel Mailman[3]. Pour cela, taper :
##### Code Mailman
# sudo apt install -y alternc-mailman
Après vous avoir confirmé l’installation, notamment des dépendances, debconf vous pose quelques questions relatives au package Mailman :
Cochez les langues que vous souhaitez utiliser dans votre gestionnaire de listes de discussions.
et choisissez la langue par défaut des nouvelles listes.
Ne vous inquiétez pas de l’absence de la liste « mailman » principale : l’installation du package alternc-mailman créera cette liste principale si besoin.
Ce paramètre est important : il est fourni par alternc-mailman pour vous proposer de modifier Mailman pour supporter les « listes virtuelles ». Dans ce mode (si vous cochez oui) vous pourrez avoir, sur ce serveur, des listes ayant la même partie gauche de l’arobase et appartenant à des domaines différents. Par exemple :
discussion@mondomaine.fr
et
discussion@autredomaine.net
pourront être hébergées sur le même serveur.
Sans cela, Mailman interdit plusieurs listes du même nom sur le même serveur.
Sur un serveur neuf, il n’y a aucune raison de ne pas profiter de cette possibilité.
Sur un serveur existant, vous feriez mieux de conserver le paramètre choisi jusque-là, sinon votre mailman risque d’avoir un comportement étrange …
sudo apt install -y alternc-squirrelmail
Ce module permet de laisser aux utilisateurs la possibilité de changer leur mot de passe depuis le webmail squirrelmail.
Le webmail permet à tout utilisateur disposant d’un compte POP/IMAP sur le serveur de lire son courrier à travers une interface web simplissime. Grâce à ce module, vous pourrez modifier votre mot de passe en cliquant sur « options » puis « changer mon mot de passe » dans le webmail
# sudo apt install -y alternc-changepass
Une fois le module installé, il faut l’activer dans Squirrelmail. Pour cela, taper la commande suivante :
# sudo /etc/squirrelmail/conf.pl
Puis aller dans le menu 8 (plugins) et taper le numéro du plugin alternc_changepass.
taper ensuite S pour sauver et Q pour quitter la configuration de Squirrelmail
Et voilà ! vos utilisateurs peuvent désormais modifier eux-même leur mot de passe de messagerie. Notez que le module de politiques de mot de passe est également installé.
Le module AlternC-procmail utilise le logiciel Procmail pour permettre aux utilisateurs du service de courrier électronique (notamment ceux utilisant IMAP ou le webmail intensivement) de définir des filtres sur leur boite aux lettres. Pour l’installer, c’est aussi simple que pour le précédent :
# sudo apt install -y alternc-procmail
Une fois le module installé, il faut l’activer dans Squirrelmail. Pour cela, taper la commande suivante :
# sudo /etc/squirrelmail/conf.pl
puis allez dans le menu 8 (plugins) et taper le numéro du plugin alternc\_changepass.
taper ensuite S pour sauver et Q pour quitter la configuration de Squirrelmail
Et voilà ! Vos utilisateurs peuvent désormais aller dans le menu « options » de leur compte dans le webmail Squirrelmail, puis choisir « filtrer les messages ». Une interface web simple leur propose alors de créer des filtres de message parmi lesquels :
- le fait de classer un mail dans un des dossiers IMAP en fonction du destinataire, du sujet ou de l’expéditeur
- le fait de répondre automatiquement avec un message prédéfini (typiquement un message d’absence du bureau, ou de vacances, ou de remplacement d’un service par un autre, un message d’accusé de réception etc.). C’est la fonction bien connue de répondeur automatique.
Après l’installation d’un AlternC de base, il n’est pas possible de se connecter au bureau en HTTPS, mais uniquement en HTTP non sécurisé. En effet, pour activer le HTTPS, il faut disposer d’un certificat client, idéalement un certificat reconnu par une autorité de certification. Nous allons donc vous expliquer comment générer un certificat SSL pour AlternC, qui sera utilisé par tous les services sachant utiliser la cryptographie, à savoir :
- le HTTPS pour le panel
- le POPS et l’IMAPS pour le courrier des utilisateurs
- le SMTPS pour le courrier sortant et entrant
- le FTPS pour les transferts de fichier
- d’autres services utilisant la cryptographie, comme Jabber.
Le principe du certificat de sécurité SSL est un peu compliqué, voici donc une petite introduction qui vous permettra de mieux comprendre de quoi nous parlerons ensuite.
Le principe de cryptographie utilisé sur ce type de service est le suivant : vous générez une paire de clé RSA privée et publique, qui va vous permettre de vous identifier auprès des clients du réseau, et qui va permettre aux clients du réseau de chiffrer des données à votre destination, et de vérifier votre identité.
Une clé RSA peut être protégée par un mot de passe. Elle ressemble à ceci :
—–BEGIN RSA PRIVATE KEY—–
MIICXQIBAAKBgQDQe9Ckq4c9RdjqIgHa5fEwV/nZhSxWrMUdA1z1jtFnH1xNtxDR
gaEnxPCGyIi/Q7/9u+nrAdBSqgFvl+lVkQmiIXeWJd85ila1aPxCFJx/CmoNOcW/
fGY+fSLJ8gUpHxZctzEA+Eq5rxd5RzCzwjkD/2/GUfV0stkVrxPTrV+ENwIDAQAB
AoGAV4OBw33VGR1WvoFj8fUP11E2qd5DDGcdnt4oiVNYB0ecwWqU/rzBXyZGKO3I
qTDRSLs2p9VtEyYV0DgeVDK7rbcVI71yWfks4HfV9gNr4VMnBGi3XoajhGh23OOT
LtlmudVSVbcmtHGzpxjL0hP07G/IeBDbeoIIwIj35QxFViECQQDo3lJtVPomItfe
rWeT4+sG95c6FzoQf8kIMiYs0S19i266zOuR1jfLpHTT3QSiuKDsHVHKJHtTezQx
8C/nrthpAkEA5TFnun5N8y+pm5gSfd/cJEZDTcI4F0rWy28cPOk3iSWnR9vR3Tqv
e485kDQJWm8+A3mwgLYDF5ullM8WgpLjnwJBAKgSVkGs9ILz4QRJ+ZkHBknYB2EZ
BIKGCE2PDHiKXR/gtAHFBz0R9OFZCC0lt0POp+7i1nZkUFKXeLuWVK0OSAkCQQCv
rttQPRkLXHGqbztdeYeJ1sIojMPqNtfHQPhoSGzlmBNOJdYMurtg/zykqP6yb6sd
ht4hC2P7aLfYBZW/qVEJAkADoNCKAAiO7GKE9MnnIg2j1Jh7tzMiGWYWyG3Gfy/8
rkknsOWKG/r3RuZXm1XxVP1Jq/75ukZESmktZMYMcYXz
—–END RSA PRIVATE KEY—–
- vous générez une requête de certificat, appelée Certificate Request, ou CSR, basée sur cette paire de clé.
- vous envoyez cette requête de certificat à une autorité de certification. Une requête de certificat ressemble à ceci :
—–BEGIN CERTIFICATE REQUEST—–
MIIBhDCB7gIBADBFMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEh
MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEB
AQUAA4GNADCBiQKBgQDQe9Ckq4c9RdjqIgHa5fEwV/nZhSxWrMUdA1z1jtFnH1xN
txDRgaEnxPCGyIi/Q7/9u+nrAdBSqgFvl+lVkQmiIXeWJd85ila1aPxCFJx/CmoN
OcW/fGY+fSLJ8gUpHxZctzEA+Eq5rxd5RzCzwjkD/2/GUfV0stkVrxPTrV+ENwID
AQABoAAwDQYJKoZIhvcNAQEFBQADgYEAae5QhvaCbYECHwy6nomxjAX2QFPre/PR
dlbMzP4KPGkKokbsNRXh7AY2qIbIrT9psVvL0ynaF8L5IFpzN6Upr1SHN1/KtZyM
NdUWfXyBbzFkb4XcbrHDtPbtpOr5ZNLNr6rwXRMvFgmtuqgL/Bn+/Y+LKDuEnDo8
sz1/2ZZrl5U=
—–END CERTIFICATE REQUEST—–
- l’autorité de certification vérifie le nom de domaine et si besoin d’autres informations relatives à ce domaine, et vous retourne un certificat SSL.
- l’autorité a peut-être un certificat intermédiaire, le sien, que vous devez télécharger de même.
- vous installez tout cela (certificat intermédiaire, certificat et clé privée RSA) dans votre serveur aux bons endroits, et configurez les services pour proposer du SSL/TLS.
Un certificat, qu’il soit intermédiaire ou terminal (le votre) ressemble à ceci :
—–BEGIN CERTIFICATE—–
MIIFezCCBGOgAwIBAgIDRO0NMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV
UzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UE
ChMRR29EYWRkeS5jb20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0
ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2Vj
GjAYBgNVBAMTEXd3dy5zb3MtbWFpbnMuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEA2qhZ8zYQQwm2Bdck/YbaRjYZagk0UTt5bAChzG0VvcqHu4pC
…
…
A1UdIwQYMBaAFP2sYTKTbEXW4u6FX5q653aZaMznMCsGA1UdEQQkMCKCEXd3dy5z
b3MtbWFpbnMuY29tgg1zb3MtbWFpbnMuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQA2
HIOAlzPf9QsXRDTrCQJDeHVSJlka3p7fpDd93yMOnmcoyrcEJsAMtAX4OeWqy13U
EGokjN9WPwcU7sn5lSEgea9bUepXriAd4JuPH8fD6ZsXfpf3zWWdUma0KE8XHMIi
wtHP8PVvflu4KKpE2muhkEbExHXAs8hhVTgJ1MXZ13rxlDxUbYDKsaBQuGYeToag
EEDOZ0Ddu3VNV2Gm8WLoPc8SnDNTDbNZwV2V1SMU3B4Bf2XTfpndEjbjxAsyZB3A
s7jM9Py5QmzB+yukdViS
—–END CERTIFICATE—–
Pour gérer tout cela, on utilisera la ligne de commande openssl accompagné d’un fichier de configuration openssl.cnf.
Si votre autorité de certification vous fournit un certificat dit « de classe 3 », cela signifie que vous devrez probablement installer un certificat d’autorité intermédiaire dans votre serveur.
Ce certificat intermédiaire est fourni par votre autorité, c’est un fichier au format X.509 PEM (son nom se termine en général soit par .CRT, soit par .PEM)
Afin que votre certificat soit bien reconnu par les clients en face, il faut installer ce certificat intermédiaire dans votre serveur aux bons endroits. Pour cela, procédez ainsi :
- copiez ce certificat intermédiaire dans /etc/ssl/certs sous un nom explicite (par exemple, nous qui utilisons Gandi comme autorité de certification, nous avons un fichier GandiStandardSSLCA.pem)
- taper c_rehash. Cette commande d’openssl recrée des liens symboliques vers votre certificat dans /etc/ssl/certs.
- ajoutez ce certificat à votre ensemble de certificats en tapant
#### instruction certificat Gandi
sudo cd /etc/ssl/certs
sudo cat GandiStandardSSLCA.pem >>ca-certificates.crt
Cela ajoute votre certificat intermédiaire à la liste de tous les certificats reconnus sur le système. Il est nécessaire pour Postfix.
Si vous utilisez Postfix, ce qui est le cas par défaut dans AlternC, il faut reconfigurer et redémarrer Postfix comme suit :
dans /etc/postfix/main.cf, assurez-vous d’avoir les lignes suivantes :
#### instructions Postfix (main.cf)
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
et redémarrez Postfix : en effet, comme postfix est protégé par un chroot, son script de démarrage recopie ca-certificates.crt dans le dossier
/var/spool/postfix/etc/ssl/certs/ pour que ses programmes puissent y accéder
#### instructions pour relancer Postfix
# sudo service postfix restart
# sudo service postfix status
###
Vous allez donc procéder à l’acquisition (payante via une autorité reconnue ou gratuite via CaCert par exemple) d’un certificat de sécurité pour votre serveur. Pour cela, on procède ainsi :
Tout d’abord modifiez le fichier /etc/ssl/openssl.cnf de votre serveur pour que les clés que openssl génère soient au minimum de 2048 bits. (2048 est bien, vous pouvez mettre 4096, mais évitez d’aller au-delà).
#### instruction pour un certificat Openssl
~#sudo sensible-editeur /etc/ssl/openssl.cnf
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
x509_extensions = v3_ca # The extentions to add to the self signed cert
Ensuite, allez dans votre dossier alternc et lancez une création de paire de clé RSA et de requête de certificat comme suit (les commandes à taper ou instructions sont en gras) :
#### instruction pour un certificat Openssl (RSA)
~#sudo cd /etc/alternc
/etc/alternc/#sudo openssl req -new
Generating a2048 bit RSA private key
…………………………………………………………++++++ ………………………….…++++++
writing new private key to ‘privkey.pem’
Enter PEM pass phrase: (entrez ici un mot de passe temporaire pour votre clé RSA)
Verifying - Enter PEM pass phrase: (entrez le même mot de passe)
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) [AU]:FR (entrez un pays, important uniquement pour les certificats commerciaux incorporant vos informations de société, adresse etc.)
State or Province Name (full name) [Some-State]:**Ile-de-France **
Locality Name (eg, city) []:**Paris **
Organization Name (eg, company) [Internet Widgits Pty Ltd]:**AlternC **
Organizational Unit Name (eg, section) []:**www **
Common Name (eg, YOUR name) []:demo.alternc.org (Cette information EST VITALE : elle déterminera le nom de domaine qui sera signé par l’autorité de certification. Ne vous trompez pas : mettez bien l’adresse DNS qualifiée de votre serveur.)
Email Address []:root@alternc.org (mettez votre email ici, cette information ne sera pas utilisée, sauf à la demande d’un certificat d’email, ce qui n’est pas le cas ici)
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: (n’entrez rien, juste <enter>)
An optional company name []: (n’entrez rien, juste <enter>)
—–BEGIN CERTIFICATE REQUEST—–
MIIB0jCCATsCAQAwgZExCzAJBgNVBAYTAkZSMRYwFAYDVQQIEw1JbGUtZGUtRnJh
bmNlMQ4wDAYDVQQHEwVQYXJpczEQMA4GA1UEChMHQWx0ZXJuQzEMMAoGA1UECxMD
d3d3MRkwFwYDVQQDExBkZW1vLmFsdGVybmMub3JnMR8wHQYJKoZIhvcNAQkBFhBy
b290QGFsdGVybmMub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBBc3t
MX4/RwUT7hcksOLUCpWh3B5vRUbjgyFzxqxWRz2MHFAOBkvR+7TsYSL03EOdJ8hk
imyUlSvSGaQdgyysHCx47YvI81yRsFRAk6KAl/nc2Zi7H+aMZeroYBDhMbb+OZNb
3jxvqDVUIsSyLm5fFqsfl5W+AakLKmEBkaR+qQIDAQABoAAwDQYJKoZIhvcNAQEF
BQADgYEAfzbUzl171L+hCshrPpI5a9vPT3RPTh42dIgA106NJsGTYcIZHpnfw8+l
5etqEztnLCwVb/s7w+bb8a1l79CDwLlTmDNZjVGrp1yeh1j14kwxlnK+gHlSsDJk
NhOTQg+/WC+pIXqRHImvLfdCN9wMzz0MtkJCErWdByLdxKHO/A8=
—–END CERTIFICATE REQUEST—–
Voilà ! Votre clé privée protégée par un mot de passe a été sauvée dans un fichier privkey.pem, et votre requête de certificat a été affichée sur la console comme ci-dessus.
Nous allons déjà sauver dans un fichier votre CSR en tapant :
### instruction certificat csr alternc
sudo cat alternc.csr | xargs > > alternc.csr.BAK |
collez dans la console votre CSR (le Certificate Request ci-dessus, y compris les lignes avec —-)
puis taper <Enter> et <Control-d> pour quitter cat.
Ensuite, nous allons déchiffrer la clé privée RSA pour la mettre dans le fichier qu’utilisera AlternC pour configurer votre serveur. taper :
### instruction (N°1) certificat pem apache2
sudo openssl rsa -in privkey.pem -out apache.pem
Votre mot de passe temporaire utilisé plus haut sera requis. taper-le puis <enter> :
Enter pass phrase for privkey.pem:
writing RSA key
Ensuite, rendez-vous sur le site de votre autorité de certification, et commencez la génération du certificat (appellée aussi ‘enrollment’ dans ce petit monde de la certification).
À un moment de l’enrollement, l’autorité demandera votre requête de certificat (le CSR). Copiez donc le code de la Certificate Request plus haut (y compris les lignes avec —-).
Ensuite, l’autorité délivrera votre certificat, soit à l’écran, soit sous forme d’un fichier téléchargeable. Ce fichier contient un certificat qui ressemble à celui montré au début de ce chapitre.
Collez ce certificat dans votre presse-papier et taper, en tant que root, sur votre serveur :
### instruction (n°2) certificat pem apache2
sudo cat alternc.csr.BAK | xargs >>/etc/alternc/apache.pem |
Collez dans ce cat votre certificat (y compris les lignes avec —–) et taper Enter et Control-d pour quitter cat.
Vous avez ajouté ainsi à la fin du fichier apache.pem votre certificat. Ce fichier contient donc désormais les clés privées et certificat de votre serveur, l’un sous l’autre.
Dernière étape : l’installation de votre certificat dans les logiciels qui l’utiliseront. Pour cela, lancez tout simplement
### instruction pour relancer AlternC
#sudo alternc.install
qui relance la configuration des services d’AlternC. cet installeur se rend compte que le certificat a été installé dans apache.pem et configure les logiciels comme il faut (courier-pop, courier-imap, apache, postfix, proftpd) :
La ligne qui vous le confirme (surlignée en noir dans la console ci-dessus) est celle d’Apache indiquant « enabling module ssl »
Une fois tout cela fait, vous voudrez logiquement vérifier que tout cela marche bien. Le plus simple est d’utiliser openssl sur une machine Linux distante (typiquement la votre en local, pas sur votre serveur).
Si vous n’avez pas de machine Linux sous la main de disponible :
(Sous Cygwin ou MacOsX, assurez-vous de disposer d’un dossier avec les certificats des autorités de certification reconnues, s’il n’est pas /etc/ssl/certs, remplacez-le dans les lignes ci-dessous).
Pour vérifier le certificat d’un service, nous allons utiliser la commande openssl s_client, qui permet de simuler un client ssl ou starttls. Cette commande va vous vérifier le certificat fourni par le serveur en SSL ou via la commande STARTTLS. Remplacez bien évidemment demo.alternc.org par l’adresse de votre serveur.
#### instructions Openssl ( imap-ssl et pop-ssl)
sudo openssl s_client -CApath /etc/ssl/certs -connect demo.alternc.org:25 -starttls smtp
sudo openssl s_client -CApath /etc/ssl/certs -connect demo.alternc.org:993
sudo openssl s_client -CApath /etc/ssl/certs -connect demo.alternc.org:995
sudo openssl s_client -CApath /etc/ssl/certs -connect demo.alternc.org:443
À chaque fois, la commande se connecte à votre serveur et vérifie la validité de votre certificat par rapport aux autorités locales installées sur le PC qui contrôle.
OpenSSL doit donc afficher quelque chose comme ceci :
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: BA14AC86177FADBED803325BF91BE81BABA7C2441F9217A86A837BC2EE825AA9
Session-ID-ctx:
Master-Key: 6A42787B38AB012C4284987C5BA21208F286D4B9990B9DAEC75B68120C2A3DAE8C31072D96CBFCF214EBD37C9E38ECAA
Key-Arg : None
Start Time: 1277661761
Timeout : 300 (sec)
Verify return code: 0 (ok)
La ligne importante est « Verify return code » qui doit valoir « 0 (ok) ». Sinon votre certificat est probablement mal installé.
Pour chaque nom de domaine hébergé sur votre serveur, il faut préciser au moins 2 serveurs DNS qui répondront aux requêtes DNS des internautes pour le domaines installé.
Votre serveur sous AlternC peut servir de DNS primaire pour vos domaines installés, mais il lui faut un DNS secondaire, appelé aussi esclave DNS.
De même, votre serveur sous AlternC héberge des comptes email pop ou imap, ou des alias, pour lesquels il peut être utile de disposer d’un serveur de secours, appelé MX secondaire. Celui ci recevra le courrier si votre serveur est en panne ou éteint. Le serveur MX secondaire renverra en bloc votre courrier quand votre serveur AlternC principal sera à nouveau en fonction.
Ces 2 services, qui nécessitent un second serveur, peuvent être facilement configurés via AlternC, et voici comment …
Le principe du DNS esclave, ou DNS secondaire, est assez simple : votre serveur, qui héberge un certain nombre de domaines, dispose d’un fichier zone (situé dans /var/alternc/bind/zones/) pour chaque domaine hébergé.
Pour disposer d’un DNS secondaire, il faut réaliser deux tâches :
- le serveur secondaire doit connaître la liste des noms de domaines que vous hébergez,
- il doit synchroniser le contenu de la zone de chacun de ces domaines, pour pouvoir servir les requêtes DNS indépendamment de l’état de fonctionnement du DNS primaire.
La seconde tâche est exécutée naturellement par les serveurs DNS comme Bind9, que nous utilisons sur AlternC et que nous conseillons. Le protocole DNS définit pour cela une commande spéciale, appelée AXFR, ou « Transfert de Zone ».
apollon:~# dig axfr alternc.org @primary
; <<>> DiG 9.5.1-P3 <<>> axfr alternc.org @primary
;; global options: printcmd
alternc.org.14400INSOAprimary.heberge.info. root.brassens.heberge.info. 2010020102 2160 360 60480 14400
alternc.org.14400INNSprimary.heberge.info.
alternc.org.14400INNSsecondary.heberge.info.
alternc.org.14400INMX5 alternc.org.
alternc.org.14400INA91.194.60.27
debian.alternc.org.14400INA91.194.60.27
demo.alternc.org.14400INA91.194.60.151
svn.alternc.org.14400INA91.194.60.27
www.alternc.org.14400INA91.194.60.27
;; Query time: 2 msec
;; SERVER: 91.194.60.2#53(91.194.60.2)
;; WHEN: Fri Oct 1 10:30:55 2010
La première tâche, elle, était traditionnellement faite « à la main » : un administrateur système demandait à un autre de lui servir de DNS secondaire pour une liste de domaines donnée, et les domaines étaient configurés sur le secondaire à la main.
Avec AlternC, il devient nécessaire d’automatiser cette tâche, car n’importe quel utilisateur du panel peut ajouter ou supprimer un ou plusieurs noms de domaine sur son compte.
Il existe donc un package debian, nommé « alternc-slavedns », qui doit être installé sur un serveur DNS secondaire (qui n’utilise lui-même pas forcément AlternC), et qui permet au secondaire de synchroniser la liste des domaines installés avec un ou plusieurs serveurs sous AlternC.
Voici comment installer ce package sur un serveur debian :
#### code sources.list
sudo cat >/etc/apt/sources.list.d/alternc.list«EOF
deb http://debian.alternc.org stable main
#wget -cqO - https://debian.alternc.org/key.txt | sudo apt-key add - |
EOF
echo “deb http://debian.alternc.org stable main” | sudo tee /etc/apt/sources.list.d/alternc.list |
sudo apt install wget
wget -cqO - https://debian.alternc.org/key.txt | sudo apt-key add - |
sudo apt update
Le package alternc-slavedns, ainsi que ses dépendances (essentiellement wget et bind9) seront installés en même temps.
Une fois ce package installé, vous devrez dérouler la procédure suivante pour chaque serveur AlternC utilisant ce serveur secondaire :
- Sur votre serveur AlternC, connectez-vous sur le compte « admin » et cliquez sur « panneau administrateur »
Cliquez ensuite sur « Gérer les IP autorisées à faire des transferts de zone esclave DNS ».
Dans ce formulaire, vous devez renseigner l’adresse IP du ou des serveurs DNS secondaires qui se connecteront à votre serveur sous AlternC. Dans notre exemple, nous avons mis 91.194.60.2 et 91.194.60.99 :
Cette autorisation sera injectée dans la configuration de Bind dans l’heure qui suit, et Bind autorisera alors ces adresses IP, et uniquement celles-ci, à utiliser la requête DNS « AXFR » sur les domaines hébergés.
Ensuite, revenez sur le « panneau administrateur » et cliquez sur « Gérer les comptes autorisés pour les transferts de zone esclave DNS ».
Dans ce formulaire, créez un compte pour chaque serveur DNS secondaire qui se synchronisera sur votre serveur AlternC. Ici nous avons créé 2 comptes, un pour primary et un pour secondary, qui sont nos 2 serveurs DNS principaux (voir les architectures proposées plus bas dans ce chapitre) :
Voilà. Attendez une petite heure, et connectez-vous alors sur votre serveur DNS secondaire pour y configurer votre serveur sous AlternC comme suit (dans notre exemple, le secondaire s’appelle « secondary » et le serveur AlternC s’appelle « alternc » :
- Recopiez le fichier defaults.conf sous un autre nom (typiquement celui de votre serveur AlternC) :
#### code slavedns
sudo cd /etc/alternc/slavedns/ sudo cp defaults.conf alternc.conf
- modifier le fichier alternc.conf et remplacer les informations requises :
##### instructions pour remplacer dans alternc.conf
sudo sensible-editeur alternc.conf
PROTOCOL=http s
HOST=alternc.octopuce.fr
MASTERIP=91.194.60.152
LOGIN=secondary
PASSWORD=xahqu0Le
protocol : mettre HTTP si le serveur AlternC n’a aucun certificat SSL. Sinon mettez HTTPS
host : remplacer le nom de domaine du serveur alternc, ici « alternc.octopuce.fr »
masterip : mettre l’adresse IP publique du serveur AlternC.
login : remplacer le nom d’utilisateur (ici : secondary )
password : remplacer le mot de passe (ici : xahqu0Le)
c’est tout !
Désormais, toutes les heures, votre serveurDNS secondaire ira chercher la liste des domaines hébergés sur votre ou vos serveurs sous AlternC, et modifiera automatiquement la configuration de son bind9 pour lui demander de synchroniser le contenu des zones DNS depuis les serveurs AlternC
Comment cela marche-t-il ?
Pour mettre le nez dans le moteur, lancez, sur votre serveur secondaire, la commande suivante :
#### instruction (n°1) slavedns (en tant que root ou sudoer)
#sudo alternc-slavedns
no change found for ‘alternc.conf’
Pour fonctionner, alternc-slavedns télécharge une page sur votre AlternC, en s’identifiant avec le login et le mot de passe que vous avez défini dans le panneau de contrôle administrateur.
Si de nouveaux domaines ont été installés ou si des domaines ont été désinstallés du serveur AlternC correspondant, le fichier reçu est transformé en fichier de configuration valide pour bind9, et bind9 est rechargé. Les fichiers de alternc-slavedns sont situés à 2 endroits :
- la liste des domaines de chaque serveur est dans /var/cache/slavedns/, avec tout simplement un fichier .conf par serveur AlternC, et une ligne par domaine hébergé
#### instruction (n°2) slavedns (en tant que root ou sudoer)
#sudo cat /var/cache/slavedns/brassens.conf
alternc.org
alternc.fr
mondomaine.com
- la configuration de bind9 est stockée dans un fichier .conf par serveur AlternC, et un bloc slave par domaine.
#### exemple pour montest.fr :
sudo cat /etc/bind9/slavedns/montest.fr.conf
zone “montest.fr” {
type slave;
allow-query { any; };
file “montest.fr”;
masters { 91.194.60.152; };
};
Vous pouvez ainsi vérifier facilement que alternc-slavedns a bien pris en compte vos nouveaux noms de domaines.
Si vous voulez forcer la mise à jour immédiate de la liste des domaines :
# sudo alternc-slavedns
changes detected for ‘brassens.conf’, applying
La question est intéressante et nous a souvent été posée. Lorsque vous disposez de plusieurs serveurs sous AlternC, il est évident que vous pouvez utiliser un seul et même secondaire qui se synchronisera avec tous vos serveurs.
Par exemple, si vous avez 10 serveurs AlternC numérotés de alternc1.example.com à alternc10.example.com, vous pouvez très bien installer alternc-slavedns sur alternc1 et 2, configurer le 1 pour qu’il se synchronise sur le alternc-slavedns du 2, et configurer tous les autres pour qu’ils se synchronisent sur le 1.
Ainsi, vos domaines hébergés sur alterncX indiqueront chez le registrar les serveurs DNS :
alternc1.example.com.
alterncX.example.com.
pour qu’ils soient hébergés par votre infrastructure, sauf les domaines de alternc1 qui mettront alternc1 et alternc2.
Cette solution parait facile à mettre en œuvre, mais peut porter à confusion car elle utilise le même nom pour le panneau de contrôle web et le serveur DNS.
On préfèrera donc utiliser un second nom DNS pour vos 2 serveurs, et installer AlternC-slavedns sur 2 d’entre eux.
Ainsi, faites pointer, par exemple, le nom primary.example.com vers l’IP de alternc1 et secondary.example.com vers l’IP de alternc2
Installez ensuite alternc-slavedns sur alternc1 et alternc2 et configurez tous vos serveurs pour qu’ils se synchronisent sur alternc1 et alternc2 (sauf sur eux-même bien entendu)
Enfin, demandez à tous vos utilisateurs de mettre comme serveurs DNS, chez leur registrar, les valeurs suivantes :
primary.example.com.
secondary.example.com.
Cette configuration est plus simple à mémoriser. Elle permet éventuellement, à terme, de disposer de serveurs DNS en dehors de votre réseau (externaliser le secondary) ou de déplacer ce service facilement sur d’autres serveurs.
Et si je n’ai qu’un seul serveur sous AlternC avec une seule IP ?
C’est un cas classique des toutes petites structures qui hébergent elles-même un serveur chez un gros prestataire (comme rackspace ou ovh), ou qui hébergent sur leur accès ADSL et qui souhaitent disposer d’un serveur DNS secondaire automatique.
L’équipe d’AlternC fournit gracieusement un service de DNS secondaire pour ces utilisateurs : pour cela, envoyez un simple email à equipe@alternc.org ou contactez-nous sur l’irc #alternc sur irc.libera.chat, et envoyez-nous les informations suivantes :
- le nom dns de votre serveur AlternC
- son adresse IP publique
- le login et le mot de passe à utiliser pour synchroniser la liste des DNS
De votre côté, vous devrez autoriser l’IP 91.194.60.145 à effectuer un transfert de zone DNS, et vous devrez mettre comme serveur DNS chez votre registrar :
- votre serveur comme primaire
- ns2.alternc.org comme secondaire
voilà, c’est aussi simple que cela !
Le principe du MX secondaire, appellé aussi « backup MX », est simple : votre serveur héberge un certain nombre de domaines. Il dispose d’un fichier zone (situé dans /var/alternc/bind/zones/). pour chaqcun de ces domaines. Ce fichier précise quel serveur héberge le mail de ce domaine, sous la forme d’une ligne, nommée « champ MX » comme dans l’exemple ci-dessous :
$TTL 4H
;
; BIND data file for domain alternc.org
;
@ IN SOA primary.heberge.info. root.brassens.heberge.info. (
2010020102 ; serial
2160 ; refresh (6h)
360 ; retry (1h)
60480 ; expiry (7d)
14400 ) ; RR TTL (24h)
IN NS primary.heberge.info.
IN NS secondary.heberge.info.
IN MX 5 brassens.heberge.info.
IN A 91.194.60.27
La ligne avec le « MX 5 » montre donc que « brassens.heberge.info » est le serveur de mail du domaine alternc.org.
Hélas, un serveur étant par définition peu fiable, il arrive qu’il tombe en panne, et pendant ce temps, votre mail n’arrive pas, et les autres serveurs SMTP du monde entier qui tentent de s’adresser à vous doivent conserver les mails qui vous sont destinés. Une fois votre serveur de mail de retour, il peut se passer un temps important avant que vous ayez reçu tous les mails en attente, et vous pourriez même en avoir perdu certains, si les serveurs d’en face n’ont pas conservé assez longtemps les mails de votre domaine.
C’est pour cette bonne raison qu’il est utile de disposer d’un second serveur de mail, qui apparait alors sous la forme d’une seconde ligne IN MX 10 (le 10 étant un poids plus faible, ce n’est pas lui qui recevra les mails en priorité) :
IN NS primary.heberge.info.
IN NS secondary.heberge.info.
IN MX 5 brassens.heberge.info.
** IN MX 10 apollon.serverside.fr.**
IN A 91.194.60.27
En cas de défaillance de brassens, apollon réceptionnera les méls et les réexpédiera à brassens après remise en service de celui-ci.
Mettre une ligne de MX secondaire au serveur AlternC de tous les domaines hébergés. Modifier le fichier exemple (ci-dessous).
$TTL 1D
;
; BIND data file for domain @@DOMAINE@@
;
@ IN SOA %%ns1%%. root.%%fqdn%%. (
@@SERIAL@@ ; serial
21600 ; refresh (6h)
3600 ; retry (1h)
604800 ; expiry (7d)
86400 ) ; RR TTL (24h)
IN NS %%ns1%%.
IN NS %%ns2%%.
IN MX 5 %%mx%%.
IN MX 10 apollon.serverside.fr.
sudo alternc.install
Relancer alternc.install pour propager le modèle dans /etc/bind/templates/
Il est possible de modifier directement zone.template (ci-dessous)
#### Modification MX 10 directement applicable
sudo echo “IN MX 10 apollon.serverside.fr.” »/etc/bind/templates/zone.template
Attention : Sur un serveur disposant déjà de domaines installés, il faudra ajouter cette ligne MX à la main dans les fichiers de zone déjà créés dans /var/alternc/bind/zones/. N’oubliez pas, dans ce cas, de modifier la valeur du nombre « serial » pour que la zone soit bien prise en compte partout dans le monde !
Ensuite, nous allons effectuer les mêmes manipulations pour la déclaration des domaines hébergés sur le serveur que dans le chapitre précédent traitant des DNS secondaire.
Pour disposer d’un MX secondaire, il faut que ce serveur secondaire puisse connaître la liste des noms de domaines que vous hébergez,
Il existe donc un package debian, nommé « alternc-secondarymx », qui doit être installé sur un serveur MX secondaire (qui n’utilise lui-même pas forcément AlternC), et qui permet au secondaire de synchroniser la liste des domaines installés avec un ou plusieurs serveurs sous AlternC.
Ajouter le dépôt et installer le paquet (comme ci-dessous)
#### Code pour un serveur debian secondaire
# echo “deb http://debian.alternc.org stable main” | sudo tee /etc/apt/sources.list.d/alternc.list |
# sudo apt install wget
# wget -cqO - https://debian.alternc.org/key.txt | sudo apt-key add - |
# sudo apt update
# sudo apt install alternc-secondarymx
- Installer simultanément le paquet alternc-secondarymx et ses dépendances (essentiellement postfix).
- dérouler la procédure pour chaque serveur AlternC utilisant ce serveur secondaire.
- Sur votre serveur AlternC, connectez-vous sur le compte « admin » et cliquez sur « panneau administrateur »
Cliquer sur « Gérer les comptes autorisés pour les mx secondaires ».
Créer un compte pour chaque serveur MX secondaire qui se synchronisera sur votre serveur AlternC. Création d’un compte pour apollon (cf illustration ci-dessous)
- Allez dans (exemple ci-dessous).
# sudo cd /etc/secondarymx/
# sudo cp secondarymx.conf alternc.conf
#sudo sensible-editor alternc.conf
HOST=alternc.octopuce.fr
MASTERIP=91.194.60.152
LOGIN=apollon
PASSWORD=yi0Ar4quae
host : mettre le nom de domaine du serveur alternc « alternc.octopuce.fr »
masterip : renseigner l’adresse IP publique du serveur alternc.
login : renseigner le nom d’utilisateur (ici : apollon ) précédemment créer sur le serveur AlternC
password : renseigner le mot de passe (ici : yi0Ar4quae ) précédemment créer sur le serveur AlternC
Désormais, toutes les heures, le serveur MX secondaire cherchera la liste des domaines hébergés sur le ou les serveurs sous AlternC, et modifiera automatiquement la configuration de postfix afin de de servir de serveur de mail de secours pour vos serveurs AlternC
Comment cela marche-t-il ?
Mettre le nez dans le moteur, lancer, sur le serveur secondaire, la commande suivante (instruction ci-dessous) :
# sudo secondarymx
réponse : no change found for ‘alternc.conf’
En fonctionnement, alternc-secondarymx télécharge une page sur AlternC, en s’identifiant avec le login et le mot de passe ainsi défini dans le panneau de contrôle administrateur.
Si des nouveaux domaines ont été installés ou désinstallés du serveur AlternC correspondant, le fichier reçu est transformé en fichier de configuration valide pour recharger postfix. Les fichiers de alternc-secondarymx sont situés dans /var/cache/secondarymx.
Vous pouvez ainsi vérifier que alternc-slavedns prenne en compte les nouveaux noms de domaines.
Si vous souhaitez forcer immédiatement la mise à jour de la liste des domaines sur le serveur secondaire :
# sudo alternc-secondarymx
Ce chapitre va vous donner un ensemble de trucs et astuces pour l’administrateur système utilisant AlternC. La plupart des astuces décrites ici nécessitent des bases en administration système.
Comme bien souvent dans les logiciels libres développés par la communauté, si vous avez d’autres questions, vous pouvez utiliser les listes de discussions du projet pour les poser, après avoir cherché les archives de ces listes bien entendu !
Le projet AlternC dispose de 2 listes de discussion à ce jour :
user@alternc.org, qui est la liste de discussion des administrateurs systèmes utilisateurs d’AlternC. Si vous avez un serveur sous AlternC, nous vous conseillons vivement de vous y inscrire : il y a assez peu de message, mais ils sont souvent pertinents : annonce de nouvelles versions et questions d’autres utilisateurs vous aideront à approfondir votre connaissance de Debian, de Linux et d’AlternC en particulier.
dev@alternc.org, qui concerne surtout ceux qui développent AlternC. C’est le meilleur endroit pour poser une questions véritablement pointue et nécessitant des compétences importantes. Si vous souhaitez aider au développement d’AlternC, c’est un endroit quasiment incontournable pour bien suivre le projet.
Nous espérons enfin que vos premières questions trouveront réponse dans les trucs & astuces présentes ici même. C’est parti !
**Question : Où se trouvent les données web et mail des utilisateurs ? **
Dans un serveur utilisant AlternC, les emplacements par défaut des données sont les suivants :
Les données web des comptes AlternC sont dans /var/alternc/html/, ou plus précisément :
/var/alternc/html/<premiere lettre du compte>/<nom du compte>
Les données des adresses emails des utilisateurs sont, quant à elles, dans :
/var/alternc/mail/<premiere lettre du compte POP/IMAP>/<nom du compte POP/IMAP>
où le « nom du compte pop/imap » est l’adresse email ou @ est remplacé par _.
Si vous souhaiter pouvoir accéder facilement aux données HTML de vos comptes AlternC, vous pouvez, en tant que root, créer un lien symbolique de /var/alternc/html à la racine :
ln -sf /var/alternc/html /html
ainsi, vous pouvez accéder facilement par exemple au compte demo ainsi :
cd /html/d/demo
Question : Où se trouvent les listes de diffusion Mailman ?
Comme pour tout mailman standard de Debian GNU/Linux, Les listes mailman gérées par AlternC sont dans
/var/lib/mailman/lists/
Dans le dossier « lists » vous trouverez un dossier par liste dans lequel se trouvent les fichiers de configuration de mailman (config.pck) et d’autres données (par exemple les pages HTML personnalisées)
Question : Où se trouvent les archives des listes ?
Les archives des listes mailman se situent dans le dossier
/var/lib/mailman/archives/
Dans ce dossier se trouvent 2 sous-dossiers : public et private.
Public contient uniquement des liens symboliques vers les archives dans private/, pour les listes dont les archives ont été déclarées publiques.
Dans private, on trouve 2 dossiers par liste :
- un au nom de la liste, qui contient les archives au format HTML
- un au « nom de la liste.mbox », qui contient un fichier mailbox : c’est la liste des emails reçus sur cette liste, lisibles avec mutt.
Étant donné que depuis l’interface mailman il n’est pas possible de supprimer des archives, vous pouvez procéder à leur suppression en console par exemple.
Question : Comment régénérer les archives des listes mailman ?
La régénération se fait, pour une liste, de la manière suivante :
se connecter en root dans le répertoire indiqué ci-dessous et déclencher la régénération des archives
#### instruction régénération liste mailman
# cd /var/lib/mailman/bin
# ./arch nomdelaliste
Attention, si vous souhaitez régénérer l’ensemble des archives d’une liste, effacez tout d’abord les archives HTML dans
/var/lib/mailman/archives/private
Question : Comment enlever un email des archives d’une liste mailman ?
Pour régénérer ou modifier les archives d’une liste, le plus simple est de procéder ainsi (par exemple pour la liste « discussion ») :
#### Code install mutt
sudo apt install mutt
#### instructions remove file Mailman
# sudo rm -rf /var/lib/mailman/archives/private/discussion/*
#### instructions mutt
#sudo cd /var/lib/mailman/archives/private/discussion.mbox/
mutt -f discussion.mbox
Avec Mutt, rechercher et supprimer individuellement les messages en appuyant sur « d » et valider avec avec la touche « $ » , pour quitter Mutt appuyer sur la touche « q ».
Regénérer les archives publiques (ou privées) par la commande arch :
#### instructions (n°1) Liste Mailman
sudo su list
cd /var/lib/mailman/bin/
./arch discussion
**Question : **Comment disposer d’un mot de passe valide pour toutes les listes ?
Mailman dispose d’une fonctionnalité intéressante pour les administrateurs systèmes, à savoir le fait de disposer d’un « mot de passe partout ». Pour fixer ou modifier ce mot de passe, on procède ainsi :
#### instructions (n°2) Liste Mailman
# sudo cd /var/lib/mailman/bin
# sudo ./mmsite
Question : Où se trouve le mot de passe du PhpMyAdmin général ?
#### instruction mot de passe MySQL / Mariadb
# sudo mysql_secure_installation
création d’un mot de passe pour le compte root de Mariadb
permettre un accès illimité à toutes les bases et tous les droits dans Mariadb
pouvoir utiliser cet identifiant (login) et ce mot de passe et permettre de se connecter à Mariadb :
* via l'interface générale ouaibe de PhpMyAdmin
* via la ligne de commande (ci-dessous)
#### instruction mot de passe MySQL / Mariadb
# mysql -u root -p votremotdepasse
Autrement pouvoir employer directement la commande « mysql », sous réserve de posséder un fichier .my.cnf contenant les bonnes informations dans votre compte.
Création d’un lien symbolique du fichier .my.cnf pour Mariadb situé dans : /etc/alternc/my.cnf
#### instruction lien MySQL / Mariadb
# sudo ln -sf /etc/alternc/my.cnf /root/.my.cnf
#### instruction commande MySQL / Mariadb
~#\ mysql <enter>
Question : Comment regénérer les stats awstats ?
Awstats calcule tous les matins les statistiques de la veille pour tous les sites web
Si vous devez recalculer les statistiques d’un site depuis sa création, vous pouvez procéder ainsi :
- dans /var/cache/awstats, trouvez le sous-dossier du domaine correspondant (par exemple ici, mondomaine.fr)
serveur:/var/cache/awstats# ls
mondomaine.fr
intranet.unautre.com
www.lulu.net
Rendez-vous dans ce sous-dossier et déplacez dans un dossier de sauvegarde tous les fichiers présents dans ce sous-dossier (par exemple un sous dossier du répertoire root)
mkdir /root/mondomaine
mv * /root/mondomaine/
lancez ensuite la commande suivante en tant que www-data :
# sudo su www-data
$ /usr/lib/alternc/alternc-awstats mondomaine.fr
Cela relancera les stats de mondomaine.fr sur toute la période couverte par vos logs apache2, et pour les mois où vous avez retiré les fichiers de cache.
Si vous voulez le faire pour tous vos domaines hébergés, vous pouvez lancez plus généralement :
# sudo su www-data
$ /usr/lib/alternc/alternc-awstats all
(attention, cela peut prendre vraiment beaucoup de temps sur une machine chargée. N’hésitez pas à utiliser la commande « screen » pour lancer ce process en arrière-plan)
Cela vous permet aussi de générer des statistiques pour un site qui était hébergé depuis longtemps sur votre serveur.
Question : un logiciel en PHP que j’installe sur le serveur nécessite de désactiver le Safe Mode, et refuse de fonctionner sans. Comment faire ?
Ou encore : j’ai écris ou j’utilise un programme qui nécessite de lancer des exécutables sur le serveur, et nécessite de pouvoir accéder à des dossiers en dehors de mon espace web. Comment faire ?
Par défaut Safe Mode est à « on » sur Alternc. Ce paramètre de PHP est une sécurité pour un serveur mutualisé. Il permet d’interdire certaines commandes comme l’exécution de toute commande sur le serveur.
Par ailleurs, chaque sous-domaine est cloisonné à son espace web, par la directive open_basedir de php. Ainsi, dans /var/alternc/apacheconf/m/mondomaine.fr/ on trouve un extrait de fichier de configuration apache qui emprisonne le site dans son espace web, par exemple /var/alternc/html/u/uncompte/. Ainsi chacun est cloisonné chez soi.
Il peut arriver que vous ayez besoin de mettre Safe Mode à « off » pour un domaine ou sous-domaine en particulier. En effet :
- certains programmes en PHP nécessitent la désactivation du safe_mode
- certains programmes PHP ont besoin de pouvoir lancer des commandes shell (comme imagemagick, latex ou d’autres commandes…)
Voici comment procéder pour un nom de domaine spécifique :
Créer un fichier dans /etc/apache2/conf.d/ au nom de votre domaine (histoire de ne pas être perdu) et terminé par « .conf »
par exemple :
serveur:~/# cd /etc/apache2/conf.d
serveur:/etc/apache2/conf.d# vim www.nomdedomaine.tld.conf
Inscrire dans le fichier les lignes suivantes :
<directory /var/alternc/dns/n/www.nomdedomaine.tld>
php_admin_flag safe_mode off
php_admin_flag safe_mode_gid off
</directory>
Ensuite, sauvez le fichier ainsi créé et relancez apache comme suit :
# sudo service apache2 reload
# sudo service apache2 status
Question : Je viens d’installer un domaine sur mon serveur,
ou : Je viens de supprimer un domaine sur mon serveur,
ou encore : Je viens de changer la configuration d’un domaine sur mon serveur,
…mais je ne veux pas attendre 5 minutes, comment faire ?
L’installation des domaines étant une opération nécessitant des droits avancés, elle ne peut pas être réalisée par le panel, qui n’a pas de droits particuliers.
Cette installation des domaines est donc réalisée par une tâche planifiée lancée en tant qu’administrateur du serveur (root). Si vous avez accès au serveur via SSH sur le compte root, vous pouvez lancer la tâche planifiée quand vous le voulez. Pour cela, taper :
#sudo /usr/lib/alternc/update_domains.sh
Cette commande doit rendre la main assez rapidement, les modifications en attente sur les domaines ont toutes été prises en compte.
Question : Un des services du serveur est arrêté, comment puis-je le relancer ?
à l’aide de systemd et de la commande service
avec comme paramètre stop, start, restart ou reload selon l’action à réaliser.
Ainsi, il est possible de redémarrer ProFTPd avec :
Pour recharger apache2 sans le redémarrer :
Pour arrêter postfix :
Question : mon site web me sort une page : « Internal Server Error »
Ce message d’erreur peut signifier 1000 choses différentes. Les plus classiques étant :
Dans tous les cas, apache mémorise l’erreur « 500 Internal Server Error » dans son fichier de log. Taper en console :
permet de voir défiler les nouveaux messages d’erreur de votre serveur web. Rechargez la page provoquant l’erreur, et vous verrez la raison de celle-ci, par exemple :
[Thu Jun 24 12:46:47 2008] [alert] [client 91.194.61.194] /var/alternc/dns/m/www.mondomaine.tld/.htaccess: Illegal option
Cela montre dans quel fichier de configuration d’apache2 une erreur s’est glissée, rendant le site inutilisable
Question : Pour l’installation d’un kit de paiement en ligne, je dois poser un script CGI, comment faire ?
ou : J’ai un programme binaire compilé à installer sur le serveur pour servir des pages CGI, comment faire ?
La plupart du temps, vous n’aurez pas besoin d’utiliser ce que l’on appelle des cgi-bin (qui sont des programmes en Perl, C, ou tout autre binaire, lancés par le serveur web à une adresse spécifique). Cependant, pour certains usages, comme l’installation de kit de paiement en ligne, vous aurez besoin d’installer un CGI-BIN de votre banque.
Les cgi-bin peuvent être installés à la main par root dans le dossier
/var/alternc/cgi-bin/
Dans ce dossier, vous pouvez mettre le programme à installer en tant que cgi, et lui donner des droits d’exécution par la commande
chmod a+x votre-programme
Vous pouvez l’envoyez via sftp sur votre compte root.
Il sera accessible sur votre site à l’url
http://votredomaine.tld/cgi-bin/votre-programme
Vous pouvez aussi le mettre dans un sous-dossier de /var/alternc/cgi-bin/ auquel cas l’url deviendra
http://votredomaine.tld/cgi-bin/sous-dossier/votre-programme
Notez que les CGI ainsi installés sont accessibles à tout domaine installé sur le serveur, à la même adresse. Ainsi, si vous avez « unautredomaine.eu » sur votre serveur, l’url ci-dessous marchera aussi :
http://unautredomaine.eu/cgi-bin/sous-dossier/votre-programme
Question :** A l’affichage de mes pages les caractères accentués sont incorrects**
Sur certains sites, les accents peuvent apparaître ainsi :
jeu de caractères par défaut au lieu de
jeu de caractères par défaut
Il se peut que cela vienne de la configuration par défaut d’Apache2, qui est de fournir les pages comme étant encodées en ISO-8859-1.
Dans ce cas, essayez le truc suivant : à la racine de votre site, créez un fichier nommé « .htaccess » et entrez la ligne suivante dans le fichier (si ce fichier existe déjà, ajoutez cette ligne en bas du fichier.)
AddDefaultCharset UTF-8
Cela passera toutes les pages de votre site en encodage UTF-8, et les accents devraient désormais s’afficher correctement.
Si cela n’est pas résolu, il se peut que cela vienne de votre programme PHP qui ne gère pas bien les jeux de caractères. Nous ne pouvons hélas pas y faire grand chose : revoyez votre programme.
Subsidia
Sébastien Canevet
décembre 2010
L’un des principes fondateurs d’internet conduit à traiter également toute information qui circule sur le réseau, indépendamment de sa source, de sa destination ou de son contenu. C’est la « neutralité du net ».
Lors de la création d’internet, la rusticité des outils alors mis en oeuvre ne permettait pas ce genre de discrimination. Aujourd’hui, le perfectionnement des équipements techniques rend possible une gestion discriminatoire du trafic. Cette idée malvenue ne manque pourtant pas de partisans. Les arguments pour la combattre sont plutôt nombreux, de la démocratie à la promotion de l’innovation et passant l’économie du développement des infrastructures.
Loin des débats théoriques sur ces principes fondamentaux, certains acteurs de l’internet ont choisi de participer à ce débat d’une autre façon, en rendant rapidement et facilement accessible la mise en place d’un hébergeur indépendant. Tel est le projet AlternC.
Alors que l’hébergement d’un site web était hors de portée des acteurs autres que les opérateurs institutionnels, publics ou privés, la mise à disposition de la suite logicielle AlternC permet depuis dix ans de gérer aisément un hébergeur mutualisé, assurant ainsi une indépendance technique à ceux qui souhaitent consacrer un minium de temps et quelques moyens (limités) à cette tâche.
Projet libre, il était logique qu’AlternC fut également un logiciel libre. A l’aube du projet, seuls les informaticiens (ou presque) *comprenaient les enjeux de ce choix. C’est donc en connaissance de cause que les promoteurs du projet choisirent un logiciel libre *(l’altern de Valentin Lacambre) plutôt que son homologue propriétaire, pour le faire évoluer.
C’est ainsi que, prouvant le mouvement en marchant, et mettant en oeuvre la neutralité du net bien avant que la problématique n’héberge au sein du public averti[4], AlternC permet la mise en oeuvre de l’hébergement de sites internet librement, et ceci aux quatre sens du mot libre lorsqu’il est accolé à nom logiciel.
Première des quatre libertés, l’ « exécution du programme », ou plus largement l’utilisation d’AlternC est libre, en ce sens que vous pouvez utiliser ces logiciels pour n’importe quel usage, commercial ou pas, et ceci sans aucune limitation d’aucune sorte. Il est d’ailleurs important pour les logiciels libres en général que leur utilisation dans la sphère commerciale et industrielle soit la plus large possible, ce ci afin d’éviter qu’ils ne soient isolés dans un milieu étroit.…
La liberté d’étude est la seconde liberté. Alors que leurs homologues* « propriétaires »* sont enfermés dans un carcan juridique étroit et compliqué[5], l’étude d’AlternC n’est soumise à aucune contrainte. C’est ainsi que l’on peut librement étudier le fonctionnement de ces logiciels, quel que soit l’objectif de cette étude. La libre disposition du code source facilite cette étude.
La distribution de copie des logiciels AlternC est elle aussi possible librement, quelles que soient les conditions (gratuité ou pas…) de cette distribution. Une activité économique est ainsi parfaitement imaginable.
Enfin, il est possible (et même souhaitable) qu’AlternC soit l’objet d’améliorations. Cette suite logicielle est une oeuvre « in progress », en ce sens que, au sein de la communauté AlternC ou en dehors, toute personne ayant la compétence et la volonté de modifier ces programmes, peut le faire sans contrainte.
J’aime à répéter que ce que l’on ne trouve pas sur internet n’existe pas, tant le réseau est aujourd’hui d’une richesse inouïe.
Bien au delà des seuls usages commerciaux, dans lesquels l’utilisateur n’est envisagé que comme un consommateur, qui n’utiliserait le réseau que pour dépenser son argent, se contentant pour le reste de demeurer tranquillement sous perfusion télévisuelle, l’usager d’AlternC est un véritable acteur du réseau. C’est pour cela que cet ouvrage a été écrit.