루트가 없는 VPN 서버(교두보)?

루트가 없는 VPN 서버(교두보)?

루트 권한 없이 호스트에 VPN 서버를 설정하는 방법은 무엇입니까?

다음과 같은 제한 사항이 있습니다.

  • 서버 A에는 루트 권한이 없습니다. 내 홈 디렉터리에서만 작업할 수 있습니다. 특히 장치를 만들 수도 없습니다 tun.
  • 클라이언트 B에서는 모든 권한을 가지며 원하는 것을 설치할 수 있습니다.
  • SSH 포트 전달(-L/-R) 및 SOCKS 프록시(-D)가 작동하지만 제 경우에는 작동하지 않습니다. 내 클라이언트의 소프트웨어는 다양한 포트를 많이 사용하므로 SOCKS를 사용하는 쪽으로 기울고 있지만 커널 수준에서도 실행되므로 tsocks프록시를 사용하도록 설득할 수 없습니다. 한 가지 효과적인 방법은 B의 VM에서 내 클라이언트 소프트웨어를 실행하고 전체 VM을 연결하는 것입니다. 하지만 저는 실제로 그런 경로를 따르고 싶지 않습니다.
  • 권한 있는 포트가 필요하지 않으므로 A의 루트가 아닌 사람도 괜찮습니다.
  • "실제" VPN일 필요는 없지만 성격상 비슷한 VPN이면 충분합니다. B의 프로세스는 A(및 연결된 장치)의 프로세스를 다시 작성할 필요 없이 마치 한 컴퓨터에 있는 것처럼 통신할 수 있어야 합니다.

나는 이것을 수행하는 우아한 방법이 있다고 믿지 않습니다.옳은접근 방식은 A의 관리자에게 문의하거나 B를 동일한 네트워크에 연결하는 것입니다. 하지만 지금은 이것이 개념 증명으로 수행될 수 있는지 궁금합니다.

답변1

글쎄요, 서버 A에 대한 "루트가 없습니다" 액세스는 다음과 같은 이유로 좋은 VPN 솔루션을 만드는 데 문제가 될 수 있습니다.

  • IP-IP 터널인터페이스 작업이 필요합니다.
  • PPTP인터페이스를 생성하려면 루트 권한도 필요합니다.
  • 오픈VPN권한이 없는 사용자로 실행하는 것도 가능하지만 인터페이스 생성을 ip허용하려면 sudo 명령을 허용하는 등 몇 가지 트릭이 필요합니다.tun
  • 강한 백조CAP_NET_ADMIN작동 하려면 제한된 권한이 필요하며 CAP_NET_RAW루트가 아닌 사용자로 IKE 데몬을 실행하면 iptables updown 스크립트에 대한 지원이 중단됩니다.

친구여, 당신에게 남은 것은 무엇입니까: 의존성SSH 양말 프록시. 로컬 컴퓨터에서 루트로 실행합니다.

ssh -C2qTnN -D 8080 username@serverA

방법:압축, SSH2 전용, 자동, pseudo-tty 할당 강제, /dev/null에서 표준 입력 리디렉션, 연결 공유를 위해 ssh 클라이언트를 "마스터" 모드로 설정합니다.

이제 애플리케이션을 실행하기만 하면 됩니다. Firefox와 같은 기본 SOCKSv5 지원이 있는 경우 "localhost:8080"을 프록시 서버로 구성하면 됩니다.

애플리케이션이 기본적으로 이 프록시를 지원하지 않는 경우 다음 명령을 사용하여 실행하세요.프록시 체인. 클라이언트에 설치하면 됩니다.

불행하게도 당신이 취하고 싶지 않은 유일한 해결책은 유일한 해결책인 것 같습니다.

링크:

관련 정보