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

推薦する

MySQLクエリツリー構造方式

目次MySQL クエリツリー構造1. ツリー構造について2. MySQLでカスタム関数を定義する方法...

Web プロジェクトでの SQL インジェクションの防止

目次1. SQLインジェクションの概要2. SQLインジェクション攻撃の全体的な考え方SQLインジェ...

WeChat アプレット学習 WXS 使用方法チュートリアル

wxsとは何ですか? wxs (WeiXin Script) は、小規模プログラム用のスクリプト言語...

純粋なCSSでは、子要素が親要素の幅制限を突破できる。

文章のスタイルでは、このような状況がよく見られます コードは次のとおりです <div styl...

hr 水平線スタイルの例コード

コードをコピーコードは次のとおりです。 <hr style="width:490px...

pagodaを使用してionCube拡張機能をインストールする方法

1. まずパゴダを設置するインストール要件: Python バージョン: 2.6/2.7 (Pago...

MySQLの自動増分IDについて知っておくべきこと

はじめに: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (A...

製品の拡大鏡効果を実現する JavaScript

この記事では、参考までに、製品拡大鏡を実装するためのJavaScriptの具体的なコードを紹介します...

MySQLメモリストレージエンジンに関する知識

メモリストレージエンジンに関する知識ポイントメモリ ストレージ エンジンは日常業務ではほとんど使用さ...

JavaScriptのプロトタイプオブジェクトを徹底的に理解しましょう

目次1. プロトタイプとは何ですか? 1.1 関数プロトタイプオブジェクト1.2 コンストラクタを使...

インデックスは MySQL クエリ条件で使用されますか?

雇用主から MySQL クエリ条件でインデックスが使用されるかどうかを尋ねられた場合、どのように答え...

CSSでカスタムフォント(font-face)を導入する方法の詳細な説明

なぜこれを使ったのか?それはポスターを作ることから始まりました。それは嵐の夜でした。 。 。さて、無...

実際のプロジェクトでElementUIを使用する手順の詳細な説明

目次1. テーブル自動ソート2. ページング機能3.el-checkbox-group 複数選択ボッ...

WindowsにMySQL5.7圧縮パッケージを素早くインストールする

この記事では、Windows に MySQL 5.7 圧縮パッケージをインストールする方法について説...

XHTML ドキュメントで JavaScript と CSS を正しく使用する方法

ますます多くのウェブサイトで、XHTML が HTML4 に取って代わって急速に普及しています。しか...