Académique Documents
Professionnel Documents
Culture Documents
Objectifs :
Dans la version familiale, on ne peut gerer de maniere avancee et les utilisateurs et groupes ni
integrer la machine dans un domaine geré par le controleur Active Directory
• Donner et expliquer les profils de connexion au reseau( public, privé et domaine)
Profil public : on active les regles de securité et on desactive les partages reseaux
Profil privé : reseau sur et alleger les regles de securité, activer la decouverte des ressouces
partagées
profil domaine : les regles de securité sont definis au niveau du controleur
• Faire la distinction entre les applications natives, facultatives et tierces sous Windows
Applications natives : sont des applications windows integr és
applications facultatives sont des applications que microsoft trouvent interessantes et qu’on peut
installer en cliquant comme suit :
fig partage
fig
fig droits
fig liste de partage de ma machine
rt
net view\\IPserveur : permet de visualiser les ressources partagées sur la maichine dont l’adresse ip
a eté specifiée
net use nomlecteur : \\ipserver\nompatage : permet d’attacher un lecteur reseau à une ressource
partagée
fig decouverte ressource selon profil de connexion
ssh nomuser@ipserveur
Le protocole utilisé par des machines Windows pour partager des ressources est SMB
Samba est un logiciel qui une fois installé sous Linux permet à cette machine Linux de comprendre
le protocole SMB et par consequent de partager des ressources avec les machines Windows
Pour installer samba sous Linux, on se connecte en tant que root et on saisit :
apt install samba
[nompartage]
path= /doc1
browseable=yes
writeable=yes
pour cela, on cree un compte systeme et on le transforme en compte smb par la commande
smbpasswd -a nomuser
Pour avoir les equivalents de net share, net view, net use avec samba, il faut installer smbclient par
la commande :
Pour visualiser les ressources partagées sur une machine Windows d’adresse IP 192.168.2.30
smbclient -L -U nomuser
Montons la ressource partagée docL2 sur notre dossier dans le repertoire courant point
fig
fig
fig
fig
wget https://github.com/christgau/wsdd/archive/master.zip
unzip master.zip
[Unit]
Description=Web Services Dynamic Discovery host daemon
; Start after the network has been configured
After=network-online.target
Wants=network-online.target
; It makes sense to have Samba running when wsdd starts, but is not required
;Wants=smb.service
[Service]
Type=simple
ExecStart=/usr/bin/wsdd --shortlog
; Replace those with an unprivledged user/group that matches your environment,
; like nobody/nogroup or daemon:daemon or a dedicated user for wsdd
; User=nobody
; Group=nobody
; The following lines can be used for a chroot execution of wsdd.
; Also append '--chroot /run/wsdd/chroot' to ExecStart to enable chrooting
;AmbientCapabilities=CAP_SYS_CHROOT
;ExecStartPre=/usr/bin/install -d -o nobody -g nobody -m 0700 /run/wsdd/chroot
;ExecStopPost=rmdir /run/wsdd/chroot
[Install]
WantedBy=multi-user.target
Objectifs du cours
1- Comprendre les principes de mise en place d’un service réseau
2- Mettre en place un service de transfert et de manipulation des fichiers à distance ( FTP)
3- Comprendre et mettre en œuvre le protocole HTTP :
• entités du protocole
• messages échangés entre clients et serveurs HTTP
• format des messages échangés( entêtes, ligne de requête, code retour,corps)
• les verbes ou méthodes HTTP(GET, POST,PUT,DELETE)
4- Installer,paramétrer, utiliser une base de données en réseau
• Quelques requêtes SQL
• Activation des logs de BD
• paramétrage pour écoute sur Adresse IP et utilisation de BD à distance
Un service reseau implique un client qui fait des requetes et un serveur qui traite ces requetes
Le fichier hosts permet de faire la correspondance entre une adresse IP et un nom d’une machine
fig : hosts
Il faut noter que filezilla marche aussi bien sous windows que Linux
alors que winscp ne fonctionne que sous Windows
On redemarre le serveur pour que les nouveaux parametres soient pris en compte
service vsftpd restart
fig
•
Entités du protocole HTTP
Curl et postman sont souvent utilisés par des developpeurs backend pour tester leurs applications
avant que les developpeurs frontend creent des interfaces d’utilisation
Apache2 fonctionne aussi bien en environnement Linux que Windows et est integré dans beaucoup
de plateformes de developpement d’appications web :
• Wamp(Windows Apache Mysql Php) server
• Lamp( Linux Apache Mysql Php)
• XAMP utilisable aussi bien en Linux que Windows
- installation
apt install apache2
fig :
Le dossier /etc/apache2 contient plusieurs sous dossiers :
fig : accentué
fig : prise en compte de caractere accentué
on reteste le site
Objectif
• parametrer apache pour qu’il prenne en compte php
apt install libapache2-mod-php
Mise en œuvre
Les clients HTTP utilisent des verbes HTTP pour faire des requetes
Generalement, les requetes HTTP sont de la forme :
Verbe uri
fig
fig 2
Il faut noter qu’un client http a plusieurs manieres d’envoyer des donnees à un serveur ;
• par la methode GET ; les donées sont inserées dans la ligne de requete du message http
• par la methode POST ; les données sont inserees dans le corps du message http
ecrivons dans le sous tp1 le progamme premier.php qui s’attend à recevoir par la methode Get une
donée nommée nom et qui affiche bonjour nom
fig 3
fig
fig
fig
fig
fig
On remarque la requete avec le verbe POST ne met pas les données dans la ligne de requete mais
dans le corps du message
Les autres verbes ou methodes http à connaître sont : PUT, DELETE et PATCH
les etapes :
1- on configure le site web dans un fichier ayant l’extention .conf dans le dossier
//etc/apache2/sites-avilable
fig
a2ensite nomfichierconfsite
fig
NB : comme on n’a pas de DNS pour faire la résolution du nom de notre en adresse IP, nous allons
utiliser le fichier /etc/hosts
fig
En analysant les requetes http d’accès à nos 2 sites, on s’est rendu compte, dans les requetes , dans
l’entete, le parametre Host contient le nom exact saisi par l’utilisateur dans la barre d’url
ce qui permet au serveur web de distinguer les 2 sites
Utilisation de BD mysql
Pour cela, nous créons un formulaire html qui permet de saisir un prenom et un nom et on les
envoie à un programme php nommé deuxio.php qui affiche bonjour prenom nom
Il est faut noter qu’un formulaire sert généralement à saisir des données pour les envoyer à un
programme pour traitement
En toute logique, dans la définition d’un formulaire, on doit indiquer la méthode
d’envoi des données ( attribut method) et donner le nom du programme qui
doit traiter les données( attribut action)
fig
fig
fig
fig
On remarque que les données envoyées au programme sont affichées dans la barre d’url, ce qui
peut poser des problèmes de sécurité
Changeons dans le formulaire la méthode GET par la méthode POST et dans le programme php
deuxio
fig
commentaire : POST est beaucoup plus sécurisé que GET car les données ne sont pas affichées
dans la barre d’url
Question :
Ayant remarqué qu’on a des méthodes d’envoi et de méthodes de réception,
que se passe t-il si la méthode d’envoi diffère de la méthode de réception ?
fig
tail -f /var/log/apache2/error.log
Pour cela, on édite le fichier de configuration de mysql qui est /etc/mysql/mysql.conf.d/mysqld .cnf
pour mettre les paramètres
general_log = 1 ; activer le log ; à 0 veut dire desactiver le log
general_log_file = /var/log/mysql/mysql.log si ubuntu 18 ou query.log si ubuntu 20
fig
puis on redémarre le serveur mysql pour que les nouveaux paramètres soient pris en compte
fig
voici les résultats de ces logs
fig
Conclusion partielle :
fig
Apres les utilisateurs ont pu se connecter à distance sur le serveur de BD en utilisant la commandes
mysql -u root -p -h 192.168.1.22
Service de messagerie
La messagerie est très importante, il permet aux utilisateurs d’échanger des informations
1- les entités du service
• MUA (Mail User Agent) qui s’occupe d’écriture ou lecture de mail
on l’appelle communément client de messagerie
Exemple : thunderbird, roundcube
• MTA ( Mail Transfer Agent) qui s’occupe de la reception des mails venant d’un client de
messagerie ou d’un autre MTA
Exemple de MTA : postfix, exim4
Les MTA sont aussi appelés serveurs SMTP
• MDA( Mail Deliver Agent) qui s’occupe de la distribution des mails dans les boites
utilisateurs
Exemple : dovecot
2- Protocoles de messagerie
2.1 protocole SMTP( Simple Mail Transfer Protocol) est utilisé par un client de messagerie pour un
mail à son MTA ou par un MTA pour envoyer des mails à un autre MTA
2.2 protocole POP(Post Office Protocol) est utilisé par un MUA pour telecharger ses mails se
trouvant un serveur de messagerie=MTA+MDA
2.3 protocole IMAP(Internet Mail Access Protocol) permet de manipuler ses mails à distance sans
les telecharger sur la machine de l’utilisateur
2.4 MIME est un format de données permettant d’attacher des fichiers multimedias
Quand boubi ayant comme adresse mail bouki@ucad.sn veut envoyer un mail à leuk@uam.sn
bouki utilise un client un client de messagerie pour ecrire son mail
Apres bouki clique sur envoyer alors le mail est envoyé à son serveur de messagerie (MTA)qui gere
les mails du domaine ucad.sn
Le serveur de mail de l’ucad voyant que le destinataire n’est chez lui va envoyer le mail au MTA de
uam
A l’arrivée, le MTA de uam va remettre le mail à son MDA qui aller deposer le mail dans la boite
de leuk
Quand leuk veut lire ses mails, il utilise un client de messagerie soit parametré pour utilisé le
protocole ou parametré pour utiliser IMAP
Remarque
Si l’expediteur et le destinataire se trouve sur le meme serveur de messagerie alors le MTA remet le
mail à son MDA local
Donc un MTA doit avoir le nom du domaine pour lequel il gere des mails de maniere à distinguer
les mails locaux des mails à envoyer à un autre MTA ; ce parametre est mydestination pour postfix
exemple
mydestination=uam.sn
Pour permettre à un MTA de constituer l’adresse expediteur, generalement on lui donne un nom de
domaine à ajouter à l’identifiant de l’utilisateur pour former son adresse expediteur
dans postix, ce parametre est myorigin
exemple
myorigin=uam.sn
4- Formats de botes à lettre ou manieres d’organiser des boites à lettres sur un serveur de
messagerie
Attention : il faut sur un serveur de messagerie faire le choix entre maildir ou mailbox
le meme format doit etre choisi aussi sur le MTA que le MDA
exemple
home_mailbox= Maildir/
exemple
mail_location= maildir: /Maidir
Mise en œuvre
fig
le fichier de dovecot dans lequel, nous allons choisir le type de boites à lettres est
//etc/dovecot/conf.d/10-mail.conf
Apres modification de ces 2 fichiers, on redemarre le serveur postfix et le serveur dovecot par les
commandes :
service postfix restart
service dovecot restart
fig
Roundcube est un webmail c’est à dire un client de messagerie sur le web developpé en php
Il peut utiliser une base de données mysql pour stocker les contacts des utilisateurs
roundcube et roundcube-mysql
fig
fig
on redemarre le service apache2
fig
fig : parametrage du serveur imap
puis en bas
fig ; test reception de mail par bouki, mail envoyé par alain
1- Pour permettre au client d’envoyer des mails, il faut lui préciser l’adresse IP du serveur SMTP à
utiliser
On le lance
fig
fig :
envoi de mail
1- liste de diffusion
Le principe : on envoie un mail à une adresse et le mail est distribué à plusieurs adresses
mise en œuvre
On edite le fichier /etc/aliases
nomliste : email1 email2 … emailn
on constate que bouki ne recoit pas le mail mais il est redirigé dans la boite de alain
Si on veut annuler la rediection on enleve la ligne afferante dans le fichier //etc/aliases et on valide
en ligne de commande en tapant newaliases
puis chaque utilisateur qui veut activer un repondeur se connecte en ligne de commande et saisit la
commande vacation
fig
2- Commentez l’ecran
fig :
fig
7- commentez l’erreur de l’écran précédent
Fig
fig
fig
fig
-----------------------------------------------------------------------------------------------
Objectif :
Quelle est l’adresse IP de cette machine Windows que nous allons baptiser profmbiliguipa.uam.sn
sur le serveur DNS ?
Quelle est l’adresse de cette machine Linux que nous allons utiliser comme serveur DNS
Ensuite déclarons que le serveur de messagerie du domaine uam.sn est le serveur mail.uam.sn
5- On configure sa machine comme client DNS de la zone uam.sn et on utilise les outils nslookup,
dig, host pour tester le bon fonctionnement du serveur DNS
On édite le fichier /etc/resolv.conf de notre machine Linux pour la configurer en client DNS du
domaine uam.sn en vue de faire des requêtes DNS
fig : configuration d’un client en précisant l’adresse IP de son serveur DNS, son domaine DNS et le
domaine à ajouter au nom incomplet avec de faire de recherche DNS
Demarrons le serveur et regardons si le port 53 est ouvert et utilisé par quel service
fig : démarrage de bind serveur et consultation des connexions sur le port 53 avec netstat
fig : test des enregistrements CNAME et MX a partir d’un client DNS Linux
Configurons la machine Windows du prof Mboliguipa pour qu’elle utilise le serveur DNS dont
l’adresse IP est 192.168.1.14
fig : Enregistrements SRV pour declarer des services de ldap, kerberos, toip sip, chat avec
xmpp
fig : attribution des numeros 1001 et 1002 respectivement à prof Mboluguipa et Dr Ndassimba
fig : paramétrage de l’utilisation de l’enregistrement SRV a avoir sur le serveur DNS 192.168.1.14
--------------------------------------------------------------------------------------------------
Chapitre : Service annuaire et quelques applications
• Concepts et mise en œuvre d’un service LDAP
• LDAP , PAM, NFS, fstab ( montage automatique des répertoires de base des utilisateurs)
• Lam : montrer à l’apprenant les paramètres dont une application a besoin pour se connecter
à un annuaire
• LDAP comme carnet d’adresse pour clients de messagerie( Thunderbird, roundcube)
TP 1: Mise en place d’un service de messagerie instantanée (openfire) integrant LDAP et mysql
TP2: Contrôleur de domaine avec centralisation des dossiers des utilisateurs samba3+ldap
TP3 ; DNS +LDAP : enregistrements DNS dans ldap
TP4 : Kerberos+LDAP
Ce service distribue des tickets aux clients pour la connexion de la machine du domaine.
En fait, quand un client veut accéder à un ordinateur, il contacte le service d’émission de
tickets correspondant au domaine auquel appartient l’ordinateur, il présente un TGT, et
effectue sa demande pour obtenir un ticket d’accès sur cet ordinateur. On parlera alors de
l’obtention d’un ticket TGS.
Les deux services décrits précédemment ont chacun des tâches et un processus précis.
Ce mécanisme d’authentification est inévitable pour accéder aux ressources d’un
domaine. Sans Kerberos, il n’y aura plus d’authentification, ce qui déclenchera des
problèmes d’authentifications et d’accès.
Par défaut, tout annuaire Active Directory contient des instances d’objets de différentes
classes, par exemple des comptes utilisateurs, des groupes, des unités d’organisation ou
encore un ordinateur.
Les classes d’objets disponibles sont définies directement dans le schéma Active Directory
que vous utilisez.
Dans ce module du cours sur l’Active Directory, nous allons voir les principaux attributs
utilisés dans l’annuaire et qu’il est important de connaître.
Nom Description
A. Le DistinguishedName
Cet identifiant unique également appelé « DN » représente le chemin LDAP qui permet de
trouver l’objet dans l’annuaire Active Directory. Lors de l’étude du protocole LDAP, nous
avions déjà vu un exemple de DN.
Voici un autre exemple :
- Domaine : ist.cf
cn=Edgard,ou=informatique,dc=ist,dc=cf
Dans ce DN, on trouve un chemin qui permet de retrouver l’objet, différents éléments sont
utilisés :
Identification de l’élément Description
Le DN peut être très long si l’arborescence de l’annuaire est importante et que l’objet se
trouve au fin fond de cette arborescence. De plus, le DN peut changer régulièrement si
l’objet est déplacé, ou si une unité d’organisation dont il dépend est renommée puisqu’il
contient de manière nominative les objets.
B. Le GUID
Le GUID (Globally Unique IDentifier) est un identificateur global unique qui permet
Codé sur 128 bits, le GUID d’un objet est unique au sein d’une forêt et il est
généré par un algorithme qui garantit son unicité. Des informations aléatoires,
d’autres non, comme l’heure de création de l’objet .
Adresse de messagerie
mail Adresse de messagerie
attribuée à l’objet
Nombre d’ouverture de
logonCount -
session réalisée par cet objet
Sommaire [-]
•I. Présentation
•II. Onglet "Général"
•III. Onglet "Adresse"
•IV. Onglet "Compte"
•V. Onglet "Profil"
•VI. Onglet "Téléphones"
•VII. Onglet "Organisation"
•VIII. Synthèse
I. Présentation
Dans cet article, que l'on pourrait qualifier de mémo ou de cheatsheet, je
Directory et vous indiquer pour chaque champ Active Directory, quel est
Très pratique pour utiliser l'éditeur d'attribut d'une part, mais surtout lorsque l'on manipule
VIII. Synthèse
Voici un tableau récapitulatif des correspondances par rapport aux
onglets ci-dessus.
Champs Active
Onglets Attributs LDAP
Directory
Général Nom sn
Adresse Ville l
Adresse Pays/région co
Script d’ouverture de
Profil scriptPath
session
----------------------------------------------------------------------------------------------------
Un serveur comme Postfix est capable de gérer trois types de mails différents :
• les comptes locaux : les comptes de ces domaines sont directement mappés sur les comptes
du serveurs Linux (les comptes décrits dans le fichier /etc/passwd ). La liste des domaines
gérés de cette façon est donnée dans la variable mydestination de Postfix.
• les comptes virtuels : les comptes de ces domaines ne correspondent à aucun compte réel
mais sont simplement mappés sur des répertoires.
• les comptes d’alias virtuels : ces comptes “rebondissent” sur d’autres adresses (locales,
virtuelles ou même distantes).
Installation des paquets principaux
Paquets a installer :
• mysql-server
• postfix
• postfix-mysql
• postfix-pcre
• libsasl2-modules
• libsasl2-modules-sql
-------------------------------------------------------------------------------------
Aministration systeme Linux : 201
Aujourd’hui nous allons travailler sur la familiarisation avec les principaux environnements de
bureau Linux. Linux et les systèmes d’exploitation de type Unix sont bien connus pour leur
interface d’instruction moderne, mais ils sont souvent terrifiants pour les utilisateurs non
techniques. Ainsi, pour rendre l’utilisation de l’ordinateur plus automatique, le mélange d’écrans
haute résolution et de dispositifs de pointage porte une image d’interfaces utilisateur pilotées.
Bien que l’interface d’instruction nécessite une compréhension plus précoce des noms de
programmes et de leurs options de configuration, la capacité de programme (GUI) est souvent
activée en pointant vers des éléments visuels familiers, ce qui rend la courbe d’entraînement
plus raide. En outre, l’interface graphique est mieux adaptée aux médias interactifs et autres
projets visuels.graphical user interface
Le système X Window
Le système X11 ou X Window donne une interaction utilisateur subordonnée et un rendu
d’interface graphique dans les systèmes d’exploitation Unix et Linux, par exemple l’interface de
programmation, les mouvements de la souris, la copie, le couper-coller de texte dans différentes
applications et les frappes au clavier, ce qui le rend complexe dans le dessin d’éléments visuels,
bien que ce soit celui qui gère et exécute l’affichage graphique. Ainsi, les applications gérées par
X génèrent des effets visuels tels que des formes, des nuances et des couleurs, donc cette
méthode permet de créer des interfaces personnalisées conduisant à une instabilité de
l’apparence et du comportement d’une application en termes d’interfaces de programme.
Applications bureautiques
•Éditeurs de texte
•Calculatrices
•Calendriers
Applications système
Gestionnaires de fichiers
•Clients de messagerie
•Navigateurs Web
•Gestionnaires de contacts
• Gestionnaire de session
• Communication inter-processus
• Impression c’est-à-dire CUPS
• Son, c’est-à-dire Pulse Audio
• Agent de porte-clés
Liste des applications tierces et intégrées dans le système par un lanceur d’applications.
1. KDE
fig : KDE
2. GNOME
Des distributions comme CentOS, Debian, Fedora, Red Hat Enterprise Linux, Ubuntu, SUSE
Linux Enterprise utilisent un environnement de bureau car il est le plus important. Gnome a
introduit une nouvelle interface appelée , il a également apporté un échange important dans son
apparence et sa structure. Le Gnome Shell dispose d’un lanceur plein écran qui remplace la
barre des tâches et l’application habituelle.GnomeGnome Shell
fig : gnome
3. Cannelle
Cinnamon a une bonne interface utilisateur qui le rend favorable aux débutants Linux.
Cinnamon a été créé par les développeurs de la distribution Mint Linux en tant que branche
GNOME 3 et il est toujours sous la gestion de l’équipe de développement Mint.
•Nombreuses extensions.
•Applets émergeant sur le panneau.
•Vue d’ensemble avec des fonctions liées à celle de GNOME Shell.
•Effets de bureau, c’est-à-dire effets de transition et animations.
Fig
4. Xfce
L’environnement de bureau Xfce peut être ajusté en fonction des préférences et des exigences
de l’utilisateur, permettant ainsi à l’utilisateur d’activer et de désactiver différents composants. ,
vise à réduire la consommation des ressources de l’appareil.Xfce
•Gestionnaire d’affichage
•Gestionnaire de fichiers
•Panneaux
•Gestionnaire de fenêtres
•Barre d’état système
•Bar préféré
fig
• VNC
• RDP
• SPICE
• XDMCP
1. VNC
VNC, acronyme Virtual Network Computing system vous permet (utilisateurs) d’accéder à
distance à un autre ordinateur ou serveur en utilisant graphique ainsi que graphique émulateur
de terminal. Il utilise le protocole RFB, Remote Frame Buffer pour administrer un autre
ordinateur à distance. RFB est un protocole permettant d’accéder à distance aux interfaces
utilisateur graphiques. VNC utilise le réseau pour canaliser les entrées comme le clavier et la
souris d’un ordinateur à l’autre à l’aide de l’écran graphique.
2. RDP
RDP, signifie Remote Desktop Protocol est un protocole de communication développé par la
société de technologie Microsoft Corporation. RDP dispose d’une interface utilisateur graphique
(GUI) qui aide les utilisateurs à connecter un autre ordinateur à distance via une relation réseau.
Pour que cela se produise, l’utilisateur doit inscrire l’utilisation du logiciel client RDP tandis que
l’ordinateur distant doit avoir le logiciel serveur RDP en cours d’exécution. Par défaut, écoute
RDP sur les ports réseau TCP 3389 et UDP 3389.
Linux
•Microsoft Windows
•Unix
•MacOS
•Androïd
•Ios
3. SPICE
SPICE, acronyme Simple Protocol for Independent Computing Environments est un
protocole utilisé pour accéder aux environnements virtuels et permet aux utilisateurs d’étudier
les ordinateurs locaux et distants. SPICE est composé de plusieurs canaux qui connectent le
client à un serveur de bureau distant et chacun d’eux fonctionne séparément sur une connexion
de sockets TCP et UNIX.
4. XDMCP
On reboote la machine
systemctl reboot
adduser boris
gpasswd -a boris sudo
fig
sudo rm /tmp/.X1-lock
sudo reboot -i
fig
fig
on edite
sudo nano ~/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &
fig
fig
On utilise un client vnc et on se connecte sur le port 5902
on installe ;
/etc/systemd/system/vncserver@.service
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=simple
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -localhost no :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
vncserver -kill :2
2- Tunneling SSH
Dans ce paragraphe, nous allons aborder le principe du Tunneling SSH. Il s'agit là d'une
autre utilisation que l'on peut couramment faire d'SSH, un peu plus avancée que la
simple connexion SSH à un serveur.
Pour avoir une meilleure vision de ce que l'on peut faire avec un Tunnel SSH, prenons un
cas concret :
On dispose d'un serveur Linux sur lequel tourne un serveur web, en écoute sur le port 80,
et un service SSH, en écoute sur le port 22. Étant à distance, nous sommes obligés de
passer par internet pour accéder à notre serveur web. Les informations que nous devons
passer à notre serveur web sont sensibles et nous n'avons aucune envie qu'elles
transitent en clair sur un réseau auquel nous ne faisons pas confiance. Une solution qui
Nous allons établir une connexion SSH sur notre serveur distant puis, en local depuis
cette connexion SSH, contacter notre service HTTP. Le flux HTTP passera donc à
l'intérieur du flux SSH, il sera alors chiffré à l'intérieur de notre tunnel SSH.
Fig
Pour être techniquement plus précis, nous allons faire correspondre un port local de notre
machine à un port distant de la machine sur laquelle on se connecte, le tout au travers de
notre connexion SSH :
Dans ce schéma, nous établissons donc une connexion SSH entre notre client et notre
serveur. Nous précisons ensuite via l'option "-L" que le port 2500 de notre poste local va
correspondre au port 80 de notre machine distante. Autrement dit, toutes données
envoyées des informations sur le port local 2500 atterriront sur le port 80 de ma machine
distante, mais passeront au travers mon tunnel SSH, ce qui correspond au schéma vu
précédemment.
"-f" : Permet de mettre la commande SSH en tâche de fond une fois lancée, cela nous donne la
possibilité d'exécuter d'autres commandes une fois que le tunnel SSH est établie.
"-L" : C'est l'option qui nous permet d'initialiser le tunnel, son argument prend la forme "port
local : cible en sortie de tunnel : port cible en sortie de tunnel". Si nous souhaitons établir un
tunnel SSH sur le port local 8000 qui, à sa sortie, orientera le trafic vers la machine 10.0.0.4 sur
option, il faut que le concept du tunnel SSH soit clairement compris et visualisé, vous pouvez
"-N" : Indique "Do not execute a remote command". C'est une option qui va souvent de paire
Nous pouvons alors faire le test avec, soit un navigateur web, soit une commande "wget"
qui va se charger d'aller chercher la page web de notre client. Avec wget :
wget http://127.0.0.1:2500/index.html
Nous obtiendrons alors l'index.html du serveur distant, cela signifie donc que la requête
HTTP passée en localhost sur le port 2500 a été redirigée sur le port 80 de mon serveur
Une possibilité encore plus étendu de l'utilisation du tunnel SSH est le fait d'accéder, au
travers un serveur SSH, à une machine qui ne nous est pas directement accessible en
tant que client. Pour mieux comprendre, prenons ce schéma :
fig
Dans ce contexte, nous ne pouvons pas accéder, en tant que client, aux serveurs locaux
de notre LAN. Néanmoins, nous avons un accès en SSH à un serveur qui est connecté au
LAN et à Internet. En utilisant la technique du tunnelling SSH, nous allons pouvoir nous
connecter à nos serveurs locaux. Nous commencons par établir notre tunnel SSH :
Ici, Nous créons un tunnel SSH avec l'utilisateur "edgard" vers mon serveur SSH ayant l'IP
"1.2.3.4". Ensuite, nous spécifions les paramètres de notre tunnel :
Tout ce qui arrivera sur notre port local 2500 ira dans le tunnel SSH
En sortie du tunnel SSH, le flux se dirigera vers la machine 192.168.1.10 vers son port 80
La machine sur laquelle nous nous connectons en SSH peut, elle, être en liaison avec
notre serveur web local, ainsi, au travers de mon tunnel SSH, nous pouvons y avoir
accès. Pour cela, nous devons spécifier à notre client web que, pour aller sur mon serveur
web, Nous devons, non plus essayer d'aller sur le port 80, mais plutôt aller
sur notre port local 2500. Les flux seront ainsi redirigés dans notre tunnel SSH.
C'est ce que nous avons fait plus haut de façon plus basique en spécifiant le port "2500" à
la commande wget sous Linux. Voici un schéma qui vous permettra de visualiser le tunnel
SSH et le flux jusqu'à un serveur à l'intérieur du LAN :
fig
Il est également intéressant de savoir que plusieurs tunnels SSH peuvent être établis en
même temps, à condition qu'il ne forward pas (ne fassent pas correspondrent) les mêmes
ports. Par exemple, j'ai ici un tunnel actif sur mon port local 2500, nous pouvons en établir
un deuxième sur le port 2501, pour établir une connexion avec mon serveur STMP local :
Pour accéder au serveur SMTP de notre LAN depuis mon client SSH, nous devons
spécifier à mon client de messagerie qu'il doit communiquer sur mon port local 2501, flux
qui passera alors vers le tunnel SSH.
Nous avons ici vu comment établir un tunnel SSH depuis un client SSH Linux, en ligne de
commande. Bien entendu, nous pouvons également faire cela avec les clients
SSH PuTTY ou KiTTY.
On va commencer par initialiser une connexion SSH avec PuTTY ou KiTTY comme nous
le faisons depuis le début du cours. Lorsque cette connexion sera initialisée, nous
pourrons faire un clic droit sur le bord supérieur de la fenêtre pour atteindre l'option
"Change Settings" :
fig
Dans le panneau des paramètres nous pourrons alors aller dans "SSH" puis "Tunnel". Ici,
nous pourrons remplir les paramètres comme cela :
fr
Ici, dans la partie "source port", nous allons spécifier le port local qui sera mappé. Dans la
partie "Destination", nous précisons la cible en sortie de tunnel. Cela peut donc, comme
nous l'avons vu, être la machine locale (serveur SSH) ou distante avec un port spécifique.
Il est à noter que nous pouvons ajouter comme cela plusieurs tunnels SSH. Il faudra
valider notre paramétrage via le bouton "Add" puis nous validerons avec "Apply" en bas de
fenêtre. Ensuite, nous pourrons effectuer un test en ouvrant un navigateur puis en visant
l'URL "http://localhost:2503" :
fig
Nous voyons ici que la requête HTTP visant "localhost:2053" passe par notre tunnel SSH
pour au final arriver en "127.0.0.1" sur le port "80" du serveur web LAN.
Nous avons fait le tour du tunneling SSH, c'est une notion quelque peu complexe car elle
nécessite de bien visualiser les différents chemins des flux dans le tunnel SSH.
Cependant, le tunneling SSH peut être très pratique et se révèle être un outil très efficace
dans les situations opérationnelles.
3- Proxy SSH
fig
Ici, nous établissons donc (en vert) notre connexion SSH vers un serveur SSH qui
deviendra notre proxy SSH. Ensuite, nous pourrons configurer nos applications (par
exemple, un navigateur web) pour utiliser notre proxy (plus précisément, proxy SOCKS).
Techniquement, nous pouvons établir cette connexion pour devenir un proxy SSH via la
commande "-D" :
Dans le cas présent, le port 12345 sera le port de notre proxy à spécifier dans les
applications qui devront l'utiliser.
Dès lors, toutes les requêtes HTTP que passeront notre navigateur seront envoyées vers
notre proxy. La différence avec un tunneling SSH comme nous l'avons vu dans le
précédent paragraphe est donc qu'ici, toutes les requêtes passent maintenant
par notre proxy SSH, pas seulement celles allant vers un port prédéfini.
Pour continuer notre exemple, voici comment configurer un navigateur web Firefox pour
utiliser notre Proxy. On commence par se rendre dans les options puis on se rend dans
"Avancé" puis "Réseau" pour enfin cliquer sur "Paramètres" :
fig
Ici, Nous spécifions donc dans "Hôte proxy" les champs "127.0.0.1" puis "12345" qui est le
paramétrage précisé dans notre commande. Dès lors, toutes les requêtes web générées
par notre navigateur iront directement au travers le proxy, l'IP source qui sera alors reçu
par les serveurs web que nous contacterons ne sera donc plus la notre, mais celle de
notre proxy SSH.
Installez RustDesk Remote Desktop sur Ubuntu 22.04|20.04|18.04
L’utilisation principale des logiciels de bureau à distance est l’administration à distance et la mise
en œuvre à distance. Ce besoin survient lorsque vous êtes absent du bureau et qu’il a besoin
d’accéder aux ressources de l’ordinateur du bureau. Un logiciel de bureau à distance peut être
utilisé pour accéder à un ordinateur distant : un ordinateur personnel physique auquel un
utilisateur n’a pas accès physiquement, mais auquel on peut accéder ou avec lequel on peut
interagir. Contrairement aux serveurs, les ordinateurs distants sont principalement utilisés pour
les connexions peer-to-peer, où un périphérique est sans surveillance.
RustDesk est une application simple, open-source et extrêmement utile pour accéder à distance
à d’autres PC, avec transfert de fichiers intégré et tunneling TCP, écrit avec le langage de
programmation Rust. L’installation et l’utilisation de RustDesk sous Linux sont assez faciles.
C’est une excellente alternative à TeamViewer et Anydesk. Vous permet d’avoir le contrôle total
de vos données sans souci ni souci de sécurité.
Caractéristiques de RustDesk
Sur votre système Ubuntu 20, ouvrez le terminal et exécutez la commande ci-dessous pour vous
assurer que toutes les dépendances requises sont installées en premier.
sudo apt install -y g++ gcc git curl zip tar wget nasm yasm libgtk-3-dev clang libxcb-randr0-
dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-
dev cmake build-essential unzip
cd ~/
cd vcpkg
./bootstrap-vcpkg.sh
Créez un environnement racine vpkg avec la commande export puis installez libvpx, libyuv et
opus.
export VCPKG_ROOT=./ $
wget https://github.com/rustdesk/rustdesk/releases/download/$VER_TAG/rustdesk-
$VER_TAG.deb
fig
on lance
fig
fig
fig
LPIC 101 – Maintaining The Integrity of Linux Filesystems