ssh は私が最も頻繁に使用する 2 つのコマンドライン ツールのうちの 1 つです (もう 1 つは vim です)。 ssh を使用すると、現場に直接出向くことなく、さまざまな問題をリモートで処理できます。 昨今、TeamViewer のハッキングが大きな影響を与えているため、リモートコントロールからのイントラネット侵入を考え、当然 SSH ポート フォワーディングでもイントラネット侵入が実現できると考えました。よく考えてみると、SSH トンネル、つまりポート転送は、実際には、フォワード プロキシ、リバース プロキシ、イントラネット侵入という、よく使われる 3 つのネットワーク機能を実現していることがわかりました。その強力な機能と使い勝手の良さに、私はさらに感銘を受けました。 ssh には 3 つのポート転送モードがあり、この記事では簡単に紹介します。 ローカル転送 ローカル ポート フォワーディングは、ローカル ホスト上のポートのトラフィックをリモート ホスト上の指定されたポートに転送します。コマンドライン構文は、-L [bind_address]:localport:[remote_host]:remote_port です。 「-L」は「local」の頭文字です。同様に、リモート転送の「-R」は「remote」の頭文字、動的転送の「-D」は「dynamic」の頭文字です。覚えやすいですね。 ローカル転送の使用シナリオを説明するために例を見てみましょう。 記事「CentOS 7 インストール GUI インターフェイスとリモート接続」では、vnc サービスのインストールとポート アクセスの有効化について説明します。実際には、公開されている 59xx ポートは、毎日、自動化されたスクリプトによって継続的に攻撃されています。 vnc およびログイン ユーザーが弱いパスワードまたは辞書パスワードを使用すると、ホストのセキュリティが大幅に脅かされます。このような状況で自分を守るにはどうすればいいでしょうか? シンプルで安全な保護方法は、iptables/firewalld を使用してポートの外部アクセスを閉じ、接続が必要なときに ssh トンネルを使用してポートを転送することです。 ssh -L5901:5901 ユーザー名@ホスト このコマンドは、SSH トンネルを介してローカル ポート 5901 をリモート ホストのポート 5901 に転送します。リモートで接続する場合は、localhost または 127.0.0.1 とポート 5901 を入力して、リモート ホストのポート 5901 に接続します。 iptables と ssh のローカル転送により、他人が接続できず、自分だけがアクセスできるという目標を達成できます。 「-L」オプションの「リモート ホスト」は、接続されたマシンを具体的に参照するものではなく (デフォルトは接続されたマシン)、任意のホストである可能性があることに注意してください。たとえば、ローカル マシンのポート 8080 のトラフィックを facebook.com のポート 80 に転送できます。 ssh -L8080:facebook.com:80 ユーザー名@ホスト リモート転送 リモート ポート フォワーディングは、リモート ホスト上のポートをリモート ホスト上の指定されたポートに転送することです。コマンドライン構文は -R [bind_address]:port:[local_host]:local_port です。 リモート転送で最もよく使用される機能は、イントラネットへの侵入です。パブリック IP を持つホストがある場合は、SSH トンネルのリモート転送を利用してイントラネットに侵入し、外部ネットワークからイントラネット リソースにアクセスすることが可能になります。 SSH リモート転送は、デフォルトではリモート ホストのローカル アドレス (127.0.0.1) にのみバインドできることに注意してください。他のホストからの接続を監視する場合は、リモート ホストの SSH 設定を変更し、「GatewayPorts」を「yes」に変更して、SSH を再起動して有効にする必要があります。 リモート ポート 8080 トラフィックをローカル ポート 80web に転送する例: ssh -R0.0.0.0:8080:80 ユーザー名@ホスト リモート転送により、パブリック IP ホストのポート 8080 にアクセスすることは、イントラネット Web ホストのポート 80 にアクセスするのと同じになり、イントラネットへの侵入が実現します。 動的転送 ローカル転送でもリモート転送でも、ローカル ホストとリモート ホストのポートを指定する必要があります。ダイナミック ポート フォワーディングではこの制限がなくなり、ローカル ポートのみがバインドされます。リモート ホストとポートは、開始された要求によって決定されます。動的転送の構文は「-D bind_address:port」です。転送の例は次のとおりです。 ssh -D 8080 ユーザー名@ホスト このコマンドにより、ssh はローカル ポート 8080 をリッスンできるようになります。ポート 8080 を通過するすべてのトラフィックは、ssh トンネルを介してリモート サーバーによって要求され、ブロックされたリソースを取得し、実際の ID を隠すという目的が達成されます。 動的転送は、実際に転送プロキシ機能を実現するため、科学的にインターネットにアクセスするために使用できます。ローカル転送はフォワードプロキシとしても使用できますが、リクエストごとにホストとポートを転送するのは面倒なので、実際には使用されません。 他の
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: 雨滴効果を実現する JavaScript キャンバス
>>: MySQL ALTERコマンドの知識ポイントのまとめ
Nginx を設定する 3 つの方法最初の方法は、位置一致部分を直接置き換える。 2 番目の pro...
この間、私は docker を勉強していたのですが、nginx をデプロイするときに行き詰まりました...
エラーは次のとおりです:キャッチされない TypeError: 未定義のプロパティ 'mod...
この物語は、今日の予期せぬ発見から始まります。同社には複数のウェブサイトがある。友達リンクにはお互い...
ローカル開発では、直接アクセスできない静的ファイル リソースのデバッグが必要になる場合があります。こ...
html 、アドレス、引用、本文、 dd 、 div 、 dl 、 dt 、フィールドセット、フォ...
nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...
JSランニング三部作js実行コードは3つのステップに分かれています構文解析プリコンパイル解釈Jav...
コマンドを実行します: docker run --name centos8 -d centos /b...
JavaScript スクリプトは HTML 内のどこにでも埋め込むことができますが、いつ呼び出され...
HOCを紹介する一文高階コンポーネント (HOC) とは何ですか? 公式ドキュメントによると、「高階...
目次JS 関数呼び出し、適用、バインドメソッド1. call() メソッド1. call() メソッ...
この記事では、学生管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...
1. クリアフローティング法1前の親要素の高さを設定します。注: エンタープライズ開発では、可能であ...
この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...