Dispositivos Envolvidos: um VPS, um roteador e vários dispositivos conectados ao roteador.
Final Object: Base no cliente OpenVPN que se conectou ao servidor no VPS, especifique somente um dispositivo local para acessar a Internet através da VPN e encaminhar algumas portas do VPS para o dispositivo especificado.
Rede VPS:
Public IP: 157.7.201.X
Rede de roteadores:
WAN: 192.168.178.207/27
LAN: 192.168.1.0/24
VPN:
DHCP: 10.168.1.0/29
VPS: 10.168.1.1 (static)
Client: 10.168.1.2 (static)
O IP do dispositivo especificado é 192.168.1.123 (static)
(Você pode pular as seguintes configurações detalhadas para ver minha situação agora diretamente, porque é um pouco longo e nem todas as linhas são úteis.)
E aqui estão os iptables do meu VPS:
root@VPS:~# iptables -t nat -L POSTROUTING -vn
Chain POSTROUTING (policy ACCEPT 24 packets, 2860 bytes)
pkts bytes target prot opt in out source destination
6280 663K SNAT all -- * * 10.168.1.0/29 0.0.0.0/0 to:157.7.201.X
A tabela de rotas do meu roteador:
root@Onee3:/tmp/home/root# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.178.193 * 255.255.255.255 UH 0 0 0 vlan1
157.7.201.85 192.168.178.193 255.255.255.255 UGH 0 0 0 vlan1
10.168.1.1 * 255.255.255.255 UH 0 0 0 tun11
10.168.1.0 10.168.1.1 255.255.255.248 UG 0 0 0 tun11
192.168.178.192 * 255.255.255.224 U 0 0 0 vlan1
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.178.193 0.0.0.0 UG 0 0 0 vlan1
O iptables do meu roteador:
root@Onee3:/tmp/home/root# iptables -t nat -L POSTROUTING -vn
Chain POSTROUTING (policy ACCEPT 5 packets, 709 bytes)
pkts bytes target prot opt in out source destination
75 14012 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.233
12828 1438K SNAT all -- * vlan1 192.168.1.100 0.0.0.0/0 to:192.168.178.207
27 1764 SNAT all -- * tun11 0.0.0.0/0 10.168.1.0/29 to:10.168.1.2
33 1980 SNAT all -- * vlan1 192.168.1.222 0.0.0.0/0 to:192.168.178.207
0 0 SNAT all -- * tun11 192.168.1.123 0.0.0.0/0 to:10.168.1.2
Minha situação agora é:
O próprio roteador pode acessar a Internet através da rede física, e pode acessar qualquer host, incluindo o 10.168.1.1, que é o IP virtual do VPS.
Qualquer dispositivo conectado ao roteador pode acessar o roteador e o IP virtual do VPS normalmente. Dispositivos incluídos no iptables do roteador que estão configurados para usar vlan1 podem acessar a Internet normalmente, por exemplo, 192.168.1.100 na lista. Outros não incluídos não podem porque o registro MASQUERADE padrão foi excluído manualmente.
Então, agora eu adicionei um registro no iptables do roteador para fazer um ip forward de 192.168.1.123 para 10.168.1.2 por SNAT (na lista acima) ou MASQUERADE (também tentei), mas o resultado é que 192.168 .1.123 só pode acessar os hosts na LAN ou o IP virtual do VPS.
Em uma palavra, estou agora preso no meio do caminho (ou até menos) para o objetivo final. Por favor me ajude, obrigado.