Skip to content
This repository has been archived by the owner on Dec 11, 2020. It is now read-only.

MTES-MCT/rieau-infra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RIEAU INFRA

CircleCI

Infrastructure de déploiement de RIEAU

En dev

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

En prod

Administration du cluster Kubernetes avec kubeadm.

Préparation du Host

  • 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

Installation du cluster Kubernetes

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/

Installation de Helm

Helm

Client

curl -L https://git.io/get_helm.sh | sudo bash

Serveur Tiller

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