Aller au contenu

Travail pratique

ID : A04-TP04

But du TP

  • Installation d'un serveur web sur Linux (pour la production)
  • Sécurisation d'un serveur web sur Internet

Travail à réaliser

SSH

  1. Connectez-vous à votre VPS (Virtual Private Server) en SSH.
  2. Configurez l'affichage automatique du message suivant avant chaque connexion SSH (le message doit être absolument identique à celui ci-dessous au niveau contenu et mise en forme).

    ***************************************************************************
                                NOTICE TO USERS
    
    
    This computer system is the private property of its owner, whether
    individual, corporate or government. It is for authorized use only.
    Users (authorized or unauthorized) have no explicit or implicit
    expectation of privacy.
    
    Any or all uses of this system and all files on this system may be
    intercepted, monitored, recorded, copied, audited, inspected, and
    disclosed to your employer, to authorized site, government, and law
    enforcement personnel, as well as authorized officials of government
    agencies, both domestic and foreign.
    
    By using this system, the user consents to such interception, monitoring,
    recording, copying, auditing, inspection, and disclosure at the
    discretion of such personnel or officials. Unauthorized or improper use
    of this system may result in civil and criminal penalties and
    administrative or disciplinary action, as appropriate. By continuing to
    use this system you indicate your awareness of and consent to these terms
    and conditions of use. LOG OFF IMMEDIATELY if you do not agree to the
    conditions stated in this warning.
    
    ****************************************************************************
    
  3. Configurez l'authentification SSH par clé publique et désactivez l'authentification par mot de passe.

    • Avant de redémarrer le service SSH, testez la configuration avec sudo sshd -t : une erreur pourrait vous empêcher de vous reconnecter au VPS.

Questions

  • À quoi cela sert-il (quelle est la finalité de ce message dans notre contexte) ?
  • Y a-t-il plusieurs « façons » de l'afficher, lesquelles et pourquoi choisir l'une plutôt que l'autre ?
  • Comment tester que l'authentification par mot de passe est effectivement désactivée ?

Date et heure

  1. Vérifiez que la date, l'heure et le fuseau horaire sont corrects, configurez-les si besoin.

Firewall

  1. Configurez et activez le firewall ufw.
    • Seuls les ports nécessaires doivent être ouverts.
    • Attention : votre seul accès au VPS passe par SSH. Si vous activez ufw sans l'avoir autorisé au préalable, vous perdrez l'accès au serveur.

Questions

  • Comment vérifier et tester que la configuration est correcte ?
  • Comment s'assurer que seuls les ports ouverts le sont effectivement ?

Redirection des emails

  1. Installez et configurez le package mailutils.
    • Envoyez un email à l'utilisateur root avec la commande echo "Test email to root" | mail -s "Test email" root.
    • Accédez à la boîte de réception des emails de l'utilisateur root avec la commande sudo mail.
  2. Configurez la redirection des emails de l'utilisateur root vers votre adresse email @edu.hefr.ch.
    • Envoyez un nouvel email à l'utilisateur root avec la commande echo "Test email to root" | mail -s "Test email" root et vérifiez que vous l'avez bien reçu sur votre adresse @edu.hefr.ch.
    • Il y a de bonnes chances que cet email de test soit bloqué dans la quarantaine.

Tip

Pour réduire le risque que les emails envoyés depuis le VPS se retrouvent dans les spams ou en quarantaine sur le serveur de messagerie de l'école :

  1. Ouvrez le fichier /etc/mailutils.conf avec les droits administrateur, dans votre éditeur préféré (vim ou nano) :

    sudo nano /etc/mailutils.conf
    
  2. Ajoutez ceci à la fin du fichier :

    address {
        email-domain <fqdn>; # Remplacez <fqdn> par le nom de domaine complet (FQDN) de votre VPS
    };
    
  3. Enregistrez le fichier.

Source : GNU Mailutils - Sender Address Statements

Si vous ne recevez pas les emails, vérifiez dans Microsoft Defender - Quarantine.

Questions

  • Quels types d'emails l'utilisateur root reçoit-il et pourquoi les rediriger ?

Rapport d'analyse des fichiers de log

  1. Installez et configurez le package logwatch.
    • Le fichier /usr/share/doc/logwatch/HOWTO-Customize-LogWatch.gz peut être utile pour comprendre comment configurer correctement logwatch.
  2. Configurez et testez l'envoi des rapports d'analyse des fichiers de log sur la messagerie interne de l'utilisateur root.
    • Envoyez automatiquement un rapport avec un haut niveau de détails, chaque semaine, pour les logs des 7 derniers jours écoulés.
    • Configurez une règle dans votre messagerie afin de déplacer ces rapports dans un répertoire dédié. (optionnel)

Questions

  • Quel jour de la semaine et à quelle heure sont envoyés les rapports d'analyse des fichiers de log ?

