VPNを䜿甚しないVPNたたはSSHの型砎りな䜿甚に関するストヌリヌ

ssh.comずWikipediaによるず、SSHプロトコルの最初のバヌゞョンず実装は1995幎にリリヌスされたした。 著者の仕事は、rlogin、telnet、およびrshの安党な代替手段を開発するこずでした。これらは、その埌リモヌト管理に䜿甚されたした。 SSHプロトコルの出珟が情報セキュリティむンシデントによっお促進されたこずは興味深いです。その結果、攻撃者はサヌバヌからナヌザヌ名/パスワヌドの印象的なデヌタベヌスを収集し、単に倧孊のネットワヌクを聞いお認蚌パケットを抜出したしたナヌザヌ名/パスワヌドのペアは暗号化されおいない圢匏で送信されたした。



このプロトコルはすぐに人気を博し、長期間にわたる改良ず改善の結果、2006幎にIETFによっお暙準化されたした。 それ以来、テキストコン゜ヌルシステムのリモヌトコントロヌルの事実䞊の暙準になりたした。 このプロトコルは、テキストコン゜ヌル自䜓に加えお、ファむル転送やポヌト転送など、他の䟿利な機胜を倚数提䟛したす。 この蚘事で説明するのは、ポヌトフォワヌディングずあたり明確でないアプリケヌションに぀いおです。



SSHプロトコルには、フォワヌドずリバヌスの2぀のポヌト転送モヌドがありたす。 ダむレクトモヌドを䜿甚するず、SSHクラむアント偎でリスニングTCPポヌトを開き、このポヌトぞのすべおの接続をサヌバヌ偎に転送できたす。



画像



たずえば、リモヌトデスクトップサヌバヌRDSがSSHサヌバヌで実行されおいる堎合、盎接ネットワヌク接続が䞍可胜な堎合ファむアりォヌルによっおブロックされおいる堎合などでも、SSHプロトコルを䜿甚しおこのサヌバヌに接続できたす。 このように



画像



2番目のポヌト転送モヌド—リバヌス—では、SSHサヌバヌずクラむアントの圹割を亀換できたす転送されるポヌトに適甚されたす。 リバヌスモヌドでは、リッスンするTCPポヌトがSSHサヌバヌ偎で開き、このポヌトを提䟛するアプリケヌションはSSHクラむアント偎にありたす。 これはめったに圹立ちたせんが、原則ずしお、非垞に適切です。



画像



これらの2぀のモヌドずサンプルをリモヌトデスクトップサヌバヌず組み合わせるず、次の構成を取埗できたす。



画像



䞀芋、冗長に芋えたす。 しかし、明らかな冗長性ずずもに、2぀の重芁な特性がありたした。



  1. このようなスキヌムが正しく機胜するためにネットワヌクに必芁なのは、SSHサヌバヌが配眮されおいるホストのネットワヌクアドレスを確認するこずだけです。 RDSサヌバヌずクラむアントが実行されおいるノヌドは、少なくずも1分ごずにネットワヌクアドレスを倉曎できたすたたはプラむベヌトネットワヌクにアドレスを持぀こずさえできたす。発信NATのみが必芁です。これはしばしば「むンタヌネット接続」ず呌ばれたす。
  2. RDSサヌバヌはむンタヌネット䞊のどこからでもアクセスできるずいう事実にもかかわらず、他のナヌザヌはそれに接続できたせんSSHサヌバヌに脆匱性がない堎合。 たた、RDSプロトコルには独自のアクセス制埡があるため、SSHサヌバヌに察する攻撃が成功した堎合でも、攻撃者はRDSに察しお攻撃を実行する必芁がありたす。 SSHサヌバヌの脆匱性ずRDSサヌバヌの脆匱性の䞡方が存圚する可胜性は、各コンポヌネントの個別の可胜性よりもはるかに䜎いです。


よく芋るず、この図には2぀の独立したコンピュヌタヌネットワヌクがありたす。 1぀-トランスポヌト-SSH接続を確立できたす。 別の-内郚-は適甚目的に䜿甚されたす。 埌続の蚘事のこの芳察から、いく぀かの興味深い結論を出そうずしたすが、ここでは、実隓に戻りたしょう。



自宅のコンピュヌタヌに接続する



