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
rootautant que possible - chaque perser un user
- le group
dockerest 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
- Accéder donc à
http://localhost:81 - login avec les paramters par default
- Email: admin@example.com
- Password: changeme
- Créer le compte utilisiteur et Changer le mot de passe
- Commencez par créer le proxy pour npm lui-même
- Accèdez à npm avec l'addresse publique pour vérifier le bon fonctionnement du revers proxy
- 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:
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
sudo vim /etc/postfix/sasl_passwd
[ssl0.ovh.net]:587 tonmail@exemple.com:motdepasse
- Remap des adresse (pour éviter d'être vu comme spam ?)
sudo vim /etc/postfix/sender_canonical
/^(.*)@nimbus$/ $1@lavilleavelo.org
- Recharger Postfix
sudo postmap /etc/postfix/sender_canonical
sudo postmap /etc/postfix/sasl_passwd
sudo systemctl restart postfix