Rapport des mises à jour

  1. Installez et configurez le package apticron.
  2. Configurez et testez l'envoi des rapports des mises à jour en attente sur la messagerie interne de l'utilisateur root.
    • Envoyez automatiquement un rapport chaque jour à 7h00.
    • Configurez une règle dans votre messagerie afin de déplacer ces rapports dans un répertoire dédié. (optionnel)

Mise à jour automatique

  1. Vérifiez que les mises à jour de sécurité sont bien installées automatiquement par l'utilitaire unattended-upgrades.
  2. Configurez l'envoi d'emails en cas de problèmes ou lors de mises à jour des paquets par l'utilitaire unattended-upgrades sur la messagerie interne de l'utilisateur root.

nginx

  1. Installez et configurez le package nginx.
  2. Sécurisez nginx selon les éléments listés dans le support de cours.
  3. Vérifiez que tout fonctionne correctement et adaptez la configuration si besoin.

HTTPS

  1. Installez et configurez un certificat TLS (HTTPS).
  2. Vérifiez que la redirection de tout le trafic HTTP vers HTTPS est bien configurée.
    • Il ne doit plus être possible d'afficher une page web avec HTTP.

Questions

  • Comment fonctionne la redirection HTTP vers HTTPS au niveau de la configuration du serveur web nginx ?

HTTP/2

  • Configurez nginx pour qu'il utilise le protocole HTTP/2.

Questions

  • Comment fait-on pour vérifier, dans le navigateur web, que le protocole HTTP/2 est bien utilisé et donc bien configuré sur le serveur web ?

Vérification

  1. Vérifiez que tout fonctionne correctement et testez votre site :

Audit de sécurité

  1. Installez le package lynis et lancez un audit de votre serveur avec la commande sudo lynis audit system.
    • Lynis est un outil open source qui analyse la configuration du système et propose des pistes de durcissement (hardening).
  2. Notez l'indice de durcissement (Hardening index) affiché à la fin de l'audit.
  3. Avec l'aide d'un chatbot (ChatGPT, Claude, Gemini, …), déterminez les trois suggestions de l'audit (section Suggestions) les plus pertinentes dans le contexte de ce TP : un serveur web exposé sur Internet, à sécuriser.
    • Avant de transmettre le résultat de l'audit au chatbot, retirez les informations sensibles (nom de domaine, adresses IP, noms d'utilisateurs, …).
    • Indiquez dans votre manuel technique le chatbot utilisé et la question (prompt) que vous lui avez posée.
  4. Appliquez ces trois suggestions, expliquez-les avec vos propres mots et documentez leur mise en place.
    • Vérifiez chaque modification proposée par le chatbot dans la documentation officielle avant de l'appliquer : un chatbot peut se tromper.
    • Assurez-vous de toujours pouvoir vous connecter en SSH à votre VPS après chaque modification.
  5. Relancez l'audit et comparez l'indice de durcissement avant et après vos modifications.

Manuel technique

Rédigez un manuel technique permettant de reproduire à l'identique le travail pratique que vous avez réalisé. Le document devra inclure des explications sur les éléments importants à comprendre, notamment les points abordés dans les sections Questions des parties précédentes.

Directives générales

  • Référencez toutes les sources d'informations utilisées pour réaliser le travail pratique et pour la rédaction de votre document. Privilégiez l'utilisation de citations en fin de chapitres et/ou en notes de bas de page, plutôt qu'une liste de sources en fin de document.

  • Prenez des notes au fur et à mesure de la réalisation du travail pratique si vous ne rédigez pas le manuel en parallèle.

  • Ajoutez des images, des illustrations et des captures d'écran pour aider le lecteur à mieux comprendre et suivre les étapes.

  • Utilisez uniquement la forme impersonnelle dans le manuel technique.

Structure du manuel

Votre manuel technique devra inclure les éléments suivants :

Page de garde (sans en-tête ni pied de page)

  • Le logo de la HEIA-FR
  • Le nom de la formation : Année Passerelle Ingénierie ISC
  • Le nom du cours : Technologies Internet
  • L'ID du travail pratique : A04-TP04
  • Une illustration graphique représentant ce travail pratique
  • Vos informations personnelles (nom, prénom, adresse email)
  • La date du travail pratique

En-tête (à partir de la deuxième page)

  • Le logo de la HEIA-FR
  • Le nom de la formation : Année Passerelle Ingénierie ISC
  • Le nom du cours : Technologies Internet
  • L'ID du travail pratique : A04-TP04
  • Vos informations personnelles (nom, prénom, adresse email)

Pied de page (à partir de la deuxième page)

  • La numérotation automatique des pages (N° de la page / nombre total de pages)
  • La date du travail pratique

Contenu supplémentaire

  • Une table des matières (avec des liens cliquables) après la page de garde.
  • Une table des illustrations (avec des liens cliquables) à la fin du document.

Rendu du TP

Le document, au format PDF, est à rendre pour le jeudi 8 octobre à 23h59, au plus tard, par email (joel.dacomo@hefr.ch).

Le document PDF aura le nom de fichier : API-TI - A04-TP04 - Nom Prénom.pdf

Le TP sera évalué.