Erro estranho iptables

1. Erro estranho iptables

Silas Matos
silasmg

(usa Debian)

Enviado em 21/05/2010 - 16:24h

Porque quando digito assim:

iptables -A OUTPUT -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT

Aparece o erro:

iptables v1.4.2: Bad state `'
Try `iptables -h' or 'iptables --help' for more information.

Não consigo de forma alguma colocar o squid no modo transparente:
Segue o firewall

### Interfaces de rede
EXT=eth0
INT=eth1

echo "1" > /proc/sys/net/ipv4/ip_forward

echo "Ativando Regras do Firewall"

### Exclui todas as regras
iptables -t nat -F
iptables -t mangle -F
iptables -t filter -F

echo "1° ok"

### Exclui cadeias customizadas
iptables -X

echo "2° ok"

### Zera os contadores das cadeias
iptables -t nat -Z
iptables -t mangle -Z
iptables -t filter -Z

echo "3° ok"

### Define a política padrão do firewall
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

echo "4° ok"

### Regras PREROUTING
# Redireciona as conexões vindas da rede interna na porta 80 para a porta 3128
iptables -t nat -A PREROUTING -i $INT -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i 192.168.1.0 -p tcp --dport 80 -j REDIRECT --to-port 3128

echo "5° ok"

### Regras INPUT

### informa os estados que devem ser checados (Conexão estabelecida
# ou Relacionada). Caso o estado da conexão seja uma dessas 2, então
# ele vai aceitar.
iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
echo "5a° ok"
# Libera o INPUT para a interface loopback, ou seja, a própria máquina
iptables -A INPUT -i lo -j ACCEPT
echo "5b° ok"
# Permite icmp 0 (resposta de Echo)
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
echo "5c° ok"
# Permite icmp 8 (Pedido de Echo)
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
echo "5d° ok"
#Limite contra ping da morte e DoS
iptables -A IMPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A IMPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP
echo "5e° ok"
# Permite o acesso ao servidor usando SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
echo "5f° ok"
# Permite o acesso ao servidor usando FTP
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
echo "5g° ok"
#SQUID
iptables -A IMPUT -p tcp --dport 3128 -j ACCEPT
echo "5h° ok"
# Permite o acesso ao servidor usando SMTP
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
echo "5i° ok"
# Permite o acesso ao servidor usando POP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
echo "5k° ok"
# Permite o acesso ao servidor usando VNC
iptables -A INPUT -p tcp --dport 5800 -j ACCEPT
iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
echo "5j° ok"
# Permite o acesso ao servidor usando Firebird
iptables -A INPUT -p tcp --dport 3050 -j ACCEPT
iptables -A INPUT -p tcp --dport 3051 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
echo "5k° ok"
# Permite o acesso ao servidor usando HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
echo "5l° ok"
# Permite o acesso ao servidor usando Apache
iptables -A INPUT -p tcp --dport 8010 -j ACCEPT
echo "5m° ok"
# Permite o acesso ao servidor usando Webmin
iptables -A INPUT -p tcp --dport 8011 -j ACCEPT
echo "5n° ok"
# Permite o acesso ao servidor usando Hamachi
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
echo "5o° ok"
# Permite o acesso ao servidor usando Hamachi
iptables -A INPUT -p tcp --dport 32976 -j ACCEPT
iptables -A INPUT -p tcp --dport 12975 -j ACCEPT

echo "6° ok"

### Regras FORWARD
#iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -i $INT -o $EXT -p icmp -j ACCEPT
echo "6a° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 25 (smtp)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 25 -j ACCEPT
echo "6b° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 22 (ssh)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 22 -j ACCEPT
echo "6c° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 21 (ftp)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 21 -j ACCEPT
echo "6d° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 110 (pop)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 110 -j ACCEPT
echo "6e° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 443 (ssl)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 443 -j ACCEPT
echo "6f° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 3389 (Terminal Server da Microsoft)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 3389 -j ACCEPT
echo "6g° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 80 (http)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 80 -j ACCEPT
echo "6h° ok"
# Libera o tráfego de pacotes da rede externa para a rede interna na porta 3389 (Terminal Server da Microsoft)
iptables -A FORWARD -i $EXT -o $INT -p tcp --dport 3389 -j ACCEPT
echo "6i° ok"
# Libera o tráfego de pacotes da rede externa para a rede interna na porta 5900 (VNC)
iptables -A FORWARD -i $EXT -o $INT -p tcp --dport 5900 -j ACCEPT
iptables -A FORWARD -i $EXT -o $INT -p tcp --dport 5800 -j ACCEPT
echo "6j° ok"
# Libera o tráfego de pacotes da rede externa para a rede interna na porta 3050 (Firebird)
iptables -A FORWARD -i $EXT -o $INT -p tcp --dport 3050 -j ACCEPT
iptables -A FORWARD -i $EXT -o $INT -p tcp --dport 3051 -j ACCEPT
echo "6k° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 23 (Firebird)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 23 -j ACCEPT
echo "6l° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 8010 (Apache)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 8010 -j ACCEPT
echo "6m° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 8011 (Webmin)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 8011 -j ACCEPT
echo "6n° ok"
# Libera o tráfego de pacotes da rede interna para a rede externa na porta 12975 (Hamachi)
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 12975 -j ACCEPT
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 32976 -j ACCEPT

