Portanto, configurei um servidor tun
OpenVPN razoavelmente básico e estou tendo problemas para obtê-lo, para que o servidor possa se comunicar com todos os clientes conectados.
Atualmente, tenho dois conjuntos de clientes, alguns que não usam a VPN para se conectarem à Internet (apenas para falar com os outros clientes) e alguns que usam redirect-gateway
para enviar todo o tráfego pela VPN. .
Com a configuração que tenho, todos os clientes conectados podem se comunicar com o servidor e com os outros clientes. No entanto, no servidor, só posso alcançar (por exemplo, ping) os clientes que usam redirect-gateway
para enviar todo o tráfego deles por meio da VPN. Os clientes que não usam essa configuração podem fazer ping no servidor, mas o servidor não pode fazer o ping de volta (eles não respondem a ele e ele expira).
Como posso configurar o roteamento para que o servidor ainda possa se comunicar com os clientes mesmo que eles não usem a VPN como seu gateway padrão?
Aqui está a configuração do servidor relevante:
port 1194
proto udp
dev tun
topology subnet
push "topology subnet"
server 10.7.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
explicit-exit-notify 1
No diretório de configuração do cliente no servidor, cada cliente tem um arquivo como este (apenas para fornecer um IP estático a cada um):
ifconfig-push 10.7.0.10 255.255.255.0
Os bits relevantes da configuração do cliente local:
client
dev tun
proto udp
remote {server's public ip} 1194
float
keepalive 15 60
ns-cert-type server
key-direction 1
tun-mtu 1500
cipher AES-256-CBC
keysize 256
comp-lzo yes
nobind
Os clientes que estão usando a VPN para acesso à internet adicionam redirect-gateway def1 bypass-dhcp
à sua configuração.
Estou usando ufw
para o firewall do meu servidor - aqui está a configuração relevante (em /etc/ufw/before.rules):
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.7.0.0/8 -j SNAT --to-source {server's public ip}
Como isso está sendo executado em um VPS do OpenVZ, não posso usar MASQUERADE
, mas o acima parece funcionar bem.
Alguma idéia de como configurar isso corretamente? Desde já, obrigado. Se for importante, o servidor está executando o CentOS.
Tags networking vpn openvpn routing