iptables: Chain already exists. [RESOLVIDO]

1. iptables: Chain already exists. [RESOLVIDO]

José Anderson Rodrigues Gomes dos Santos
andersonsantos14

(usa Ubuntu)

Enviado em 25/02/2014 - 18:35h

Boa Noite Pessoal,

Estou com problemas com meu script do Firewall. Toda vez que inicio recebo a seguinte mensagem

firewall ativado
Proxy Transparente Ativado
iptables: Chain already exists.

Não saco muito de linux. Sou iniciante, então entrei aqui pra contar com ajuda de vocês. Segue abaixo meu script pra alguem me ajudar a descobrir qual a minha falha nesse script.

#!/bin/bash
# Interface da Internet:
ifnet="eth1"

# Interface da rede local
iflocal="eth0"


iniciar(){

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o $ifnet -j MASQUERADE
echo "firewall ativado"

#PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "Proxy Transparente Ativado"


iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -p udp --dport 0:1023 -j DROP


#Lista de IPs liberados para acessar o Facebook
IPS_ACCEPT=$(cat /etc/squid3/ip_free)

#Sub-rede interna do ambiente em questã
REDE_INTERNA="192.168.17.0/24"

#Criando nova regra FACEBOOK
iptables -N FACEBOOK

#Transferindo todo trágo fonte da rede interna para a regra FACEBOOK
iptables -I FORWARD -s $REDE_INTERNA -j FACEBOOK

#Percorre o arquivo dos IPs do Facebook (facebook.txt) e vai colocando REJECT em todos os IPs da rede interna, exceto os liberados.
for i in `cat /etc/ipsdeny`; do

#O acesso dos IPs (que caím na regra FACEBOOK) ao Facebook vai ser rejeitado

iptables -A FACEBOOK -d $i -j REJECT

#Percorre lista de IPs liberados e vai colocando ACCEPT neles
for liberados in $IPS_ACCEPT; do
iptables -I FORWARD -s $liberados -d $i -j ACCEPT
done

done
}

parar(){
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac


  


2. Re: iptables: Chain already exists. [RESOLVIDO]

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 25/02/2014 - 22:59h

Deve limpar as regras no iniciar tambem ou seja :



#!/bin/bash
# Interface da Internet:
ifnet="eth1"

# Interface da rede local
iflocal="eth0"


iniciar(){

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t filter -F
iptables -X
iptables -Z

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o $ifnet -j MASQUERADE
echo "firewall ativado"

#PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i $iflocal -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "Proxy Transparente Ativado"


iptables -A INPUT -i $iflocal -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -p tcp --syn -j DROP
iptables -A INPUT -p udp --dport 0:1023 -j DROP


#Lista de IPs liberados para acessar o Facebook
IPS_ACCEPT=$(cat /etc/squid3/ip_free)

#Sub-rede interna do ambiente em questã
REDE_INTERNA="192.168.17.0/24"

#Criando nova regra FACEBOOK
iptables -N FACEBOOK

#Transferindo todo trágo fonte da rede interna para a regra FACEBOOK
iptables -I FORWARD -s $REDE_INTERNA -j FACEBOOK

#Percorre o arquivo dos IPs do Facebook (facebook.txt) e vai colocando REJECT em todos os IPs da rede interna, exceto os liberados.
for i in `cat /etc/ipsdeny`; do

#O acesso dos IPs (que caím na regra FACEBOOK) ao Facebook vai ser rejeitado

iptables -A FACEBOOK -d $i -j REJECT

#Percorre lista de IPs liberados e vai colocando ACCEPT neles
for liberados in $IPS_ACCEPT; do
iptables -I FORWARD -s $liberados -d $i -j ACCEPT
done

done
}

parar(){
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t filter -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo 0 > /proc/sys/net/ipv4/ip_forward
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac



o parâmetro "iptables -X" é o responsável por limpar chains adicionei mais alguns para zerar tudo caso adicione mais alguma regra.


3. Re: iptables: Chain already exists. [RESOLVIDO]

José Anderson Rodrigues Gomes dos Santos
andersonsantos14

(usa Ubuntu)

Enviado em 26/02/2014 - 08:32h

Obrigado andrecanhadas! Deu certinho amigão. Perfect.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts