Infrastructure de déploiement de RIEAU
-
Le SSO
-
Le Mail server
-
Backups:
Lancer un serveur ftp en mode passif pour les tests:
docker-compose -f backup/ftp/docker-compose.yml up -d --build
Renseigner les variables d'environnement:
cp backup/backup.env.sample backup/backup.env
./backup/backup.sh
Restore:
./backup/restore.sh
Administration du cluster Kubernetes avec kubeadm.
- Créer le user ??? avec droits sudo:
addUser ???
usermod -aG sudo ???
-
Sécuriser le serveur en s'inspirant du tuto
-
Retirer le root:
sudo passwd -l root
- Activer authentification 2FA cf tuto:
sudo apt-get install libpam-google-authenticator
google-authenticator
cat << EOF | sudo tee /etc/pam.d/sshd
auth required pam_google_authenticator.so
EOF
cat << EOF | sudo tee /etc/pam.d/sshd
#@include common-auth
EOF
- Restreindre l'accès SSH au certificat pour le user en s'inspirant du tuto:
ssh-copy-id -i ...
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
PermitEmptyPasswords no
StrictModes yes
UseDNS no
X11Forwarding no
PasswordAuthentication no
AllowUsers ???@?.?.?.*
UsePAM yes
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
...
sudo systemctl reload sshd
- Activer le firewall local:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
- Mises à jour automatiques des patchs de sécurité:
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
- Installer fail2ban et l'antivirus ClamAV:
sudo apt install fail2ban clamav clamav-daemon
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
cat << EOF | sudo tee /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
EOF
- Sécuriser la mémoire partagée:
cat << EOF | sudo tee /etc/fstab
tmpfs /run/shm tmpfs defaults,noexec,nosuid 0 0
EOF
-
Changer le timezone:
sudo timedatectl set-timezone Europe/Paris
-
Désactiver le swap:
sudo swapoff -a
# comment lines swap in /etc/fstab
- Hostname unique:
sudo hostnamectl set-hostname rieau.cohesion-territoires.gouv.fr
- Installer le Container runtime Docker
- Installer runc:
sudo apt install runc
, pour corriger le Bug, installer ce fix de runc. - Installer kubeadm
- Contourner le bug:
cat << EOF | sudo tee /etc/systemd/system/kubelet.service.d/12-after-docker.conf
[Unit]
After=docker.service
EOF
-
Le message inoffensif demeure.
-
Création du cluster:
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
-
Installation du CNI Calico:
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
- Créer la classe de stockage local sur le single node
rieau.cohesion-territoires.gouv.fr
:
mkdir -p $HOME/data
kubectl create -f storage/
curl -L https://git.io/get_helm.sh | sudo bash
- Sécurisation préalable:
Création du service account tiller dans le namespace rieau:
kubectl create serviceaccount tiller --namespace rieau
Création du role et de son binding:
kubectl create -f helm/
Pour la création des clés pour la connexion TLS entre le client et le serveur, se placer dans le répertoire k8s/helm et suivre le tuto.
- Installation de Tiller restreint au namespace rieau:
helm init \
--override 'spec.template.spec.containers[0].command'='{/tiller,--storage=secret}' \
--tiller-tls \
--tiller-tls-cert ./tiller.cert.pem \
--tiller-tls-key ./tiller.key.pem \
--tiller-tls-verify \
--tls-ca-cert ca.cert.pem \
--service-account=tiller \
--tiller-namespace=rieau
- Configuration du client:
Test:
helm ls --tls --tls-ca-cert ca.cert.pem --tls-cert helm.cert.pem --tls-key helm.key.pem --tiller-namespace rieau
Installation des certificats client:
cp ca.cert.pem $(helm home)/ca.pem
cp helm.cert.pem $(helm home)/cert.pem
cp helm.key.pem $(helm home)/key.pem
Test:
helm ls --tls --tiller-namespace rieau
-
Le SSO
-
Le Mail server