Conectando IPs estáticos de um VPS a um servidor de e-mail em uma LAN dinâmica através de uma conexão IPv6 OpenVPN?

3

Sim, eu sei. Ugh!

Tenho um escritório pequeno e estamos tentando reduzir nossas despesas com a rede.

Devido aos requisitos de auditoria do cliente, executamos nosso próprio servidor de e-mail e gostaríamos de mantê-lo assim. Para isso, precisamos de dois IPs estáticos. Até agora, tivemos um 'plano de negócios StaticIP' com nosso ISP para nossa rede de escritórios. O serviço foi menos que ótimo.

Eu quero mudar a conexão do escritório para o plano dinâmico mais barato / mais rápido que posso encontrar; muitas opções. Mas isso significa desistir de nossos IPs estáticos para o servidor de email.

Também temos um pequeno VPS na nuvem para um site simples. Ele não possui recursos suficientes para hospedar nosso servidor de e-mail, mas possui 2 IPs estáticos.

Eu gostaria de configurar um 'túnel' que usa os IPs estáticos do VPS como nosso endereço IP publicamente visível para o nosso servidor de e-mail e se conecta ao servidor de e-mail real - agora em nossa LAN com NAT por trás de um IPv4 dinâmico.

Depois de muita leitura, o modo como estou pensando em fazer isso é usando o OpenVPN para conectar o servidor de email do escritório usando um cliente OpenVPN local a um servidor OpenVPN em execução no VPS - todo IPv6 'estático' que é fornecido por um corretor de túneis (HE.net), e é independente do nosso ISP.

Consegui obter a configuração do túnel IPv6. E o servidor OpenVPN & cliente. Eu posso até fazer uma conexão entre os dois através do IPv6

Neste momento, estou preso - estou completamente perdido no roteamento (acho!) necessário para obter os endereços IPv4 externos no VPS para falar e ouvir os endereços IPv4 internos que o servidor de e-mail está escutando no link IPv6.

