J'utilise openconnect
pour me connecter à vpn. Après avoir entré mes informations d'identification, j'obtiens ceci:
POST https://domain.name/...
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected tun0 as xxx.xxx.xxx.xxx, using SSL
Established DTLS connection
L'exécution de ifconfig
indique que j'ai une nouvelle interface réseau tun0
avec une certaine adresse IP.
Question: Comment puis-je faire en sorte que ssh
utilise uniquement l'interface réseau tun0
pour pouvoir accéder aux ordinateurs de ce réseau privé?
Modifier:
Ma configuration réseau (route -n
) semble être ceci:
172.16.194.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.25.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
Ce n'est pas le client ssh qui décide par quelle interface TCP doivent aller, c'est le noyau. En bref, SSH demande au noyau d'ouvrir une connexion à une certaine adresse IP, et le noyau décide laquelle l'interface doit être utilisée en consultant les tables de routage.
(Ce qui suit suppose que vous êtes sous GNU/Linux; le concept général est le même pour tous les Unices, mais les spécificités des commandes à exécuter et la façon dont la sortie est formatée peuvent varier.)
Vous pouvez afficher les tables de routage du noyau avec les commandes route -n et/ou ip route show .
OpenConnect aurait dû ajouter une ligne pour le tun0
interface; les connexions à toute adresse correspondant à cette ligne seront acheminées via cette interface. Par exemple, exécuter route -n
sur mon ordinateur portable j'obtiens la sortie suivante:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.30.0.1 0.0.0.0 UG 0 0 0 eth0
10.30.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Cela signifie que les connexions aux hôtes dans le réseau 192.168.122.0/24 (c'est-à-dire les adresses 192.168.122.0 à 192.168.122.255 selon notation CIDR ) seront routées via l'interface virbr0
; ceux vers 169.254.0.0/16 et 10.30.0.0/24 passeront par eth0
, et tout le reste (la ligne 0.0.0.0) sera acheminé via eth0 vers hôte de la passerelle 10.30.0.1.
Je ne sais pas quand il a été introduit mais le client OpenSSH sur RHEL7 a ceci dans sa page de manuel:
-b bind_address
Use bind_address on the local machine as the source address of the connection. Only useful on systems with more than one address.
Pas aussi bon que de pouvoir choisir l'interface, mais proche.
Si vous utilisez Network Manager pour gérer vos connexions Internet (tout comme le gestionnaire par défaut sur de nombreux systèmes), vous souhaiterez peut-être installer à la fois openconnect
et network-manager-openconnect
.
Une fois le plug-in OpenConnect installé pour Network Manager, ouvrez Network Manager et cliquez sur le + icône en bas à gauche. Vous devriez recevoir une combo-box avec l'option [~ # ~] vpn [~ # ~] puis la possibilité de sélectionner VPN compatible OpenConnect.
En utilisant Network Manager pour interfacer avec OpenConnect, vos itinéraires apparaîtront automatiquement et vous aideront à vous connecter au VPN. Cela est particulièrement utile pour accéder aux serveurs via VPN, comme la façon dont FireHost fait les choses.
Ajout d'une réponse. Vous pouvez utiliser -b
marquez et définissez votre IP source au moment de l'accès.
Format + exemple
ssh -b interface-ip remote-ip
ssh -b 10.11.22.40 10.11.22.38