IP制限かけた管理サイトに踏み台サーバ SSH 経由で Web アクセスする

とあるサイトの運用保守案件で、IP 制限をかけている管理システムに外部からもアクセスできるような環境を整えたい。そう思って、以下のような仕組みを作ってみました。

使用するもの

  • PC:Windows 10
  • SSH端末:Putty
  • ブラウザ:Firefox

踏み台サーバがダイナミックフォワードに対応するようにする

踏み台サーバの sshd_config を確認し、「AllowTcpForwarding」の設定を確認します。
「no」や「local」で設定されていないことを確認してください。

「AllowTcpForwarding」を確認します。
コメントアウトされていたり、特に設定のない場合は、ほとんどのディストリビューションではデフォルトでダイナミックフォワードに対応するようになっていると思うので大丈夫だと思います。

Putty でダイナミックフォワードの設定をする

Putty を開いて、踏み台サーバのセッションを設定します。

新しいセッションの設定

踏み台サーバのホスト名とSSH接続のためのポート番号を設定します。

項目 設定値
ホスト名 22.44.66.88(踏み台サーバのグローバルIP)
ポート 22

左メニュー-[接続]-[データ]で以下設定

踏み台サーバの自動ログインのためのユーザ名を設定します。

項目 設定値
自動ログインのユーザ名 踏み台サーバにSSHログインするときに自分が使っているユーザ名

左メニュー-[接続]-[SSH]-[認証]で以下設定(鍵認証の場合)

鍵認証の場合は、秘密鍵のパスを設定します。
鍵認証にしておいたほうが自動ログイン設定できるのでお勧めします。

項目 設定値
認証のためのプライベートキーファイル 踏み台サーバにSSHログインするときに自分が使っている秘密鍵のパス

左メニュー-[接続]-[SSH]-[トンネル]で以下設定

ダイナミックフォワード関連の設定をします。

項目 設定値
源ポート 10443(なんでもいいです)
送り先 何も入力しない
送り先の下のラジオボタン ダイナミック
さらにその下のラジオボタン 自動

「追加」を押す

「フォワードするポート一覧」のところに「D10443(源ポートに設定した番号)」が出れば OK です。

セッション保存

設定完了したら、セッションを保存します。

保存したセッションを開く

保存したセッションにログインした状態にしてください。

ブラウザのプロキシ設定

管理システムを見るためのブラウザを決めて、プロキシの設定をします。
本記事では、比較的設定のやりやすい Firefox を例に説明します。

もし Chrome でやる場合は、拡張プラグインを入れれば、同じことができると思います。
https://chrome.google.com/webstore/detail/proxy-switchysharp/dpplabbmogkhghncfbfdeeokoefdjegm/related?hl=ja

Firefox を開く

Firefox を起動します。

右上のハンバーガーメニュー(三)を押して「オプション」押下

もしくは、URLバーで「about:preferences」と入れてください。

一般-[ネットワーク設定]-[接続設定]で以下設定

項目 設定値
ラジオボタン 手動でプロキシを設定する
SOCKS ホスト localhost
ポート 10443(Puttyで設定した源ポート)
その下のラジオボタン SOCKS v5

設定後、「OK」押して設定閉じます。

設定したブラウザでアクセス元のIPを確認して、踏み台サーバのIPになっているか確認する

「アクセス元 IP」とかで検索すると、自分がどのIPになっているか確認できるサイトがいくつも出てくるので、そのようなサイトで確認するとよいです。

無事に踏み台サーバのIPになっていれば、設定成功です。
あとは、管理サイトに Web アクセスしてみてください。