đŸ‡«đŸ‡· Connexion sĂ©curisĂ©e Ă  votre rĂ©seau personnel

Dans ce premier article en Français, nous allons voir comment vous pouvez connecter à votre réseau personnel (LAN) de votre domicile de maniÚre sécurisée.

L’idĂ©e est d’ouvrir sur votre box internet le moins de port possible, et ainsi rĂ©duire votre surface d’attaque au maximum grĂące Ă  un tunnel SSH.

Ainsi, il n’y aura qu’une seule porte d’entrĂ©e Ă  votre rĂ©seau et Ă  vos Ă©quipements, nous allons sĂ©curiser cette unique entrĂ©e.

Avec cette mĂ©thode, vous aurez accĂšs Ă  votre SSH et l’ensemble des ports ouverts sur cette machine, mais Ă©galement aux autres devices de votre rĂ©seau (Box, CamĂ©ras, NAS, IoT etc..)

En outre, vous pourrez bypasser le proxy d’une entreprise, mais ce n’est pas l’objet de l’article, les connexions web passeront par le tunnel directement. (Extension FoxyProxy pour votre navigateur)

Pré-requis

  • Serveur SSH: RaspberryPi, Linux Box, Box Domotique, OpenSSH sous Windows, etc.
  • Dyndns, nom de domaine personnel ou une ip fixe
  • Extension FoxyProxy: Chrome / Firefox

Schéma

SSH-Tunnel-Schema

SĂ©curisation

Génération des clés

Pour commencer, nous allons sĂ©curiser l’accĂšs Ă  votre serveur SSH en utilisant un systĂšme d’accĂšs par clĂ© publique/clĂ© privĂ©e et non par mot de passe. Cela Ă©vitera les tentatives de bruteforce: de votre accĂšs. Pour accĂ©der Ă  votre serveur Ă  distance, il faudra donc possĂ©der cette clĂ© privĂ©e que nous allons gĂ©nĂ©rer.

Cela n’aura aucune incidence sur la connexion directe Ă  la machine via l’écran/clavier.

Sous Windows

Sous Windows, nous allons installer le célÚbre client SSH PuTTY, et son utilitaire PuTTYgen.

Une fois PuTTYgen lancé, sélectionnez SSH-2 RSA en bas, puis cliquez sur Generate pour générer votre paire de clés.

puttygen-generate

AprÚs avoir généré votre paire de clés, enregistrez dans un endroit sécurisé votre private key (.ppk) et copier votre clé publique sur votre serveur SSH (voir ci-dessous).

puttygen-pub

Vous ne devez en aucun cas communiquer cette clée privée sur Internet.

Configuration du authorized_keys

Connectez-vous à votre serveur en SSH (avec login/password) et modifiez avec vim par exemple le fichier ~/.ssh/authorized_keys pour y déclarer votre clé publique. Vous pouvez maintenant coller la ligne fournie par PuTTYgen dans ce fichier. Sauvegardez la configuration. (Petit Tuto pour les débutants sur vim)

Relancez votre serveur SSH sudo service sshd restart

Sous macOS / Linux

Utilisez les commandes suivantes pour générer vos paires de clés:

  • ssh-keygen Il est recommandĂ© de dĂ©finir une passphrase, mais ce n’est pas obligatoire. Il faudra taper cette passphrase Ă  chaque utilisation de la clĂ© privĂ©e.
  • ssh-copy-id user@host pour copier la clĂ© publique automatiquement sur votre serveur SSH.

Configuration SSHd: désactivation du login par password

Attention En dĂ©sactivant la connexion par mot de passe, vous ne pourrez plus vous connecter qu’avec une paire de clĂ©s. Si vous perdez cette paire de clĂ©s, vous devez avoir un accĂšs physique Ă  la machine (clavier/ecran) pour rĂ©cupĂ©rer l’accĂšs.

Voici les lignes que vous devez avoir dans votre config sshd: /etc/ssh/sshd_config

  • Protocol 2
  • PermitRootLogin no
  • PasswordAuthentication no
  • PubkeyAuthentication yes

Vérifiez que ces lignes ne sont pas commentées (#)

Ouverture du port SSH

Il faut maintenant ouvrir l’accĂšs SSH depuis l’extĂ©rieur maintenant que nous avons sĂ©curisĂ© l’accĂšs.

Vous trouverez plein de guides sur la configuration NAT de votre box, je ne m’y attarde donc pas.

Ici, il suffit de mapper le port TCP(22) vers votre serveur SSH.

Configuration du client et connexion

Sous Windows

Dans la partie session, configurer le hostname (votre DNS ou ipfixe), le port TCP(22) et le type de connexion (SSH) Puis dans la partie Auth (Connection -> SSH -> Auth), renseignez la clé privée (.ppk) que vous avez sauvegardée plus tÎt.

putty-auth

Nous allons maintenant configurer la partie tunnel qui nous permet d’accĂ©der Ă  diffĂ©rents ports de votre serveur SSH lui-mĂȘme, mais aussi aux autres pĂ©riphĂ©riques de votre LAN.

putty-tunnels

Dans cette section, nous allons crĂ©er les Ă©quipements de votre LAN, et dĂ©finir en ports dynamique l’accĂšs Ă  votre serveur SSH. (Cela Ă©vite de mapper tous les ports un par un si vous avez plusieurs services installĂ©s sur cette machine (FTP, HTTP, Jeedom, etc
)

On peut voir sur cette configuration par exemple, que le port TCP(8064) local(L) (de votre poste client) va mapper le port TCP(80) sur l’ip de votre LAN : 192.168.1.1 (Livebox Orange pour mon cas)

Ainsi, lorsque vous irez dans votre browser internet, et que vous irez sur la page : 127.0.0.1:8064, le tunnel ira chercher l’ip de votre 192.168.1.1 (box orange) sur le port TCP(80).

Pour le port local, vous pouvez prendre celui que vous souhaitez, du moment qu’il n’est pas dĂ©jĂ  utilisĂ© par votre poste client. Utilisez netstat -fa sous Windows pour visualiser toutes les connexions actives en Ă©coute. (LISTENING)

Sous macOS / Linux

Dans un Terminal, lancez la commande suivante pour monter le tunnel SSH : ssh -D 8080 -C -N username@votre_hostname

Connexion et vérification du bon fonctionnement

Connexion aux diffĂ©rents ports du serveur SSH, testez: 127.0.0.1:80, si vous hĂ©bergez un site web et tous les ports qui doivent ĂȘtre ouverts sur votre machine Linux.

Essayez d’autre devices de votre rĂ©seau, testez: 127.0.0.1:8064 pour arriver sur la page d’authentification de votre box par exemple, etc.. Vous avez compris le principe.

Concernant le proxy, CrĂ©ez un nouveau profil sur FoxyProxy sur 127.0.0.1:8080 et sĂ©lectionnez cette nouvelle configuration. VĂ©rifiez que vous l’utilisez bien en allant sur https://ifconfig.co, vous devez trouver l’IP publique de votre box domicile au lieu de celle de votre connexion actuelle.

zoph

Leave a Comment