특정 네트워크 인터페이스와 함께 ssh 사용


37

openconnectVPN에 연결하는 데 사용 하고 있습니다. 자격 증명을 입력하면 다음과 같은 결과가 나타납니다.

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

Running ifconfigtun0특정 IP 주소를 가진 새로운 네트워크 인터페이스 를 가지고 있음을 보여줍니다 .

질문 : 개인 네트워크의 컴퓨터에 액세스 할 수 있도록 ssh네트워크 인터페이스 만 사용하려면 어떻게해야 tun0합니까?

편집하다:

내 네트워크 구성 ( route -n)은 다음과 같습니다.

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

네트워크 구성을 자세히 설명 할 수 있습니까? 적절한 라우팅을 설정하면 tun0에 연결된 네트워크로 향하는 모든 트래픽이 해당 인터페이스를 사용합니다.
Eli Heady

답변:


45

어떤 인터페이스 TCP 패킷을 통과해야하는지 결정하는 것은 ssh 클라이언트가 아니라 커널입니다. 간단히 말해 SSH는 커널에게 특정 IP 주소에 대한 연결을 열도록 요청하고 라우팅 테이블을 참조하여 사용할 인터페이스를 결정합니다.

(다음은 여러분이 GNU / Linux에 있다고 가정합니다. 일반적인 개념은 모든 Unices에서 동일하지만 실행할 명령의 세부 사항과 출력 형식이 다를 수 있습니다.)

route -n 및 / 또는 ip route show 명령으로 커널 라우팅 테이블을 표시 할 수 있습니다 .

OpenConnect는 tun0인터페이스 라인을 추가해야합니다 . 해당 회선과 일치하는 주소로의 연결은 해당 인터페이스를 통해 라우팅됩니다. 예를 들어 route -n랩톱 에서 실행 하면 다음과 같은 결과가 나타납니다.

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

이는 192.168.122.0/24 (즉, CIDR 표기법 에 따라 주소 192.168.122.0 ~ 192.168.122.255 ) 네트워크의 호스트에 대한 연결이 인터페이스를 통해 라우팅 됨을 의미합니다 virbr0. 169.254.0.0/16 및 10.30.0.0/24에 대한 항목은 통과 eth0하고 다른 항목 (0.0.0.0 행)은 eth0을 통해 게이트웨이 호스트 10.30.0.1 로 라우팅됩니다 .


나를 위해 이것을 명확히 해 주셔서 감사합니다- 인터페이스에 openconnect대한 줄을 추가하지 않은 것 같습니다 tun0. 나는 이것을 수동으로해야한다고 생각합니다.
axel22

1
@ 현재보고있을 수 있습니다 axel22 : bbs.archlinux.org/viewtopic.php?id=69064 경로 최대 사용이 openconnect 것을 스크립트와 세트.
리카르도 Murri

@RiccardoMurri 내 질문
Rahul Gautam

6

언제 출시되었는지는 모르겠지만 RHEL7의 OpenSSH 클라이언트는 맨 페이지에 있습니다.

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

인터페이스를 선택하는 것만 큼 좋지는 않지만 가깝습니다.


또한 -B사용할 네트워크 인터페이스의 이름을 지정할 수 있는 플래그입니다.
Henrik

-b bind_address어떻게 든 옵션 이 작동하지 않았습니다. 경로를 일시적으로 변경하면 작동합니다. BTW :이 -B옵션은 Ubuntu와 함께 제공되는 SSH 버전에 없습니다.
요한 복음

2

Network Manager를 사용하여 인터넷 연결을 관리하는 경우 (많은 시스템의 기본 관리자와 같이) openconnect및을 모두 설치할 수 있습니다 network-manager-openconnect.

Network Manager 용 OpenConnect 플러그인이 설치되면 Network Manager를 열고 +왼쪽 하단 의 아이콘을 클릭하십시오 . VPN 옵션이있는 콤보 상자가 제공되고 OpenConnect Compatible VPN 을 선택할 수 있습니다.

Network Manager를 사용하여 OpenConnect와 인터페이스하면 경로가 자동으로 나타나고 VPN 연결에 도움이됩니다. 이는 FireHost의 작동 방식과 같은 VPN을 통해 서버에 액세스 할 때 특히 유용합니다 .


1

답을 추가하기 만하면됩니다. -b액세스시 플래그 를 사용 하고 소스 IP를 정의 할 수 있습니다 .

형식 + 예

ssh -b interface-ip remote-ip
ssh -b 10.11.22.40 10.11.22.38 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.