WIP ébauche ssl
This commit is contained in:
parent
197738c574
commit
b88dddba96
1 changed files with 88 additions and 2 deletions
|
@ -36,8 +36,9 @@ On en profite pour aussi créer une swap de 1G tant qu'à faire.
|
||||||
|
|
||||||
```
|
```
|
||||||
# dd if=/dev/zero of=/swapfile.img bs=1M count=1000
|
# dd if=/dev/zero of=/swapfile.img bs=1M count=1000
|
||||||
# chmod 600 /var.img
|
# chmod 600 /swapfile.img
|
||||||
# mkswap
|
# mkswap -LSWAP
|
||||||
|
# echo "/swapfile.img none swap sw 0 0" >> /etc/fstab
|
||||||
```
|
```
|
||||||
|
|
||||||
On chiffre le volume en LUKS avec `cryptsetup`. Choisissez une passphrase, vous aller devoir la taper à chaque démarrage dans la console de Scaleway. Pas très souvent si tout est stable ! :-)
|
On chiffre le volume en LUKS avec `cryptsetup`. Choisissez une passphrase, vous aller devoir la taper à chaque démarrage dans la console de Scaleway. Pas très souvent si tout est stable ! :-)
|
||||||
|
@ -81,3 +82,88 @@ Filesystem Size Used Avail Use% Mounted on
|
||||||
# Installation de Mailcow
|
# Installation de Mailcow
|
||||||
|
|
||||||
## Pré-requis
|
## Pré-requis
|
||||||
|
|
||||||
|
Il vous faut un nom de domaine ! Il faudra choisir quel FQDN utiliser, le plus classique étant `mail.domain.tld`.
|
||||||
|
|
||||||
|
Au niveau de vos entrées DNS, il vous faudra un champ A et un MX. Plus de détails sur le [README](https://github.com/andryyy/mailcow#before-you-begin-prerequisites).
|
||||||
|
|
||||||
|
On supprime exim4, car Mailcow utilise postfix.
|
||||||
|
|
||||||
|
```
|
||||||
|
# apt purge exim4 exim4-base exim4-config exim4-daemon-light
|
||||||
|
```
|
||||||
|
|
||||||
|
Puis on télécharge le script d'installation, on édite la configuration et on lance l'installation.
|
||||||
|
|
||||||
|
```
|
||||||
|
# wget -O - https://github.com/andryyy/mailcow/archive/v0.14.tar.gz | tar xfz -
|
||||||
|
# cd mailcow-0.14
|
||||||
|
# vim mailcow.config
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Note** : Le webmail par défaut est Roundcube. Si vous allez utiliser un smartphone avec synchronisation des contacts et agenda, choisissez plutôt SOGo dans le fichier de config.
|
||||||
|
|
||||||
|
Laissez-vous guider par le script d'installation.
|
||||||
|
|
||||||
|
```
|
||||||
|
# ./install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
# Fini
|
||||||
|
|
||||||
|
Voilà, c'est fini ! Il vous reste à créer votre premier compte mail via l'interface d'admin.
|
||||||
|
|
||||||
|
Si vous avez des questions ou besoin d'aide, n'hésitez pas à ouvrir un ticket (an anglais !) ici. Sinon demandez-moi sur [Twitter](https://twitter.com/benpro82) ou par [Mail](mailto:benoit[arobase]benpro.fr).
|
||||||
|
|
||||||
|
# Bonus : Certificat client X.509
|
||||||
|
|
||||||
|
L'idée est de restreindre l'accès au services web (webmail et admin), et mail (SMTPS/IMAPS) via un certificat client X.509. Sans ce certificat, impossible d'accéder à quoi que ce soit.
|
||||||
|
|
||||||
|
> **Note** : Cela remplace le certificat Let's Encrypt utilisé par Mailcow.
|
||||||
|
|
||||||
|
Pour cela il faut mettre en place une `PKI` et émettre un certificat client. J'utilise l'outil [shellPKI](https://wiki.evolix.org/HowtoOpenVPN#mise-en-place-dune-pki-avec-shellpki-openbsd-et-debian) pour ça.
|
||||||
|
|
||||||
|
```
|
||||||
|
# cd /usr/local
|
||||||
|
# git clone https://forge.evolix.org/shellpki.git
|
||||||
|
# cd shellpki
|
||||||
|
# install -d -m 700 /etc/shellpki /etc/ssl/clients
|
||||||
|
# sed -i 's#/etc/openvpn/ssl#/etc/shellpki#g' openssl.cnf
|
||||||
|
# install -m 600 openssl.cnf /etc/shellpki/
|
||||||
|
# sed -i -e 's#PREFIX=.*#PREFIX=/etc/shellpki#' -e 's#WWWDIR=.*#WWWDIR=/etc/ssl/clients#' shellpki.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Éditer `/etc/shellpki/openssl.cnf` et initialiser shellPKI. Le plus important est de remplir le « Common Name », par exemple `ca.domain.tld`.
|
||||||
|
|
||||||
|
```
|
||||||
|
# vim /etc/shellpki/openssl.cnf
|
||||||
|
# ./shellpki.sh init
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensuite on génère un
|
||||||
|
|
||||||
|
On obtiens un certificat et une clé dans `/etc/shellpki/ca/` que l'on peut positionner sur nginx, dovecot et postfix.
|
||||||
|
|
||||||
|
```
|
||||||
|
# sed -i -e 's#/etc/ssl/mail/mail.crt#/etc/shellpki/ca/cacert.pem#' \
|
||||||
|
-e 's#/etc/ssl/mail/mail.key#/etc/shellpki/ca/private.key#' \
|
||||||
|
/etc/nginx/sites-available/mailcow.conf /etc/postfix/main.cf \
|
||||||
|
/etc/dovecot/dovecot.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
Générer un certificat client
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Autres actions
|
||||||
|
|
||||||
|
Voici une liste de tâches non exhaustives à faire de votre côté que je ne documente pas, non obligatoire mais conseillé…
|
||||||
|
|
||||||
|
- Activer un pare-feu sur votre machine, par exemple `ufw` ;
|
||||||
|
- Monitorer votre serveur ;
|
||||||
|
- S'assurer du suivi des mises à jour ;
|
||||||
|
- Faire des sauvegardes ;
|
||||||
|
- …
|
||||||
|
|
Loading…
Reference in a new issue