GNU/Linux >> Tutoriels Linux >  >> Linux

Ouvrez les ports et acheminez le trafic à travers votre pare-feu

Idéalement, la plupart des réseaux locaux sont protégés du monde extérieur. Si vous avez déjà essayé d'installer un service, tel qu'un serveur Web ou une instance Nextcloud à la maison, vous savez probablement par expérience que, bien que le service soit facilement accessible depuis l'intérieur du réseau, il est inaccessible dans le monde entier. Internet.

Il y a à la fois des raisons techniques et de sécurité à cela, mais parfois vous souhaitez ouvrir l'accès à quelque chose au sein d'un réseau local au monde extérieur. Cela signifie que vous devez être en mesure d'acheminer le trafic d'Internet vers votre réseau local, correctement et en toute sécurité. Dans cet article, je vais vous expliquer comment.

Adresses IP locales et publiques

La première chose que vous devez comprendre est la différence entre une adresse IP (Internet Protocol) locale et une adresse IP publique. Actuellement, la majeure partie du monde utilise (encore) un système d'adressage appelé IPv4, qui dispose d'un nombre limité de numéros disponibles à attribuer aux appareils électroniques en réseau. En fait, il y a plus d'appareils en réseau dans le monde qu'il n'y a d'adresses IPv4, et pourtant IPv4 continue de fonctionner. Cela est possible grâce aux adresses locales.

Tous les réseaux locaux dans le monde utilisent le même pools d'adresses. Par exemple, l'adresse IP locale de mon routeur domestique est 192.168.1.1. L'un d'eux est probablement le même numéro que votre routeur domestique, mais lorsque je navigue vers 192.168.1.1, j'atteins mon l'écran de connexion du routeur et non votre l'écran de connexion du routeur. C'est parce que votre routeur domestique a en fait deux adresses :une publique et une locale, et la publique protège la locale d'être détectée par Internet, et encore moins d'être confondue avec le 192.168.1.1 de quelqu'un d'autre.

C'est en fait la raison pour laquelle Internet s'appelle Internet :c'est un "web" de réseaux interconnectés et autrement autonomes. Chaque réseau, qu'il s'agisse de votre lieu de travail, de votre domicile, de votre école, d'un grand centre de données ou du « cloud » lui-même, est un ensemble d'hôtes connectés qui, à leur tour, communiquent avec une passerelle (généralement un routeur) qui gère le trafic depuis le Internet et vers le réseau local, ainsi que hors du réseau local vers Internet.

Cela signifie que si vous essayez d'accéder à un ordinateur sur un réseau qui n'est pas le réseau auquel vous êtes actuellement connecté, alors connaître l'adresse locale de cet ordinateur ne vous sert à rien. Vous devez connaître le public adresse de la passerelle du réseau distant. Et ce n'est pas tout. Vous avez également besoin d'une autorisation pour passer par cette passerelle dans le réseau distant.

Pare-feu

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Idéalement, il y a des pare-feu tout autour de vous, même maintenant. Vous ne les voyez pas (espérons-le), mais ils sont là. Au fur et à mesure que la technologie évolue, les pare-feu ont un nom amusant, mais ils sont en fait un peu ennuyeux. Un pare-feu n'est qu'un service informatique (également appelé "démon"), un sous-système qui s'exécute en arrière-plan de la plupart des appareils électroniques. De nombreux démons s'exécutent sur votre ordinateur, y compris celui qui écoute les mouvements de la souris ou du trackpad, par exemple. Un pare-feu est un démon programmé pour accepter ou refuser certains types de trafic réseau.

Les pare-feu sont des programmes relativement petits, ils sont donc intégrés dans la plupart des appareils modernes. Ils s'exécutent sur votre téléphone mobile, sur votre routeur et sur votre ordinateur. Les pare-feu sont conçus sur la base de protocoles réseau, et cela fait partie de la spécification de parler à d'autres ordinateurs qu'un paquet de données envoyé sur un réseau doit annoncer des informations spécifiques sur lui-même (ou être ignoré). Une chose que les données réseau contiennent est un port numéro, qui est l'une des principales choses qu'un pare-feu utilise lorsqu'il accepte ou refuse du trafic.

Les sites Web, par exemple, sont hébergés sur des serveurs Web. Lorsque vous souhaitez consulter un site Web, votre ordinateur envoie des données réseau s'identifiant comme du trafic destiné au port 80 de l'hébergeur Web. Le pare-feu du serveur Web est programmé pour accepter le trafic entrant destiné au port 80, il accepte donc votre demande (et le serveur Web, à son tour, vous envoie la page Web en réponse). Cependant, si vous envoyiez (que ce soit par accident ou à dessein) des données réseau destinées au port 22 de ce serveur Web, vous seriez probablement refusé par le pare-feu (et éventuellement banni pendant un certain temps).

