Servidor OpenVPN em execução no meu servidor Ubuntu ( tun
mode). Meu problema é que não posso definir algumas portas acessíveis apenas para clientes VPN. Eu tenho uma solução suja, mas eu quero melhor.
Eu não tenho regras iptables
, além de ouvir aqui, tudo é acessível a partir da rede.
Minha sub-rede do servidor OpenVPN é 10.8.0.0/24
Então eu abri facilmente algumas portas apenas para acesso via 10.8.0.1, que é acessível apenas para usuários VPN :
iptables -A INPUT -s 10.8.0.0/24 -p tcp --dport 6000:7000 -j ACCEPT
iptables -A INPUT -p tcp --dport 63000:64000 -j REJECT
Isso funciona, pois 10.8.0.1 é encaminhado para o meu host somente dentro de uma rede VPN [no cliente], caso contrário, ele vai para outro lugar. Mas isso é incorreto: existe uma prática ip spoofing que pode ignorar meu iptables afaik [no servidor] e, potencialmente, 10.8.0.1 não deve ser usado diretamente se possível, para mim .. Existe uma solução melhor?
Minhas interfaces são: tun0
e eth0
.
Eu tentei seguir o rastreamento:
iptables -t nat -A POSTROUTING -p tcp --dport 6000 -j LOG --log-prefix "routing xx::"
Este é o rastreio do pedido da rede vpn :
routing xx::IN=eth0 OUT= MAC=....... SRC=my real ip address DST=vpn server host LEN=48 TOS=0x08
PREC=0x00 TTL=116 ID=26271 DF PROTO=TCP SPT=60889 DPT=63210 WINDOW=8192 RES=0x00 SYN URGP=0
-i
em tais pacotes são sempre eth0
, já que aqui não tenho idéia de como filtrar tun0
pacotes e permiti-los apenas ...
Assim, somente solicitações dentro da VPN devem ser permitidas. Isso é possível ou eu estou pensando errado?
Eu tenho client-to-client
e redirect-gateway def1
ativado. Pelo que entendi, o tráfego para o meu host do cliente passando pelo túnel, para o tun0 e, em seguida, obtém eth0 e, finalmente, atinge a porta local / aplicação ...