SSH 터널을 통해 인터넷을 라우팅하려면 어떻게해야합니까?


24

이전 Q 루트 권한없이 OpenVPN 서버를 설정하려면 어떻게합니까?

루트 권한없이 OpenVPN 서버를 설정하는 방법이 있습니까? 예를 들어 홈 디렉토리에 구성 파일이 있습니까? 그렇다면 어떻게 설정합니까?

시스템에 SSH로 연결하고 개인적으로 OpenVPN 서버를 설정하려고합니다.

편집하다

OpenVPN에 루트 권한이 필요하다는 것이 명백하기 때문에 SSH를 사용하여 인터넷을 라우팅하도록 쉽게 질문을 변경하고 있습니다.


"userspace"란 루트 권한이없는 홈 폴더를 의미합니까? 일반적으로 "사용자 공간"은 "커널 공간"의 반대쪽으로 사용됩니다.
Lekensteyn


@Lekensteyn, 루트 권한이 없으면 다른 것을 가리키는 사용자 공간을 알지 못했습니다. 내 질문을 적절한 것으로 편집하십시오. 나는 그 대답도 생각하고 있었지만 루트 권한없이 설정하는 것에 대해서는 모른다.
Oxwivi

답변:


32

sshuttle 은 SSH 연결을 통해 전달하고 원격 서버에서 Python 스크립트를 실행하여 프록시를 설정하는 투명한 프록시 서버입니다. sshuttle다음 조건에서 실행할 수 있습니다.

  • 클라이언트 컴퓨터 또는 라우터는 Linux 기반, FreeBSD 또는 Mac OS
  • 클라이언트에 대한 관리 권한
  • SSH를 통해 원격 네트워크에 액세스
  • 원격 네트워크에 대한 관리자 권한이 없음
  • 원격 서버에서 Python의 가용성

소프트웨어 센터 또는 터미널에서 sshuttle여기에 이미지 설명을 입력하십시오 을 설치 하십시오.

sudo apt-get install sshuttle

모든 트래픽을 라우팅하면서 Sshuttle을 실행하기위한 기본 명령은 다음과 같습니다.

sshuttle -r username@sshserver:port 0/0

명령을 실행하면 sudo비밀번호 프롬프트가 표시되고 이후에 SSH 계정의 비밀번호가 표시됩니다. 짧은 메시지를 제외하고 다른 세부 사항은 나타나지 않으며 실패시 쉘로 돌아갑니다. 더 많은 상태 메시지를 보려면 플래그 sshuttle와 함께 상세 모드로 실행 하십시오 -v.

이 예에서 DNS를 제외한 모든 인터넷 트래픽은 VPN을 통해 라우팅됩니다. -rflag는 위의 예에서 따르는 원격 호스트 이름과 선택적 사용자 이름 및 포트를 나타냅니다. 0/0짧은입니다 0.0.0.0/0그 VPN을 통해 경로에 서브넷을 나타냅니다. 사용법은 0/0DNS 요청을 제외한 모든 트래픽을 원격 서버 로 라우팅합니다. -H플래그를 사용하면 DNS 튜닝이 가능합니다 .

실행할 수 man sshuttle있는 옵션 및 모드에 대한 자세한 내용은 매뉴얼 페이지 ( )를 참조하십시오 sshuttle. 개념 및 추가 예제에 대한 정보는 프로젝트 페이지를 참조하십시오 .


redsocks 도 고려할 가치가 있습니다. 동일한 기능, 약간 다른 실행
sanmai

17

특정 작업에 루트 권한이 없으면 OpenVPN을 설정할 수 없습니다.

  • 전제 조건 : (iptables?) 방화벽에서 패킷 전달을 활성화해야합니다.
  • 작동중인 장치 추가 :을 사용하여 특수 가상 장치를 추가해야합니다 ifconfig. 그렇지 않으면 서버와 클라이언트간에 통신이 불가능합니다

필요에 따라 다른 솔루션을 사용할 수 있습니다. 서버를 탐색하기 위해 SOCKS 서버를 설정할 수 있습니다.

양말 프록시

SOCKS 프록시 설정은 어렵지 않습니다. OpenSSH에 내장되어 있습니다. SOCKS 서버를 활성화하려면 터미널 에서 다음 명령을 실행하십시오 .

ssh user@host -D1234

선호하는 포트로 1234를 교체하십시오. 브라우저 에서 SOCKS4 / 5 서버에서 localhost호스트 및 1234포트로 입력 할 수 있습니다 .

다음은 Firefox 브라우저의 예입니다.

  1. 편집 -> 환경 설정으로 이동 하십시오.
  2. 고급 섹션을 엽니 다
  3. 네트워크 탭으로 이동
  4. 를 눌러 설정
  5. 수동 프록시 구성을 선택하십시오.
  6. SOCKS 호스트localhost 로 입력
  7. 1234포트로 입력하십시오 (SSH 명령에 지정된 것과 동일한 포트)
  8. 환경 설정 대화 상자를 닫으려면 확인닫기 를 누르 십시오 .

FIrefox 설정 예


1
VPN을 설정하려는 시스템을 통해 인터넷을 라우팅하고 싶습니다.
Oxwivi

불행히도 루트 권한이 없으면 서버의 라우팅 규칙을 변경할 수 없습니다. 브라우징을위한 최소한의 안전한 솔루션을 제공하는 솔루션 중 하나는 답변에 설명 된대로 SOCKS 프록시를 사용하는 것입니다.
Lekensteyn

1
SSH 터널을 통해 인터넷을 라우팅하는 데 성공했습니다. 질문을 편집 한대로 구체적으로 답변을 편집해야합니까? 아니면 하시겠습니까?
Oxwivi

@Oxwivi : 다시 주문하고 Firefox 예제를 추가했습니다.
Lekensteyn

-1

시스템 TCP 트래픽 만 터널링하려면 tun2socks라는 프로그램을 사용하는 것이 좋습니다. UDP 트래픽도 터널링하려면 서버에 udpgw를 설치해야합니다.

이 프로그램을 설치하고 사용하는 방법은 다음과 같습니다. http://board.nwrk.biz/viewtopic.php?id=3


4
답변을 업데이트하고 여기에서 링크의 가장 중요한 단계를 설명해 주시겠습니까? 이런 식으로이 답변은 사이트가 사라져도 여전히 유용합니다.
Louis Matthijssen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.