Roteando o tráfego LDAP do servidor de aplicativos para o proxy para a internet

1

Eu incluí um desenho para você ter uma ideia de como isso funcionaria. (Vermelho = conexões LDAP, Azul = HTTP / AJP no backend)

Problema: Queremos conectar nosso servidor de aplicativos do cliente a um LDAP do cliente (ou deixá-los fazer isso).

Agora, isso seria fácil se fizéssemos isso com a interface pública do servidor de aplicativos, mas gostaríamos de desabilitar essa interface ao longo do tempo. Queremos rotear todo o tráfego necessário para sair para o proxy e ele entregaria os pacotes para o destino.

Agora, isso também será para outros serviços, mas o principal é o LDAP (configurar os extras não é tão difícil se tivermos o LDAP em ordem). Não queremos redirecionar todo o tráfego porque ainda precisamos de tráfego para acessar nossos serviços de back-end (bancos de dados, etc.).

A solução seria:

  1. Iniciar solicitação LDAP do servidor de aplicativos.
  2. Enviar todas as solicitações LDAP + tráfego para eth1 do servidor de aplicativos para o proxy eth1
  3. Redirecionar todo o tráfego LDAP de eth1 para eth0 (proxy) para poder alcançar a internet.

Eu gostaria de saber como resolver isso da maneira mais segura e escalável (para automatizar isso) com o IPTABLES.

Estou procurando a melhor solução IPTABLES para implementar em nosso servidor de aplicativos e proxy

EDITAR:

Teste com 2 caixas vagantes: Host0 = servidor de aplicativos Host1 = Proxy

Ainda se esforçando com isso. Mas estou chegando mais perto.

Todo o meu tráfego LDAP está sendo enviado para o proxy e de volta, mas estou apenas recebendo [S] e [S.] de volta e sem conexão.

Aqui está o que eu fiz.

Servidor de aplicativos:

iptables -t mangle -A OUTPUT -p tcp --dport 389 -j MARK --set-mark 0x1
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

$echo 1 LDAP >> /etc/iproute2/rt_tables
$ip rule add fwmark 0x1 lookup LDAP
$ip route add default via 192.168.1.2 table LDAP


[root@host0 ~]# sysctl -A | grep rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth1.rp_filter = 1
net.ipv4.conf.eth1.arp_filter = 0

[root@host0 ~]# sysctl -A | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Proxy:

iptables -t nat -A POSTROUTING -p tcp -o eth0 --dport 389 -j SNAT --to 10.0.2.15


[root@host1 ~]# sysctl -A | grep rp_filter
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth1.rp_filter = 1
net.ipv4.conf.eth1.arp_filter = 0

[root@host1 ~]# sysctl -A | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 1

Este é o tcpdump na eth1 (privada) do servidor de aplicativos

13:31:51.629687 IP 192.168.56.10.59528 > ec2-23-20-46-132.compute-1.amazonaws.com.ldap: Flags [S], seq 1571039960, win 14600, options [mss 1460,sackOK,TS val 18491218 ecr 0,nop,wscale 3], length 0
13:31:51.749145 IP ec2-23-20-46-132.compute-1.amazonaws.com.ldap > 192.168.56.10.59528: Flags [S.], seq 1604232705, ack 1571039961, win 65535, options [mss 1460], length 0
13:31:52.630908 IP 192.168.56.10.59528 > ec2-23-20-46-132.compute-1.amazonaws.com.ldap: Flags [S], seq 1571039960, win 14600, options [mss 1460,sackOK,TS val 18492219 ecr 0,nop,wscale 3], length 0
13:31:54.633277 IP 192.168.56.10.59528 > ec2-23-20-46-132.compute-1.amazonaws.com.ldap: Flags [S], seq 1571039960, win 14600, options [mss 1460,sackOK,TS val 18494222 ecr 0,nop,wscale 3], length 0
    
por Ignis 15.04.2014 / 09:48

0 respostas