イントラネット侵入を実現するためのSSHポート転送

イントラネット侵入を実現するためのSSHポート転送

LAN 内のマシンは外部ネットワークにアクセスできますが、外部ネットワークは内部ネットワークにアクセスできません。内部ネットワークがインターネットにアクセスすると外部ネットワークのアドレスを特定できるため、外部ネットワークはローカル エリア ネットワーク内の特定のアドレスを特定することはできません。 (IP アドレスは制限されています) 外部ネットワークにアクセスするときにこのリンクを開いたままにしておくと、このリンクは道路を構築するのと同じになり、内部ネットワークのデータが外に出て、外部ネットワークのデータが入ることができます。SSH もこの方式を使用します。

sshコマンドを使用してパブリックネットワークサーバーに接続する

1. まず、外部サーバーのsshd設定ファイルを編集します

vim /etc/ssh/sshd_config
#GatewayPortsスイッチをオンにします。GatewayPorts yes
変更を有効にするには、sshd サービスを再起動します (コマンドは Linux のバージョンによって異なる場合があります)
systemctl sshd を再起動します 

2. コマンド

ssh -NTf -R <ローカルホスト>:<ローカルポート>:<リモートホスト>:<リモートポート> user@host

local-host は省略できます。例: ssh -NTf -R 8888:127.0.0.1:8080 root@host

3. パラメータの説明

-C はデータの圧縮を有効にします
-f バックグラウンドで実行
-N はリモートホストに接続するだけで、リモートシェルを開かないことを意味します。
-R リモートサーバー、リバースプロキシへのポートのバインド
-L ポートをローカルクライアントにバインドし、プロキシを転送する
-T この接続にTTYを割り当てない
-NTは、このSSH接続がデータの転送にのみ使用され、リモート操作は実行されないことを意味します。

SSH接続を開いたままにする

通常、ssh を使用してサーバーに接続する場合、長時間操作が行われないと、接続は閉じられます。

方法1: クライアントを設定する

1) ユーザーレベルの設定

vim ~/.ssh/config (configがない場合は作成してください)

2) グローバル設定

ssh_config は、

いずれかを選択し、次のパラメータを追加します。

#60秒ごとに空のパケットをサーバーに送信します。 ServerAliveInterval 60
#2回以上失敗した場合は切断します ServerAliveCountMax 2
#転送が失敗した後に終了して接続の再確立を容易にする ExitOnForwardFailure yes

一時的な書き込み方法(推奨、他に影響を与えない)

ssh -o ServerAliveInterval=30 ルート@ホスト
ssh -NTf -R 8888:127.0.0.1:8080 root@host -o ServerAliveInterval=30 -o ServerAliveCountMax=2

方法2: サーバーの設定

vim /etc/ssh/sshd_config
#30秒ごとに、サーバーはクライアントにハートビートを送信します ClientAliveInterval 30
# 3 回のハートビートで応答がない場合、クライアントは切断されたとみなされます ClientAliveCountMax 3

方法3: シェルスクリプトを使用する

myAutoSSH.sh をタッチします
SSH接続をRSAパスワードフリー認証に設定しているため、ここでのロジックではパスワードは必要ありません。

SSHパスワード不要のログイン方法

ながら(1)
する
  ssh -NTR <ローカルホスト>:<ローカルポート>:<リモートホスト>:<リモートポート> user@host
終わり

切断後すぐに接続できるようにするには、-f パラメータを削除します。そうしないと、無限ループになります。

方法4: autosshを使用する

autosshソフトウェアをダウンロードする必要があり、操作はsshを直接使用するのとほぼ同じです。

-Mは監視ポートであり、コマンドへの応答があるかどうかを監視し、接続を維持するのに役立ちます。

autossh -M 5678 -NTR <ローカルホスト>:<ローカルポート>:<リモートホスト>:<リモートポート> user@host

ソフトウェアをダウンロードするのは好きではありません。インストールされるソフトウェアが乱雑なものが多く、構成を変更するのも好きではありません。変更すると他の人の使用に影響が出るのではないかと心配なので、クライアントの一時構成方法を使用するのが好きです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux SSHポートを転送する3つの方法
  • SSH ポート転送、ローカル ポート転送、リモート ポート転送、動的ポート転送の詳細
  • SSHリモートログインとポート転送の詳細な説明
  • SSH ポート転送とは何ですか?何の役に立つの?

<<:  Reactのdiffアルゴリズムの詳細な分析

>>:  MySQL/MariaDB ルートパスワードリセットチュートリアル

推薦する

ネイティブ JavaScript メッセージボード

この記事では、参考までにメッセージボードを実装するためのJavaScriptの具体的なコードを紹介し...

水平スクロールバーを実装する2つの方法の例

序文:プロジェクトの開発中に、1 行にナビゲーション バーが多すぎる場合に水平スクロール バーを実装...

MySQL SQL 最適化チュートリアル: IN クエリと RANGE クエリ

まず、in() クエリについて説明します。 「High Performance MySQL」では、イ...

マウス追従ゲームを実現するjs

この記事では、マウス追従ゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内...

MySQL ステートメントコメントの紹介

MySQL は次の 3 種類のコメントをサポートしています。 1. 行末の「#」文字から。 2. 「...

Windows での PyTorch 開発環境のインストール チュートリアル

アナコンダのインストールAnaconda は、Python の使用を容易にするために作成されたソフト...

Iframe の内外のページで JS がどのように動作するかの概要

目次iframeの外側のiframeのコンテンツを取得する方法1方法2 iframe 内の ifra...

Linux でジャンクファイルをエレガントに削除する方法

あなたも私と同じように、コンピューターのファイルを整然と整理し、不要なファイルを適宜削除するプログラ...

vue-seamless-scrollがスクロールしていいねをするときのデータ同期の問題を解決する

VUE は vue-seamless-scroll を使用して、自動的にスクロールしていいねします。...

MySQL における「:=」と「=」の違いの簡単な分析

=設定および更新の場合にのみ、:= と同じ効果、つまり代入効果があり、それ以外の場合は等号の効果があ...

MySQLでデータベースのインストールパスを表示する方法

mysql コマンドを使用して、mysql のインストール パスを表示できます。 # 次の 2 つの...

CentOS 7 パスワードを忘れた場合の解決プロセス図

必要Windows システムでも Linux システムでも、さまざまな理由でパスワードを忘れてしまう...

Mysqlクエリ条件で文字列の末尾にスペースがあっても一致しない問題の詳細な説明

1. テーブル構造テーブル人id名前1あなた2あなた(スペース) 3あなた(スペース2つ) 2. ク...

Linuxでシンボリックリンクを削除(削除)するコマンド

Linux では、シンボリック リンクを作成または削除する必要がある場合があります。もしそうなら、何...

JS を使って 1 分で github+Jekyll ブログに訪問カウント機能を追加する実装

目次1分でgithub+Jekyllブログにトラフィック機能を追加する1. ジェクルとは何か1. J...