SSH 터널의 아웃바운드 인터페이스 지정

SSH 터널의 아웃바운드 인터페이스 지정

두 개의 인터페이스에 두 개의 공용 IP 주소가 있는 컴퓨터가 있습니다. 이 기계는 실행 중입니다 sshd. SOCKS 인터페이스(예:)를 사용하여 터널을 생성할 때 -D나가는 연결에 사용할 인터페이스를 지정하는 방법이 있습니까 ?

답변1

엄밀히 말하면 ssh의 -b 옵션(mgjk 제안)과 라우팅을 결합하여 문제를 해결할 수 있습니다. 사이트 8.8.8.7(단지 구성한 예)에 대한 터널을 구축하려고 하고 연결이 eth1을 통과하기를 원한다고 가정하고 다음 명령을 수행합니다.

 sudo route add -host 8.8.8.7 dev eth1

올바른 경로가 추가되고 모든 것이 잘 될 것입니다.

그러나 이는 "정책 라우팅" 적용의 완벽한 예이기도 합니다. 터널이 설정된 머신에서 라우팅 테이블을 구성해야 합니다(명령이 있는 곳SSH -D ...발행) 단순히 두 개의 인터페이스가 존재하는 유일한 인터페이스이기 때문입니다.

David Schwartz는 간결하고 충분한 설명을 제공합니다.이 웹사이트에서. 유일한 중요한 세부 사항은 다음과 같습니다. eth0이 192.168.1.2이고 eth1이 10.0.0.2라고 가정하면 다음과 같이 말할 수 있습니다.

 ip rule add from 10.0.0.2 table <NAME1>
 ip rule add from 192.168.1.2 table <NAME2>

이 시점에서 -b를 통해 ssh 연결을 eth1 주소에 바인딩하면 작업이 완료됩니다.

답변2

-b를 사용하면 어떻게 되나요?

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

관련 정보