Estou mexendo com servidores da Web na Rackspace, tentando descobrir se posso configurar um site com partes públicas e também partes privadas visíveis apenas por meio de uma conexão VPN.
Eu tenho 2 servidores executando o apache, o primeiro tem uma mistura de sites públicos e privados. O segundo tem sites privados e também o pptpd sendo executado como o servidor VPN. Em ambos os casos, os IPs internos (10.n.n.n) são expostos via DNS para os sites privados.
Aqui está um diagrama desenhado apressadamente que deve mostrar como consegui manipular as coisas:
Ossitespúblicosfuncionambem.AconexãoVPNfuncionabem.Ossitesprivadosnoservidor2funcionambemquandoconectadosàVPN.Oquenãofuncionaéacessarossitesprivadosnoservidor1atravésdaVPN.Euadicioneiumasetavermelhapotencialmenteenganosaaodiagramamostrandoondeeuachoqueéoproblema.
Eupossopingarcadaservidordooutroemseusendereçosinternos,epossofazerpingdoservidor2pelainternetemseuendereçointerno.Oqueeunãoconsigofazerépingaroservidor1pelainternet.
EusintoqueestouingenuamentesentindofaltadealgumconhecimentoessencialderedesobrecomoasVPNsrealmentefuncionam.Alguémpodeveroqueeusintofalta?
AsinformaçõesinternasdeIPdosservidoressão:
Server1inetaddr:10.177.129.10Bcast:0.0.0.0Mask:255.255.192.0Server2inetaddr:10.176.132.180Bcast:0.0.0.0Mask:255.255.192.0
Tenhocertezadeque,narackspace,issosignificaqueelesestãonamesmasub-rede
Coisasquetentei:AlterandoosIPslocaiseremotosem/etc/pptpd.conf
localip10.176.132.180remoteip192.168.0.234-238,192.168.0.245
ou
localip192.168.1.1-99remoteip192.168.1.100-245
ou
localip192.168.1.1remoteip192.168.1.2-245
Ativandobcrelayeth1
eproxyarp
em/etc/pptpd.conf
Eunãoseiseprecisodebcrelay,maspareceuumaboaideianaépoca.
Adicionandoumarotacom
routeadd-net192.168.1.0netmask255.255.255.0gw10.176.132.180
(ou192.168.0.0,qualquerquesejaolocalip)ou
routeadd-net192.168.1.0netmask255.255.255.0gw192.168.1.1
Adicionandoentradasiptablevariadas,como:
sudoiptables-tnat-APOSTROUTING-jSNAT--to-source[server2extip]
ou
sudoiptables-tnat-APOSTROUTING-oeth0-jMASQUERADE
ou
sudoiptables-tnat-APOSTROUTING-oeth1-jMASQUERADE
ou
sudoiptables-tnat-APOSTROUTING-s192.168.1.0/24-oeth0-jMASQUERADE
AdicionarentradasdatabelaARPpormeiodoscript
Seguindoas sugestões encontradas neste site , (já que estou seeting 'Não é possível determinar o endereço ethernet para o proxy ARP 'de pptp no syslog) Eu adicionei um ip-up.local
e ip-down.local
scripts que são executados sempre que um cliente se conecta e desconecta, modificando automaticamente a tabela ARP para adicionar isso:
arp --use-device --set <client 192.168... ip address> eth0 pub
Nada disso parece funcionar. A única diferença é que às vezes eu recebo isso:
Pinging 10.177.129.10 with 32 bytes of data:
Request timed out.
e às vezes eu recebo isso:
Pinging 10.177.129.10 with 32 bytes of data:
Reply from <server 2 ext ip>: Destination host unreachable.
dependendo das opções que eu estou experimentando.
Estou dolorosamente ciente, porém, que de todas as ferramentas de firewall / arp que fiz, não estou realmente ciente do que estou fazendo, e isso me preocupa. Também estou ciente de uma sensação desconfortável de que devo ter tentado de tudo, ou que há alguma combinação mágica das coisas acima que eu ainda não tentei.