Użyj ssh z określonym interfejsem sieciowym


38

Używam openconnectdo połączenia z VPN. Po wprowadzeniu moich danych uwierzytelniających otrzymuję:

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

Uruchamianie ifconfigprogramów Mam nowy interfejs sieciowy tun0z pewnym adresem IP.

Pytanie: Jak sshkorzystać z interfejsu sieciowego, tun0aby uzyskać dostęp do komputerów w tej sieci prywatnej?

Edytować:

Moja konfiguracja sieci ( route -n) wydaje się następująca:

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

Czy możesz rozwinąć konfigurację sieci? Przy odpowiednim routingu każdy ruch przeznaczony dla sieci podłączonej do tun0 będzie korzystał z tego interfejsu.
Eli Heady

Odpowiedzi:


45

To nie klient ssh decyduje przez który interfejs powinien przejść pakiet TCP, to jądro. Krótko mówiąc, SSH prosi jądro o otwarcie połączenia z określonym adresem IP, a jądro decyduje, którego interfejsu należy użyć, sprawdzając tabele routingu.

(Poniżej założono, że korzystasz z GNU / Linuksa; ogólna koncepcja jest taka sama dla wszystkich Uniksów, ale specyfika poleceń do uruchomienia i sposób formatowania danych wyjściowych mogą się różnić).

Możesz wyświetlić tabele routingu jądra za pomocą poleceń route -n i / lub ip route show .

OpenConnect powinien był dodać linię do tun0interfejsu; połączenia z dowolnym adresem pasującym do tej linii będą kierowane przez ten interfejs. Na przykład route -nna moim laptopie otrzymuję następujące dane wyjściowe:

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

Oznacza to, że połączenia z hostami w sieci 192.168.122.0/24 (tj. Adresy 192.168.122.0 do 192.168.122.255 zgodnie z zapisem CIDR ) będą kierowane przez interfejs virbr0; przejdą one do 169.254.0.0/16 i 10.30.0.0/24 eth0, a wszystko inne (linia 0.0.0.0) zostanie przekierowane przez eth0 do hosta bramy 10.30.0.1.


Dzięki za wyjaśnienie mi tego - wydaje się, że openconnectnie dodałem linii do tun0interfejsu. Chyba powinienem to zrobić ręcznie.
axel22

1
@ axel22 Możesz zajrzeć tutaj: bbs.archlinux.org/viewtopic.php?id=69064 dla skryptu, który używa openconnect i konfiguruje trasy.
Riccardo Murri

@RiccardoMurri Czy chciałbyś odpowiedzieć na moje pytanie
Rahul Gautam,

7

Nie wiem, kiedy został wprowadzony, ale klient OpenSSH na RHEL7 ma to na swojej stronie podręcznika:

 -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.

Nie tak dobry, jak możliwość wyboru interfejsu, ale blisko.


Także -Bflaga, która wydaje się pozwalać na określenie nazwy używanego interfejsu sieciowego.
Henrik,

Ta opcja -b bind_addressjakoś mi nie działała. Tymczasowa zmiana tras powinna działać. BTW: -BOpcja nie istnieje w wersji SSH dostarczanej z Ubuntu.
Jan

2

Jeśli używasz Network Managera do zarządzania połączeniami internetowymi (tak jak domyślny menedżer w wielu systemach), możesz chcieć zainstalować oba openconnecti network-manager-openconnect.

Po zainstalowaniu wtyczki OpenConnect dla Network Managera otwórz Network Managera i kliknij +ikonę w lewym dolnym rogu. Powinieneś otrzymać pole kombi z opcją VPN, a następnie możliwość wyboru VPN zgodnego z OpenConnect .

Używając Network Managera do połączenia z OpenConnect, Twoje trasy pojawią się automatycznie i pomogą ci połączyć się z VPN. Jest to szczególnie pomocne przy uzyskiwaniu dostępu do serwerów przez VPN, na przykład w jaki sposób FireHost działa.


1

Tylko dodanie odpowiedzi. Możesz użyć -bflagi i zdefiniować źródłowy adres IP w czasie dostępu.

Format + Przykład

ssh -b interface-ip remote-ip
ssh -b 10.11.22.40 10.11.22.38 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.