ルートなしのVPNサーバー(橋頭梁)?

ルートなしのVPNサーバー(橋頭梁)?

ルート権限なしでホストにVPNサーバーを設定するには?

次の制限があります。

  • サーバーAにはroot権限がありません。私のホームディレクトリでのみ作業できます。特にデバイスを作成することはできませんtun
  • クライアントBにはすべての権限があり、必要なものをインストールできます。
  • SSHポート転送(-L / -R)とSOCKSプロキシ(-D)は機能しますが、私の場合は機能しません。私のクライアントのソフトウェアは多種多様なポートを使用しているため、SOCKSを使用する側に傾いていますが、カーネルレベルでも動作するため、tsocksプロキシを使用するように説得することはできません。 1つの効果的な方法は、BのVMで私のクライアントソフトウェアを実行し、VM全体を接続することです。しかし、私は実際にそのようなパスに従いたくありません。
  • 特権ポートは必要ないので、Aのルートではない人でも大丈夫です。
  • 「実際の」VPNである必要はありませんが、性質上同様のVPNであれば十分です。 Bのプロセスは、A(および接続されているデバイス)のプロセスを書き換えることなく、まるで1台のコンピュータにあるかのように通信できる必要があります。

私はこれを行うエレガントな方法があると信じていません。正しいアプローチは、Aの管理者に問い合わせるか、Bを同じネットワークに接続することです。しかし、今はこれを概念証明で行うことができるかどうか疑問に思います。

答え1

さて、サーバーAへの「ルートなし」アクセスは、次の理由で良いVPNソリューションを作成するのに問題がある可能性があります。

  • IP-IPトンネルインターフェイス操作が必要です。
  • PPTPインターフェイスを作成するには、root 権限も必要です。
  • オープンVPN許可されていないユーザーとして実行することもできますが、インターフェイスの作成を許可するにはipsudoコマンドを許可するなど、いくつかのトリックが必要です。tun
  • 強い白鳥CAP_NET_ADMIN機能するには制限された権限が必要です。rootCAP_NET_RAW以外のユーザーとしてIKEデーモンを実行すると、iptables updownスクリプトのサポートが中断されます。

友達、あなたに残ったものは何ですか:依存関係SSHソックスプロキシ。ローカルコンピュータでrootとして実行します。

ssh -C2qTnN -D 8080 username@serverA

方法:圧縮、SSH2のみ、自動、pseudo-tty割り当てを強制し、/dev/nullから標準入力リダイレクト、接続共有のためにsshクライアントを「マスター」モードに設定します。

これでアプリケーションを実行するだけです。 Firefoxなどの基本的なSOCKSv5サポートがある場合は、「localhost:8080」をプロキシサーバーとして設定できます。

アプリケーションがデフォルトでこのプロキシをサポートしていない場合は、次のコマンドを使用して実行してください。プロキシチェーン。クライアントにインストールするだけです。

残念ながら、あなたがしたくない唯一の解決策は唯一の解決策のようです。

リンク:

関連情報