Configurei uma rede OpenVPN e ela está funcionando corretamente, no sentido de que posso acessar as máquinas internas / LAN do cliente remoto. No entanto, meu problema é que todo o tráfego das máquinas remotas aparece nas máquinas LAN como se viesse da máquina do servidor OpenVPN, e não da máquina cliente.
Para melhor explicar, considere minha topologia de rede:
AMáquinaRconectadaaoservidorOpenVPNnaMáquinaAerecebeuoendereçoIPde10.200.200.5.
AMáquinaRfazumasolicitaçãoaoApachesendoexecutadonaMáquinaB.Asolicitaçãochegacorretamenteeeureceboumaresposta.OproblemaéqueaMáquinaBvêopedidovindode192.168.0.10(IPdaMáquinaA)enão10.200.200.5.
Eugostariadoúltimo.
Minhaconfiguraçãoatual
MáquinaA
Esteéumtrechodasregrasrelevantesdoiptables:
*nat:PREROUTINGACCEPT[18:1080]:INPUTACCEPT[0:0]:OUTPUTACCEPT[0:0]:POSTROUTINGACCEPT[0:0]-APOSTROUTING-oeth0-jMASQUERADE*filter:INPUTACCEPT[0:0]:FORWARDACCEPT[0:0]:OUTPUTACCEPT[0:0]//snip#acceptincomingVPNconnections-AINPUT-pudp-mudp--dport1194-jACCEPT#forwardVPNtraffic-AFORWARD-s10.200.200.0/25-d192.168.128.0/17-itun0-jACCEPT-AFORWARD-itun+-oeth0-mstate--stateRELATED,ESTABLISHED-jACCEPT-AFORWARD-ieth0-otun+-mstate--stateRELATED,ESTABLISHED-jACCEPT
Tambémhabiliteiip_forwarding:
echo1>/proc/sys/net/ipv4/ip_forward
..efezasalteraçõesapropriadasno/etc/sysctl.confparatorná-lopermanente.
NaconfiguraçãodoOpenVPN,tenho:
server10.200.200.0255.255.255.128push"route 192.168.0.0 255.255.255.0"
Máquina B
Como a Máquina A não é o gateway da Máquina B, adicionei manualmente uma rota na Máquina B da seguinte maneira:
ip route add 10.200.200.0/25 via 192.168.0.10 dev eth0
Para testar qual IP está sendo roteado, criei um pequeno script PHP chamado showip.php :
<?php echo "Your IP is: ", $_SERVER['REMOTE_ADDR'], "\n"; ?>
Máquina R
# wget -q -O - http://192.168.0.11/showip.php
Your IP is: 192.168.0.10
Como faço para dizer 10.200.200.5?
Atualizar
Para esclarecer, no meu caso particular, a Máquina A tem uma placa de rede (eth0) que serve tanto a LAN como a WAN.