echo "7° ok"

### Regras OUTPUT
iptables -A OUTPUT -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT

echo "8° ok"

### Regras POSTROUTING
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE

echo "9° ok"


  


2. Re: Erro estranho iptables

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 21/05/2010 - 16:49h

salvo engano, não há um "state" para o OUTPUT, só para input: -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

e não tem relação com o squid, como vc (aparentemente) coloca aqui: "Não consigo de forma alguma colocar o squid no modo transparente".

o que coloca o squid como transparente é uma regra de redirecionamento, que estão ali no seu redirecionamento mesmo; só não entendei a segunda regra:

iptables -t nat -A PREROUTING -i 192.168.1.0 -p tcp --dport 80 -j REDIRECT --to-port 3128

-i deveria ser uma placa de rede, não um endereço; enderêços são -s (source). Aliás, sua regra anterior está correta (-i $INT - se INT é a placa)

tal como está, informe: o 192.168.1.0 já não é sua rede? se é, a regra anterior ($LAN) é suficiente. De qualquer forma, quando vc referencia rede deve fazê-lo com o mascaramento apropriado: 192.168.1.0/24.

além disso, suas regras são extremamente permissivas, com todas as politicas ACCEPT. Ora, se tá tudo como ACCEPT, a partir daí QUALQUER outra regra ACCEPT é inútil e absolutamente redundante. Se tá com todas as portas abertas pq vou insistir mais tarde dizendo que "iptables -A FORWARD -i $INT -o $EXT -p tcp --dport 12975 -j ACCEPT"?? é besteira, tá tudo na maior festa do kaki mesmo :)

em vários pontos do seus script há êrro de digitação: iMput, ao invés de iNput (trocou 'n' pelo 'm').

em síntese: tá ruinzinho, xiiii.. melhor pegar exemplos aqui mesmo no VOL, existem vários bons scripts e bons artigos a respeito.

ah, sugestão FORTE: comece mudando as politicas para DROP, exceto OUTPUT que fica ACCEPT (é única).

divirta-se.


3. Re: Erro estranho iptables

Silas Matos
silasmg

(usa Debian)

Enviado em 21/05/2010 - 16:56h

Ok, acabei esquecendo dos DROPS, mas enfim, defini assim apenas para um teste.

mesmo com o "http_port 3128 transparent" definido no squid, ele não ficou transparente

Testando o squid nas máquinas WINDOWS na porta 3128 está normal, mas se colocar na porta 80 não funciona.

Este firewall foi retirado aqui do vol mesmo :S


4. Re: Erro estranho iptables

irado furioso com tudo
irado

(usa XUbuntu)

Enviado em 22/05/2010 - 09:46h

bem.. fiz algumas afirmações, algumas perguntas, algumas sugestões. Aí vc volta a fala alguma coisa relacionada com (r)windows, que é algo que não entendo nada (nem faço questão).

vc QUER MESMO ajuda ou só está perdendo o meu e o seu tempo?


5. Re: Erro estranho iptables

Silas Matos
silasmg

(usa Debian)

Enviado em 26/05/2010 - 15:23h

Se fosse uma questão pessoal, entenderia perfeitamente, mas como não é, não posso concordar contigo. Muitos programas do governo e de terceiros que não são compatíveis com nenhuma solução linux e que são extremamente importantes, então não tenho escolha.
Depois disso tudo, ainda precisaria deixar uma porta aberta nesse firewall para a rede externa, para que o pessoal da "web" acesse um módulo web pelo apache que contem banco de dados e tudo mais, como o ip é fixo, não seria tão dificil, mas a questão é outra, o proxy transparente.


6. Re: Erro estranho iptables

Silas Matos
silasmg

(usa Debian)

Enviado em 28/05/2010 - 11:35h

Modifiquei duas coisas:

no squid.conf coloquei a tag visible_hostname antes de todas as outras
no script do firewall deixei tudo no accept, não resolveu, mas quando eu alterei adicionando duas linhas resolveu:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 <- linha adicionada

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE <- linha adicionada

Sendo que eth0 será a conexão do servidor com o modem router, e a eth1 é a rede interna.

Atualmente o script está assim para teste:

echo "1" > /proc/sys/net/ipv4/ip_forward

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

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Alguém poderia ter a gentileza de me explicar o que foi tudo isso?



7. Re: Erro estranho iptables

Silas Matos
silasmg

(usa Debian)

Enviado em 31/05/2010 - 13:53h

Ninguém?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts