Restringindo a conexão do site nginx com usuários VPN no mesmo servidor

3

Meu objetivo principal é o seguinte: Instalar um servidor VPN em um servidor, e um site nesse servidor deve ser acessível apenas para usuários que estejam usando a VPN no mesmo servidor.

Primeiro, os dois casos de servidor funcionam.

Ou seja, tenho dois servidores, A e B. O servidor VPN PPTP está instalado em A e o nginx está em B.

Eu configurei regras de permissão para o meu site nginx da seguinte maneira e elas funcionam bem:

allow ip_of_a;
deny all;

No entanto, quando eu tento conectar um site em A (o servidor vpn também tem um servidor nginx), meu IP remoto aparece como meu IP original, não o IP que recebo quando me conecto por VPN e recebo um 403 Forbidden página no nginx. Os logs de erro mostram uma tentativa de conexão do meu ip original, não do IP da VPN.

Eu entendo que a VPN ainda conhece meu IP original em vez do ip que ele me forneceu, mas deve haver uma solução alternativa para essa situação.

A VPN atribui IPs locais do formulário permitir 10.80.80. *, então eu coloco outra permissão do formulário

allow 10.80.80.0/24;

Isso não funcionou.

Eu também tentei adicionar diretamente o ip local que a VPN me fornece, mas, novamente, não funcionou:

allow 10.80.80.100;

Isso precisa ser corrigido do servidor pptp de alguma forma ou pode ser corrigido de uma regra nginx?

Edit: As tabelas de roteamento no cliente (OS X) antes e depois de conectar ao vpn:

Antes:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.1.1        UGSc           18        0     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH             17 12724964     lo0
169.254            link#4             UCS             0        0     en0
192.168.1          link#4             UCS             3        0     en0
192.168.1.1        0:25:9c:4a:c6:44   UHLWIir        19    28906     en0   1000
192.168.1.126      0:88:65:5c:6a:f4   UHLWIi          0       33     en0    440
192.168.1.129      127.0.0.1          UHS             1        0     lo0
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI          0       24     en0

Depois:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            10.99.99.99        UGSc           16        0    ppp0
default            192.168.1.1        UGScI          11        0     en0
10                 ppp0               USc             1        0    ppp0
10.99.99.99        10.99.99.100       UHr            17        8    ppp0
SERVER_IP_HERE      192.168.1.1        UGHS            1      299     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH             17 12724968     lo0
169.254            link#4             UCS             0        0     en0
192.168.1          link#4             UCS             3        0     en0
192.168.1.1        0:25:9c:4a:c6:44   UHLWIir        13    28987     en0    988
192.168.1.126      0:88:65:5c:6a:f4   UHLWIi          0       33     en0    428
192.168.1.129      127.0.0.1          UHS             0        0     lo0
192.168.1.255      ff:ff:ff:ff:ff:ff  UHLWbI          0       38     en0
    
por ustun 30.07.2013 / 12:42

2 respostas

1

O servidor VPN não redireciona o tráfego da web por padrão, conforme explicado aqui , adicionando a linha

push "redirect-gateway def1"

no seu openvpn.conf permitirá que você tenha o IP do servidor VPN como seu IP remoto, e com isso seu servidor web deve deixar você passar.

    
por 24.06.2016 / 09:10
0

Na verdade, você não precisa configurar o servidor DNS. Eu tentei o seguinte cenário

servidor VPN

Criar alias

# ifconfig eth0:1 192.168.127.10 netmask 255.255.255.255 up

Configure o nginx para o endereço de alias

server {
    listen      192.168.127.10:80;
    server_name  site1.example.net;

    location / {
        root          /var/www/html;
    }
}

Configure o iptables

# iptables -t nat -I PREROUTING -p tcp -d xxx.xxx.xxx.xxx --dport 80 -j DNAT --to-destination 192.168.127.10:80

em que xxx.xxx.xxx.xxx endereço IP público do servidor A e endereço IP do site

    
por 30.07.2013 / 18:25