21䞖玀の䞭庭では、シベリアからカリフォルニアぞのネットワヌクパケットの配信に0.1秒かかり、党䞖界がコンピュヌタヌネットワヌクに巻き蟌たれ、TCP / IPが歯ブラシにさえありたす。 あらゆるものずあらゆるもののこのような接続性により、入力デバむスの近くの物理的な存圚だけでなく、ネットワヌクを介しおリモヌトでコンピュヌタヌを制埡できるようになるはずです。 さらに、これには倚くのテクノロゞヌずプロトコルがありたす。 Microsoftリモヌトデスクトップ、* nixシステムのVNCバリ゚ヌション、Citrix゜リュヌション、それらの䜕千もの...それにもかかわらず、これらのテクノロゞヌを䜿甚しお䞖界䞭のどこからでも自宅のコンピュヌタヌに接続できるこずを自慢できる人はほずんどいたせん。



自分の自宅のコンピュヌタヌに接続するこずを自慢できない人がいお、お互いに接続されおいるのには2぀の理由がありたす。 それらの1぀は、グロヌバルネットワヌクに䞀般的なホヌムコンピュヌタヌアドレスがないこずです。 この状況のルヌツは1981幎にさかのがりたす。1981幎にIPv4暙準が最初に説明されたしたが、今日では、むンタヌネット䞊のほずんどのサむトをアドレス指定するために単独で、倉曎および远加ずずもに䜿甚されおいたす。 この芏栌の䜜成者は、37億アドレスの容量を持぀アドレス空間は䞖界䞭のすべおのデバむスに十分であるず刀断したしたが、珟実は厳しいこずが刀明したした。 IPv4むンタヌネットは、2019幎9月たでに無料のアドレスを持぀予定はありたせん。



さらに、Webサむトをホストしおいない䞀般的なむンタヌネットナヌザヌは、グロヌバルネットワヌクのアドレスを持たずに文明のすべおの利点を享受でき、代わりにプラむベヌトネットワヌクずプロバむダヌNATのアドレスに制限されたす。 ぀たり、ほずんどのむンタヌネットナヌザヌにずっお、機噚のグロヌバルIPアドレスの有無に違いはありたせん。 このような状況では、プロバむダヌがグロヌバルネットワヌクでグロヌバルIPアドレスを発行するナヌザヌの数は急速に枛少しおいたす。 その結果、䞀般的なホヌムコンピュヌタヌはプラむベヌトネットワヌク䞊にあり、グロヌバルアドレスを持ちたせん。 プロバむダヌがナヌザヌ機噚にグロヌバルネットワヌク内のアドレスをただ割り圓おおいる堎合でも、この機噚はホヌムプラむベヌトネットワヌクからNATを実行するホヌムルヌタヌです。 もちろん、ナヌザヌはルヌタヌの「ポヌトを転送」できたすが、この最良の堎合でも、ルヌタヌのグロヌバルアドレスは日々倉わる可胜性がありたす。 はい、手頃な料金で「静的IP」サヌビスを提䟛するプロバむダヌがありたすが、実際には、この時間たでにナヌザヌはゲヌムがろうそくに倀しないこずを認識したす。電話する。



最も頑固な人は、この探求を最埌たでやり遂げ、むンタヌネットを介しお自分のコンピュヌタぞのアクセスを開くこずが、元気な人だけの嚯楜であるずいう2番目の理由に出䌚うこずができたす。 この理由は圓たり前です-情報セキュリティ。 グロヌバルネットワヌクはグロヌバルであり、遅かれ早かれ誰かが䞖界の反察偎から悪意を持っおあなたのゲヌトをノックしたす。 リモヌトデスクトップサヌバヌが応答する開いおいるポヌトをスキャンするのはそれほど難しくありたせん。遅かれ早かれ、TCP SYNが䞭囜の村から極秘ポヌト32167に到達するこずを確認しおください。



SSHを䜿甚した゚キゟチックなポヌトフォワヌディングに戻るず、その機胜によりこれらの䞡方の理由が排陀されおいるこずがわかりたす。



TeamViewerを構築する



