ルートがないホストにVPNサーバーを設定するにはどうすればよいですか?
次の制約があります。
tun
デバイスも作成できません。tsocks
でプロキシを使用するように説得することはできません。クライアントソフトウェアをVM on Bで実行し、全体をソックス化するVM-しかし、私は実際には行きたくないそのルート。私はこれを行うためのエレガントな方法があるとは思いません-正しい方法は、Aの管理者に尋ねるか、Bを同じネットに接続することです-しかし、今私はちょうど興味がありますこれは、概念実証として行うことができます。
さて、サーバーAに対するこの「ルートがない」アクセスは、次の理由から、優れたVPNソリューションを作成する上で問題になる可能性があります。
ip
コマンドにSudoを許可してtun
インターフェイスを作成できるようにするなど、いくつかのトリックを実行する必要があります。CAP_NET_ADMIN
またはCAP_NET_RAW
を実行する必要があり、非ルートユーザーがiptablesアップダウンスクリプトのサポートを中断するため、IKEデーモンを実行します。私の友人に残っているもの: SSHソックスプロキシ に頼ってください。ローカルマシンで、rootとして次のコマンドを実行します。
ssh -C2qTnN -D 8080 username@serverA
手段:圧縮、SSH2のみ、静か、疑似tty割り当てを強制、stdinを/ dev/nullからリダイレクト、配置接続共有のためにsshクライアントを「マスター」モードにします。
今、あなたがしなければならないのはあなたのアプリケーションを実行することです。 FirefoxのようにSOCKSv5をネイティブでサポートしている場合は、プロキシサーバーとして「localhost:8080」を構成するだけです。
アプリケーションがこのプロキシをネイティブにサポートしていない場合は、 proxychains で実行してください。クライアントにインストールするだけで、準備完了です。
残念ながら、採用したくない唯一の解決策は唯一の解決策のようです。
リンク: