Contents
- Notes sur les releases d'Alternc
- Notes sur les versions antérieurs
- AlternC 3.5 sur Debian Buster
- Procédure d'installation d'alternc 3.5rcX sur stretch
- AlternCMailman
- Alternc testage
Notes sur les releases d'Alternc
- En date 15 déc. 2017, le dernier release 3.3.11 est la première version qui cherche a être compatible avec stretch et php7.0. On test l'installation dans stretch de notre coté.
https://github.com/AlternC/AlternC/blob/3.1.11/debian/changelog (3.1.11)? Pour le moment, on installe stretch avec le dernier release 3.3.X
- Installation alternc 3.3.11
Notes sur les versions antérieurs
Pour les vieilles versions, voir:
Pour installer sur Debian Jessie avec alternc 3.2.10 voir la version antérieur de la page
Pour installer sur Debian Wheezy, voir la version antérieur de la page
AlternC 3.5 sur Debian Buster
Note, la version 3.5 met du ssl partout par défaut, enfin.
Préparatifs
- Avoir les entrées DNS pour tous les url que vous allez utiliser de déjà créées et actives. Ça permet d'avoir les bon certificats d'installés lors l'installation!
Vous pouvez utiliser une entrée wildcard sur le domaine qui pointe vers le ip de votre alternc.
Les premiers pas, avec puppet
On a maintenant une classe pour l'installation d'alternc avec puppet! C'est beaucoup plus simple.
Inclure un rôle pour AlternC :
client.com.pp
node 'client.com' {
include role::client::alternc
}
Un exemple de configuration pour AlternC dans client.com.yaml (suppose que le DNS est géré exclusivement sur le vps du client) :
profile::alternc::mx_fqdns:
- mail.client.com
profile::alternc::dovecot_fqdn: mail.client.com
profile::alternc::postfix_fqdn: mail.client.com
profile::alternc::proftpd_fqdn: ftp.client.com
profile::alternc::webmail: true
profile::alternc::spamassassin: true
profile::alternc::sieve_spam_to_junk: true
# Because AlternC
profile::letsencrypt::webroot_path: '/var/lib/letsencrypt'
Sans fichier yaml, AlternC sera installé sur le vps du client. Les valeurs par défaut pour les paramètres suivants seront le fqdn du vps du client :
- panel_hostname
- ns_fqdns
- mx_fqdns
- dovecot_fqdn
- postfix_fqdn
- proftp_fqdn
Voir la classe pour les paramètres disponibles, leurs valeurs par défaut, et plus de détails sur les paramètres.
bugs d'installation avec puppet
- problème avec l'installation du koumbit-keyring redmine:27680
- problème avec les ns0/ns3 dans le fichier de zone il n'a pas d'expension des variables, ça fait planter la zone, je les mets en commentaires pour le moment (voir le hack dans puppet).
une fois installé, les prochaines étapes
Voici les prochaines après l'installation d'alternC, c'est des étapes qui ne sont pas dans puppet, (ou pas encore)
Réplication dns (slave dns)
Si on veut installer des domaines et faire la gestion du dns, on doit avoir des serveurs dns slaves. Koumbit a déjà plusieurs serveurs.
Il est important d'activer le ssl sur le bureau alternc avant de faire les étapes suivantes parce que le transfert des données par https doit être préféré.
Voici en vrac les étapes.
dans puppet, ajouter un morceau de configuration dans les fichiers hieradata/node/ns1.koumbit.net.yaml -- et ns2 et n3 -- un morceau de configuration sous la clef profile::alternc::slavedns::sources qui spécifie les informations de connexion pour obtenir la liste de noms de zones DNS du VPS client:
profile::alternc::slavedns::sources: [... placer l'entrée en ordre alphabétique] client: host: admin.client.com masterip: 199.58.80.42 login: koumbit password: "%{hiera('trocla_lookup::plain::client_koumbit_net_slavedns')}" protocol: https
dans puppet, ajouter dans le fichier hiera de la node du VPS client (ici par exemple, hieradata/node/admin.client.com.yaml) la liste des serveurs DNS où les transferts de zones sont permis. La première entrée doit pointer sur le VPS du client lui-même:
profile::alternc::ns_fqdns: - ns1.client.com - ns2.koumbit.net - ns3.koumbit.net
À noter que par défaut, seulement 2 variables sont utilisées dans le template de zone de alternc: %%ns1%% et %%ns2%%, définies dans /etc/alternc/local.sh Pour un 3e NS, il faut ajouter manuellement une entrée dans le template (/etc/alternc/templates/bind/templates/zone.template. Il est cependant bon de garder l'habitude d'ajouter ns3 à alternc::ns_fqdns en vue d'une future automatisation
- rouler puppet sur le VPS client pour configurer bind pour les transferts de zones
- rouler puppet sur ns1/ns2/ns3 pour configurer alternc-slavedns
sur le puppetmaster, récupérer le mot de passe généré (besoin d'être root): trocla get client_koumbit_net_slavedns plain
Attention: le mot de passe ne doit pas contenir de charactères trop funky parce que ça passe par des requêtes http(s) et bind a aussi de la difficulté avec les parenthèses. Donc, un mot de passe contenant une parenthèse va générer une erreur de syntaxe et un warning bind_syntax: syntax error near unexpected token `('. Puis, un mot de passe contenant des ! ou des & va affiché un Username/Password Authentication Failed dans les logs de /usr/sbin/alternc-slavedns -d et, dans l'interface d'alternc, on va voir Transfer failed dans les zones DNS gérées.
Donc, Veiller à modifier le mot de passe au préalable le cas échéant
visiter https://<fqdn>/adm_slavedns.php
- ajouter le nom d'utilisateur utilisé dans les fichiers hiera de ns1/2/3 (koumbit) avec le mot de passe qu'on vient d'obtenir de trocla
- ajouter l'authorisation des ip des dns slaves: (ns1) 199.58.80.83/32 (ns2) 199.254.238.48/32 (ns3) 67.215.5.103/32
- Vérifier si le processus de transfert se passe bien
- sur ns2 ou ns3, rouler /usr/sbin/alternc-slavedns -d pour voir ce qui se passe.
sur le serveur alternc, dans les logs d'apache, root@host:/var/log/apache2# grep <ip d'un slave> other_vhosts_access.log
- on devrait voir une requête vers une URL d'alternc en provenance du serveur DNS de Koumbit
Installation manuelle
La version 3.5 d'AlternC peut être utilisé par partir des dépôts de Koumbit en ajoutant la configuration suivante aux sources apt:
deb http://debian.koumbit.net/debian alternc35 main
Les builds développement à partir de https://github.com/koumbit/AlternC (branche pu ("proposed updates")) sont disponible dans l'archive "unstable" (plutôt que alternc35). Ces paquets sont produit automatique par jenkins
PHPMyAdmin n'est pas en Debian Buster, donc on a besoin de le chercher de unstable ou un autre source.
phpmyadmin est maintenant dans buster-backports
Ajouter le source de sid:
deb http://deb.debian.org/debian unstable main contrib
Ajouter les preferences:
Package: phpmyadmin Pin: release a=unstable, n=, v=, c=, o=, l= Pin-Priority: 900 Package: * Pin: release a=unstable Pin-Priority: 200
Apt update
apt update
Installer phpmyadmin:
apt install phpmyadmin
Désactiver apparmor pour named:
apt install apparmor-utils aa-disable named
Remplacer les valeurs par défaut d'AlternC dans /etc/alternc/local.sh :
HOSTING="AlternC" FQDN="client.com" PUBLIC_IP="199.58.8x.xx" INTERNAL_IP="199.58.8x.xx" DEFAULT_IP="199.58.80.33" MONITOR_IP="" NS1_HOSTNAME="client.com" NS2_HOSTNAME="ns2.koumbit.net" DEFAULT_MX="mail.client.com" DEFAULT_SECONDARY_MX="" MYSQL_CLIENT="localhost" SQLBACKUP_TYPE="rotate" SQLBACKUP_OVERWRITE="no" ALTERNC_SLAVES="" ALTERNC_HTML="/var/www/alternc" ALTERNC_MAIL="/var/alternc/mail" ALTERNC_LOGS="/var/log/alternc/sites" ALTERNC_LOC="/var/alternc" DATA_PART="/var/alternc" # Shall we enable QUOTA over NFS ? # the default is NO, since this dramatically block /usr/lib/alternc/quota* functions # called from the panel. To enable quota-over-NFS, put yes here NFS_QUOTA=no
Installer alternc:
apt install alternc
- Faire marcher opendkim
- Modifier /etc//system/multi-user.target.wants/opendkim.service
Ajouter -p inet:8891@localhost à la fin de la ligne ExecStart
Ajouter la ligne User=opendkim à la fin de la section "[Service]"
Rouler systemctl daemon-reload opendkim
Redémarrer le service: systemctl restart opendkim
N.B. Des fois ça timeout sur start, pas sur pourquoi -- kienan 2019-08-20 09:13:16
- Tester par envoyer un courriel
Procédure d'installation d'alternc 3.5rcX sur stretch
Note, la version 3.5 met du ssl partout par défaut, enfin.
Préparatifs
- Avoir les entrées DNS pour tous les url que vous allez utiliser de déjà créées et actives. Ça permet d'avoir les bon certificats d'installer à l'installation!
Vous pouvez utiliser une entrée wildcard sur le domaine qui pointe vers le ip de votre alternc.
Les premiers pas, avec puppet
On a maintenant une classe pour l'installation d'alternc avec puppet! C'est beaucoup plus simple.
Un exemple:
include roles::vserver
class { 'roles::alternc':
version => '3.5',
bureau_fqdn => "admin.${::fqdn}",
mailman_fqdn => "listes.${::fqdn}",
roundcube_fqdn => "courriel.${::fqdn}",
ftp_fqdn => "ftp.${::fqdn}",
mx_fqdn => "courrier.${::fqdn}",
install_mailman => true
auto_install_domain => $::fqdn,
}
En gros roles::alternc prend soin de configurer :
- apache+php
- mariadb
- la db d'alternc et les accès pour installation
- définir les répos de Koumbit soit testing ou unstable
- acl, mailman, roundcube
- alternc-mailman, alternc-certbot
- roule le alternc.install
Voir la classe pour plus de détails sur chaque paramètre et les paramètres disponible.
bugs d'installation avec puppet
- problème avec l'installation du koumbit-keyring redmine:27680
- problème avec les ns0/ns3 dans le fichier de zone il n'a pas d'expension des variables, ça fait planter la zone, je les mets en commentaires pour le moment (voir le hack dans puppet).
une fois installé, les prochaines étapes
Voici les prochaines après l'installation d'alternC, c'est des étapes qui ne sont pas dans puppet, (ou pas encore)
Réplication dns (slave dns)
Si on veut installer des domaines et faire la gestion du dns, on doit avoir des serveurs dns slaves. Koumbit a déjà plusieurs serveurs.
Il est important d'activer le ssl sur le bureau alternc avant de faire les étapes suivantes parce que le transfert des données par https doit être préféré.
Voici en vrac les étapes.
dans puppet, ajouter un morceau de configuration dans les fichiers hieradata/node/ns1.koumbit.net.yaml -- et ns2 et n3 -- un morceau de configuration sous la clef profile::alternc::slavedns::sources qui spécifie les informations de connexion pour obtenir la liste de noms de zones DNS du VPS client:
profile::alternc::slavedns::sources: [... placer l'entrée en ordre alphabétique] client: host: admin.client.com masterip: 199.58.80.42 login: koumbit password: "%{hiera('trocla_lookup::plain::client_koumbit_net_slavedns')}" protocol: https
dans puppet, ajouter dans le fichier hiera de la node du VPS client (ici par exemple, hieradata/node/admin.client.com.yaml) la liste des serveurs DNS où les transferts de zones sont permis. La première entrée doit pointer sur le VPS du client lui-même (attention, si on veut utiliser un nom custom comme dans l'exemple, ça prend un glue record côté resistraire - sinon utiliser client.koumbit.net):
profile::alternc::ns_fqdns: - ns1.client.com - ns2.koumbit.net - ns3.koumbit.net
À noter que par défaut, seulement 2 variables sont utilisées dans le template de zone de alternc: %%ns1%% et %%ns2%%, définies dans /etc/alternc/local.sh Pour un 3e NS, il faut ajouter manuellement une entrée dans le template (/etc/alternc/templates/bind/templates/zone.template. Il est cependant bon de garder l'habitude d'ajouter ns3 à alternc::ns_fqdns en vue d'une future automatisation
- rouler puppet sur le VPS client pour configurer bind pour les transferts de zones
- rouler puppet sur ns1/ns2/ns3 pour configurer alternc-slavedns
sur le puppetmaster, récupérer le mot de passe généré (besoin d'être root): trocla get client_koumbit_net_slavedns plain
Attention: un mot de passe contenant une parenthèse va générer une erreur de syntaxe et un warning bind_syntax: syntax error near unexpected token `('. Veiller à modifier le mot de passe au préalable le cas échéant
visiter https://<fqdn>/adm_slavedns.php
- ajouter le nom d'utilisateur utilisé dans les fichiers hiera de ns1/2/3 (koumbit) avec le mot de passe qu'on vient d'obtenir de trocla
- ajouter l'authorisation des ip des dns slaves: (ns1) 199.58.80.83/32 (ns2) 199.254.238.48/32 (ns3) 67.215.5.103/32
- Vérifier si le processus de transfert se passe bien
- sur ns2 ou ns3, rouler /usr/sbin/alternc-slavedns -d pour voir ce qui se passe.
sur le serveur alternc, dans les logs d'apache, root@host:/var/log/apache2# grep <ip d'un slave> other_vhosts_access.log
- on devrait voir une requête vers une URL d'alternc en provenance du serveur DNS de Koumbit
Installation manuelle
Si vous avez utilisé puppet pour l'installation, il est naturellement pas nécessaire de faire l'installation manuelle de cette section.
apt-get install alternc
Ceci va install phpMyAdmin, il va demander si on veut configurer apache ou lighttpd, choisir rien.
ProFTPd: indépendemment
Configuration d'AlternC à proprement parler:
- Nom du service: AlternC (par défaut, ou au choix)
Nom de domaine complet du bureau: <fqdn> (par défaut, ou au choix)
l'adresse IP principale de ce serveur: <ip> (prendre par défaut)
adresse IP interne: <ip> (par défaut)
- Use locally found MySQL server? oui (par defaut)
- Path where AlternC's users html files will be located: /var/www/alternc/ (par defaut)
Apres, phpMyAdmin nous écoeure encore:
- Faut-il configurer la base de données de phpmyadmin avec dbconfig-common ? non
Finalement, une fois le package installé, il faut rouler alternc.install:
alternc.install
SSL pour le bureau
On n'a pas besoin de alternc-ssl à ce stade.
Pour que le SSL soit fonctionnel, il faut installer un certificat ssl avec LE. On veut éviter d'aller mettre le cert dans /etc/alternc/apache.pem parce que c'est trop générique et porte à confusion sur les domaines inclus ou non dans le cert... Correction: AlternC se sert du fichier /etc/alternc/apache.pem dans plusieurs fichiers de config qui nécessitent des certificats SSL. Ça porte à confusion et ça ne fonctionne pas très bien avec les certificats letsencrypt (il faut inclure le CAcert séparément si on utilise letsencrypt). On veut donc modifier les templates et les fichiers de configuration manuellement. Une solution simple pour éviter de briser les configurations par défaut imbriquées dans AlternC est de faire un symlink: (ex: ln -s /etc/letsencrypt/live/<MY-EXEMPLE-DOMAIN.NET>/fullchain.pem /etc/alternc/apache.pem )
Comme nous sommes des fans de SslService/LetsEncrypt et de puppet, on installe la classe suivante:
# installe certbot et la conf d'apache pour le .well-know
include roles::service::certbot
Ensuite, on doit exécuter certbot pour l'installation du certificat, le domaine est le domaine du bureau alternc.
# certbot certonly --webroot -w /var/www/letsencrypt/ -d <domain> --dry-run
Ensuite, on veut faire un symlink /etc/alternc/apache.pem vers ce certificat
# ln -s /etc/letsencrypt/live/<domain>/fullchain.pem /etc/alternc/apache.pem
On veut un vhost pour le bureau avec du ssl! On veut réutiliser le template existant /etc/alternc/templates/alternc/apache2.conf et ajouter la conf suivant:
/etc/alternc/templates/alternc/apache2.conf
<IfModule ssl_module> Listen 443 </IfModule> <VirtualHost *:443> AssignUserId www-data www-data Include /etc/alternc/bureau.conf SSLEngine on SSLCertificateFile /etc/letsencrypt/live/%%fqdn%%/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/%%fqdn%%/privkey.pem </VirtualHost>
On veut aussi forcer l'accès en https au bureau d'alternc, on ajoute donc les lignes suivantes au fichier
- /etc/alternc/templates/alternc/bureau.conf
RewriteEngine on RewriteCond %{SERVER_PORT} !443 RewriteRule ^(.*)$ https://%%fqdn%%/$1 [L,R]
Après avoir rouler alternc.install vous allez voir la modification au fichier /etc/alternc/bureau.conf
pour tester la redirection.
# curl -I <votre domaine>
Si ça fonctionne pas, vérifier le FQDN dans le fichier /etc/alternc/local.sh
alternc-ssl (gestion des vhosts ssl)
On expérimente avec alternc-ssl pour la gestion des vhosts d'apache qui ont du ssl. Ici, on gère les certificats avec LE et non pas la méthode de alternc-ssl. C'est du hackage... mais bon.
- SVP sur l'infra de Koumbit, on utilise puppet pour déployer certbot de LE
include roles::service::certbot
D'abord installer le package alternc-ssl apt-get install alternc-ssl
- Installer certbot (on peut installer via puppet, sinon voir la doc spécifique pour l'OS.
créer le dossier /var/www/letsencrypt/
Créer un fichier de configuration /etc/letsencrypt/cli.ini
# Configuration par défaut pour les certs letsencrypt # Use a 4096 bit RSA key instead of 2048 rsa-key-size = 4096 # Register with the specified e-mail address email = ssl@rt.koumbit.net # Use a text interface instead of ncurses text = True # Use the webroot authenticator. authenticator = webroot # Default Webroot path (shared) # This is where the .well-known/acme-challenge dir will be created for every cert validation webroot-path = /var/www/letsencrypt/
- /etc/alternc/templates/apache2/vhost-ssl.conf et url-ssl.conf et vhost-mixssl.conf doivent être modifier pour utiliser le path des certs de LE.
- SSLCertificateFile %%CRT%% - SSLCertificateKeyFile %%KEY%% - %%CHAINLINE%% + SSLCertificateFile /etc/letsencrypt/live/%%fqdn%%/fullchain.pem + SSLCertificateKeyFile /etc/letsencrypt/live/%%fqdn%%/privkey.pem
Lancer la commande alternc.install -f
bug d'installation de alternc-ssl 3.3.11 sur stretch
Paramétrage de alternc-ssl (3.3.11) ... PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /usr/lib/alternc/quota _init:26 Stack trace: #0 {main} thrown in /usr/lib/alternc/quota_init on line 26 dpkg: erreur de traitement du paquet alternc-ssl (--configure) :
alternc-certbot
Télécharger:
wget https://github.com/AlternC/alternc-certbot/releases/download/0.0.13/alternc-certbot_0.0.13_all.deb
Installer:
dpkg -i alternc-certbot_0.0.13_all.deb alternc.install
Écouter sur le 443 (si ce ne le fait pas déjà):
cat > /etc/apache2/conf-available/port-ssl.conf <<<EOF Listen 443 EOF a2enconf port-ssl.conf service apache2 restart
N.B.: alternc-certbot écrit /etc/alternc/apache.pem en faisant:
# eg. FQDN=bureau.koumbit.net
cat /etc/letsencrypt/live/$FQDN/privkey.pem > /etc/alternc/apache.pem
cat /etc/letsencrypt/live/$FQDN/fullchain.pem >> /etc/alternc/apache.pem
N.B. alternc-certbot utilise /var/lib/letsencrypt pour son well-known
Dovecot
Dovecot forcer le TLS/SSL
- Présentation du ssl/tls dans dovecot
- Le spécifique avec commentaire faire le débug
Voyons voir pour activer le ssl comme "required"
- NOTE
- ssl=required: SSL/TLS is always required, even if non-plaintext authentication mechanisms are used. Any attempt to authenticate before SSL/TLS is enabled will cause an authentication failure. Changer la configuration dans le fichier /etc/alternc/templates/dovecot/conf.d/95_alternc.conf
ssl = required
Dovecot écouter seulement en local
J'ai documenté ça ici: DovecotConfiguration#A.2BAMk-coutez_en_localhost
postfix
Config ssl pour postfix
Voici les petits changements à faire dans le template.
diff --git a/alternc/templates/alternc/postfix/postfix.cf b/alternc/templates/alternc/postfix/postfix.cf index 991d05f..5506b0b 100644 --- a/alternc/templates/alternc/postfix/postfix.cf +++ b/alternc/templates/alternc/postfix/postfix.cf @@ -22,16 +22,17 @@ smtpd_client_connection_rate_limit=50 smtp_mx_session_limit = 1 #### TLS options smtpd_use_tls = yes -smtpd_tls_dcert_file = /etc/alternc/apache.pem -smtpd_tls_dkey_file = $smtpd_tls_dcert_file +smtpd_tls_dcert_file = /etc/letsencrypt/live/< FQDN >/fullchain.pem +smtpd_tls_dkey_file = /etc/letsencrypt/live/< FQDN >/privkey.pem smtpd_tls_CApath = /etc/ssl/certs/ -smtpd_tls_key_file = $smtpd_tls_dcert_file +smtpd_tls_CAfile = /etc/letsencrypt/live/< FQDN >/chain.pem +smtpd_tls_key_file = $smtpd_tls_dkey_file smtpd_tls_cert_file = $smtpd_tls_dcert_file smtpd_tls_loglevel = 0 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s smtp_tls_dcert_file = $smtpd_tls_dcert_file -smtp_tls_dkey_file = $smtpd_tls_dcert_file +smtp_tls_dkey_file = $smtpd_tls_dkey_file smtp_tls_CApath = $smtpd_tls_CApath smtpd_tls_auth_only = no #SASL options @@ -69,9 +70,9 @@ virtual_mailbox_limit = 0 mailbox_size_limit = 0 enable_original_recipient = no smtp_tls_dcert_file = $smtpd_tls_dcert_file -smtp_tls_dkey_file = $smtpd_tls_dcert_file +smtp_tls_dkey_file = $smtpd_tls_dkey_file smtp_tls_CAfile = $smtpd_tls_CAfile -smtp_tls_key_file = $smtpd_tls_dcert_file +smtp_tls_key_file = $smtpd_tls_dkey_file smtp_tls_cert_file = $smtpd_tls_dcert_file smtp_use_tls = yes smtp_tls_security_level = may
proftpd
- alternc.install s'occupe du gros de la configuration pour nous, il ne reste qu'à configurer le domaine et le TLS pour proftpd
Il faut d'abord un sous-domaine pour le service ftp. L'idée ici, c'est que apache puisse répondre pour la validation de letsencrypt. On peut en utiliser un existant (ex: sous-domaine pour accedé au bureau alternc ou autre) ou bien en créer un ftp.exemple.org
## Exemple on peut faire une redirection vers quelque chose d'autre. ## Notez l'exclusion de .well-known dans la redirection <Virtualhost *:80> ServerName ftp.exemple.org RewriteEngine On RewriteCond %{REQUEST_FILENAME} !/.well-known/ RewriteRule ^/(.*)$ https://www.example.org/$1 [R=301,L] </Virtualhost>
- Créer un certificat TLS avec letsencrypt pour le domaine
On peut en profiter pour modifier le vhost ci-haut et ajouter une redirection vers le port 443
Ajouter le certificat ssl à la configuration de proftpd /etc/alternc/template/proftpd/proftpd.conf et relancer alternc.install ( ceci va modifer le fichier /etc/proftpd/proftpd.conf )
## On fait les modifs suivantes à la config TLS -- # Server's certificate -- TLSRSACertificateFile /etc/alternc/apache.pem -- # TLSRSACertificateKeyFile /etc/ftpd/server.key.pem -- -- # CA the server trusts -- # TLSCACertificateFile /etc/ftpd/root.cert.pem ++ # Server's certificate ++ TLSRSACertificateFile /etc/letsencrypt/live/ftp.exemple.org/fullchain.pem ++ TLSRSACertificateKeyFile /etc/letsencrypt/live/ftp.exemple.org/privkey.pem ++ ++ # CA the server trusts ++ # TLSCACertificateFile /etc/letsencrypt/live/ftp.exemple.org/chain.pem
## on peut également utiliser un protocole plus récent que celui qui date de la vielle conf d'alternc. ## Est-ce que ceci peut nuire à l'utilisation du service? -- TLSProtocol TLSv1 ++ TLSProtocol TLSv1.2
On repart le service:
service proftpd restart
finalement, il faut changer la variable ftp_human_name dans l'interface web d'alternc ( Admin Control Panel -> Configure AlternC variables )
bind9
sécuriser bind, écouter juste sur localhost
/etc/alternc/templates/bind/named.conf.options
ajouter les lignes suivantes:
listen-on { 127.0.0.1; }; listen-on-v6 { ::1; };
message d'erreur dans les logs
the working directory is not writable
named[1669]: the working directory is not writable
changer les permissions...
# chown -R bind:root /var/cache/bind # service bind9 reload
zone transfer 'exemple.net/AXFR/IN' denied
Ceci à été mis à jour ici: https://github.com/Koumbit/AlternC/commit/f77a19e24d5ae4e0567b3ef7958d553b7595f96e
named[10356]: client ::1#12345 (exemple.net): zone transfer 'exemple.net/AXFR/IN' denied
C'est la commande suivante qui échoue car localhost est résolut en ipv6 (::1)
class/m_dom.php: exec('/usr/bin/dig AXFR "' . escapeshellcmd($domain) . '" @"' . escapeshellcmd($ns) . '"', $axfr);
La config de bind ne prend pas ipv6 par défaut: /etc/alternc/template/bind/named.conf.options
-- allow-transfer { "allslaves"; }; -- 127.0.0.1; ++ allow-transfer { "allslaves"; "internal"; }; ++ 127.0.0.1; ::1;
Troubleshooting
alternc 3.3.11 => opendkim dans stretch
La configuration de opendkim dans le package d'alternc 3.3.11 est pour jessie et ne fonctionne pas dans stretch. On peut d'abord utiliser le fix détaillé ici: StretchUpgrade#opendkim
/lib/opendkim/opendkim.service.generate systemctl daemon-reload service opendkim restart
Il faut ensuite mettre à jour le template: /etc/alternc/templates/opendkim.conf
Il faut minimalement ajouter une entrée pour le socket
# We need the socket where this filter should listen for milter # connections from the MTA. Socket local:/var/run/opendkim/opendkim.sock
Ensuite, on roule alternc.install -f
AlternC propose la conf par défaut de opendkim: https://github.com/AlternC/AlternC/blob/stable-3.1/stretch/opendkim.conf Documentation d'opendkim: http://www.opendkim.org/opendkim.conf.5.html
Apache ne démarre pas...
apache mod itk
Invalid command 'AssignUserId', perhaps misspelled or defined by a module not included in the server configuration
Est-ce que vous avez bien activé le module itk dans apache?
première embuche
Suite à une instalation d'Alternc, apache se plaint avec le message suivant et ne démarre pas,
root@speedy:/etc/alternc# apache2ctl -t apache2: Syntax error on line 216 of /etc/apache2/apache2.conf: Syntax error on line 77 of /etc/apache2/conf-enabled/alternc.conf: Syntax error on line 36 of /etc/alternc/bureau.conf: No matches for the wildcard '*.conf' in '/etc/alternc/apache-panel.d', failing (use IncludeOptional if required) Action '-t' failed. The Apache error log may have more information.
On met en commentaire (temporairement) la ligne suivante et on roule alternc.install un autre fois...
--- a/alternc/templates/alternc/bureau.conf +++ b/alternc/templates/alternc/bureau.conf @@ -33,5 +33,6 @@ # will be used to define aliases such as /javascript /webmail /squirrelmail ... - Include /etc/alternc/apache-panel.d/*.conf +# erreur voir https://wiki.koumbit.net/AlternCInstallation + IncludeOptional /etc/alternc/apache-panel.d/*.conf
Ici, on devrait utiliser IncludeOptional disponible dans +2.3.6 ça éviterait l'erreur.
deuxième embuche
root@speedy:/etc/alternc# apache2ctl -t AH00526: Syntax error on line 45 of /etc/apache2/conf-enabled/alternc.conf: Either all Options must start with + or -, or no Option may. Action '-t' failed. The Apache error log may have more information.
Bon ici, le fond de l'histoire c'est que ce fichier de configuration n'est pas adapté pour jessie encore. Une piste est d'aller chercher le bon fichier dans la version pour jessie. https://github.com/fser/AlternC/blob/dd74506ba528df899e2f806a0141e868dc42c438/jessie/apache2.conf
Aller le mettre ici: /etc/alternc/templates/alternc/apache2.conf
Ensuite, on roule alternc.install et bingo.
Erreur SSL dovecot
Alternc veut absolument faire la gestion des certificats ssl de dovecot dans le template 96_ssl.conf
# cat 96_ssl.conf # Don't change this file, it will be overwriten by alternc.install. Change ssl parameters in a file named 99_ssl.conf instead ssl_cert = </etc/alternc/apache.pem ssl_key = </etc/alternc/apache.pem
On ne veut pas ça, on veut gérer les certs ssl d'une façon indépendante pour le service de mail en générale.
On va donc créer un fichier (comme proposé dans les commentaires du fichier 96_ssl.conf) 99_ssl_override.conf ici: /etc/dovecot/conf.d Oui, on ne gère pas ça avec les templates.
ssl_cert = </etc/letsencrypt/live/<FQDN>/fullchain.pem ssl_key = </etc/letsencrypt/live/<FQDN>/privkey.pem
restart de dovecot
Vhosts pétés
Si les vhosts marchent pas, c'est peut-être parce qu'on roule apache moins de 2.4, pour lequel il faut ajouter:
root@ques0:/etc/apache2/conf.d# cat > name-virtual.conf NameVirtualHost *:80 root@ques0:/etc/apache2/conf.d# service apache2 restart
connect to Milter service
Bug d'alternc, symptôme:
Jan 30 13:10:54 ques0 postfix/smtpd[21716]: warning: connect to Milter service inet:127.0.0.1:8891: Connection refused
Workaround:
root@ques0:/etc/opendkim# mv KeyTable.alternc-tmp KeyTable root@ques0:/etc/opendkim# mv SigningTable.alternc-tmp SigningTable root@ques0:/etc/opendkim# ls -al total 16 drwxr-xr-x 3 root root 4096 jan 30 13:16 . drwxr-xr-x 110 root root 4096 jan 30 13:09 .. drwxr-xr-x 2 root root 4096 jan 20 14:30 keys -rw-r--r-- 1 root root 0 jan 27 14:00 KeyTable -rw-r--r-- 1 root root 0 jan 27 14:00 SigningTable -rw-r--r-- 1 root root 20 jan 27 14:00 TrustedHosts
Voir http://alternc.org/ticket/1567#comment:1
Bruit LXC
Cron trop verbeux, voir: 13302 et http://alternc.org/ticket/1545.
Webmail roundcube v.3.2.10
requis
Configurer un vhost dans apache pour connecter à roundcube en https seulement. https://webmail..../
La conf par défaut du package semble maintenant compatible avec jessie, sinon voir la conf upstream
Avoir le mot de passe root mysql en main. voir /root/.my.cnf
Si on est sur stretch, on peut installer le package php-net-idna2. Si on est sous jessie, on peut définir les répos de stretch et aller installer le package avec la dépendence, ça devrait rien casser.
php-net-idna2 c'est un requis dans l'installer web de roundcube.
installation
On passe à l'installation maintenant.
apt-get install -t jessie-backports roundcube roundcube-plugins
- Faut-il configurer la base de données de roundcube avec dbconfig-common ? oui,
- Laissez le champs vide pour pour roundcube, ça va générer un nouveau mot de passe.
apt-get install alternc-roundcube
voir les autres détails, non alternc-roundcube ici : RoundCubeConfiguration
La version 3.2.10 de alternc-roundcube génère un fichier de configuration ici : /etc/roundcube/main.inc.php c'est une copie du fichier template /etc/alternc/templates/roundcube/main.inc.php
La version de roundcube dans les backports de jessie utilise un fichier ici /etc/roundcube/config.inc.php On bouge donc ce fichier de conf et on fait un lien symbolique vers le fichier de conf de alternc.
On doit ajouter la ligne suivante au fichier de configuration
/* Do not set db_dsnw here, use dpkg-reconfigure roundcube-core to configure database ! */ include_once("/etc/roundcube/debian-db-roundcube.php");
Lancer la commande alternc.install pour mettre à jour les configurations.
détails de configuration dans le panneau alternc
Configurer alternc pour que ce nouveau sous domaine soit celui utilisé par défaut quand les autres domaines installés sur le serveur active l'option " Roundcube Webmail access"
tester roundcube pour les plugins alternc
- Créer un compte courriel dans le panneau de controle, ensuite:
- logguer dans le webmail et aller dans paramêtres et mot de passe,
- faire un filtre sieve et le tester
AlternCMailman
voir la page AlternCMailmanInstallation
Alternc testage
Voici liste pour chose à tester!