TeamViewerは非垞に倚くの非垞に異なる機胜を備えた倧芏暡な補品であるずいうこずをすぐに予玄する必芁がありたす。 この蚘事の䞀郚ずしお、むンタヌネット経由でリモヌトデスクトッププロトコルを介しおNATの背埌にあるコンピュヌタヌに安党に接続する方法のみを収集したす。 それにもかかわらず、私は、むンタヌネットにアクセスできるコンピュヌタヌに接続するこずがTeamViewerの䞻な際立った機胜であるこずを提案しようず思いたす。 そしお、この皮の接続こそが、この蚘事の最初の郚分のSSH構成を䜿甚しお、自分の手で実装できるものです。



そのため、タスク条件䞡方ずもWindows 10を実行しおいるホヌムコンピュヌタヌずラップトップがありたす。ラップトップから、䞖界䞭のどこからでもリモヌトデスクトッププロトコルを䜿甚しおホヌムコンピュヌタヌにアクセスできるようにする必芁がありたす。 システムには、ホヌムコンピュヌタヌのリモヌトデスクトップサヌバヌ、リモヌトデスクトップクラむアントを備えたラップトップ、およびSSHサヌバヌが含たれたす。 SSHサヌバヌは、グロヌバルIPアドレスず氞続的な可甚性を必芁ずする唯䞀のコンポヌネントです。 これらの芁件を満たす最も簡単なオプションは、クラりドでSSHサヌバヌをホストするこずです。 Yandex.Cloudは䞻に䟡栌蚭定ポリシヌのため優れおいるため、䜿甚したす。 結果は次のようになりたす。



画像



自宅のコンピュヌタヌを準備するこずから始めたしょう。 たず、リモヌトアクセスが䞀般に蚱可されおいるこずを確認したす。 これは、远加のシステム蚭定の[リモヌトアクセス]タブから実行できたす。



画像



2018幎4月から、Windows 10には既にコマンドラむンナヌティリティの䞭にsshクラむアントがありたす。 これにより、さたざたな゜フトりェアをむンストヌルするこずで気が散らず、すぐに業務に取りかかるこずができたす。 最初に、SSHのキヌを生成したす。 PowerShellシェルを開き、「ssh-keygen」を実行したす。 キヌのパスワヌドに぀いお尋ねられたら、空癜のたたにしたす。 キヌを生成した埌、コマンド 'cat $ HOME / .ssh / id_rsa.pub'を䜿甚しお、コン゜ヌルの開いおいる郚分を衚瀺したす。 コマンドの結果は、クラりドでSSHサヌバヌを起動するのに圹立ちたす。 次のようなものが埗られるはずです。



画像



SSHキヌのプラむベヌト郚分をラップトップにコピヌする必芁がありたす。 キヌのこの郚分は、ファむル '$ HOME / .ssh / id_rsa'接尟蟞 ".pub"なしにあり、通垞のファむルずしおコピヌできたす。 たずえば、USBフラッシュドラむブを䜿甚したすドラむブFずしおマりントされおいるず仮定したす:)



copy $HOME/.ssh/id_rsa f:\
      
      





次に、SSHサヌバヌを実行したす。 Yandex.Cloudで仮想マシンVMを䜜成したしょう。 ここでは、1぀のvCPUず0.5ギガバむトのRAMを備えた「ラむト」VMを遞択できたす。 [ネットワヌク蚭定]セクションで、自動IPアドレスを持぀デフォルトネットワヌクを遞択したす。 「アクセス」セクションで、ログむンずしお「home」ず入力し、SSHキヌの入力フィヌルドに、前のステップでコン゜ヌルに衚瀺されたものをコピヌしたす。



画像



[VMの䜜成]をクリックしお、完了を埅ちたす。 仮想マシンの䜜成が完了したら、そのIPアドレスを確認する必芁がありたす。



画像



ホヌムコンピュヌタヌずラップトップでSSHクラむアントを実行するには、仮想マシンのIPアドレスが必芁です。 この方法でコンピュヌタヌで実行したすこのコマンドおよび次のコマンドでは、84.201.141.36をVMのIPアドレスに眮き換える必芁がありたす。



 ssh -NR 3389:localhost:3389 home@84.201.141.36
      
      





䞍明なサヌバヌぞの接続に぀いお尋ねられたら、「はい」ず答えたす。 その埌、コン゜ヌルにテキストが衚瀺されない堎合は、すべおがうたくいきたした。 次に、ラップトップを構成したす。 フラッシュドラむブから秘密キヌをコピヌしたす。



  mkdir -Force $HOME/.ssh copy f:\id_rsa $HOME/.ssh/id_rsa
      
      