Cela peut être un concept étrange à comprendre car, comme les adresses IP, les ports et les pare-feu "n'existent" pas vraiment dans le monde physique. Ce sont des concepts définis dans le logiciel. Vous ne pouvez pas ouvrir votre ordinateur ou votre routeur pour inspecter physiquement les ports réseau, et vous ne pouvez pas regarder un numéro imprimé sur une puce pour trouver votre adresse IP, et vous ne pouvez pas tremper votre pare-feu dans l'eau pour l'éteindre. Mais maintenant que vous savez que ces concepts existent, vous connaissez les obstacles liés au passage d'un ordinateur d'un réseau à un autre sur un réseau différent.

Il est maintenant temps de contourner ces blocages.

Votre adresse IP

Je suppose que vous contrôlez votre propre réseau et que vous essayez d'ouvrir vos propres pare-feu et d'acheminer votre propre trafic pour autoriser le trafic extérieur sur votre réseau. Tout d'abord, vous avez besoin de vos adresses IP locales et publiques.

Pour trouver votre adresse IP locale, vous pouvez utiliser le ip commande d'adresse sous Linux :

$ ip addr show | grep "inet "
 inet 127.0.0.1/8 scope host lo
 inet 192.168.1.6/27 brd 10.1.1.31 scope [...]

Dans cet exemple, mon adresse IP locale est 192.168.1.6. L'autre adresse (127.0.0.1) est une adresse de "bouclage" spéciale que votre ordinateur utilise pour se référer à lui-même depuis lui-même.

Pour trouver votre adresse IP locale sur macOS, vous pouvez utiliser ifconfig :

$ ifconfig | grep "inet "
 inet 127.0.0.1 netmask 0xff000000
 inet 192.168.1.6 netmask 0xffffffe0 [...]

Et sous Windows, utilisez ipconfig :

$ ipconfig

Obtenez l'adresse IP publique de votre routeur sur icanhazip.com. Sous Linux, vous pouvez l'obtenir depuis un terminal avec la commande curl :

$ curl http://icanhazip.com
93.184.216.34

Gardez ces numéros à portée de main pour plus tard.

Diriger le trafic via un routeur

Le premier périphérique qui doit être ajusté est le périphérique de passerelle. Il peut s'agir d'un gros serveur physique ou d'un petit routeur. Dans tous les cas, la passerelle effectue presque certainement la traduction d'adresses réseau (NAT), qui consiste à accepter le trafic et à modifier l'adresse IP de destination.

