Duvida Iptables + squid [RESOLVIDO]

1. Duvida Iptables + squid [RESOLVIDO]

Tiago
tcorte

(usa CentOS)

Enviado em 12/08/2013 - 14:32h

Srs. Boa tarde!

Estou enfrentando dificuldades com o meu firewall, estou montando um servidor novo para uma empresa
e quando tento executar o script da erro na sintaxe do iptables, alguem poderia me ajudar?

O servidor é um CentoOS 6.4 possui squid sarg e webmin

#!/bin/bash
echo ""
echo "CARREGANDO FIREWALL ................................."
echo ""
# Local para o executavel do IPTables
#IPT=`which iptables`;
echo "Definindo variaveis.................................[OK]"
# Interface da rede INTERNA
IF_INTERNA="eth0";

# Interface da rede EXTERNA
IF_EXTERNA="eth1";

# Interface da Rede DOMINIO
IF_DOMINIO='eth2';

# Definição da rede interna
REDE_INTERNA="192.168.0.0"
REDE_DOMINIO="10.1.1.0"


fw_start()
{

echo "Limpando Regras.....................................[OK]"
### Limpando regras iptables ###
iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -X

echo "Ativando roteamento.................................[OK]"
#ativa o roteamento dinamico
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr

# ================ POLITICAS PADRAO ===================
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT

echo "Criando Regras de Seguranca.........................[OK]"
# Cria chain com regras de segurança
iptables -N BLOCK
iptables -A BLOCK -p icmp --icmp-type echo-request -j DROP
iptables -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT
iptables -A BLOCK -m unclean -j DROP
iptables -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A BLOCK -j LOG --log-prefix "FW_ALERT: "
iptables -A BLOCK -j DROP

# Muda a prioridade dos pacotes (Type Of Service) para agilizar as coisas
iptables -t mangle -A OUTPUT -o $IF_EXTERNA -p tcp -m multiport --dports 21,22,80,6667 -j TOS --set-tos 0x10

echo "Liberando Trafego local.............................[OK]"
# Libera todo o trafego local
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A INPUT -i $IF_INTERNA -j ACCEPT
iptables -t filter -A FORWARD -i $IF_INTERNA -j ACCEPT
# Libera só FTP, SSH e WEB
iptables -t filter -A INPUT -i $IF_EXTERNA -p tcp -m multiport --dports 21,22,80,6667 -j ACCEPT

# Libera a conexao para a rede interna
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE_DOMINIO -j MASQUERADE

# Liberando portas squid, http e NTP. Estes serviços o firewall só irá responder se vierem da interface da rede interna.
iptables -A INPUT -p tcp --dport 3128 -i $REDE_INTERNA -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i $REDE_INTERNA -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i $REDE_DOMINIO -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -i $REDE_INTERNA -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -i $REDE_INTERNA -j ACCEPT
iptables -A INPUT -p udp --dport 123 -i $REDE_INTERNA -j ACCEPT

# Cria um NAT para o SSH de uma maquina da rede interna
# iptables -t filter -A FORWARD -p tcp -d 0/0 --dport 2222 -j ACCEPT
# iptables -t nat -A PREROUTING -p tcp -d 0/0 --dport 2222 -j DNAT --to 192.168.1.2:22

# Regras para evitar packet flood
iptables -A INPUT -j BLOCK
iptables -A FORWARD -j BLOCK

echo "Estacoes devem utilizar o Proxy.....................[OK]"
# OBRIGA AS ESTACOES A USAR O PROXY
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT -to-dest $IF_INTERNA

echo " "
echo ".................. FIREWALL NBRtec ATIVADO................."
echo " "
}

fw_stop()
{
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F
iptables -t filter -X
iptables -t nat -X
iptables -t mangle -X
iptables -t filter -Z
iptables -t nat -Z
iptables -t mangle -Z
}

fw_usage()
{
echo
echo "$0 (start | stop | restart | clear)"
echo
echo "start - Ativa o firewall"
echo "stop - Desativa o firewall"
echo "restart - Reativa o firewall"
echo "clear - Limpa os contatores"
}

fw_clear()
{
iptables -t filter -Z
iptables -t nat -Z
iptables -t mangle -Z
}

case $1 in

start)
fw_start;
;;

stop)
fw_stop;
;;

restart)
fw_stop;
fw_start;
;;

clear)
fw_clear;
;;
*)
fw_usage;
exit;

;;

esac


  