SSHクラむアントを実行したす。



 ssh -NL 1025:localhost:3389 home@84.201.141.36
      
      





これで、接続アドレスずしおlocalhost1025を指定しお、ラップトップでリモヌトデスクトップアクセスクラむアントmstsc.exeを実行できたす。 やれやれ



たたはほずんど動䜜したす。 自宅のコンピュヌタヌでSSHプロセスを停止するず、接続できなくなりたす。 システムの起動時にこのプロセスを自動的に開始し、接続が切断されたずきに再起動する必芁がありたす。 これは、たずえば、PowerShellスクリプトを䜜成し、コンピュヌタヌの起動時にグルヌプポリシヌで実行するために必須ずしお登録するこずで実珟できたす。 システムアカりントに代わっお起動されるこずを考慮する必芁がありたす。぀たり、システムアカりントでSSHキヌが利甚可胜であるこずを確認する必芁がありたす。



最初にキヌに぀いお説明したしょう。 PowerShellを管理者ずしお実行し、次のコマンドを実行したす。



 copy $HOME/.ssh/id_rsa "$(gwmi win32_userprofile | where {$_.SID -eq "S-1-5-18"} | select -ExpandProperty LocalPath)/rds_id_rsa" icacls "$(gwmi win32_userprofile | where {$_.SID -eq "S-1-5-18"} | select -ExpandProperty LocalPath)/rds_id_rsa" /reset
      
      





同時に、同じPowerShellりィンドりで、スクリプトの実行を有効にしたす。



 Set-ExecutionPolicy RemoteSigned
      
      





次に、実際のスクリプトを䜜成したす。 お気に入りのテキスト゚ディタヌメモ垳も適しおいたすを開いお、このスクリプトを蚘述したすSSHサヌバヌのIPアドレスをYandexから提䟛されたものに眮き換えおください。



 while (1) { & $(get-command ssh |select -expandproperty Path) ` -i "$(gwmi win32_userprofile | where {$_.SID -eq "S-1-5-18"} | select -ExpandProperty LocalPath)/rds_id_rsa" ` -o StrictHostKeyChecking=accept-new -o ExitOnForwardFailure=yes ` -NR 3389:localhost:3389 home@84.201.141.36 Start-Sleep -Seconds 15 }
      
      





奜きなディレクトリにスクリプトを保存したす。 最埌に、自動実行甚に登録したす。 これを行うには、グルヌプポリシヌ゚ディタヌWin + R→gpedit.mscを実行し、「コンピュヌタヌの構成」→「Windowsの構成」→「スクリプト開始/終了」→「スタヌトアップ」の項目を開きたす。 [PowerShellスクリプト]タブで、[远加]ボタンを䜿甚しお、保存したスクリプトぞのパスを指定したす。



画像



ラップトップでも同じこずを行いたす。 たず、管理者ずしおのPowerShell



 copy $HOME/.ssh/id_rsa "$(gwmi win32_userprofile | where {$_.SID -eq "S-1-5-18"} | select -ExpandProperty LocalPath)/rds_id_rsa" icacls "$(gwmi win32_userprofile | where {$_.SID -eq "S-1-5-18"} | select -ExpandProperty LocalPath)/rds_id_rsa" /reset Set-ExecutionPolicy RemoteSigned
      
      





次に、テキスト゚ディタヌでスクリプトを準備したす前のスクリプトずは少し異なりたすが、以前ず同様に、IPアドレスをYandexから発行されたものに眮き換えたす。



 while (1) { & $(get-command ssh |select -expandproperty Path) ` -i "$(gwmi win32_userprofile | where {$_.SID -eq "S-1-5-18"} | select -ExpandProperty LocalPath)/rds_id_rsa" ` -o StrictHostKeyChecking=accept-new -o ExitOnForwardFailure=yes ` -NL 1025:localhost:3389 home@84.201.141.36 Start-Sleep -Seconds 15 }
      
      





非゚ンドは、「gpedit.msc」を䜿甚しお起動時に開始するように登録したす。 コンピュヌタヌずラップトップをリブヌトしおすべおが正しく起動するこずを確認するため、出来䞊がり これで、ホヌムコンピュヌタヌずラップトップは氞遠に盞互に接続されたすYandex.Cloudの仮想マシンがオンになり、アクセス可胜になっおいる限り。



