#!/bin/bash # Script à lancer en tant que root sur un nouveau serveur # pour terminer la configuration juste après apt-get install scodoc9 # On ne place pas ces commandes dans le postinst # car c'est spécifique et optionnel. # Le répertoire de ce script: SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" source "$SCRIPT_DIR/config.sh" source "$SCRIPT_DIR/utils.sh" cd /opt/scodoc || die "Error: chdir to /opt/scodoc" check_uid_root # ------------ VERIF SYSTEME if [ -e /etc/debian_version ] then debian_version=$(cat /etc/debian_version) debian_version=${debian_version%%.*} echo "Detected Debian version: ${debian_version}" if [ "$debian_version" != "12" ] then echo "Erreur: version Linux Debian incompatible" echo "Utiliser un système Debian Bookwork (12)" echo exit 1 fi else echo "can't detect Debian version" exit 1 fi echo "--- Configuration de ScoDoc pour Debian 12" # ------------ CONFIG FIREWALL OPTIONNELLE echo echo "Le firewall aide a proteger votre serveur d'intrusions indesirables." echo -n "Voulez vous configurer un firewall minimal (ufw) ? (y/n) [n] " read -r ans if [ "$(norm_ans "$ans")" = 'Y' ] then echo 'Installation du firewall IP ufw (voir documentation Debian)' echo ' on autorise les connexions ssh et https' apt-get install ufw ufw default deny incoming ufw default allow outgoing ufw allow ssh ufw allow http ufw allow https yes | ufw enable echo echo "firewall ufw activé." echo fi # ------------ CONFIG CROWDSEC OPTIONNELLE echo echo "CrowdSec aide à protéger votre serveur contre les attaques malveillantes en analysant les journaux et en appliquant des mesures de sécurité." echo -n "Voulez-vous installer et configurer CrowdSec ? (y/n) [n] " read -r ans if [ "$(norm_ans "$ans")" = 'Y' ] then echo 'Configuration des dépôts Crowdsec' curl -s https://install.crowdsec.net | sh echo 'Installation de Crowdsec' apt-get install crowdsec crowdsec-nginx-bouncer cscli collections install crowdsecurity/nginx systemctl reload crowdsec echo echo "Crowdsec activé." echo fi # ------------ CONFIG NGINX # --- CERTIFICATS AUTO-SIGNES echo echo "Le serveur Web utilisé par ScoDoc est nginx" echo "Il est possible d'utiliser des certificats cryptographiques" echo "auto-signés, qui ne seront pas reconnus comme de confiance" echo "par les navigateurs, permettent de tester." echo "Si vous avez déjà de vrais certificats, passez cette étape et installez-les ensuite." echo -n 'Voulez-vous générer des certificats ssl auto-signés ? (y/n) [y] ' read -r ans if [ "$(norm_ans "$ans")" != 'N' ] then # génération des certifs: cert.pem key.pem dans /opt/scodoc-data/certs/ su -c "(cd $SCODOC_VAR_DIR && mkdir -p certs && openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -keyout certs/key.pem -out certs/cert.pem)" "$SCODOC_USER" fi # ------------ CREATION ENVIRONNEMENT echo echo "Créer (et écraser) le fichier /opt/scodoc-data/.env" echo " définissant les variables d'environnement ?" echo "(si vous ne savez pas, répondez oui !)" echo -n 'Générer /opt/scodoc-data/.env ? (y/n) [y] ' read -r ans if [ "$(norm_ans "$ans")" != 'N' ] then echo -n "Adresse mail de l'administrateur du site: " read SCODOC_ADMIN_MAIL SECRET_KEY=$(python3 -c "import uuid; print(uuid.uuid4().hex)") cat > /opt/scodoc-data/.env <