Iptables nao funciona (FORWARED com tcp e udp) [RESOLVIDO]

1. Iptables nao funciona (FORWARED com tcp e udp) [RESOLVIDO]

Fabio Jr
fabiopjr

(usa CentOS)

Enviado em 25/08/2008 - 22:46h

Estou aprendendo iptables e comecei pegando um simples script que tem em um Howto do site do Centos. (só pra constar de 1 a 10 minha experiencia com linux é 2).

Comecei até bem. Liberei acesso via ssh ao firewall, funcionou

Liberei passagem de icmp (o firewall esta com a opcao gateway habilitada), funcionou.

Quando comecei a liberar outras portas tcp e udp, elas simplesmente não funcionaram, quando eu seto a politica do Forward para ACCEPT tudo passa a funcionar.

Estou enviando o script e a saida do comando iptables -L -v, desde já agradeço

Estou utilizando CentOS 5


#!/bin/bash
#
# iptabels example configuration script
#

# Flush all current rules from iptablew
iptables -F

# VARIAVEIS


# Set default policies for INPUT, FORWARD and OUTPUT chains
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Set access for localhost
iptables -A INPUT -i lo -j ACCEPT

# Accept packets belonging to established and related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Liberacoes de acesso ao Firewall
iptables -A INPUT -p tcp -s 10.0.0.0/8 --dport 22 -j ACCEPT <-- Funciona


# Liberacao de Portas de Acesso a DMZ
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -p udp --dport 3389 -j ACCEPT
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p icmp -j ACCEPT ## <------Essa aqui é a única regra FORWARD que está funcionando
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 21 -j ACCEPT


# Save Settings
/sbin/service iptables save

# List Rules
iptables -L -v



Aqui a saida do comando iptables -L -v
[root@svfw02]# iptables -L -v
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo any anywhere anywhere
29 1992 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
1 92 ACCEPT tcp -- any any 10.0.0.0/8 anywhere tcp dpt:ssh

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ms-wbt-server
0 0 ACCEPT udp -- any any anywhere anywhere udp dpt:ms-wbt-server
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:pop3
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:smtp
0 0 ACCEPT udp -- any any anywhere anywhere udp dpt:domain
0 0 ACCEPT icmp -- any any anywhere anywhere
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ftp

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





  


2. MELHOR RESPOSTA

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 28/08/2008 - 10:40h

Amigo!
Uma conexão UDP ou TCP tem tráfego em ambos os sentidos. Ele vai e ele volta!

no caso de:
iptables -A FORWARD -p tcp --dport 3389 -j ACCEPT

Deve-se lembrar que a resposta virá da porta 3389, logo deveria existir uma regra permitindo --sport 3389

Contudo, VIVA o IPTABLES, que por ser statefull permite que ele automaticamente "entenda" o que é resposta e deixe passar. isto é feito pelo ESTABLISHED que tu usou apenas no INPUT. Deves usar também no FORWARD.

ESTABLISHED: permite que pacotes que já pertençam a uma conexão TCP ou em uma conversa UDP (não é apropriado chamar UDP de conexão) passem. Se for uma resposta de um ICMP tipo 8 (echo request, vulgo ping) também casa com esta regra.

RELATED: permite que pacotes relacionados com uma conversa, mas não PARTE DELA, voltem. Exemplo: em uma conversa houve o descarte do pacote por um roteador por TTL expirou. Logo reste roteador devolve um ICMP do tipo 11. O RELATED consegue ver que este ICMP está relacionado com uma conversa em andamento e deixa passar.

Resumindo, tudo o que tu precisa é isto;

iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

Coloca ai se funcionou!
Forte abraço

PS: quer aprender iptables? Dá uma lida nos meus artigos.

3. eita sabiduria!!!!

Fabio Jr
fabiopjr

(usa CentOS)

Enviado em 28/08/2008 - 10:50h

Muito obrigado. Já havia conseguido resolver ( o pessoal do fórum do CentOs havia dado a mesma dica). Mas valeu pela aula, com certeza vou ler os seus artigos.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts