Problema com script iptables

Iniciado por Asterion, 22 de Abril de 2007, 22:22

tópico anterior - próximo tópico

Asterion

Acabei de migrar pro Feisty e esqueci de fazer o backup do meu antigo script iptables que rodava na inicialização do Egdy.

Fiz um mais completo, coloquei-o pra carregar via update-rc.d e para minha surpresa, assim que eu logava com meu usuário a sessão era paralisada. Nada acontecia. Só quando eu reiniciava depois de ter removido ele na inicialização é que voltava ao normal. Se eu carregar o script, mesmo que eu finalize o GDM, ele não carrega, é preciso reiniciar. Pensei que eu não tivesse autorizado o loopback, mas não. Criei então um script mais simples e mesmo assim o problema persiste. Trouxe-o aqui para que vocês que entendem disso esclareçam o caso.

Vejam:


#!/bin/bash
iniciar(){
echo "Iniciando o Firewall"
sleep 1

#Abre para a interface de loopback
iptables -A INPUT -i lo -j ACCEPT

#Pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

#Limpando as regras da tabela filter
iptables -F
iptables -X
iptables -Z

#Definindo as polices
iptables -P INPUT DROP
iptables -P FORWARD DROP

#Permite que entre somente pacotes de uma conexão já estabelecida
iptables -A INPUT -p tcp --syn -j DROP

#Protecao contra ping da morte
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

###### REGRAS PARA PROGRAMAS ######

#HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

#Nicotine
iptables -A INPUT -p tcp --destination-port 4662 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 4672 -j ACCEPT

#Bittorrent
iptables -A INPUT -p tcp -i eth0 --dport 6001 -j ACCEPT
iptables -A INPUT -p udp -i eth0 --dport 6001 -j ACCEPT

#MSN e Gtalk
iptables -A INPUT -p tcp -i eth0 --dport 1863 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 5222 -j ACCEPT

}
parar(){
iptables -F
echo "Regras de firewall desativadas"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac


O que me dizem? Há cura?
Agradeço desde já
Tire seu sorriso do caminho que eu quero passar com a minha dor.

Reinventando Santa María

a13x

#1
tenta colocar ele no bootmisc.sh
e não limpe as regras do iptables, se está rodando na inicilização
as únicas regras que vc estará limpando são as do sistema (se houver)

se não resolver tente ir comentando linha a linha pra ver qual está causando o problema
(comece pelas suas polices ;)


as minhas regras estão funcionando bem assim
veja se funciona pra vc também
boa sorte

Asterion

a13x,

O script não foi carregado nem pelo bootmisc.sh nem pelo rc.local. Comentei todas as linhas salvo aquelas que permitiam acesso a um computador da rede local e só funcionou quando comentei as policies.
A coisa aqui tá muito estranha, chapa, notei duas coisas:

1. As policies parecem ser a causa do travamento.
2. Mesmo sem elas, um simples iptables -A INPUT -p tcp --syn -s 192.168.0.2 -i eth0 -j ACCEPT é capaz de tornar mais lenta a listagem do iptables -L, não lembro de ter problemas como estes no Edgy.

Comandos do tipo iptables -A INPUT -p tcp --syn -j DROP também parecem causar travamentos, difícil fazer um script satisfatório sem poder fechar todas as portas depois de definir as exceções.

O que pode estar acontecendo?
Tire seu sorriso do caminho que eu quero passar com a minha dor.

Reinventando Santa María

rodox12

Eu nao vi vc carrega os modules...
Temos que fixar o bug #1.

Asterion

Mm.. talvez seja isso, rodox.

Quais módulos eu preciso pra realizar essas funções? Tô por fora disso!
Tire seu sorriso do caminho que eu quero passar com a minha dor.

Reinventando Santa María