1

Rasp Pi 3 をキャプティブ ポータル付きのワイヤレス アクセス ポイントとして使用して、メディア アート プロジェクトを実行しています。デバイスから送信されたリクエスト URL を取得できる Sinatra に iptables を使用してパケットをリダイレクトします。

問題は、ユーザーのリクエストが Facebook や Google などの HTTPS Web サイトである場合、明らかにパケットを読み取れないことです。

そこで、リバース プロキシを構築し、iptables のリダイレクト ターゲットを nginx サーバーに変更して、次のリンクで HTTPS でリクエスト URL をデコードしようとしました: http://www.htpcguides.com/enforce-ssl-secure-nginx -リバースプロキシ-linux/

これは私がiptablesを変更する方法です

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 127.0.0.1:443
sudo iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination 127.0.0.1:53
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:4567

これが私のnginxの設定方法です:(ポート4567はsinatraがリッスンしたものです)

server {
        listen 80;
        server_name 192.168.0.1 localhost;
        return 301 http://192.168.0.1:4567;

        access_log /var/log/nginx/backintime-access80.log;
        error_log /var/log/nginx/backintime-error80.log;
}

server {
        listen 443 ssl;
        server_name 192.168.0.1 localhost;
        root /home/backintime/new-back-in-time/public/;
        ssl_certificate /etc/ssl/backintime.studio.ssl/backintime.studio.crt;
        ssl_certificate_key /etc/ssl/backintime.studio.ssl/backintime.studio.key;

        location / {
                proxy_pass http://192.168.0.1:4567;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header client_ip $remote_addr;
                proxy_set_header remote_ip $remote_addr;
        }

        access_log /var/log/nginx/backintime-access.log;
        error_log /var/log/nginx/backintime-error.log;
}

そして今、私はここで立ち往生しています。nginx サーバーは、iptables でリダイレクトしたパケットを認識できないと思います。2 つ目は、proxy_pass が私のシナトラに何も送信していないように見えることです。

この問題を解決する他の方法はありますか? または私の仕事のどの部分が間違っていますか?

ありがとう。

4

0 に答える 0