Existe uma máquina Linux ( A
) rodando pptpd dentro de uma rede universitária atrás de um firewall mas com IP real. Não tenho acesso ou conhecimento de distribuição de IP nesta rede, então não posso simplesmente definir a remoteip X.Y.Z.200-250
configuração do pptpd, pois pode causar conflitos. Gostaria de saber se é possível criar um hub virtual para todos os clientes VPN conectados, que é então conectado por NAT à rede real.
Aqui estão alguns gráficos ascii desajeitados que ilustram o que desejo alcançar:
PPTP-client ---\ ________________ ________________________
\ | 10.0.0.0/24 | |10.0.0.0/24 real ip|
PPTP-client ----->| Virt. hub (A) |----|ethX A eth0|----- Outside world
/ |_______________| |_______________________|
PPTP-client ---/
Pesquisando no Google mostra que o PacketiX.NET e o UT-VPN possuem esses recursos integrados, mas não tenho ideia de como fazer isso com o pptpd comum. Tentei criar uma interface fictícia, configurá-la com IP estático e depois fornecer ao cliente pptp os IPs desta sub-rede de interface, mas sem sucesso.
O uso de outros servidores VPN é problemático, pois as configurações de firewall são bastante paranóicas e eu tenho que usar o servidor wetware ssh para qualquer operação no A
.
Responder1
Você pode usar o servidor PPTPd (se o proto GRE não for filtrado pela sua rede). O PPTD criará uma nova interface ppp para cada cliente em seu servidor.
Por exemplo, você especifica
localip 192.168.101.1-100
remoteip 192.168.101.101-200
Portanto, toda interface ppp* obterá um novo IP da sub-rede 192.168.101. Finalmente, você pode NAT todo o tráfego desta sub-rede para seu IP real (não se esqueça de net.ipv4.ip_forward=1)
# here could be full MASQUERADE or SNAT
iptables -t nat -I POSTROUTING -o real_interface0 -j MASQUERADE
# forward for all ppp + MSS tune, conntrack recommended
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -s 172.20.1.0/24 -j TCPMSS --clamp-mss-to-pmtu