amipo_weekend_reboot
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
amipo_weekend_reboot [2019/12/14 16:15] – [Générer une clé SSH] Jérémy | amipo_weekend_reboot [2020/10/09 07:08] (Version actuelle) – Tag0 Added: amipo serge | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Weekend reboot de l' | ====== Weekend reboot de l' | ||
+ | Pad: https:// | ||
===== Décisions ===== | ===== Décisions ===== | ||
- | ==== Audiance | + | ==== L' |
- | Tous public / ex: framasoft | + | Tous public / ex: framasoft, pas besoin d' |
==== Premier service à héberger ==== | ==== Premier service à héberger ==== | ||
- | Un service à heberger | + | Un service à héberger |
+ | ==== Actions du weekend ==== | ||
+ | Nous nous motivons pour néttoyer la VM de production AMIPO pour y installer : | ||
+ | * Debian 10 (buster) | ||
+ | * nginx | ||
+ | * postgresql | ||
+ | * nextcloud | ||
- | ===== Work done ===== | + | Nous commençons en même temps à travailler sur : |
+ | * une refonte de la page d' | ||
+ | * les divers documents légaux à présenter aux utilisateurs. | ||
+ | |||
+ | ===== TODOs ===== | ||
+ | ==== Technique ==== | ||
+ | |||
+ | La TODO liste des choses à faire et en cours est sur le dépôt [[https:// | ||
+ | |||
+ | - [x] Configuration de DMARC et SPF sur le DNS amipo.fr | ||
+ | - [x] Créer compte Benjamin | ||
+ | - [x] Renforcer la configuration de nginx (bonnes pratiques de sécurité, php, ...) | ||
+ | - [x] Configuration du cron Nextcloud | ||
+ | - [x] Configuration du serveur SMTP | ||
+ | - [x] Mettre en place un backup automatisé des data sur le serveur (nextcloud, l' | ||
+ | - [x] Finaliser la configuration nginx (redirection, | ||
+ | - [x] Fix warnings install Nextcloud | ||
+ | |||
+ | ==== Organisationnel ==== | ||
+ | * [_] Quand se revoit-on ? | ||
+ | * [_] Comment travail t-on ? Tout le monde à un accès admin pour se connecter depuis chez lui ? | ||
+ | |||
+ | ===== Revue / Tests ===== | ||
+ | ==== Ce qui fonctionne ==== | ||
+ | * Création de compte sur Nextcloud | ||
+ | * Création d'un agenda | ||
+ | * Import d'un agenda exterieur dans nextcloud | ||
+ | * Récupération d'un agenda nextcloud sur mon smartphone avec [[ https:// | ||
+ | * La réception des emails envoyés par le serveur | ||
+ | |||
+ | ==== Ce qui ne fonctionne pas ==== | ||
+ | |||
+ | Déplacé vers [[https:// | ||
+ | ==== Actions ==== | ||
+ | * [2019-12-19] Modification de la cronjob pour envoyer un email sans password dans le subject. (en cours de test) | ||
+ | * [2019-12-19] Ajout des privileges manquant sur la table public.oc_cms_pico_websites pour l' | ||
+ | * [2019-12-19] Configuration des politiques SPF et DMARC | ||
+ | * | ||
+ | |||
+ | ===== Work log ===== | ||
==== Mise à jour de l'OS du serveur ==== | ==== Mise à jour de l'OS du serveur ==== | ||
Passage de Debian Stretch à Buster : [[ https:// | Passage de Debian Stretch à Buster : [[ https:// | ||
Ligne 19: | Ligne 65: | ||
* sudo apt --purge autoremove | * sudo apt --purge autoremove | ||
+ | ==== Paramétrage php.ini ==== | ||
+ | <file 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 === | ||
+ | - Par défaut on utilise le domaine amipo.fr | ||
+ | - Toutes les requêtes sur un vhost différent de https:// | ||
+ | - Si la requête match un fichier dans / | ||
+ | - php n'est interprété nulle part si pas explicité. | ||
+ | === Renforcement === | ||
+ | [[ https:// | ||
- | ==== Générer une clé SSH ==== | + | [[ https:// |
+ | <file conf / | ||
+ | # Remove version | ||
+ | server_tokens off; | ||
+ | # Control Buffer Overflow Attacks | ||
+ | client_body_buffer_size 1k; | ||
+ | client_header_buffer_size 1k; | ||
+ | client_max_body_size 1k; | ||
+ | large_client_header_buffers 4 1k; | ||
- | ssh-keygen | + | # Prevent Clickjacking Attack (disable frame and iframe from other domain) |
+ | add_header X-Frame-Options " | ||
+ | |||
+ | # Add X-XSS Protection | ||
+ | add_header X-XSS-Protection | ||
+ | </ | ||
+ | |||
+ | ==== Installation de certbot (letsencrypt) ==== | ||
+ | sudo apt-get install certbot python-certbot-nginx | ||
+ | certbot certonly -d amipo.fr -d www.amipo.fr --webroot --webroot-path "/ | ||
+ | certbot certonly -d amipo.fr -d www.amipo.fr --webroot --webroot-path "/ | ||
+ | ==== Postgresql ==== | ||
+ | |||
+ | === Installation === | ||
+ | sudo apt-get install postgresql-11 | ||
+ | sudo apt install php7.3-pgsql | ||
+ | |||
+ | |||
+ | === Ajout d'un utilisateur pour les backups === | ||
+ | create role nextcloud_backup; | ||
+ | alter role nextcloud_backup encrypted password ' | ||
+ | alter role nextcloud_backup login; | ||
+ | grant connect on nextcloud to nextcloud_backup; | ||
+ | grant usage on schema public to nextcloud_backup; | ||
+ | grant select on all tables in schema public to nextcloud_backup; | ||
+ | grant select on all sequences in schema public to nextcloud_backup; | ||
+ | |||
+ | ==== Cron jobs ==== | ||
+ | |||
+ | Exécution du cron de Nextcloud toutes les 5 minutes, penser à cocher l' | ||
+ | |||
+ | $ sudo crontab -u www-data -e | ||
+ | |||
+ | | ||
+ | |||
+ | ==== Backup ==== | ||
+ | |||
+ | Un backup des fichiers et de la base est créé tous les jours à 2h du matin via le cron de www-data: | ||
+ | |||
+ | sudo crontab -l -u www-data | ||
+ | |||
+ | Le script utilisé est / | ||
+ | |||
+ | Script : | ||
+ | |||
+ | # | ||
+ | |||
+ | # exec 3>&1 4>& | ||
+ | # trap 'exec 2>&4 1>& | ||
+ | # exec 1> | ||
+ | # Everything below will go to the file ' | ||
+ | |||
+ | echo " | ||
+ | DATE_START=`date` | ||
+ | echo " | ||
+ | |||
+ | echo " | ||
+ | mkdir -p / | ||
+ | |||
+ | echo " | ||
+ | php / | ||
+ | |||
+ | echo " | ||
+ | pg_dump --username=nextcloud_backup -d nextcloud -h localhost | gzip > / | ||
+ | |||
+ | echo " | ||
+ | |||
+ | rsync -Aavx / | ||
+ | rsync -Aavx / | ||
+ | rsync -Aavx / | ||
+ | |||
+ | echo " | ||
+ | php / | ||
+ | echo " | ||
+ | DATE_END=`date` | ||
+ | echo " | ||
+ | ==== Configurer l' | ||
+ | |||
+ | $ sudo dpkg-reconfigure exim4-config | ||
+ | |||
+ | Choisir le type de configuration : **internet site; mail is sent and received directly using SMTP** | ||
+ | |||
+ | Répondre aux questions suivantes avec le choix par défaut. S' | ||
+ | |||
+ | Configuration de Nextcloud via le fichier / | ||
+ | |||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | |||
+ | ==== Renforcer notre serveur email avec une politique DMARC et SPF ==== | ||
+ | |||
+ | * [[ https:// | ||
+ | * [[ https:// | ||
+ | |||
+ | Utilisations des generateurs : | ||
+ | * [[ https:// | ||
+ | * [[ https:// | ||
+ | |||
+ | Dans notre DNS ajouter 2 entry : | ||
+ | |||
+ | Type: TXT | ||
+ | Host/Name: _DMARC.amipo.fr | ||
+ | Value: v=DMARC1; p=none; rua=mailto: | ||
+ | |||
+ | et | ||
+ | |||
+ | Type: TXT | ||
+ | Host/Name: amipo.fr | ||
+ | Value: v=spf1 a ~all | ||
+ | | ||
Ligne 30: | Ligne 218: | ||
https:// | https:// | ||
- | ===== Ajouter la clef ssh sur le serveur | + | |
- | Créer préalablement un compte pour l' | + | ===== 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' | ||
+ | ssh-keygen -t rsa -b 4096 -C " | ||
+ | |||
+ | Créer préalablement un compte pour l' | ||
+ | sudo adduser --disabled-password bob | ||
+ | |||
+ | puis créer pour l' | ||
sudo mkdir / | sudo mkdir / | ||
- | Copier - coller la clef publique dans le fichier authorized_keys | + | |
+ | Copier - coller la clef publique dans le fichier | ||
sudo nano / | sudo nano / | ||
+ | | ||
Changer le propriétaire du répertoire et du fichier | Changer le propriétaire du répertoire et du fichier | ||
- | sudo chown -R jchatard:jchatard | + | sudo chown -R bob:bob / |
- | Ajouter éventuellement l' | + | |
+ | Ajouter éventuellement l' | ||
sudo usermod -a -G sudo bob | sudo usermod -a -G sudo bob | ||
+ | | ||
+ | |||
+ | |||
+ | {{tag> |
amipo_weekend_reboot.1576340116.txt.gz · Dernière modification : 2019/12/14 16:15 de Jérémy