イントラネット侵入を実現するための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 ルートパスワードリセットチュートリアル

推薦する

VMware Workstation Pro 16 グラフィックチュートリアル (CentOS8 仮想マシン クラスタの構築)

目次準備VMware Workstation Pro 16 をインストールするLinux仮想マシンの...

CSS インライン スタイル、埋め込みスタイル、外部参照スタイルを使用する 3 つの方法

3 つの方法を使用する簡単な例は次のとおりです。インラインスタイル: <!doctypehtm...

ウェブサイトのBGM実装方法

個々のウェブマスターにとって、自分のウェブサイトをいかにユニークで個性あふれるものにするかは、常に絶...

CentOS8.0ネットワーク設定の実装

1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...

カルーセルバナーの自動回転効果を実現する純粋な CSS

さっそくコードを見てみましょう * { マージン: 0; パディング: 0; } 。容器 { マージ...

Vue+Websocketはチャット機能を実装するだけです

この記事では、チャット機能を簡単に実装するためのVue+Websocketの具体的なコードを参考まで...

Mysql が CPU を過剰に占有する場合の最適化方法 (必読)

Mysql が CPU を占有しすぎる場合、どこから最適化を開始すればよいでしょうか? CPU 使...

MySQLデータベーステーブルの容量を確認する方法の例

この記事では、MySQL のデータベース テーブルの容量を確認するためのコマンド ステートメントを紹...

サーバーの購入と初期構築方法

しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...

Linux でソースインストールされたパッケージを簡単に削除する方法

ステップ1: Stowをインストールするこの例では CentOS を使用しているため、拡張 EPEL...

MySQL 学習ノート: データ エンジン

現在のデータベースでサポートされているエンジンを表示します エンジンを表示 +-----------...

JavaScript DOM オブジェクト操作

目次1. コア1. Domノードを取得する2. ノードの更新2.1 実践演習3. Domノードを削除...

Reactにおける制御されたコンポーネントと制御されていないコンポーネントの簡単な分析

目次制御されていないコンポーネント制御コンポーネント知らせ結論は制御されていないコンポーネントフォー...

CSS でよく発生する問題の整理 (ロゴのハッキング/コンテナの固定/画像の垂直方向の中央揃え)

1. IEブラウザモードハックロゴ1. CSSハックロゴコードをコピーコードは次のとおりです。 ie...