Tous public / ex: framasoft, pas besoin d'adhérer à l'association.
Un service à héberger et blinder au cours des prochains mois : Agenda & Contacts partagés. Nous essayerons d'administrer un serveur Nextcloud pour remplir cette tâche.
Nous nous motivons pour néttoyer la VM de production AMIPO pour y installer :
Nous commençons en même temps à travailler sur :
La TODO liste des choses à faire et en cours est sur le dépôt AMIPO Plante
Déplacé vers Board sur AMIPO Plante
Passage de Debian Stretch à Buster : https://www.cyberciti.biz/faq/update-upgrade-debian-9-to-debian-10-buster/
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
sudo apt install nginx
Guide de configuration renforcée
# 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; # Prevent Clickjacking Attack (disable frame and iframe from other domain) add_header X-Frame-Options "SAMEORIGIN"; # Add X-XSS Protection add_header X-XSS-Protection "1; mode=block";
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/"
sudo apt-get install postgresql-11 sudo apt install php7.3-pgsql
create role nextcloud_backup; alter role nextcloud_backup encrypted password '_-ihTobM_*Bd6pTFNDhM'; 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;
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
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 /var/nextcloud/backup_nextcloud.sh et sauvegarde dans /var/nextcloud/backups.
Script :
#!/usr/bin/env bash # exec 3>&1 4>&2 # trap 'exec 2>&4 1>&3' 0 1 2 3 # exec 1>backup-nextcloud.log 2>&1 # Everything below will go to the file 'backup-nextcloud.log': echo "------------" DATE_START=`date` echo "[STARTING] Backup of NextCloud ${DATE_START}" echo "Create backup directory..." mkdir -p /var/nextcloud/backups/`date +"%Y%m%d"` echo "Maintenance mode: ON" php /var/www/nuage/occ maintenance:mode --on echo "Backing up database..." pg_dump --username=nextcloud_backup -d nextcloud -h localhost | gzip > /var/nextcloud/backups/`date +"%Y%m%d"`/nextcloud.psql.gz echo "Copying config files..." rsync -Aavx /var/www/nuage/config/ /var/nextcloud/backups/`date +"%Y%m%d"`/config/ rsync -Aavx /var/nextcloud/data/ /var/nextcloud/backups/`date +"%Y%m%d"`/data/ rsync -Aavx /var/www/nuage/themes/ /var/nextcloud/backups/`date +"%Y%m%d"`/themes/ echo "Maintenance mode: ON" php /var/www/nuage/occ maintenance:mode --off echo "Nextcloud should be running: ON" DATE_END=`date` echo "[ENDING] Backup of NextCloud finished on ${DATE_END}"
$ 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'assurer de n'accepter que l'envoi d'email depuis localhost.
Configuration de Nextcloud via le fichier /var/www/nuage/config/config.php :
'mail_smtpmode' => 'sendmail', 'mail_sendmailmode' => 'smtp', 'mail_from_address' => 'ne_pas_repondre', 'mail_domain' => 'amipo.fr',
Utilisations des generateurs :
Dans notre DNS ajouter 2 entry :
Type: TXT Host/Name: _DMARC.amipo.fr Value: v=DMARC1; p=none; rua=mailto:admin@amipo.fr; ruf=mailto:admin@amipo.fr; fo=1
et
Type: TXT Host/Name: amipo.fr Value: v=spf1 a ~all
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