Aller au contenu

Installation sur une nouvelle machine

Voici les choix et étapes réalisées pour l'installation sur une nouvelle machine

Idées principales

  • ne pas utiliser l'utilisateur root autant que possible
  • chaque perser un user
  • le group docker est utilisé pour gérer le code partagé.

SSH Hardening

désactiver l’authentification par mot de passe dans /etc/ssh/sshd_config :

PasswordAuthentication no

Puis relancer ssh

sudo systemctl restart ssh

Création d'un nouvel utilisateur

Utilisez ces commentes pour créer un nouvel utilisateur, avec un mot de passe (utilisé pour les commandes sudo)

export newuser=monuser
sudo adduser $newuser
sudo usermod -aG docker,sudo $newuser
# ajoute de la clés public
sudo mkdir -p /home/$newuser/.ssh
echo "ssh-ed25519 AAAAC3Nz... user@machine" | sudo tee -a /home/$newuser/.ssh/authorized_keys
# sécurisation
sudo chmod 700 /home/$newuser/.ssh
sudo chmod 600 /home/$newuser/.ssh/authorized_keys
sudo chown -R $newuser:$newuser /home/$newuser/.ssh

Cloner le depot git

Idealement, les fichers doivent être accessible par tous les admins, sans utiliser le user root

Donc :

# création du dossier
sudo mkdir /opt/infra
# change le owner du dossier pour pouvoir clonner
sudo chown -R antoine:docker /opt/infra
# clone le depot (j'utilise ici github CLI)
gh repo clone lavilleavelo/infra
# reset les permissions pour le contenu du proejt
sudo chown -R antoine:docker /opt/infra
# set group permission with group uid, so new files and new folders inherit the group permissions, while
sudo find /opt/infra -type d -exec chmod g+s {} \;

Post Installation script

Cette section considère une nouvelle installation, pas une migration avec backups

Après la lancement du script d'installation, il y a quelques actions manuelles nécessaires:

1. Accéder à NPM pour créer les premières redirectoion

la console NPM est accéssible depuis le port 81.

Le mieux est de créer une rediction de port avec une commande ssh -L ou bien via VSCode

  1. Accéder donc à http://localhost:81
  2. login avec les paramters par default
  3. Email: admin@example.com
  4. Password: changeme
  5. Créer le compte utilisiteur et Changer le mot de passe
  6. Commencez par créer le proxy pour npm lui-même
  7. Accèdez à npm avec l'addresse publique pour vérifier le bon fonctionnement du revers proxy
  8. Créer les autres hosts

2. Création du coup admin sur Authenik

Une fois la rediction faite, allez sur http://<authentik hostname>/if/flow/initial-setup/

3. Settup MTA

Configuration d'un transfert d'email, en particulier pour signaler un soucis, en suivant la documentation

sudo apt install postfix mailutils
sudo dpkg-reconfigure postfix

(modifier quelques information en fonction de la documentation)

Puis édition de la configuration pour utiliser OVH comme webmail:

  1. sudo vim /etc/postfix/main.cf
relayhost = [ssl0.ovh.net]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
  1. sudo vim /etc/postfix/sasl_passwd
[ssl0.ovh.net]:587 tonmail@exemple.com:motdepasse
  1. Remap des adresse (pour éviter d'être vu comme spam ?) sudo vim /etc/postfix/sender_canonical
/^(.*)@nimbus$/ $1@lavilleavelo.org
  1. Recharger Postfix
sudo postmap /etc/postfix/sender_canonical
sudo postmap /etc/postfix/sasl_passwd
sudo systemctl restart postfix