problemas quando o servidor openvpn não é o gateway padrão

1

Estou tentando configurar um servidor openvpn em um pi de framboesa para atuar como um ponto de extremidade para conexões de worrier de estrada, mas o dispositivo está na rede, não como o gateway de qualquer uma das máquinas na rede e suspeito esse é o problema.

Eu olhei para MUITOS tutoriais e tenho a conexão vpn corretamente, e o roteamento do cliente está OK, pois eu posso conectar ao raspi através do túnel, mas se eu pingar qualquer outra coisa na rede, recebo timeout do pedido. Minha única diferença é que estou usando uma conexão tcp, não uma UDP, mas ajustei as regras do firewall para o suite.

Eu tentei várias regras diferentes do iptables, tenho o encaminhamento ativado e até instalei uma rota estática no cyberoam para tentar fazer isso funcionar.

Minhas configurações são as seguintes.

servidor ...

local 192.168.1.84
port 1194
proto tcp
dev tun

ca      /etc/openvpn/ca.crt    # generated keys
cert    /etc/openvpn/folkarch.crt
key     /etc/openvpn/folkarch.key  # keep secret
dh      /etc/openvpn/dh2048.pem

server 10.8.0.0 255.255.255.0  # internal tun0 connection IP
ifconfig 10.8.0.1 10.8.0.2
ifconfig-pool-persist ipp.txt
push "route 10.8.0.1 255.255.255.255"
#route 192.168.1.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.1.0 255.255.255.0"
#push dhcp-option DNS 8.8.8.8"
push "redirect-gateway def1"
keepalive 30 240

comp-lzo         # Compression - must be turned on at both end
persist-key
persist-tun

status log/openvpn-status.log

verb 3  # verbose mode
client-to-client
duplicate-cn

configuração do cliente para combinar, nada muito nele ..

firewall.sh

#!/bin/bash

#/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.1.84


/sbin/iptables -A INPUT -i tun+ -j ACCEPT
/sbin/iptables -A OUTPUT -o tun+ -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
/sbin/iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -d 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -d 10.1.0.0/8 -m conntrack --ctstate NEW -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 1194 -j ACCEPT
/sbin/iptables -A FORWARD -i tun+ -j ACCEPT
/sbin/iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT

A primeira linha comentada é outra tentativa de fazê-la funcionar. e isso é chamado em / etc / network / interfaces como um pré-up.

A rota estática é 10.8.0.0/24, gateway 192.168.1.84, PortA no cyberoam.

Eu realmente estou presa aqui, como eu disse, eu posso felizmente chegar ao dispositivo 192.168.1.84, mas nada mais na internet.

Alguma ideia?

Peter.

Informações adicionais ... tabela de rotas de um cliente conectado (neste caso, mac).

% netstat -rn                                                                                                                                    pnunn@Peters-MacBook-Pro
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.0.1        UGSc           68        5     en0
default            10.8.0.5           UGScI           3        0   utun0
10.8/24            10.8.0.5           UGSc            1        0   utun0
10.8.0.5           10.8.0.6           UHr             7        0   utun0
10.8.0.5/32        link#19            UCS             1        0   utun0
127                127.0.0.1          UCS             1        0     lo0
127.0.0.1          127.0.0.1          UH              6  1179613     lo0
169.254            link#4             UCS             1        0     en0
192.168.0          link#4             UCS             4        0     en0
192.168.0.1/32     link#4             UCS             2        0     en0
192.168.0.1        c0:3f:e:e4:c:c     UHLWIir        70      902     en0    375
192.168.0.4        link#4             UHLWIi          1        7     en0
192.168.0.5/32     link#4             UCS             2        0     en0
192.168.0.5        34:36:3b:cd:ca:20  UHLWIi          1        7     lo0
192.168.0.6        link#4             UHLWIi          1        0     en0
192.168.0.255      link#4             UHLWbI          1      894     en0
192.168.1          10.8.0.5           UGSc            2        5   utun0
255.255.255.255/32 link#4             UCS             2        0     en0
255.255.255.255    link#4             UHLWbI          1       13     en0

255.255.255.255/32 link#19            UCSI            1        0   utun0
    
por Peter NUnn 24.02.2016 / 13:24

1 resposta

3

O cliente VPN deve ter rota para alcançar a rede, mas as máquinas na rede também devem ter rotas para enviar a resposta.

Então você tem que instruir as máquinas na rede local que, para alcançar o cliente vpn, devem enviar o pacote para o endereço PI do raspberry IP (192.168.1.84)

Para confirmar que esse é o problema, adicione uma rota em uma máquina de rede: rota 10.8.0.0/24 via 192.168.1.84

No Windows, você pode adicioná-lo em um prompt de comando (como administrador) com

route add 10.8.0.0 MASK 255.255.255.0 192.168.1.84

No linux

sudo ip route add 10.8.0.0/24 via 192.168.1.84

Se isso permitir que essa máquina se comunique, você poderá adicionar a rota no dispositivo que atua como gateway para a rede.

    
por 24.02.2016 / 14:39