2 votes

Ouvrir le port autossh pour l'accès public

Je veux accéder à un Raspberry Pi Zero W sur le réseau local via Traversée du NAT . Je suivais ce tutoriel (en chinois) mais je rencontre le problème décrit ci-dessous.

L'idée est de transférer le port SSH sur le Raspberry Pi local vers une machine distante avec une IP publique, puis d'accéder au Pi à partir de là. Pour des raisons de sécurité, j'ai remplacé les valeurs réelles par nalzok@remote-ip .

Sur Raspberry Pi (accès depuis le réseau local)

pi@nalzoks-pi:~ $ autossh -M 30000 -o "StrictHostKeyChecking=false" -o "ServerAliveInterval 10" -o "ServerAliveCountMax 3" -NR 20000:localhost:22 nalzok@remote-ip

Sur le serveur distant

Je n'ai aucun problème à me connecter au Pi depuis le serveur distant.

nalzok@iZuf68c45z6sk19lln4zvsZ:~$ ssh -p20000 pi@localhost
Linux nalzoks-pi 4.19.66+ #1253 Thu Aug 15 11:37:30 BST 2019 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Sep  8 10:12:30 2019 from ::1
pi@nalzoks-pi:~ $

Sur mon ordinateur (en dehors du réseau local)

Cependant, je ne peux pas y accéder directement depuis mon ordinateur.

$ ssh -p20000 pi@remote-ip
ssh: connect to host remote-ip port 20000: Connection refused

Sur le serveur distant

Je suis pratiquement sûr que le pare-feu est ouvert pour les ports 20000 et 30000 sur le serveur distant. En essayant de me dépanner, j'ai réalisé que ces ports ne sont disponibles que pour l'accès local.

nalzok@iZuf68c45z6sk19lln4zvsZ:~$ sudo lsof -i -P -n | grep LISTEN
[sudo] password for nalzok:
sshd        601    root    3u  IPv4  13223      0t0  TCP *:22 (LISTEN)
sshd      12503    root    8u  IPv4 879255      0t0  TCP 127.0.0.1:1234 (LISTEN)
sshd      13026  nalzok    9u  IPv4 885817      0t0  TCP 127.0.0.1:30000 (LISTEN)
sshd      13026  nalzok   10u  IPv4 885818      0t0  TCP 127.0.0.1:20000 (LISTEN)

Comment ouvrir le port 20000 pour l'accès public ?

1voto

chuckx Points 1110

Ce comportement de transfert à distance est explicitement documenté dans le document la page de manuel SSH :

Par défaut, les sockets d'écoute TCP sur le serveur seront liés à l'option interface de bouclage uniquement. Ceci peut être modifié en spécifiant un paramètre de type bind_address. Une adresse bind_address vide, ou l'adresse '*', indiquent que la socket distante doit écouter sur toutes les interfaces. En spécifiant une adresse remote bind_address n'aboutira que si l'option GatewayPorts du serveur du serveur est activée (voir sshd_config(5)).

Si le GatewayPorts option est activé sur le serveur, vous devez spécifier le transfert distant comme ceci pour en tirer profit :

-R *:20000:localhost:22

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X