仕事でSSHポートフォワーディングの技術を使っているので、理解を深めるために設定を実施してみました。
まずはゲストOSイメージファイルの用意ですね。
UbuntuのサイトからUbuntu Desktop 22.04.3をダウロードしました。Ubuntu ServerにはOpensshはデフォルトで利用可能ですが、SSHサーバを0から構築してみたいのでUbuntu Desktopを利用することにしました。
下記のサーバを三台展開しました。
SSH Client(192.168.0.103)
SSH Server(192.168.0.104)
Web Server(192.168.0.107)
目的:Client ー SSH Server ー Web Serverの間のSSHポートフォワーディングを構成したいです。
SSH Server側必要な設定:
1.パッケージopenssh-serverをインストール
$ sudo apt install openssh-server
2.公開鍵認証を利用できるように、鍵ペアを作成
ssh-keygen
3.公開鍵を認証鍵として登録します。
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
SSH client側の必要な設定:
1.パッケージopenssh-clientをインストール
$sudo apt install openssh-client
2.サーバ側で生成した秘密鍵をクライアント側に登録します
$scp user@192.168.0.104:/home/ubuntu/.ssh/id_rsa ~/.ssh/
秘密鍵はid-rsaはクライアント側に登録されたことがわかります。
Web Serverの構築は基本的にこちらの記事を参照しました。
https://www.fabrica-com.co.jp/techblog/technology/7181/
簡単なページを作りました。
他に
- パッケージopenssh-serverをインストール
$ sudo apt install openssh-server
2.ホストFWを有効かして必要な通信しか許可しないようにルールを追加
参照:https://qiita.com/htshozawa/items/e24729a4ab332cb40313
ホストFWのGUI版:https://japan.zdnet.com/article/35211182/
注意Webサーバを外部に公開していないはずですが、なぜか外部との接続が見えました。(そして立ち上げてから1時間しか経っていないのに、、、怖い。セキュリティ対策は大事です!)
不要なポートを閉じて、FWで最低限の通信しか許可しないように設定することをお勧めします。
SSH Client(192.168.0.103)からSSHポートフォワーディングでWeb Server(192.168.0.107:80)に繋げました。
ssh -L 50080:192.168.0.107:80 user@192.168.0.104
クライアントのブラウザから「localhost:50080」で叩くとWebページが表示されました!
次はWeb ServerとSSH Serverの間にリバースSSH接続も設定してみたいです。
今回はとりあえずここまで!
初めてな投稿で読んでいただき、ありがとうございました。