Lorsque vous générez du trafic réseau pour afficher un site Web externe, votre ordinateur doit envoyer ce trafic à la passerelle de votre réseau local car votre ordinateur n'a, essentiellement, aucune connaissance du monde extérieur. Pour autant que votre ordinateur le sache, tout Internet n'est que votre routeur réseau, 192.168.1.1 (ou quelle que soit l'adresse de votre routeur). Ainsi, votre ordinateur envoie tout à votre passerelle. C'est le travail de la passerelle d'examiner le trafic et de déterminer où il se trouve réellement dirigé, puis transmettre ces données sur le véritable Internet. Lorsque la passerelle reçoit une réponse, elle retransmet les données entrantes à votre ordinateur.

Si votre passerelle est un routeur, pour exposer votre ordinateur au monde extérieur, vous devez désigner un port de votre routeur pour représenter votre ordinateur. Cela configure votre routeur pour accepter le trafic vers un port spécifique et diriger tout ce trafic directement vers votre ordinateur. Selon la marque de routeur que vous utilisez, ce processus porte plusieurs noms différents, y compris la redirection de port ou le serveur virtuel ou parfois même les paramètres de pare-feu.

Chaque appareil est différent, il n'y a donc aucun moyen pour moi de vous dire exactement sur quoi vous devez cliquer pour ajuster vos paramètres. Généralement, vous accédez à votre routeur domestique via un navigateur Web. L'adresse de votre routeur est parfois imprimée sous le routeur et commence par 192.168 ou 10.

Accédez à l'adresse de votre routeur et connectez-vous avec les informations d'identification qui vous ont été fournies lorsque vous avez obtenu votre service Internet. C'est souvent aussi simple que admin avec un mot de passe numérique (parfois, ce mot de passe est également imprimé sur le routeur). Si vous ne connaissez pas la connexion, appelez votre fournisseur d'accès Internet et demandez des détails.

Dans l'interface graphique, redirigez le trafic entrant d'un port vers un port (le même est généralement le plus simple) de l'adresse IP locale de votre ordinateur. Dans cet exemple, je redirige le trafic entrant destiné au port 22 (utilisé pour les connexions SSH) de mon routeur domestique vers mon ordinateur de bureau.

Vous pouvez rediriger n'importe quel port que vous voulez. Par exemple, si vous hébergez un site Web sur un ordinateur de rechange, vous pouvez rediriger le trafic destiné au port 80 de votre routeur vers le port 80 de l'hébergeur de votre site Web.

Diriger le trafic via un serveur

Si votre passerelle est un serveur physique, vous pouvez diriger le trafic à l'aide de firewall-cmd. Utilisation de la règle enrichie option, vous pouvez demander à votre serveur d'écouter une demande entrante à une adresse spécifique (votre adresse IP publique) et un port spécifique (dans cet exemple, j'utilise 22, qui est le port utilisé pour SSH), puis diriger ce trafic vers une adresse IP l'adresse et le port du réseau local (l'adresse locale de votre ordinateur).

$ firewall-cmd --permanent --zone=public \
--add-rich-rule 'rule family="ipv4" destination address="93.184.216.34" forward-port port=22 protocol=tcp to-port=22 to-addr=192.168.1.6'

Configurer votre pare-feu

La plupart des appareils sont équipés de pare-feu, de sorte que vous constaterez peut-être que le trafic ne parvient pas à votre ordinateur local même après avoir transféré les ports et le trafic. Il est possible qu'un pare-feu bloque le trafic même au sein de votre réseau local. Les pare-feu sont conçus pour sécuriser votre ordinateur, alors résistez à l'envie de désactiver complètement votre pare-feu (sauf pour le dépannage). Au lieu de cela, vous pouvez autoriser le trafic de manière sélective.

Le processus de modification de votre pare-feu personnel diffère selon votre système d'exploitation.

Sous Linux, de nombreux services sont déjà définis. Voir ceux disponibles :

$ sudo firewall-cmd --get-services
amanda-client amanda-k5-client bacula bacula-client
bgp bitcoin bitcoin-rpc ceph cfengine condor-collector
ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch
freeipa-ldaps ftp [...] ssh steam-streaming svdrp [...]

Si le service que vous essayez d'autoriser est répertorié, vous pouvez l'ajouter à votre pare-feu :

$ sudo firewall-cmd --add-service ssh --permanent

Si votre service n'est pas répertorié, vous pouvez ajouter le port que vous souhaitez ouvrir manuellement :

$ sudo firewall-cmd --add-port 22/tcp --permanent

L'ouverture d'un port dans votre pare-feu est spécifique à votre zone actuelle . Pour plus d'informations sur les pare-feu, firewall-cmd et les ports, consultez mon article Rendre Linux plus fort avec des pare-feu , et téléchargez notre aide-mémoire sur le pare-feu pour une référence rapide.

Cette étape consiste uniquement à ouvrir un port sur votre ordinateur afin que le trafic qui lui est destiné sur un port spécifique soit accepté. Vous n'avez pas besoin de rediriger le trafic car vous l'avez déjà fait sur votre passerelle.

Établir la connexion

Vous avez configuré votre passerelle et votre réseau local pour acheminer le trafic à votre place. Désormais, lorsqu'une personne extérieure à votre réseau navigue vers votre adresse IP publique, destinée à un port spécifique, elle sera redirigée vers votre ordinateur sur le même port. C'est à vous de surveiller et de protéger votre réseau, alors utilisez vos nouvelles connaissances avec précaution. Trop de ports ouverts peuvent ressembler à des invitations à de mauvais acteurs et bots, alors n'ouvrez que ce que vous avez l'intention d'utiliser. Et surtout, amusez-vous !


Linux
  1. Comment vérifier les ports ouverts sous Linux avec netstat, lsof et nmap

  2. Comment surveiller le commutateur réseau et les ports à l'aide de Nagios

  3. Comment surveiller et enregistrer le trafic réseau sous Linux à l'aide de vnStat

  4. Acheminez uniquement le trafic spécifique via VPN

  5. Pourquoi le trafic réseau Linux ne passe-t-il que par eth0 ?

Sécurisez votre réseau Linux avec firewall-cmd

Comment rechercher et fermer des ports ouverts sous Linux

Comment installer et gérer Evillimiter pour contrôler votre réseau Wi-Fi sous Linux

Comment installer et utiliser l'analyseur de trafic réseau Linux basé sur le Web de Darkstat

Comment autoriser les ports dans le pare-feu WHM et le pare-feu CSF via SSH ?

Comment vérifier tous les ports ouverts de votre système Linux