Измените удаленный IP с помощью L2TP VPN с докером - PullRequest
0 голосов
/ 10 июня 2018

У меня есть сервер L2TP, настроенный с помощью docker-compose, и nginx для фильтрации определенных хостов по имени хоста, но когда я пытаюсь подключиться, nginx читает исходный IP-адрес, а не IP-адрес, передаваемый через VPN.

Nginx показывает x.x.x.x вместо 192.168.x.x для IP.

В результате он выдает ошибку 403 (forbidden), когда я пытаюсь подключиться к любому удаленному IP, который не является таковымЯ разрешил, даже когда подключен к VPN, и даже когда VPN дает мне IP-адрес, такой как 192.168.43.12

И когда я пытаюсь network_mode: host на VPN, он вообще не может маршрутизировать любой веб-трафик.

docker-compose.yml:

services:
    vpn:
        image: hwdsl2/ipsec-vpn-server
        restart: always
        env_file:
          - ../config/vpn/vpn.env
        ports:
          - "500:500/udp"
          - "4500:4500/udp"
          - "1701:1701/udp"
        privileged: true
        hostname: example.com
        volumes:
          - /lib/modules:/lib/modules:ro
    nginx:
        build: ../config/nginx
        restart: unless-stopped
        ports:
         - "80:80"
        network_mode: host

nginx site conf:

server {
    listen *:80;

    server_name             bt.example.com;

    index                   index.html;

    access_log              /dev/stdout upstreamlog;
    error_log               /dev/stderr debug;

    location / {
        allow 127.0.0.1;
        allow 192.168.0.0/16;
        #allow x.x.x.x;      # one remote IP I want to allow, normally uncommented
        deny all;

        proxy_pass              http://localhost:9091;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
    }

}
...