2. Re: Duvida Iptables + squid [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/08/2013 - 14:35h

Kd o erro?


3. Re: Duvida Iptables + squid [RESOLVIDO]

Tiago
tcorte

(usa CentOS)

Enviado em 12/08/2013 - 20:04h

Eu não estou com o servidor no momento, vou trabalhar nele na sexta feira!

Mas o erro é este...

iptables: no chain/target/match by the name

Por isso gostaria que fosse analisado o meu arquivo firewall...


obrigado


4. Re: Duvida Iptables + squid [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 12/08/2013 - 20:37h

Assim fica complicado em t ajudar. Execute o seu script da seguinte forma:

bash -x firewall.sh start 


E ponha a saída aki.


5. Re: Duvida Iptables + squid [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 12/08/2013 - 21:26h

Comente essa linha abaixo

iptables -A BLOCK -m unclean -j DROP

e reinicie o Iptables e veja se o erro persiste.


6. Re: Duvida Iptables + squid [RESOLVIDO]

Tiago
tcorte

(usa CentOS)

Enviado em 23/08/2013 - 18:29h

pessoal segue o resultado rodando meu firewall

podem me ajudar?


CARREGANDO FIREWALL NBRtec.................................

Definindo variaveis.................................[OK]
Limpando Regras.....................................[OK]
Ativando roteamento.................................[OK]
Criando Regras de Seguranca.........................[OK]
iptables: No chain/target/match by that name.
Liberando Trafego local.............................[OK]
Estacoes devem utilizar o Proxy.....................[OK]
Bad argument `eth0'
Try `iptables -h' or 'iptables --help' for more information.

.................. FIREWALL NBRtec ATIVADO.................

[root@proxynbrtec rc.d]# bash -x rc.firewall start
+ echo ''

+ echo 'CARREGANDO FIREWALL NBRtec.................................'
CARREGANDO FIREWALL NBRtec.................................
+ echo ''

+ echo 'Definindo variaveis.................................[OK]'
Definindo variaveis.................................[OK]
+ IF_INTERNA=eth0
+ IF_EXTERNA=eth1
+ IF_DOMINIO=eth2
+ REDE_INTERNA=192.168.0.0
+ REDE_DOMINIO=10.1.1.0
+ case $1 in
+ fw_start
+ echo 'Limpando Regras.....................................[OK]'
Limpando Regras.....................................[OK]
+ iptables -F
+ iptables -F INPUT
+ iptables -F OUTPUT
+ iptables -F FORWARD
+ iptables -t nat -F
+ iptables -t nat -F POSTROUTING
+ iptables -t nat -F PREROUTING
+ iptables -X
+ echo 'Ativando roteamento.................................[OK]'
Ativando roteamento.................................[OK]
+ echo 1
+ echo 1
+ iptables -t filter -P INPUT DROP
+ iptables -t filter -P FORWARD DROP
+ iptables -t filter -P OUTPUT ACCEPT
+ iptables -t nat -P PREROUTING ACCEPT
+ iptables -t nat -P POSTROUTING ACCEPT
+ iptables -t nat -P OUTPUT ACCEPT
+ iptables -t mangle -P PREROUTING ACCEPT
+ iptables -t mangle -P POSTROUTING ACCEPT
+ iptables -t mangle -P OUTPUT ACCEPT
+ iptables -t mangle -P INPUT ACCEPT
+ iptables -t mangle -P FORWARD ACCEPT
+ echo 'Criando Regras de Seguranca.........................[OK]'
Criando Regras de Seguranca.........................[OK]
+ iptables -N BLOCK
+ iptables -A BLOCK -p icmp --icmp-type echo-request -j DROP
+ iptables -A BLOCK -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
+ iptables -A BLOCK -p tcp -m limit --limit 1/s -j ACCEPT
+ iptables -A BLOCK -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 1/s -j ACCEPT
+ iptables -A BLOCK -m unclean -j DROP
iptables: No chain/target/match by that name.
+ iptables -A BLOCK -m state --state ESTABLISHED,RELATED -j ACCEPT
+ iptables -A BLOCK -j LOG --log-prefix 'FW_ALERT: '
+ iptables -A BLOCK -j DROP
+ iptables -t mangle -A OUTPUT -o eth1 -p tcp -m multiport --dports 21,22,80,6667 -j TOS --set-tos 0x10
+ echo 'Liberando Trafego local.............................[OK]'
Liberando Trafego local.............................[OK]
+ iptables -t filter -A INPUT -i lo -j ACCEPT
+ iptables -t filter -A INPUT -i eth0 -j ACCEPT
+ iptables -t filter -A FORWARD -i eth0 -j ACCEPT
+ iptables -t filter -A INPUT -i eth1 -p tcp -m multiport --dports 21,22,80,6667 -j ACCEPT
+ iptables -t nat -A POSTROUTING -s 192.168.0.0 -j MASQUERADE
+ iptables -t nat -A POSTROUTING -s 10.1.1.0 -j MASQUERADE
+ iptables -A INPUT -p tcp --dport 3128 -i 192.168.0.0 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 80 -i 192.168.0.0 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 80 -i 10.1.1.0 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 21 -i 192.168.0.0 -j ACCEPT
+ iptables -A INPUT -p tcp --dport 123 -i 192.168.0.0 -j ACCEPT
+ iptables -A INPUT -p udp --dport 123 -i 192.168.0.0 -j ACCEPT
+ iptables -A INPUT -j BLOCK
+ iptables -A FORWARD -j BLOCK
+ echo 'Estacoes devem utilizar o Proxy.....................[OK]'
Estacoes devem utilizar o Proxy.....................[OK]
+ iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT -to-dest eth0
Bad argument `eth0'
Try `iptables -h' or 'iptables --help' for more information.
+ echo ' '

+ echo '.................. FIREWALL NBRtec ATIVADO.................'
.................. FIREWALL NBRtec ATIVADO.................
+ echo ' '



7. Re: Duvida Iptables + squid [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 23/08/2013 - 20:05h

Como já falei antes, comenta a linha abaixo:

iptables -A BLOCK -m unclean -j DROP << iptables: No chain/target/match by that name, ou seja, o alvo (target) unclean: Este módulo tem nenhuma opção, mas tenta combinar pacotes que parecem mal formados ou incomuns. Está em fase de teste.


E nessa linha abaixo:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT -to-dest eth0 << aqui vai o endereço IP da placa de rede eth0 e não a placa de rede, por isso está dando "bad argument eth0", ou seja, "argumento ruim eth0".

Além disso, para quê você definiu variáveis no início do script se depois coloca eth0, eth1, etc?

Veja o Manual do Iptables:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras

Agora, se você continuar ignorando o que eu posto, aí fica difícil ajudar.


8. Re: Duvida Iptables + squid [RESOLVIDO]

Tiago
tcorte

(usa CentOS)

Enviado em 23/08/2013 - 20:14h

Ok Buckminster!

Boa Noite, vou realizar novos testes e posto aqui para irmos avaliando...

obrigado pela ajuda...


9. Re: Duvida Iptables + squid [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 23/08/2013 - 20:19h

E esqueci:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT -to-dest eth0

na linha acima o certo é --to-destination IP.


10. Re: Duvida Iptables + squid [RESOLVIDO]

Tiago
tcorte

(usa CentOS)

Enviado em 23/08/2013 - 20:51h

O seguinte erro esta ocorrendo agora apos as alterações

Bad argument `192.168.0.1'
Try `iptables -h' or 'iptables --help' for more information.

Pode ser por eu nao esta na infra-estrutura da empresa???
Ou o q deve ser modificado???

Vou ter 3 placas de rede neste firewall com squid
internet
rede interna
rede externa

Meu firewall esta apto a isso??


Meu squid deve liberar a rede externa sem nenhum tipo de bloqueio... se quiser posto o squid.conf aqui!

Desde já obrigado pela ajuda


11. Re: Duvida Iptables + squid [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 23/08/2013 - 21:52h

Teste assim:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1/24

Essa eth1 é qual placa de rede: interna, internet?

O IP 192.168.0.1 é o IP de quem, do servidor?

E o que seria a rede externa?
Geralmente a placa de rede externa é a que recebe a internet (geralmente conectada no modem) e a placa da rede interna é a que vai conectada no switch para distribuir a conexão aos computadores da rede interna.
Acredito que bastariam duas placas de rede, a não ser que você tem dois links de internet ou vai criar duas redes internas.


12. Re: Duvida Iptables + squid [RESOLVIDO]

Tiago
tcorte

(usa CentOS)

Enviado em 23/08/2013 - 22:00h

Agora esta ocorrendo...

iptables v1.4.7: Bad IP address "192.168.0.1/24"
Try `iptables -h' or 'iptables --help' for more information.



Bom para voce entender um pouco a estrutura...

a rede interna seria a rede que vai para os usuarios(switch)

o ip 192.168.0.1 é do servidor da placa que vai distribuir para a rede...

Rede externa seria a outra rede dentro da estrutura da empresa... em uma classe de IP diferente 10.1.1.0

Se não for necessario 3 placas melhor ainda... mas como devo proceder???


obrigado



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts