Iptables não fechando o INPUT [RESOLVIDO]

1. Iptables não fechando o INPUT [RESOLVIDO]

valder de oliveira cunha
valdercunha

(usa Outra)

Enviado em 20/05/2012 - 19:00h

Fala galera, sou novato na área de firewall/iptables andei lendo bastante sobre o iptables mas ainda "apanho"muito nele.

Peguei um script do Iptables pronto pela Internet e sai modificando da maneira que eu achava esta fazendo certo, até então os redirecionamentos estão funcionando mas ele não esta dando drop no INPUT tudo ta entrando, como exemplo a porta 80 que eu não abri.

Alguém pode me dizer o pq disso?

No aguardo, abaixo segue meu firewall



#!/bin/bash
echo "==============================================="
echo "| ::Â Â SETANDO A CONFIGURACAO DO IPTABLESÂ Â :: |"
echo "==============================================="
ipt="/sbin/iptables"
### Passo 1: Limpando as regras ###
iptables -F
iptables -Z
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
echo "Limpando todas as regras .................[ OK ]"
# Definindo a Politica Default das Cadeias
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
$ipt -P OUTPUT ACCEPT
echo "Setando as regras padrao .................[ OK ]"
### Passo 2: Desabilitar o trafego IP entre as placas de rede ###

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

$ipt -t nat -A POSTROUTING -s 192.168.1.0 -o eth0 -j MASQUERADE
echo "Setando ip_foward ........................[ OK ]"
# Portas e Servicos
http=80
https=443
squid=3128
# Interfaces
IADSL=eth0
ILAN=eth1
ILocal=lo
# Redes Internas
LAN=192.168.1.0/255.255.255.0
ADSL=10.10.171.238/255.255.255.252
# Redes Externas
Internet=0.0.0.0/0.0.0.0
# Configurando a Protecao anti-spoofing
for spoofing in /proc/sys/net/ipv4/conf/all/rp_filter; do
echo "1" > $spoofing
done
echo "Setando a protecao anti-spoofing .........[ OK ]"
# Impedimos que um atacante possa maliciosamente alterar alguma rota
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "Setando anti-redirecionamento ............[ OK ]"
# Utilizado em diversos ataques, isso possibilita que o atacante determine o "caminho" que seu
# pacote vai percorrer (roteadores) ate seu destino. Junto com spoof, isso se torna muito perigoso.
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "Setando anti_source_route.................[ OK ]"
# Protecao contra responses bogus
#echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "Setando anti-bogus_response ..............[ OK ]"
# Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "Setando protecao anti_synflood ...........[ OK ]"
# Protecao contra port scanners ocultos
$ipt -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Bloqueando tracertroute
$ipt -A INPUT -p udp -s 0/0 -i $IADSL --dport 33435:33525 -j DROP
#Protecoes contra ataques
$ipt -A INPUT -m state --state INVALID -j DROP
$ipt -A OUTPUT -p tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
#Protecao contra Syn-floods
$ipt -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
### Passo 3: Carregando os modulos do iptables ###
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_state
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
echo "Carregando modulos do iptables ...........[ OK ]"
### Passo 4: Agora, vamos definir o que pode passar e o que nao ###
# Cadeia de Entrada
# LOCALHOST - ACEITA TODOS OS PACOTES
$ipt -A INPUT -i lo -j ACCEPT
# PORTA $http - ACEITA PARA A REDE LOCAL
$ipt -A INPUT -i $ILAN -p tcp --dport $http -j ACCEPT
# PORTA 22 - ACEITA PARA A REDE LOCAL
$ipt -A INPUT -i $ILAN -p tcp --dport 22 -j ACCEPT
# PORTA 22 - Aceita para internet
$ipt -A INPUT -i $IADSL -p tcp --dport 22 -j ACCEPT
# PORTA 5938
$ipt -A INPUT -i $IADSL -p tcp --dport 5938 -j ACCEPT
# No $ipt, temos de dizer quais sockets sao validos em uma conexao
$ipt -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Setando regras para INPUT ................[ OK ]"
################################
# Cadeia de Reenvio (FORWARD).
# Primeiro, ativar o mascaramento (nat).
$ipt -t nat -F POSTROUTING
$ipt -t nat -A POSTROUTING -o $IADSL -j MASQUERADE
echo "Ativando mascaramento de IP ..............[ OK ]"
## Redireciona para SQUID
#$ipt -t nat -A PREROUTING -i $ILAN -p tcp --dport $http -j REDIRECT --#to-port $squid
#$ipt -t nat -A PREROUTING -i $ILAN -p tcp --dport $https -j REDIRECT --#to-port $squid
# Agora dizemos quem e o que podem acessar externamente
# No $ipt, o controle do acesso a rede externa e feito na cadeia "FORWARD"
# Abre para a interface de loopback.
$ipt -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
# Abre para uma faixa de enderecos da rede local
$ipt -A INPUT -p tcp --syn -s $LAN -j ACCEPT
# PORTA 3128 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport $squid -j ACCEPT
# DERRUBANDO PORTAS HTTP
$ipt -I FORWARD -p tcp --dport 80 -j DROP
$ipt -I FORWARD -p tcp --dport 443 -j DROP
# PORTA 53 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p udp -d 200.242.124.157 --dport 53 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p udp -s 200.242.124.147 --sport 53 -d 192.168.1.0/24 -j ACCEPT
$ipt -A INPUT -s $LAN -p tcp --dport 53 -j ACCEPT
$ipt -A INPUT -s $LAN -p udp --dport 53 -j ACCEPT
$ipt -A FORWARD -s $LAN -p tcp --dport 53 -j ACCEPT
$ipt -A FORWARD -s $LAN -p udp --dport 53 -j ACCEPT
# PORTA 110 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 110 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p tcp --sport 110 -j ACCEPT
# PORTA 25
$ipt -A FORWARD -i $ILAN -p tcp --dport 25 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p tcp --sport 25 -j ACCEPT
# PORTA 587 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 587 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p tcp --sport 587 -j ACCEPT
# PORTA 143 IMAP - ACEITA PARA REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 143 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p tcp --sport 143 -j ACCEPT
# PORTA 443 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport $https -j ACCEPT
# PORTA 5938 sql
$ipt -A FORWARD -i $ILAN -p tcp --dport 5938 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p tcp --sport 5938 -j ACCEPT
# PORTA 21 - ACEITA PARA A REDE LOCAL
$ipt -A FORWARD -i $ILAN -p tcp --dport 21 -j ACCEPT
# PORTAS 37776 - 37778 PORTAS CFTV
$ipt -A FORWARD -i $ILAN -p tcp --dport 37776 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p tcp --dport 37777 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p udp --dport 37778 -j ACCEPT
#PORTA 1723 47 VPN
$ipt -A FORWARD -i $ILAN -p tcp --dport 47 -j ACCEPT
$ipt -A FORWARD -i $ILAN -p tcp --dport 1723 -j ACCEPT
#$ipt -A FORWARD -i $ILAN -p tcp --dport 47 -j ACCEPT
# No $ipt, temos de dizer quais sockets sao validos em uma conexao
$ipt -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
echo "Setando regras para FOWARD ...............[ OK ]"
# Apesar do padrao do forward ser bloqueio. Aqui a regra eh duplicada para gerar log,
# ou seja, tudo o que eh bloqueado por default no forward eh logado aqui
$ipt -A FORWARD -m limit --limit 2/m -j LOG --log-prefix "FORWARD: Bloqueio Padrao "
$ipt -A FORWARD -j DROP
# Finalmente: Habilitando o trafego IP, entre as Interfaces de rede
echo "1" > /proc/sys/net/ipv4/ip_forward
# Ignora qualquer pacote de entrada, vindo de qualquer endereco, a menos
# que especificado o contrario acima, Bloqueia tudo.
$ipt -A INPUT -p tcp --syn -j DROP
# Redirecionamento de portas
# Liberando portas do CFTV
$ipt -t nat -A PREROUTING -p tcp -i eth0 --dport 37776:37777 -j DNAT --to 192.168.1.202
$ipt -t nat -A POSTROUTING -d 192.168.1.202 -j SNAT --to 192.168.1.253
$ipt -t nat -A PREROUTING -p udp -i eth0 --dport 37778 -j DNAT --to 192.168.1.202
$ipt -t nat -A POSTROUTING -d 192.168.1.202 -j SNAT --to 192.168.1.253
echo "Setando ip_foward: ON ....................[ OK ]"
echo "Firewall configurado com sucesso .........[ OK ]"
echo



  


