VPNの代わりにSSH

画像



確かに、多くのシステム管理者は、社内のリモートユーザーの数が非常に多くなり、natの代わりに通常のVPNについて考えても休むことができず、強迫観念に陥る状況に直面しました。 そして、クリックする場所と場所をユーザーに説明する必要があることに気付いたとき、誰もが眉をひそめたと確信しています。 私の場合、病棟に関する立場もあります。「彼らはどのように機能するか考えてはいけません。」



最初は多くはありませんでした。 自宅からrdpでデスクトップに向かって歩いたのは数人だけで、私は急いでソリューションを実装しましたが、1Cサーバーが本社から私のネットワークに移動し、会計士やその他の人物の軍隊が現れたとき、私の頭の毛はファイアウォールルールの洪水の見通しからかき混ぜましたdst-natと入力します。



何らかの理由で、ソリューションの代替手段である私にとっては、VPNが(何らかの形で)しか見られなかったため、ユーザーのコンピューターに接続を作成するための指示を書く必要がありました。 ここから、「何を間違えたのか」などの質問に答える見込みがあります。Windowsの各バージョンでは、これはまったく同じようには行われないからです。 さらに、必要なコンピューターにすべて同じように接続する方法を説明する必要があります。これらのショートカットを作成します。 ところで、人は祖父の村に別の人のコンピューターを設置するのが歓迎されない場所に出かけることができます。 したがって、私が計画したように、それが最も便利であるように思えました。



何をどのようにすればよいかというアイデアはずっと前に生まれたもので、原則としてすべてが明確でした。

タスクは簡単です。ユーザーをデスクトップコンピューター(またはその他)のデスクトップにワンクリックで接続します。 つまり ユーザーは、いくつかのexeが存在するUSB​​フラッシュドライブを接続します。 このexeを起動し、パスワードと出来上がりを入力します-動作中のコンピューター上にあります。



あなたがするなら、いくつかの歌詞。



誰もが素晴らしい映画「マインドゲーム」を見ていたと思います。 クリニックでの医師のフレーズを思い出してください。「統合失調症患者にとって、彼が統合失調症患者であることに気付くよりも悪いことはある」



自分自身に投影して、「プログラマがシステム管理者であることに気付くよりも悪いことはある」と言い換えることができます。 これは、私が10年以上にわたって政権を奪われたことを意味します。 それから数日で書くことができましたが、今は1週間しましたが、もっと良くすることができると確信しています。


概して、複雑なことは何もありません。 libssh2、openssl、zlibのソースを取得し、プロジェクトに固定します。 つまり、出力で複数のファイルを取得したくないため、ソースコードまたは静的ライブラリです。 exeの横に他のdllを配置する必要がある場合、ソリューションは「優雅さ」を失います。



このプログラムは、リモートコンピューターに対してssh-tunnelを作成し、ローカルアドレスala localhostでリッスンします。 Mstscが起動し、localhostに接続します(実際にはリモートコンピューターで)。



opensslで苦しむ必要がありました。 私が見たことのないそのような乏しいドキュメント。 プロジェクトWebサイトのwikiの例は機能しますが、何も説明しません。 機能の説明は、目的に帰着します。 はい、libsshが行っていたので唾を吐きましたが、接続パラメーターをexeファイルに保存し、明確な形式で読み取る必要があります。これらはパスワードとキーです。 したがって、関数のさまざまなオプションを少し試してみた後、データを暗号化し、exeの最後に追加しました。



実際、パテからplinkの類似物を入手しましたが、接続パラメーターを保存し、ユーザーのコンピューターで特定のコマンドを実行しながら、自身のクローンを作成する機能がありました。 例:



rlink --saddr=example.host.com --sport=2222 --lport=1234 --raddr=pc.localdomain --rport=3389 --user=andrey --cmd="mstsc /v:localhost:1234"
      
      





この一連の引数を使用して、プログラムはlocalhostトンネル:1234-> pc.localdomain:3389を作成し、rdpクライアントを起動して、完了するのを待ちます。 引数--passはここでは省略されているため、パスワードはインタラクティブに要求されます。



画像



-aスイッチを追加すると、出力でrlink- username .exeという名前の実行可能exeが取得され、コマンドラインに引数を入力せずに実行できる状態になります。



画像



デフォルトでは、暗号化設定のキーは自動的に生成されますが、-keyキーで秘密の単語を設定し、それに基づいて暗号化できます。 次に、プログラムを起動すると、最初に引数を復号化するためのパスワードが求められます。



画像



もちろん、これがすべて機能するためには、もう1つの小さな詳細が残っています。sshサーバーでユーザーを作成します。 しかし、それは別の話です。 また、スクリプトを作成して、ユーザーの作成とユーザー用の完成したexeの生成を自動化することもできます。これは近い将来行います。



ここでプログラムを感じることができます



混乱してすみません、ご清聴ありがとうございました。



All Articles