Exercice : Défi : VPS, Linux, Web

Pré-requis

Pour réaliser ce défi vous devez :

Question

Utilisez la commande suivante pour savoir si votre VPS dispose d'un serveur SSH en fonctionnement. Pourquoi était-ce prévisible ?

1
systemctl status ssh

Solution

1
● ssh.service - OpenBSD Secure Shell server
2
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
3
   Active: active (running) since Tue 2020-11-03 17:17:26 CET; 1 months 4 days ago
4
     Docs: man:sshd(8)
5
           man:sshd_config(5)
6
 Main PID: 393 (sshd)
7
   Memory: 5.2M
8
   CGroup: /system.slice/ssh.service
9
           └─393 /usr/sbin/sshd -D
10

Question

Déconnectez-vous de votre serveur et reconnectez-vous.

Utilisez la commande suivante pour voir l'historique du journal de votre serveur SSH. Vérifiez que vous trouvez les informations concernant votre connexion.

1
journalctl -u ssh --since "10 minutes ago"

Solution

1
déc. 08 15:09:14 pi-casso sshd[16666]: Accepted publickey for root from 195.83.155.24 port 55555 ssh2: RSA SHA256:MIIEowIBAAKCAQEAnnKY3EQhfxG0Uqm7
2
déc. 08 15:09:14 pi-casso sshd[16666]: pam_unix(sshd:session): session opened for user admin by (uid=0)

Question

Utilisez à nouveau la commande journalctl pour chercher une tentative de connexion non autorisée à votre serveur (de nombreux robots essaie de se connecter au hasard, mais vous n'en trouverez pas si votre serveur est actif depuis trop peu de temps).

Solution

Exemple
1
déc. 08 15:31:20 pi-rate sshd[16764]: Invalid user jerry from 103.231.46.66 port 43088
2
déc. 08 15:31:20 pi-rate sshd[16764]: Received disconnect from 103.231.46.66 port 43088:11: Bye Bye [preauth]
3

Question

Générez une tentative de connexion non autorisée à votre serveur, puis constatez-la dans le journal.

Installez puis utilisez la commande whois ip pour savoir d'où vient cette tentative d'accès.

Solution

Côté client
1
ssh hacker@195.83.155.24
1
hacker@195.83.155.24: Permission denied (publickey).
Côté serveur
1
journalctl -u ssh --since "10 minutes ago"
1
déc. 08 15:18:37 pi-casso sshd[16777]: Invalid user hacker from 195.154.56.24 port 49999
2
déc. 08 15:18:37 pi-casso sshd[16777]: Connection closed by invalid user hacker 195.154.56.24 port 49999 [preauth]
3
Installation (si whois n'est pas déjà présente sur la machine)
1
apt install whois
Pour savoir d'où vient l'IP 195.83.155.24
1
whois 195.83.155.24
1
inetnum:        195.83.155.0 - 195.83.155.255
2
netname:        FR-UTC-COMPIEGNE
3
descr:          UTC - Universite de Technologie de Compiegne
4
[...]

Question

Créez sur votre VPS une page web à l'adresse /defiweb/index.html qui affiche le résultat des questions précédentes.

Question

Consultez votre page web depuis un navigateur web de votre choix pour vérifier qu'elle fonctionne bien.

Sur votre VPS, à l'aide de la commande suivante consultez le journal applicatif d'Apache afin de vérifiez :

  • qui s'est connecté en dernier au serveur web

  • quelle ressource a été demandée

  • ce qu'a répondu le serveur (code HTTP et nombre d'octets)

  • que c'était bien avec le type de client web que vous avez utilisé

1
tail -n 10 /var/log/apache2/access.log

Solution

1
95.216.163.36 - - [08/Dec/2020:14:49:31 +0100] "GET /defiweb/index.html HTTP/1.1" 200 4037 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0"
  • connexion depuis l'IP 95.216.163.36

  • demande de la ressource /defiweb/index.html

  • le serveur a répondu 200 (OK) et il a renvoyé 4037 octets.

  • ici avec un client Firefox sous Ubuntu

Question

Ajoutez à votre page /defiweb/index.html une copie d'écran de votre navigateur web qui accède à la page /defiweb/index.html de votre serveur web (c'est une sorte de mise en abîme web).

Question

Modifier le fichier /defiweb/index.html à l'aide de l'éditeur textuel nano (ou d'un autre éditeur textuel) afin d'ajouter un lien (a href) en fin de page vers le fichier /defilinux/index.html.

Créez sur votre VPS une page web à l'adresse /defilinux/index.html qui est vide pour le moment auquel vous ajouterez progressivement le résultat des questions suivantes.

Indice

1
<!DOCTYPE html>
2
<html>
3
    <head>
4
        <title>Défi Linux</title>
5
        <meta charset="utf-8"/>
6
    </head>
7
    <body>
8
    </body>
9
</html>

Question

Exécuter les actions suivantes et capitalisez les commandes et leurs résultats sur la page web defilinux/index.html.

  1. Affichez tous les fichiers et dossier accessibles depuis votre serveur web (on utilisera le paramètre permettant d'afficher un / à la fin des noms des dossiers).

  2. Rendez-vous dans le dossier de votre utilisateur sur le serveur, affichez-en le chemin avec pwd, puis créez un fichier vide useless avec touch.

  3. Déplacez-vous dans le dossier /tmp, créez un dossier defi, déplacez-y le fichier useless, puis copiez le fichier useless en moreuseless ; avec ls, pwd et cat montrez le résultat ce travail tout à fait inutile.

  4. Créez un utilisateur lambda, devenez cet utilisateur, rendez-vous dans son dossier personnel et affichez le chemin de ce dossier.

  5. Créez un fichier public accessible à tout le monde en lecture et en écriture, un fichier infos accessible à tout le monde en lecture mais seulement au groupe lambda en écriture et un fichier secret accessible seulement par l'utilisateur lambda (en lecture et en écriture ) ; affichez-le résultat de votre configuration en montrant les fichiers et leurs droits.