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コマンドの知識ポイントのまとめ
目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...
タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...
目次序文積極的な撤退例外、拒否、および発行されたエラー信号まとめ序文NodeJS プロセスが終了する...
まず、簡単な Docker インストールを実行します。イメージをカスタマイズするには、ベースイメージ...
1. 基本的な Spring-boot クイックスタート1.1 クイックスタート pom.xml は...
目次序文1. 基本データ2. 継承駆動設計3. 左右の値のエンコーディングに基づく設計4. ツリー構...
インストール環境の説明•システムバージョン: windows10 •MySQL バージョン: mys...
ページコンテンツ全体を中央に配置する方法と、コンテンツに合わせて高さを自動的に拡大縮小する方法。これ...
1.ファビコン.cc ico アイコンの Web サイトをオンラインで作成するには、画像をアップロー...
HTML の再利用は、あまり話題に上らない言葉です。今日は、この問題を次のようにまとめたいと思います...
目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...
TS で時間を過ごした場所をいくつか記録します。 (まず、文句を言わせてください。stackover...
今日 Docker コンテナを作成したとき、誤ってイメージの名前を間違って入力しました。その結果、コ...
1. ソフトウェアのダウンロードMySQL のダウンロードとインストール:公式サイトのダウンロード...
目次1. テーブルを作成する1.1. テーブルを作成するための基本構文1.1.1. シンプルなテーブ...