Problema ao configurar o iptables (tráfego LDAP bloqueado)

2

Meu servidor de aplicativos está em uma rede protegida por um firewall de toda a organização e meu servidor também está usando fail2ban . Dito isso, gostaria de configurar uma camada adicional de proteção com iptables . Estou tendo um pequeno problema com minha configuração.

Requisitos:

  1. Negar acesso a todos e permitir um intervalo de IP específico (4.3.4.0/16)
  2. Continuação da funcionalidade LDAP no aplicativo (usando ldap_connect no PHP)
  3. Capacidade de recuperar conteúdo externo por meio de URL

Knowns:

  • O IP do servidor de aplicativos é 1.2.3.4
  • O servidor LDAP é resolvido para 1.2.100.200 e usa a porta 636
  • O IP estático do meu laptop é 4.3.2.1

O que eu tentei:

Começando com uma baunilha iptables config que permite o tráfego pelas portas 22, 80 e 443, adicionei o seguinte.

# explicitly allow ssh access from my laptop
iptables -A INPUT -s 4.3.2.1 -d 1.2.3.4 -p tcp --dport 22 -j ACCEPT

# deny all traffic
iptables --policy INPUT DROP

# allow traffic from a specific IP range
iptables -A INPUT -s 4.3.4.0/24 -j ACCEPT

# allow traffic from LDAP server IP
iptables -A INPUT -s 1.2.100.200 -j ACCEPT
iptables -A INPUT -p tcp --dport 636 -j ACCEPT

Salvei essa configuração usando service iptables save e reinicie o serviço.

Problemas:

Se eu já estiver logado, posso navegar e usar o aplicativo (exceto por uma coisa, abaixo). Se eu não estou logado, a autenticação LDAP trava.

O segundo problema é que não consigo acessar o conteúdo externo com a nova configuração. Eu recupero dados de outra máquina usando HTTPS. Isso é apenas uma questão de adicionar uma regra para permitir o tráfego de saída para o IP da máquina externa?

    
por a coder 14.05.2014 / 15:55

1 resposta

3

Could the LDAP server be using non-standard ports?

Você pode ver em qual porta o servidor ldap está escutando via netstat -tlpn

The second issue is that I'm unable to access external content with the new config

Suponho que você queira dizer que não é possível se conectar aos recursos de rede desta máquina depois de aplicar essas regras. As solicitações provavelmente estão saindo (já que, aparentemente, você não definiu a política padrão de OUTPUT como DROP), mas as respostas do servidor remoto estão sendo eliminadas pelo firewall.

Você pode verificar se isso está acontecendo, monitorando a contagem de pacotes da política padrão ao gerar o tráfego com o qual você está preocupado:

root@xxxxxxvld02 ~ $ iptables -nvL
Chain INPUT (policy ACCEPT 157 packets, 18048 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 63 packets, 6998 bytes)
 pkts bytes target     prot opt in     out     source               destination

Acima, a 157 packets na cadeia INPUT é a contagem de pacotes que acabaram tendo a política padrão aplicada a eles (as regras têm suas próprias contagens à esquerda e não alteram esse número para cima ).

Você provavelmente deseja criar uma regra que permita explicitamente tráfego relacionado a conexões já existentes:

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    
por 14.05.2014 / 16:05