post by yamamoto | 0 | 2,471 views

Web Proxy CGI によるプライベートネットワーク内の Web サーバの公開

【ご注意】この方法を利用する際に、セキュリティをよく考慮した上て、自己責任でやって下さい。

  • やりたいこと
    • 既に公開されている web サーバが(例:www.myweb.com)あります。
    • ルータの NAT のポート 80 に設定されていないプライベートネットワーク内の別の web サーバ(例:192.168.4.80)もあります。
      • これを www2.myweb.com として公開したいのです。
  • 使用した方法(他にも方法あると思いますが)
    • CGIProxy を www.myweb.com に設置し、www.myweb.com から 192.168.4.80 をアクセス方法です。
  • 手順
    • CGIProxy をダウンロードします。
    • nph-proxy.cgi を編集します。
      • 許可するサーバの設定(192.168.4.80をリストに追加します)
        • @ALLOWED_SERVERS= ('192.168.4.80') ;
      • 拒否するネットワークを編集します。(ルータ192.168.4.1をリストに追加します)
        • @BANNED_NETWORKS= ('127', '192.168.4.1', '172', '10', '169.254', '244.0.0') ;
          • ルータへのアクセスを拒否しないとルータの設定ページが公開してしまうからです。
      • これで、URLを http:/www.myweb.com/cgi-bin/nph-proxy.cgi/30/http/192.168.4.80/ で外から 192.168.4.80 をアクセスすることが可能です。
        • 30 のところは適当に数字をいれてください。しないと下記のメッセージの画面が出てきます。
          • WARNING: Entering non-anonymous area!
    • www.myweb.com のリダイレクトの設定
      • vi /etc/apache2/sites-enabled/000-default
        • 下記を追加します。
              <VirtualHost *:80>
              DocumentRoot /var/www/www2/
              ServerName www2.myweb.com

           

              # Other directives here

              Redirect / http:/www.myweb.com/cgi-bin/nph-proxy.cgi/30/http/192.168.4.80/
              </VirtualHost> 

      • /etc/init.d/apache2 restart
        • apache2 を再起動します。
  • 基本認証のページをアクセスすると下記の画面が出てきます。

コメントを残す