レス
前レス
元トピ
次レスタイトル
Re: 問題ID:30502 (β版:9464) SSHポートフォワーディングについて
フォーラム
最強WEB問題集LinuC/LPIC Lv2 202
投稿ユーザ(投稿日)
(2020/9/14)本文
-----引用(始)-----
ssh-serverからssh-serverを見たときサーバ内を示すとは限らない
この部分が引っかかります。自分自身のホスト名やIPアドレスがわかっているのに自分の中にトンネルを作れないことになりますよね。ssh-serverから見たlocalhostがssh-serverになるのなら、なおさらssh-serverから見たssh-serverが自分自身のことだとわかりそうなものですが…。
-----引用(終)-----
実験してみたらわかりますよ。
細かい説明するのが大変なので、アドレス割当やマシン同士を疎通可能にするのは cofffeeemilk さんにおまかせしますが、こういうやり方をすれば確認できます。
1. お互いSSHを含む、疎通可能な環境を用意
2. サーバ側(ここでいう ssh-server に相当)にnc(netcat)をインストールして使えるようにする。
3. サーバ側の/etc/hostsを編集し、DNSによらず名前解決できるようにする。その際に以下のように設定する。
[code]
127.0.0.1 localhost
{相手と疎通可能なIPアドレス} ssh-server
[/code]
4. ping などで、名前解決の結果を確認する。以下は私の環境での例です。
[code]
[staff@centos7 ~]$ ping -c 1 localhost
PING localhost (127.0.0.1) 56(84) bytes of data. ← localhost は 127.0.0.1
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026 ms
--- localhost ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.026/0.026/0.026/0.000 ms
[staff@centos7 ~]$ ping -c 1 ssh-server
PING ssh-server (172.16.97.145) 56(84) bytes of data. ← ssh-server は localhost とは違うアドレス
64 bytes from ssh-server (172.16.97.145): icmp_seq=1 ttl=64 time=0.025 ms
--- ssh-server ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.025/0.025/0.025/0.000 ms
[/code]
5. サーバ側で以下のコマンドを実行し、「localhostの8888番ポート」で待ち受けるサーバを用意する。
[code]
$ nc -4 -k -l localhost 8888 &
[/code]
6. クライアント(ポートフォワーディングの接続元)で、以下のようにして別々のトンネルを作成する。
[code]
$ ssh -L 18888:localhost:8888 user@ssh-server
$ ssh -L 28888:ssh-server:8888 user@ssh-server
[/code]
7. (何でもいいですが、わかりやすいので)curl localhost:18888 として、ssh-server側のコンソールやcurlの結果になにか表示されるかを確認する。もしプロンプトが返ってこなければCtrl-Cなどで終了させる。
8. 同様に、curl localhost:28888 として、ssh-server側のコンソールやcurlの結果になにか表示されるかを確認する。もしプロンプトが返ってこなければCtrl-Cなどで終了させる。
長い…書くの疲れる…
レス一覧
前レス
元トピ
次レス
Copyright (c) 2010
Ping-t All rights reserved.