web-dev-qa-db-fra.com

Transférez la connexion Internet via ssh vers un ordinateur distant

J'ai du mal à accéder à Internet depuis mon ordinateur distant. J'aimerais accéder à l'ordinateur distant via ssh et disposer de la connexion Internet disponible pour installer des packages, etc.

Cela ressemble à ceci:

(Internet) <--wlan0--> ((Local Computer)) <--eth0--> ((Remote Computer))

Sur les deux ordinateurs, Linux avec Ubuntu trusty est en cours d'exécution.
Les adresses IP des ordinateurs sont:

Ordinateur local:

wlan0:  10.2.217.213
eth0:   192.168.1.10 (fixed)

Ordinateur distant:

eth0: 192.168.1.13 (fixed)

Puis-je simplement transférer un port sur lequel je reçois la connexion à Internet sur mon ordinateur local? Comment puis-je déterminer ce port?

Je suis content de votre aide! Je ne suis pas un expert du réseau et j'ai déjà cherché sur Google pendant des heures et j'ai essayé de transférer, mettre en place un pont, sshuttle, etc. sans succès.

Merci beaucoup,
Jonas

2
jonas-

Utilisez cet ensemble de règles iptables pour configurer votre ordinateur local en tant que routeur NAT:

iptables -P INPUT DROP  # drop every INPUT
iptables -P FORWARD DROP    # drop every FORWARD
iptables -A INPUT -i lo -j ACCEPT   # accept loopback-INPUT
iptables -A INPUT -i eth0 -j ACCEPT # accept eth0 INPUT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE   # NAT-Translation
iptables -A FORWARD -i eth0 -j ACCEPT   # accept FORWARD-Traffic from eth0
iptables -A FORWARD -i wlan0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # accept FORWARD-Traffic as reply for existing connections
iptables -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT # allow the local computer to access the internet
iptables -A INPUT -i wlan0 -p icmp --icmp-type echo-request -j ACCEPT # allow pings on wlan0
echo "1" > /proc/sys/net/ipv4/ip_forward

Ne copiez pas ces règles sans les vérifier au préalable. Utilisez un shell racine (par exemple, Sudo -s) pour appliquer ces règles à iptables.

N'oubliez pas de définir votre ordinateur local en tant que passerelle pour l'ordinateur distant.

2
Oliver R.

Suggérant que les deux sont des machines Linux, vous devrez configurer le routage sur votre ordinateur local, ce qui signifie au moins la configuration de ce paramètre du noyau:

echo "1" > /proc/sys/net/ipv4/ip_forward

(Ceci est un paramètre non permanent, il a disparu après le redémarrage. Placez cette ligne dans /etc/rc.local par exemple pour le faire toujours au démarrage.)

L'ordinateur local doit avoir l'ordinateur local configuré comme passerelle par défaut.

Selon la configuration de votre ordinateur local, vous devrez peut-être configurer iptables sur certains éléments, par exemple. NAT. Mais fondamentalement, cela ne devrait pas être nécessaire. De plus, le routeur entre Internet et votre ordinateur local peut avoir besoin de connaître l’itinéraire vers le eth0-network (192.168.1.0/24?)

EDIT: j’ai oublié l’essentiel: en supposant que vous ayez un routeur NAT entre Internet et l’ordinateur local et que vous ayez défini la route sur ce routeur Internet pour votre eth0-network, vous pouvez configurez le transfert de port pour ssh directement sur 192.168.1.13.

J'espère que ça aide!

0
Oliver R.