Show / Hide Table of Contents

Installation d'e-Atal V6 sous Linux

La version recommandée pour e-Atal V6 est Ubuntu 22.04.

Installation sur Ubuntu 22.04

Installation du runtime .NET

Installez le runtime ASP.NET Core :

sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y aspnetcore-runtime-8.0

Vous pouvez vérifier la version installée grâce à la commande dotnet --list-runtimes.

En cas d'utilisation de l'interface LDAP ou Active Directory, créez le lien symbolique suivant (cf problème 69456) :

sudo ln -s /usr/lib/x86_64-linux-gnu/libldap-2.5.so.0 /usr/lib/x86_64-linux-gnu/libldap-2.4.so.2

Installation de NGINX

Nous documentons ici l'installation et la configuration du proxy inverse NGINX mais vous pouvez utiliser votre propre proxy inverse (Apache ou autre).

Si vous utilisez votre propre proxy inverse, nous conseillons de désactiver les anciennes versions des protocoles SSL et TLS (ne garder que TLS 1.2 ou supérieur), et d'effectuer une redirection du http vers https afin de toujours avoir une connexion sécurisée. Veuillez activer également l'entête Strict-Transport-Security dans les réponses HTTP.

Pour installer NGINX, exécutez la commande suivante :

sudo apt-get install -y nginx

Éditez ensuite le fichier default dans le dossier /etc/nginx/sites-available/ :

cd /etc/nginx/sites-available/
sudo nano default

et remplacez le contenu du fichier par les lignes suivantes en précisant le nom de votre serveur à la place de atalv6.mondomaine.fr :

server_tokens off;

map $http_upgrade $connection_upgrade {
    default Upgrade;
    ''      close;
}

server {
    listen 80;
    server_name atalv6.mondomaine.fr;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name atalv6.mondomaine.fr;
    add_header Strict-Transport-Security "max-age=2592000" always;
    ssl_protocols TLSv1.2 TLSv1.3;
    root /var/www/e-atalv6;
    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection $connection_upgrade;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

Appuyez sur CTRL+X pour quitter et sauvegarder le fichier.

Les lignes concernant les entêtes Upgrade et Connection sont utiles pour le support des websockets utilisés dans l'application e-AtalV6.

Le port par défaut de l'application est 5000. Vous pouvez modifier ce port mais il faudra ensuite l'indiquer lors du lancement de l'application via l'option --urls.

Installation de Certbot

Pour la gestion de l'https, vous pouvez par exemple utiliser Certbot afin de générer des certificats Let's Encrypt.

Installez Cerbot grâce aux lignes de commande suivantes :

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx

Suivez les instructions donnés par Certbot pour créer votre certificat, puis rechargez la configuration NGINX :

sudo nginx -s reload

Installation de e-Atal V6

Créez un dossier e-atalv6 dans le dossier /var/www/ :

sudo mkdir /var/www/e-atalv6

Copiez le .zip d'installation vers le dossier /var/www/e-atalv6/.

Pour transférer des fichiers de Windows vers la machine Linux, vous pouvez par exemple utiliser la commande SCP via PowerShell.

Décompressez ensuite le fichier .zip :

cd /var/www/e-atalv6/
sudo apt-get install -y unzip
sudo unzip AtalV6.zip
sudo rm AtalV6.zip

Nous allons maintenant générer un certificat dans le sous-dossier Settings pour la protection de données (cela sert notamment à encrypter le jeton anti-CSRF) :

sudo openssl req -x509 -newkey rsa:4096 -keyout Settings/data_protection_key.pem -out Settings/data_protection_cert.pem

Suivez les instructions fournies par openssl. L'important est d'indiquer un mot de passe long, le reste est facultatif (vous pouvez appuyer sur Entrée à chaque ligne si vous ne souhaitez pas renseigner ces informations).

Créez un sous-dossier DataProtection-Keys et donnez les droits de lecture/écriture/exécution sur ce dossier à l'utilisateur www-data qui exécutera le service, ainsi que les droits de lecture sur le fichier data_protection_key.pem :

sudo mkdir Settings/DataProtection-Keys
sudo setfacl -m u:www-data:rwx Settings/DataProtection-Keys/
sudo setfacl -m u:www-data:r-- Settings/data_protection_key.pem

Copiez ensuite le fichier appsettings.json du sous-dossier SampleSettings vers le sous-dossier Settings, puis éditez ce fichier :

sudo cp SampleSettings/appsettings.json Settings
sudo nano Settings/appsettings.json

Indiquez la chaîne de connexion à votre base de données, puis décommentez les sections ForwardedHeadersOptions, DataProtectionSettings et la ligne https_port. Dans la section DataProtectionSettings, indiquez le mot de passe renseigné lors de la génération du certificat.

Quittez avec CTRL+X et enregistrez le fichier.

Enregistrement de l'application en tant que service

Exécutez la commande suivante pour créer un fichier de définition de service :

sudo nano /etc/systemd/system/e-atalv6.service

Collez le contenu suivant :

[Unit]
Description=e-Atal V6

[Service]
WorkingDirectory=/var/www/e-atalv6/
ExecStart=/usr/bin/dotnet /var/www/e-atalv6/Atal.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=e-atalv6
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

Indiquez le port à utiliser via l'option --urls si vous ne souhaitez pas garder celui par défaut (5000) :

ExecStart=/usr/bin/dotnet /var/www/e-atalv6/Atal.dll --urls "http://localhost:5678"

Puis enregistrez le fichier en quittant l'éditeur de texte via CTRL+X.

Activez le service :

sudo systemctl enable e-atalv6.service

Démarrez le service et vérifiez qu’il s’exécute :

sudo systemctl start e-atalv6.service
sudo systemctl status e-atalv6.service

Si vous souhaitez afficher les journaux d'activité, vous pouvez utiliser la commande :

sudo journalctl -fu e-atalv6.service

Pour un filtrage approfondi, les options d’heure telles que --since today, --until 1 hour ago ou une combinaison de ces options peuvent réduire le nombre d’entrées retournées.

Installation sur d'autres distributions Linux

Si la dernière version de .NET n’est pas fournie par les référentiels de votre distribution Linux, ajoutez le référentiel Microsoft correspondant (https://packages.microsoft.com/config/<Distribution>/<Version>/prod.(repo|list)), puis réinstallez les packages .NET à partir du référentiel Microsoft.

Pour Fedora, CentOS 8+, RHEL 8+, utilisez les commandes bash suivantes :

echo 'priority=50' | sudo tee -a /etc/yum.repos.d/microsoft-prod.repo
sudo dnf remove 'dotnet*' 'aspnet*' 'netstandard*'
sudo dnf install aspnetcore-runtime-6.0

Configuration de l'interface LDAP

L'interface LDAP devra être configurée dans Atal V5. Pour une interface Active Directory, renseignez au minimum l'adresse du serveur, le domaine et le DN de départ pour la recherche des utilisateurs :

Configuration LDAP

In This Article
Back to top Berger-Levrault