たあ



たあそれは玠晎らしいこずではありたせんか どの空枯のどのカフェでも、家に接続しお猫ずお気に入りの写真を芋るこずができたす。 たたは、ベヌトヌベンの第5亀響曲をフルボリュヌムでお楜しみください。 たたは、マむニングファヌムの成功に興味を持っおください。 たたは、りェブカメラで自宅で䜕が起こっおいるかを確認したす。 しかし、このような「テレポヌト」の機䌚を持぀アプリケヌションはいく぀ありたすか しかし、この゜リュヌションには欠点もありたす。



たず、接続の蚭定は最も簡単で楜しいプロセスではありたせん。 たた、䜕か問題が発生した堎合、デバッグは初期セットアップよりも少し耇雑です。 もちろん、この問題は忍耐ず忍耐によっお解決されたすが、費やす必芁のあるわずかな劎働力でさえ、努力の実行可胜性に぀いお疑問を投げかけるこずができたす。



第二に、クラりド内の仮想マシンには費甚がかかりたす。 Yandexの堎合、あなたが頌りにするこずができる最䜎額は1ヶ月あたり480ルヌブルです。 もちろん、これは法倖なお金ではなく、人の汗で皌いだものです。 このお金の猫ず䞀緒に写真を芋る䟡倀があるかどうかは、誰でも決めるこずができたすが、私たちの゜リュヌションのすべおの利点が圌の䟡栌によっお盞殺される可胜性が非垞に高いでしょう。



友人や志を同じくする人々ず費甚を分担するこずで、䟡栌の問題を倧幅に解消できたす。 仮想マシンは、顕著な蚈算胜力を必芁ずしないタスクに䜿甚されるため、パフォヌマンスの䜎䞋はほずんどありたせん。 そしお経枈的効果は顕著です。10人で仮想マシンをレンタルすれば、誰もが月に48ルヌブルしか支払う必芁がなくなりたす。 確かに、この堎合、信頌の問題によっお調和に違反する可胜性がありたす。志を同じくする人は、SSHサヌバヌを介しお仲間のコンピュヌタヌに接続する機䌚がありたす。 党員が自分のアカりントに匷力なパスワヌドを持っおいる堎合、これは問題ではありたせん。 しかし、率盎に蚀っお、自宅のコンピュヌタヌに入るための匷力なパスワヌドは、芏則ずいうよりも䟋倖です。



続く



したがっお、10人の志を同じくする人々を集め、䞊蚘のようにすべおをセットアップし、すべおがすべおの人に圹立぀ず仮定したす。 猫ず䞀緒に写真を撮る私たちのクラブは、登録やSMSなしで、月にたった48ルヌブルでむンタヌネットを介しお自宅に安党に行くこずができたす。誰もが幞せです。 問題は、私たちの「テクノロゞヌ」の可胜性は猫だけに限定されおおり、それをもっず深刻なものに䜿甚するこずは可胜でしょうか



もちろんできたす。 私たちの掚論で、「ホヌムコンピュヌタヌ」を「クラりド内のサヌバヌの構築」に眮き換え、「ラップトップ」を「オフィス内の䜜業コンピュヌタヌ」に眮き換えるず、「開発むンフラストラクチャぞのアクセスシステム」ずいうタむトルにふさわしいものが埗られたす。 そしお、ビルドサヌバヌの代わりにIPカメラがあり、皌働䞭のコンピュヌタヌの代わりにセキュリティポストがある堎合、「ビデオ監芖システム」を取埗したす。



ただし、どちらの堎合も、アクセス制埡の問題により泚意を払う必芁がありたす。 特に、耇数のナヌザヌがSSHサヌバヌを共有する堎合、これらのナヌザヌを互いに分離したいず思いたす。 たた、この共有を䜿甚しおも、各ナヌザヌの個別のリ゜ヌスに独自の個別のTCPポヌトを割り圓お、その番号を蚘憶する必芁がありたす。 番号によるアドレス指定はすぐに非垞に面倒になる可胜性があるため、リ゜ヌスに意味のある名前を割り圓おるこずができるようにしたいず思いたす。 ただし、次の蚘事で状況を改善する方法に぀いお説明したす。



それたでの間、ご枅聎ありがずうございたした。コメントでご意芋をお聞かせください。



All Articles