Eu encontrei um monte de artigos online, mas todos eles parecem dizer "apenas configure uma conexão OpenVPN entre o cliente e o servidor", não dando muitos detalhes - o que eu posso entender, de qualquer forma :-( - - e depois não diga nada sobre como fazer o mapeamento de endereços e tráfego de entrada e saída.

Existe também um firewall no VPS e no roteador do Office. Eu nem comecei a pensar sobre o que eu preciso abrir para o IMAP & Tráfego SMTP pela VPN ...

Alguém pode compartilhar um documento ou ajudar com uma boa explicação sobre o que fazer aqui e como?

Para referência, o layout da minha rede é:

------------------------------------
| VPS Server                       |
|    eth0:                         |
|       IPv4 = 172.16.10.100       |
|       IPv6 = 2100:...:0444::100  |
|    tun1:                         |
|       IPv6 = 2199:...:1          |
------------------------------------
      |              |
      |              |
      |       ---------------------------------
      |       |    eth1:                      |
      |       |       IPv4 = 172.16.10.63     |
      |       |       IPv6 = 2100:...:0444:2  |
      |       |                               |
      |       | Server-side Gateway           |
      |       |                               |
      |       |    eth0: (PUBLIC IPs)         |
      |       |       IPv4 = x.y.z.63         |
      |       |       IPv6 = 2100:...:0444:1  |
      |       ---------------------------------
      |              |
      |              |
      |       ----------------
     VPN      | Internet/WAN |
      |       ----------------
      |              |
      |              |
      |       ---------------------------------
      |       |    eth0:                      |
      |       |       IPv4 = a.b.c.24         |
      |       |       IPv6 = 2600:...:0123:1  |
      |       |                               |
      |       | Client-side Gateway           |
      |       |                               |
      |       |    eth1:                      |
      |       |       IPv4 = 192.168.1.24     |
      |       |       IPv6 = 2600:...:0123:2  |
      |       ---------------------------------
      |              |                             ------------------------------------
      |              |-----------------------------|  MailServer                      |
      |              |                             |     eth0:                        |
      |              |                             |        IPv4 = 192.168.1.199      |
      |              |                             |        IPv6 = 2600:...:0123:199  |
      |              |                             ------------------------------------
------------------------------------
| Client                           |
|    eth0:                         |
|       IPv4 = 192.168.1.100       |
|       IPv6 = 2600:...:0123:100   |
|    tun1:                         |
|       IPv6 = 2699:...:1          |
------------------------------------

e o objetivo específico é ter o tráfego de mensagens da Internet / WAN direcionado aos meus "IPs públicos" no VPS

IPv4 = x.y.z.63         port 25
IPv6 = 2100:...:0444:1  port 25

ser redirecionado imediatamente para a escuta "MailServer", e,

o tráfego do MailServer seja roteado para FORA dos "PUBLIC IPs", parecendo originar desses IPs externos.

Consegui que partes da ideia funcionassem seguindo os exemplos que encontrei on-line e em um livro de receitas do OpenVPN, mas uma vez que adicionei o túnel IPv6, ainda não tive sorte em obter o cliente rotas, rotas push, etc, tudo configurado para fluxos de tráfego.

    
por ArielG 05.08.2013 / 20:36

2 respostas

1

Você deve ser capaz de evitar a VPN e ir direto via IPv6 a partir do VPS para o servidor de e-mail se você tivesse que executar um proxy TCP no servidor VPS.

Socat faria o truque no Linux:

socat -d -d -lmlocal2 \
TCP4-LISTEN:25,bind=myaddr1,su=nobody,fork,reuseaddr \
TCP6:mail.domain.local:80,bind=myaddr2

Ou netsh no Windows:

netsh interface portproxy add v4tov6 listenport=25 connectaddress=mail.domain.local connectport=25 protocol=tcp

Ou encaminhará as conexões feitas para o endereço IPv4 do servidor VPS para o endereço IPv6 do servidor de email.

Isso também teria o benefício adicional de pular o VPS se o remetente tiver acesso IPv6.

Se você está empenhado em usar o OpenVPN sem o encaminhamento de porta, você teria que fazer algo como o seguinte para obter o tráfego:

  • Configurar o acesso IPv6 a hosts de borda
  • Configurar o túnel v4 p2p através da Internet IPv6
  • Configurar o roteamento para permitir que todo o tráfego do servidor de email flua pelo túnel
  • Configure o NAT para traduzir o endereço v4 secundário para o endereço v4 privado do servidor de e-mail

Assumindo endereços públicos IPv4 de 1.2.3.2 e 1.2.3.3 com um gateway de 1.2.3.1. Assumindo endereços públicos IPv6 de [2001: abcd: 1 ::] para o site VPS Assumindo endereços públicos IPv6 de [2001: abcd: 2 ::] para o site do cliente Assumindo endereços de túnel IPv4 de 10.1.100.1 para a borda VPS e 10.1.100.2 para a borda Cliente

Nota: isso é um pouco pseudocódigo, mas seria bem próximo de uma configuração do cisco. Eu não tenho as configurações equivalentes do iptables e do OpenVPN, mas elas devem ser facilmente traduzidas.

Gateway VPS:

! gateway acts as a router
ip routing
ipv6 unicast-routing

! interfaces
interface outside
  ip address 1.2.3.2 255.255.255.248
interface inside
  ip address 172.16.10.63 255.255.255.0
  ipv6 address 2001:abcd:1:1::1 /64
interface tunnel6
  ipv6 address 2001:abcd:1::1
  tunnel source 1.2.3.2

! Routing table:
! send traffic for the client net via the openvpn p2p link
ip route 192.168.1.0 255.255.255.0 172.16.10.100
ip route 0.0.0.0 0.0.0.0 1.2.3.1
ipv6 route ::0/0 2001:abcd:1::2

! NAT Table:
! nat the mailserver
static (outside,inside) 1.2.3.4 192.168.1.199 netmask 255.255.255.255

Servidor VPS:

! vps server acts as a v4 router
ip routing

! interfaces
interface inside
  ip address 172.16.10.100
  ipv6 address 2001:abcd:1:1::100 /64

interface tun0
  tunnel source 2001:abcd:1:1::100
  tunnel destination 2001:abcd:2:1::100
  ip address 10.1.100.1 255.255.255.252

! Routing table:
ip route 192.168.1.0 255.255.255.0 10.1.100.2
ip route 0.0.0.0 0.0.0.0 172.16.10.63
ipv6 route ::0/0 2001:abcd:1:1::1

Roteador do cliente:

! gateway acts as a router
ip routing
ipv6 unicast-routing

! interfaces
interface outside
  ip address from dhcp
interface inside
  ip address 192.168.1.24 255.255.255.0
  ipv6 address 2001:abcd:2:1::1 /64
interface tunnel6
  ipv6 address 2001:abcd:2::1

! routing
ip route 172.16.10.0 255.255.255.0 192.168.1.100
ipv6 route ::0/0 2001:abcd:2::2

Borda do cliente:

! client edge acts as a v4 router
ip routing

interface inside
  ip address 192.168.1.100 255.255.255.0
  ipv6 address 2001:abcd:2:1::100 /64
interface tunnel0
  tunnel source 2001:abcd:2:1::100 
  tunnel destination 2001:abcd:1:1::100
  ip address 10.1.100.2 255.255.255.252

ip route 172.16.10.0 255.255.255.0 10.1.100.1

! use pbr to send internet traffic from the mailserver over the vpn
access-list 1 permit 192.168.1.199
route-map pbr-mailserver-vpn permit 10
  match ip address 1
  set ip default next-hop 10.1.100.1
route-map pbr-mailserver-vpn permit 20
  set ip default next-hop 192.168.1.24

Servidor de e-mail:

interface inside
  ip address 192.168.1.199 255.255.255.0

! since our default traffic must be natted to the secondary VPS IP, forward over 
! client edge to vpn
ip route 0.0.0.0 0.0.0.0 192.168.1.100

Observação: se os roteadores de borda suportarem GRE ou outro protocolo de encapsulamento de túnel, você poderá ignorar os servidores e fazer o encapsulamento nos roteadores. No entanto, lembre-se de que o roteador do cliente deve ser capaz de fazer o roteamento de diretivas com base no endereço de origem para retornar o tráfego do servidor de email pelo túnel.

Vou enfatizar mais uma vez que isso oferece pouco benefício ao fazer o encaminhamento de porta da v4 para a v6 e aumenta a complexidade para um ponto ridículo. Ele também introduzirá problemas difíceis de rastrear, como rotas assimétricas, NAT e várias camadas de túneis (o que reduzirá a MTU em cerca de 400 bytes).

    
por 07.08.2013 / 08:16
0

Por que você não permite que o servidor do escritório faça o recebimento de emails (SMTP) somente no IPv6 e use o VPS como um fallback com o dual-stack? Os remetentes que oferecem suporte ao IPv6 podem enviar diretamente para o servidor do escritório, e outros podem enviar para o VPS, que o retransmitirá pelo IPv6 para o escritório.

    
por 06.08.2013 / 00:33