Eu não consigo descobrir.
Como faço para que usuários VPN escolhidos acessem a internet através da eth0? Todo o tráfego do servidor passa pela eth1.
A eth0 só deve fornecer acesso à internet aos usuários VPN nas portas escolhidas e nada mais.
Os usuários se conectam através da eth1 e recebem um IP no tun0 com configurações individuais, esse é um dos usuários ccd:
ifconfig-push 192.168.200.5 192.168.200.6
push "redirect-gateway def1"
a configuração do usuário
client
dev tun
proto udp
remote 192.168.0.55 1194
resolv-retry infinite
persist-key persist-tun
ca ca.crt cert client.crt key client.key
ns-cert-type server
tls-auth ta.key 1
comp-lzo
verb 3
Configuração do servidor:
local 192.168.0.55
port 1194
proto udp
dev tun
ca ca.crt cert
server.crt key
server.key
dh1024.pem
server 192.168.200.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
tls-auth ta.key 0
comp-lzo
max-clients 10
persist-key persist-tun
Minhas regras atuais de tabela de IPs:
#Flush all
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
#Allow all
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#Allow loopback
iptables -A INPUT -i lo -j ACCEPT
#Block all incoming on eth0 and allow established connections
iptables -A INPUT -i eth0 -j DROP
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Encaminhamento ativado:
sysctl net.ipv4.ip_forward=1
Depois de horas no google ( link ) eu pensei que esta era a maneira correta, mas não funciona:
# Allow traffic initiated from VPN to access "the world"
iptables -I FORWARD -i tun0 -o eth0 \
-s 192.168.200.0/24 -m conntrack --ctstate NEW -j ACCEPT
# Allow established traffic to pass back and forth
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT
# Masquerade traffic from VPN to "the world" -- done in the nat table
iptables -t nat -I POSTROUTING -o eth0 \
-s 192.168.200.0/24 -j MASQUERADE
Ajuda é apreciada:)
Mapa de rede link