Ceci est une ancienne révision du document !
Table des matières
Weekend reboot de l'AMIPO
Décisions
Audiance cible
Tous public / ex: framasoft
Premier service à héberger
Un service à heberger et blinder au cours des prochains mois : Agenda & Contacts partagés via Nextcloud
TODO Tech
- [_] Créer compte Benjamin
- [_] Renforcer la configuration de nginx (bonnes pratiques de sécurité, php, …)
- [_] Renforcer la sécurité de nextcloud
- [_] Configurer nextcloud pour ne permettre dans un premier temps que très peu de stockage par utilisateur et privilégier les services de partage de calendrier et de contact (tout désactiver, sauf Contact, Calendrier, Todo) Webdav, etc.
- [_] Configuration du serveur SMTP
- [_] Mettre en place un backup automatisé des data sur le serveur (nextcloud, l'éventuel CMS, …)
- [_] Ecrire un script pour automatiser le téléchargement des backups à l'exterieur de la machine
- [_] Renforcer la configuration de postgresql (sécurité, perf, …)
- [_] Documenter les choix et delta d'installation de nextcloud
- [x] Finaliser la configuration nginx (redirection, …)
- [_] Automatiser le renouvellement de certificats letsencrypt
- [_] Historiser la config du serveur avec git pour tracer les changements (exemple un repo dans /root/admin-config puis des softlink de /etc/nginx → /root/admin-config/nginx
- [_] Mettre en place un monitoring / alerting des services (homepage, calendriers, contacts, accès nextcloud, ssl, …)
- [_] Dépôt Git pour /etc
- [x] Fix warnings install Nextcloud
TODO orga
- [_] Quand se revoit-on ?
- [_] Comment travail t-on ? Tout le monde à un accès admin pour se connecter depuis chez lui ?
Work done
Mise à jour de l'OS du serveur
Passage de Debian Stretch à Buster : https://www.cyberciti.biz/faq/update-upgrade-debian-9-to-debian-10-buster/
- Remplacement du mot clef stretch par buster dans /etc/apt/sources.list
- sudo apt update
- sudo apt upgrade
- sudo apt dist-upgrade
- sudo apt full-upgrade
- sudo apt –purge autoremove
Paramétrage php.ini
- /etc/php/7.3/fpm/php.ini
opcache.enable = 1 opcache.enable_cli = 1 opcache.interned_strings_buffer = 8 opcache.max_accelerated_files = 10000 opcache.memory_consumption = 128 opcache.save_comments = 1 opcache.revalidate_freq = 1 max_execution_time=128M max_input_time = 20M
Nginx
Installation
sudo apt install nginx
Configuration
Renforcement
Installation de certbot (letsencrypt)
sudo apt-get install certbot python-certbot-nginx certbot certonly -d amipo.fr -d www.amipo.fr --webroot --webroot-path "/var/www/default/" --dry-run certbot certonly -d amipo.fr -d www.amipo.fr --webroot --webroot-path "/var/www/default/"
Installation de postgresql
sudo apt-get install postgresql-11 sudo apt install php7.3-pgsql
Activation de l'extension dans php.ini, décommenter la ligne:
extension=pdo_pgsql
Cron jobs
Exécution du cron de Nextcloud toutes les 5 minutes, penser à cocher l'option Cron dans la page Paramètres de NextCloud.
$ sudo crontab -u www-data -e
- /5 * * * * php -f /var/www/nuage/cron.php
Ressources installation Nextcloud
Création d'un compte et d'un jeu de clef ssh pour un nouvel administrateur
Générer une clé SSH sur le poste de l'administrateur
ssh-keygen -t rsa -b 4096 -C "identifiant_cle"
Créer préalablement un compte pour l'utilisateur bob
sudo adduser --disabled-password bob
puis créer pour l'utilisateur un repertoire .ssh
sudo mkdir /home/bob/.ssh
Copier - coller la clef publique dans le fichier /home/bob/.ssh/authorized_keys
sudo nano /home/bob/.ssh/authorized_keys
Changer le propriétaire du répertoire et du fichier
sudo chown -R bob:bob /home/bob/.ssh/
Ajouter éventuellement l'utilisateur au groupe sudo si il est administrateur
sudo usermod -a -G sudo bob