Iptables 10 X 0 - Dropando Clientes intermitantemente

1. Iptables 10 X 0 - Dropando Clientes intermitantemente

Alexandre Fernandes Pedrosa
Wisdown_Eye

(usa Outra)

Enviado em 12/07/2012 - 20:39h

Boa Noite Pessoal,

Estou aqui com uma briga com o IPTables, onde estou sendo massacrado, se alguém puder me indicar onde posso buscar informações de como resolver esse caso ou dar dicas eu ficaria muito agradecido.
Devo salientar que não manjo nada de IPtables / BIND9, estou aprendendo agora ;)

Estou usando o Ubuntu Server 12.04

Ativei DHCP / BIND9
O servidor possui 3 NICs que deveriam funcionar assim:

eth0 = Internet (Aguardando a liberação do IP válido)
eth1 = Servidores
eth2 = Workstations

Assim que for liberado o IP válido desejo hospedar alguns sites.
Não sei s configurei certo o BIND9.
As duas redes Servidores e Workstations deveriam ter alguns compartilhamentos entre si como:
HTTP / FTP / MySQL


Fiz um script que carrega o firewall no boot desa maneira:

#####################################
# Limpando Configuracoes Anteriores #
#####################################

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z


#############################
# Configurações Segurança #
#############################

# tcp_syncookies = Protecao Contra Ataques SYN Flood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

# icmp_echo_ignore_all = Nao Aceita Ping Externo
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# icmp_echo_ignore_broadcasts = Nao Aceita Requisicao de ICMP
# destinado a Broadcasts e Multicasts
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# icmp_ignore_bogus_error_responses = Ignora Mensagens Falsas de erros ICMP
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

for i in /proc/sys/net/ipv4/conf/*; do
# Nao Redirecionar Mensagens ICMP
echo 0 > $i/accept_redirects

# Protecao Contra Ataques IP Spoofing
echo 0 > $i/accept_source_route

# O Kernel Decide se Envia Resposta pelo Mesmo Endereco ou Nao
echo 1 > $i/arp_filter

# Permitir que Pacotes Falsos Sejam Logados Pelo Proprio Kernel
echo 1 > $i/log_martians

# Verificar ENdereco de Origem dos Pacotes
# (Protecao contra Atatques IP Spoofing)
echo 1 > $i/rp_filter
done

###################
# Politica Padrao #
###################

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Bind9 - Servidor DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT

# DHCP - Servidor DHCP
iptables -A INPUT -i eth1 -p udp --sport 68 --dport 67 -j ACCEPT
iptables -A INPUT -i eth2 -p udp --sport 68 --dport 67 -j ACCEPT

# DNS - Servico de Nomes de Dominios
iptables -A FORWARD -o eth0 -p udp -m multiport --dports 53,5353 -j ACCEPT

# FTP - Protocolo de Transferencia de Arquivo
iptables -A FORWARD -o eth0 -p tcp --dport 21 -j ACCEPT

# HTTP - Protocolo de Transferencia de Hypertext
iptables -A FORWARD -o eth0 -p tcp -m multiport --dports 80,8080 -j ACCEPT

# HTTPS - Protocolo de Transferencia de Hypertext Seguro
iptables -A FORWARD -o eth0 -p tcp --dport 443 -j ACCEPT

###########################
# COMPARTILHANDO INTERNET #
###########################

# Masquerade para as redes interna pela eth0
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j MASQUERADE

# ip_forward = Redireciona os pacotes IPs
echo "1" > /proc/sys/net/ipv4/ip_forward


####################################
# Problemas com essa configuração: #
####################################

1 - Meus clientes DHCP caem da rede intermitentemente, as vezes a cada 30 min, as vezes a cada 5 min, não há um padrão...

2 - MSN está funcionando, pensei que pela politica ser DROP o que não tiver regra ele ficaria travado.

3 - DHCP depois de n quedas do cliente se nega a fornecer IP ai tenho que reiniciar servidor + cliente

4 - No meu /var/log/syslog há inumeros relados de pacotes marcianos, sei que dá para desabilitar, mas não sei se isso seria uma pista do problema

5 - No servidor usando "apt-get update" / "apt-get upgrade" dá erro (tenho que liberar alguma porta?)

6 - Quando mando reiniciar o servidor fica uns 5 min na mensagem: "Stopping domain name service... bind9"

7 - Quando mando reiniciar o servidor fica uns 3 min na mensagem: "Deconfiguring network interfaces"

------------------------------------------------------------------------------------------
Ignorando o IPtables e deixando tudo aberto, os problemas acima que continua são: 4 - 6 - 7
Para deixar tudo aberto eu uso o seguinte:
------------------------------------------------------------------------------------------


#####################################
# Limpando Configuracoes Anteriores #
#####################################

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -Z
iptables -t nat -Z
iptables -t mangle -Z

###################
# Politica Padrao #
###################

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT


###########################
# COMPARTILHANDO INTERNET #
###########################

iptables -t nat -A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o eth0 -j MASQUERADE


# ip_forward = Redireciona os pacotes IPs
echo "1" > /proc/sys/net/ipv4/ip_forward

------------------------------------------------------------------------------------------

Com a ultima configuração não é dropada nenhuma conexão, a internet é compartilhada perfeitamente em ambas as redes.
Com a primeira configuracao tanto a eth1 quanto a eth2 sofre DROPs aleatórios.

Esses drops seriam por falta de regras de forward?


  


2. Re: Iptables 10 X 0 - Dropando Clientes intermitantemente

Marcelo
hrapytor

(usa Debian)

Enviado em 27/07/2012 - 16:26h

Amigo altera a CHAIN OUTPUT. Vc está usando isso.

###################
# Politica Padrao #
###################

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

Libera a entrada de pacotes das suas placas de redes ligadas a rede interna.

iptables -A INPUT -i eth1 -j ACCEPT #eth1 = Servidores
iptables -A INPUT -i eth2 -j ACCEPT #eth2 = Workstations


Adiciona tb essas regras.

#PERMITE PACOTES DE CONEXOES SOMENTE INICIADAS
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Testa ai.




3. Re: Iptables 10 X 0 - Dropando Clientes intermitantemente

Alexandre Fernandes Pedrosa
Wisdown_Eye

(usa Outra)

Enviado em 22/08/2012 - 01:45h

Opa,

hrapytor Muito obrigado pela resposta.
Entretanto depois de quebrar muito a cabeça, acabei desistindo de usar o debian e tentar configurar o IPtables.
Fui para uma solução BSD chamada pfsense, bem simples de configurar e que aparentemente atendeu as minhas necessidades.

Acredito que o "problema" (talvez seja erro de configuração meu) seja que ao abrir alguma porta, como por exemplo a 80 que abri pro meu apache, ela fica respondendo a tudo na web...
Com SNAT do Debian ela ficava stealth e não respondia os pings, ainda estou vendo como reproduzir o mesmo efeito.
Mais uma vez muito obrigado!!!!

Obs.: Comecei testando no Ubuntu e achei diversos problemas miteriosos, como por exemplo o RNDC que precisa de uma porta liberada no firewall (não lembro o nome agora) ou ele segura o shutdown em 3 min até dar timeout... Depois fui para o Debian onde as coisas começaram a ter um pouco mais de resultados e travei também...