Résumé
Machine virtuelle sur gaillard
- RAM 1Go
- DD: 20Go
- IP: 91.216.110.20
- PTR: mail.grenode.net. ns3.grenode.net. outils.grenode.net
DNS faisant autorité sur grenode.{net,org}
L'idée c'est que la machine outils soit autoritaire sur les nom de domaine grenode.net et grenode.org, et que notre registar, Gandi face office de DNS secondaire. C'est bind qui fait le boulot et named.conf.local ressemble à ça :
acl slaves {
217.70.177.40; // ns6.gandi.net
};
zone "grenode.net" {
type master;
file "/etc/bind/db.grenode";
allow-transfer { slaves; };
};
zone "grenode.org" {
type master;
file "/etc/bind/db.grenode";
allow-transfer { slaves; };
};
Et après faut aller voir le fichier db.grenode.
Les commandes tapées :
sudo apt-get install bind9 sudo vim /etc/bind/named.conf.local sudo vim /etc/bind/db.grenode sudo invoke-rc.d bind9 restart
Les sites web sur outils
Ça ce passe d'abord sur Prendre en main ikiwiki a Grenode puis ici pour les détails techniques.
Apache
Installation initiale pour grenode.net
sudo apt-get install apache2
sudo mkdir /var/www/grenode.net
sudo vim /var/www/grenode.net/index.html
sudo vim /etc/apache2/sites-available/grenode.net
sudo a2ensite grenode.net
sudo invoke-rc.d apache2 restart
Rajout du fichier /etc/apache2/conf.d/cgi :
AddHandler cgi-script .cgi
Conf apache des sites web
Allez donc voir les fichiers dans /etc/apache2/sites-available/ .
Installation ikiwiki
À partir des recommandations de "git repository setup" et "ikiwiki setup".
Ajout d'un utilisateur pour la copie du wiki qui sera utilisée pour le site web et ajout du groupe d'utilisteur qui pourront modifier le wiki.
sudo adduser --disabled-password grenode-ikiwiki
sudo addgroup grenode-web
sudo adduser grenode-ikiwiki grenode-web
sudo mkdir -p /var/www/grenode.net/
sudo chown grenode-ikiwiki:grenode-web /var/www/grenode.net/
Création d'un ikiwiki standard et affinage selon nos besoins :
- changer les différents chemins liés à l'emplacement du site ;
- wrappergroup = grenode-web ;
- umask = 002 ;
- décommenter les deux lignes git_wrapper et git_wrapper_mode ;
- et plein de cuisine ikiwiki .
.
sudo su - grenode-ikiwiki
ikiwiki --setup /etc/ikiwiki/auto.setup
rm -rf public_html
mv grenode.setup .ikiwiki/ikiwiki.setup
mv grenode src
mv grenode.git web.git
vim src/.git/config
vim .ikiwiki/ikiwiki.setup
ikiwiki --setup ikiwiki.setup
exit
Donne la possibilité à tout membre du groupe grenode-web de modifier le dépot git.
sudo chown -R grenode-ikiwiki:grenode-web web.git
Rajoute notre ikiwiki dans la liste à mettre à jour lors d'une mise à jour du paquet ikiwiki
sudo sh -c 'echo "grenode-ikiwiki /home/grenode-ikiwiki/.ikiwiki/ikiwiki.setup" >> /etc/ikiwiki/wikilist'
Ajout la possiblité d'executer des CGI (Options ExecCGI)
sudo vim /etc/apache2/sites-available/grenode.net
Dans un deuxième temps, cet ikiwiki a été renommé en pub.setup et il se construit à partir des données du répertoire pub du dépot git. Un autre ikiwiki à été créer sur le même principe mais à la racine du dépot git. Cet ikiwiki est accesible à l'adresse doc.grenode.net avec une authentification par mot de passe (pour y avoir accès, il faut vous rajouter au fichier .htpasswd comme indiqué ici).
Envoi des notifications de commit sur IRC
L'envoi des notifications pour le robot IRC se fait à l'aide d'un script
post-receive placé dans ~grenode-ikiwiki/web.git/hooks
.
Courrier de Grenode
Intro sur Courrier électronique.
Listes de grenode
Grenode dispose de listes de discussion. Pour cela nous utilisons le logiciel sympa qui est installé sur la machine outils. Le nom de domaine utilisé est listes.grenode.net et on peut consulter l'interface web.
Note sur l'installation de sympa
Pas de « domaine virtuel » : un fichier d'alias (/etc/sympa/sympa.aliases est gérer par sympa et inclu dans postfix).
La création de liste est reservée aux postmasters.
Les adresses mail des postmasters sont indiquées dans le fichier /etc/sympa/sympa.conf. Pour recevoir un mot de passe, il faut s'enregistrer dans sympa par la procédure classique sur l'interface web.
Chiffrement des mails avec kuvert
- Est-ce que kuvert conserve le champ From: ? C'est à dire, est-ce que nous recevrons bien des mails avec root@machine.grenode.net ?
Oui
- Si c'est le cas, dans la clé GPG générée, je rajouterais une uid root@machine.grenode.net par machine. Cela simplifirait la lecture des mails.
Oui, c'est a faire... sudo -H -u kuvert-machines gpg --edit-key machines
- Du moment que outils & les autres machines se trouvent dans un même lieu physique, cela me va ! Dans le cas contraire, nous pourrons alors installer kuvert directement sur les machines concernées où faire une seconde paserelle...
Cela voudrait-il dire que sur passavant on installerait un kuvert ?
kuvert est un programe qui se place entre le MUA et le MTA pour chiffer/signer les mails envoyés. Il fonctionne avec un daemon kuvert et un wrapper kuvert_submit pour soumettre des mails au daemon.
Dans son fonctionnement « classique », tout fonctionne dans l'espace de l'utilisateur avec un fichier de configuration .kuvert, un répertoire pour la queue de mail à traiter par le daemon .kuvert_queue et un répertoire temporaire.
Coté kuvert
L'idée est de créer deux utilisateurs système dont le but est de dispatcher les messages des adresses root AT grenode.net et machines AT grenode.net. Ces utilisteurs sont kuvert-root et kuvert-machines, ils ont respectivement /etc/kuvert/root et /etc/kuvert/machines comme HOME. Et pour chacun des deux, on a alors les fichiers .kuvert et .forward ainsi qu'un trousseau de clés dans le repertoire .gnupg .
Le fichier .forward ressemble à ça :
| "kuvert_submit user1@grenode.net user2@grenode.net ..."
Le fichier .kuvert à ça (pour kuvert-root) :
# logging to syslog, which facility? defaults to no syslog
syslog mail
# where to spool mails and temporary files
queuedir /var/spool/kuvert/root/queue
tempdir /var/spool/kuvert/root/tmp
# how often to check the queue, in seconds
interval 10
# add an x-mailer header?
identify f
msp /usr/sbin/sendmail -om -oi -oem
can-detach t
defaultaction fallback-all
alwaystrust t
use-agent t
Le trousseau de clé contient les clé publiques des admins ainsi que la clé privée associée à l'adresse du compte (root AT grenode.net ou machines AT grenode.net). Les clés privées sont uniquement fait pour signer less message (seulement RSA 4096).
D'autre part pour fonctionner, kuvert a besoin d'un répertoire de queue et d'un répertoire temporaire. Nous utilisons les répertoires suivant :
/var/spool/kuvert/machines/queue
/var/spool/kuvert/machines/tmp
/var/spool/kuvert/root/queue
/var/spool/kuvert/root/tmp
Coté postfix
/etc/mailname:
outils.grenode.net
/etc/postfix/main.cf:
virtual_alias_maps = hash:/etc/postfix/virtual
smtpd_recipient_restrictions =
hash:/etc/postfix/recipient_restrictions
permit_mynetworks
reject_unauth_destination
/etc/postfix/recipient_retrictions:
machines AT grenode.net permit_mynetworks, reject
kuvert-machines AT grenode.net permit_mynetworks, reject
/etc/postfix/virtual:
machines AT grenode.net kuvert-machines
root AT grenode.net kuvert-root
root AT outils.grenode.net machines AT grenode.net
Postgrey
Postgrey est un démon de greylisting ; le greylisting consiste à demander au serveur qui essaie de nous envoyer un mail « steup, réessaye dans 10 minutes, là, je me sens pas bien… ».
On installe :
apt-get install postgrey
On change la conf dans /etc/default/postgrey
:
POSTGREY_OPTS="--inet=10023 --delay=120 --max-age=30"
Ensuite, on ajoute à la configuration de postfix, dans le main.cf :
smtpd_recipient_restrictions = …
check_policy_service inet:127.0.0.1:10023
…
Attention Le démon postgrey sur debian a un petit bug, le restart ne fonctionne pas ; il faut tuer le démon à la main, puis on peut le redémarrer.
Pour éviter que certains domaines soient mis en liste grise, on peut les
ajouter au fichier /etc/postgrey/whitelist_clients.local
, sous la forme
d'expressions rationnelles. Pour Grenode, on y ajoute nous-même, les membres
(Antigone, Grésille, Illyse et Rézine), les structures dont nous sommes
membres (Gitoyen et FFDN) et notre fournisseur de collecte (FDN).
# postgrey local whitelist for mail client hostnames
# reseaux de confiance
/^.*grenode\.net$/
/^.*bibliothequeantigone\.org$/
/^.*gresille\.org$/
/^.*illyse\.org$/
/^.*illyse\.net$/
/^.*illyse\.fr$/
/^.*rezine\.org$/
/^.*gitoyen\.net$/
/^.*ffdn\.org$/
/^.*fdn\.fr$/
À noter qu'il s'agit du reverse de l'adresse IP qui se connecte au postfix, et non de l'expéditeur du mail, qui est beaucoup plus facilement falsifiable.
L'installation en commande
sudo su
adduser --system --home /etc/kuvert/root kuvert-root
adduser --system --home /etc/kuvert/machines kuvert-machines
sudo -H -u kuvert-root gpg --gen-key
sudo -H -u kuvert-machines gpg --gen-key
sudo -H -u kuvert-machines gpg --import < cle_gpg.asc
sudo -H -u kuvert-root gpg --import < cle_gpg.asc
sudo -u kuvert-root vim /etc/kuvert/root/.kuvert
sudo -u kuvert-machines cp /etc/kuvert/root/.kuvert /etc/kuvert/machines/
sudo -u kuvert-machines vim /etc/kuvert/machines/.kuvert
mkdir -p /var/spool/kuvert/root
chown kuvert-root\: /var/spool/kuvert/root
chmod 700 /var/spool/kuvert/root
mkdir -p /var/spool/kuvert/machines
chown kuvert-machine\: /var/spool/kuvert/machines
chmod 700 /var/spool/kuvert/machines
sudo -u kuvert-root vim /etc/kuvert/root/.forward
sudo -u kuvert-machines vim /etc/kuvert/machines/.forward
vim /etc/postfix/main.cf
vim /etc/postfix/recipient_restrictions
vim /etc/postfix/virtual
postmap /etc/postfix/virtual
postmap /etc/postfix/recipient_restrictions
invoke-rc.d postfix reload
Les autres pistes pour chiffrer les messages
- Schleuder : outils tout à fait adapté.
- anubis : même principe que kuvert mais un peu usine à gaz pour ce que l'on veut faire.
- gpg_mail : script shell qui reconstruit le mail en le chiffrant le tout en utilisant le paquet mime-constuct.
apt-cacher
Le but est d'éviter de re-télécharger autant de fois que de machine les paquets debian. Pour l'utiliser il suffit de rajouter le fichier /etc/apt/apt.conf.d/01proxy contenant la ligne :
Acquire::http::Proxy "http://outils.grenode.net:3142";
L'installation est réduite à une commande
apt-get install apt-cacher-ng
Le parefeu sur sauterelle a été modifié pour que tous les membre de grenode puisse y avoir accès.