2. Re: Iptables não fechando o INPUT [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 20/05/2012 - 20:23h

como disse que é iniciante, então sugiro uma leitura em http://mundodacomputacaointegral.blogspot.com.br/2012/05/entendendo-o-funcionamento-de-um.html

Ao final tem um script com regras iptables, mas recomendo primeiro a leitura do artigo para entendimento.


3. Ler

André Canhadas
andrecanhadas

(usa Debian)

Enviado em 20/05/2012 - 21:54h

Depois de ler o link acima e também recomendado o http://www.guiafoca.org/cgs/guia/avancado/ch-fw-iptables.html.
Você fechou o INPUT apenas para pacotes syn faltou fechar a porta no final:

$ipt -A INPUT -i eth0 -p tcp -j DROP





4. Re: Iptables não fechando o INPUT [RESOLVIDO]

Alam Luiz
acolatto

(usa Debian)

Enviado em 21/05/2012 - 10:08h

Eae...

Dei uma olhada no seu script e percebi que tem regras duplicadas, ou seja, tente reorganiza-las.

percebi que você comentou que esta dropando tudo, porem nessas regras você esta liberando alugmas portas para o INPUT. "Lembre-se o iptables lê de cima para baixo e as posições das regras alteram muito o seu firewall"

# LOCALHOST - ACEITA TODOS OS PACOTES
$ipt -A INPUT -i lo -j ACCEPT
# PORTA $http - ACEITA PARA A REDE LOCAL
$ipt -A INPUT -i $ILAN -p tcp --dport $http -j ACCEPT
# PORTA 22 - ACEITA PARA A REDE LOCAL
$ipt -A INPUT -i $ILAN -p tcp --dport 22 -j ACCEPT
# PORTA 22 - Aceita para internet
$ipt -A INPUT -i $IADSL -p tcp --dport 22 -j ACCEPT
# PORTA 5938
$ipt -A INPUT -i $IADSL -p tcp --dport 5938 -j ACCEPT


Tente tirar o NEW na hora de estabilizar as conexões, pois ele libera para novas conexões necessárias,o que no meu ponto de ver, não é interessante para INPUT.

# No $ipt, temos de dizer quais sockets sao validos em uma conexao
$ipt -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT




5. Re: Iptables não fechando o INPUT [RESOLVIDO]

valder de oliveira cunha
valdercunha

(usa Outra)

Enviado em 24/05/2012 - 14:42h

obrigado a todos pelas respostas.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts