Abrindo a LAN da sub-rede atrás de um servidor OpenVPN

4

Eu configurei um servidor OpenVPN na minha rede de trabalho e consigo acessar o servidor a partir de uma máquina remota através da VPN. No entanto, não posso descobrir como acessar a lan por trás do servidor.

O layout da rede é:

----------   -------   --------   ----------------  
|Internet|-->|Modem|-->|Switch|-->|OpenVPN Server|  
----------   -------   --------   ----------------

O servidor é um servidor Ubuntu. Eu habilitei o encaminhamento de IP no servidor.

Nosso gateway / modem é um Linksys WAG54G2 e se conecta a uma máquina WinXP.

Alguém sabe como abrir a sub-rede em que o servidor OpenVPN está?

    
por fnord_ix 27.08.2009 / 09:26

3 respostas

2

Esta configuração é específica do CentOS, mas sua instalação provavelmente será semelhante. A configuração também é para a versão 2.0, a série 2.1 parece usar um formato diferente de arquivo de configuração. Ele também assume que você está usando duas caixas linux para fazer isso, e não apenas ingressar em um ponto de extremidade do Windows XP - então você precisará fazer adaptações para a instalação do Windows XP que estiver usando. Neste exemplo, os endereços foram escolhidos aleatoriamente, então é assim que eles são atribuídos:

  • 1.1.1.1 é o endereço público do seu servidor no trabalho voltado para a Internet
  • 2.2.2.2 é o endereço público do seu servidor em casa voltado para a Internet
  • 192.168.1.0/24 é a rede no seu trabalho
  • 192.168.1.1 é o endereço interno da sua máquina que possui 1.1.1.1
  • 192.168.1.254 será o ponto final da VPN da máquina que possui 1.1.1.1
  • 192.168.2.0/24 é a rede em sua casa
  • 192.168.2.1 é o endereço interno da sua máquina que possui 2.2.2.2
  • 192.168.2.254 será o ponto final da VPN da máquina que possui 2.2.2.2

e

  • tanto o 1.1.1.1 quanto o 2.2.2.2 aceitam tráfego através do seu firewall na porta 1194 um do outro somente . Não há sentido em aceitar tráfego de qualquer outro lugar e isso reduzirá os possíveis ataques.

Chave estática secreta

Será mais fácil para você usar uma chave estática. Leia as instruções aqui sobre como criar uma. Aqui está a versão curta feita a partir de 1.1.1.1 como root:

openvpn --genkey --secret > /etc/openvpn/secret.key
chmod 600 /etc/openvpn/secret.key
scp /etc/openvpn/static.key [email protected]:/etc/openvpn/secret.key
ssh [email protected]
chmod 600 /etc/openvpn/secret.key
exit

Exemplo de configuração local (rede local de trabalho):

Você colocaria este texto em /etc/openvpn/home-vpn em sua máquina de trabalho (1.1.1.1), assumindo que o OpenVPN lê o conteúdo de /etc/openvpn na inicialização.

#daemon home-vpn 
local 1.1.1.1 
remote 2.2.2.2 
proto tcp-server 
port 1194 
dev tun0 
ifconfig 192.168.1.254 192.168.2.254 
route 192.168.2.0 255.255.255.0 192.168.1.254 6
route-delay 5
verb 3 
nice 1
secret /etc/openvpn/secret.key
comp-lzo
passtos

Exemplo de configuração remota (LAN doméstica):

Você colocaria este texto em /etc/openvpn/work-vpn em sua máquina doméstica (2.2.2.2), assumindo que o OpenVPN lê o conteúdo de /etc/openvpn na inicialização.

#daemon work-vpn 
local 2.2.2.2 
remote 1.1.1.1 
proto tcp-server 
port 1194 
dev tun0 
ifconfig 192.168.2.254 192.168.1.254
route 192.168.1.0 255.255.255.0 192.168.2.254 6
route-delay 5
verb 3 
nice 1
secret /etc/openvpn/secret.key
comp-lzo
passtos

Comentário

Os exemplos aqui têm o serviço openvpn sendo executado com uma boa prioridade de 1; Se você não deseja isso, remova a linha inteira que lê nice 1 para que ele seja executado como qualquer outro programa. A compactação é ativada por meio de comp-lzo em ambas as extremidades e passtos permite que os bits de pacote TOS sobrevivam em toda a VPN. Ambos também podem ser desativados se você quiser. Alguns notarão que o custo de rota de 6 parece um pouco alto, o que é verdade, pode ser muito menor (4-5 dependendo da configuração), mas 6 fornece "alcance" suficiente para sub-redes e roteamento adicional.

E, por último, como estou postando isso às 1:31 da manhã, tenho certeza de que esqueci algo ou marquei algo de forma incorreta, então sinta-se à vontade para revisar as configurações e verificar novamente.

    
por 27.08.2009 / 10:25
1

Resposta completa.

  • veja as anotações detalhadas de Avery Payne, está tudo lá.

Resposta curta.

  • O cliente remoto precisa rotear o tráfego para sua LAN por meio da conexão VPN
  • Os hosts da LAN precisam encaminhar o tráfego para a VPN da LAN privada para o servidor OpenVPN

Resposta Média.

Cliente Remoto

Quando o seu cliente OpenVPN se conecta ao servidor OpenVPN, o cliente terá agora pelo menos 2 endereços IP.

  • "Cliente de endereço IP A" usa para se conectar à Internet e ao servidor OpenVPN
  • "Endereço IP B" configurado pelo cliente OpenVPN

O problema é que, em circunstâncias normais, seu cliente não sabe para onde enviar tráfego para o IP Range dentro de seu Lan. O cliente normalmente terá um 'gateway padrão (ou seja, para onde devo enviar tráfego para destinos que eu não conheço) que encaminha para o seu ISP.

A melhor solução para esse dilema é fazer com que o cliente OpenVPN configure o roteamento depois de configurar com sucesso o túnel VPN. Dê uma olhada na funcionalidade push para a configuração do servidor do OpenVPN. Por exemplo:

push "route LAN-IP SUBNET"

(se o seu cliente remoto for uma caixa do Windows, talvez seja necessário adicionar algo como o abaixo à configuração do cliente)

route-method exe

Uma combinação dos itens acima deve obter tráfego do seu cliente remoto, através da VPN, para os hosts da LAN, mas agora você precisa que os hosts da LAN saibam para onde enviar as respostas.

Hosts de LAN

Se você é apenas uma conexão fora do trabalho através do OpenVPN Server, você pode apenas se certificar de que o servidor VPN é o gateway padrão da sua LAN. Caso contrário, ...

  • na LAN Host, defina uma rota para a sub-rede "Endereço IP B" para o gateway através do seu servidor OpenVPN
por 28.08.2009 / 16:53
0
  • Você pode unir sua lan e a rede openvpn.
  • Adicione máquinas em sua lan à VPN.
por 27.08.2009 / 10:04