Firewall bloqueando tudo ...

1. Firewall bloqueando tudo ...

Fagner Pires de Oliveira
fag_oliv

(usa Gentoo)

Enviado em 13/08/2007 - 12:33h

Caros amigos ... estou iniciando agora no iptables, lê bastante sobre firewall procurei saber mais sobre o assunto ... No entanto estou tendo alguns problemas. Bom primeiramente, defini minhas politicas de acesso, coloquei as defesas basica como bloqueio contra spoofing e etc..., configurei os sockets de acesso, e finalmente comecei a liberar as portas que eram do meu interesse, porem quando executo o mesmo tudo bloquei(peça que fica atraz do pc, não esta funcionando bem), se puderem me auxiliar neste configuração eu agradeço, dicas tambem são bem vindas, considerando minha pouca experiência nesta aréa.

Esta firewall protege apenas a maquina local, ou seja nao necessita rotear para nenhum outro micro ou fazer liberações na cadeia forward.

Desde já, obrigado a todos ...


#!/bin/bash

#LIMPANDO REGRAS
/sbin/iptables -F # LIMPA AS CADEIAS DE IMPUT, OUTPUT E FORWARD
/sbin/iptables -F -t nat # LIMPA A TABELA NAT

##### Definição de Policiamento #####
# Tabela filter
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP

# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP

# Tabela mangle
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

##### Proteção contra IP Spoofing #####
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 >$i
done

##### Ativamos o redirecionamento de pacotes (requerido para NAT) #####
echo "1" >/proc/sys/net/ipv4/ip_forward

# O iptables define automaticamente o número máximo de conexões simultâneas
# com base na memória do sistema. Para 32MB = 2048, 64MB = 4096, 128MB = 8192,
# sendo que são usados 350 bytes de memória residente para controlar
# cada conexão.
# Quando este limite é excedido a seguinte mensagem é mostrada:
# "ip_conntrack: maximum limit of XXX entries exceed"
#
# Como temos uma rede simples, vamos abaixar este limite. Por outro lado isto
# criará uma certa limitação de tráfego para evitar a sobrecarga do servidor.
echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max



##### Tabela Filter

# Aceita trafego vindo de loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# Qualquer outra conexão desconhecida é imediatamente registrada e derrubada
iptables -A INPUT -j LOG #"FIREWALL: INPUT "
iptables -A INPUT -j DROP

# A tentativa de acesso externo a estes serviços serão registrados no syslog
# do sistema e serão bloqueados pela última regra abaixo.
#ftp
iptables -A INPUT -p tcp --dport 23 -j LOG

#smtp
iptables -A INPUT -p tcp --dport 25 -j LOG
iptables -A INPUT -p tcp --dport 25 -j ACCEPT

#dns
iptables -A INPUT -p udp --dport 53 -j LOG
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT

#pop
iptables -A INPUT -p tcp --dport 110 -j LOG
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#iptables -A ppp-input -p tcp --dport 113 -j LOG --log-prefix "FIREWALL: identd "

#rdesktop
#iptables -A INPUT -p udp --dport 111 -j LOG --log-prefix "FIREWALL: rpc"
#iptables -A INPUT -p tcp --dport 111 -j LOG --log-prefix "FIREWALL: rpc"

#Samba
iptables -A INPUT -p tcp --dport 137:139 -j LOG
iptables -A INPUT -p udp --dport 137:139 -j LOG

# Bloqueia qualquer tentativa de nova conexão de fora para esta máquina
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j LOG
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Liberando msn
iptables -A INPUT -p tcp -s 0/0 --dport 1863 -j LOG --log-prefix "FIREWALL: MSN"
iptables -A INPUT -p tcp -s 0/0 --dport 1863 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --dport 1863 -j ACCEPT

#Liberando internet
iptables -A INPUT -p tcp -s 0/0 --dport 8080 -j LOG
iptables -A INPUT -p tcp -s 0/0 --dport 8080 -j ACCEPT
iptables -A INPUT -p udp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 5050 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --dport 5050 -j ACCEPT
iptables -A INPUT -p tcp -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p udp -s 127.0.0.1 -j ACCEPT



  


2. carregando os modulos

Hugo Leonardo Villa Lobos
hugovlmota

(usa CentOS)

Enviado em 15/08/2007 - 08:51h

Diz ai camarada,
pelo que pude observar na sua regra é que você limpa o IPTABLES, mas não carrega os módulos, tente ativar os módulos e liberar as portas de comunicação básicas:
# ----------------------------------------------------------
# Ativa modulos
# ----------------------------------------------------------
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE

# ----------------------------------------------------------
# Libera conexoes de dentro pra fora:
# ----------------------------------------------------------
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 86 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5190 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 1863 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 563 -j ACCEPT

# ----------------------------------------------------------


3. Re: Firewall bloqueando tudo ...

Hugo Leonardo Villa Lobos
hugovlmota

(usa CentOS)

Enviado em 15/08/2007 - 08:55h

# ----------------------------------------------------------
# libera conexões de fora pra dentro
# ----------------------------------------------------------
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 563 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 563 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT



4. Re: Firewall bloqueando tudo ...

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 15/08/2007 - 10:11h

Teu problema está AQUI:

##### Definição de Policiamento #####
# Tabela filter
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP

# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP

Esta ultima regra, do POSTROUTING, está com politica DROP, ou seja, BLOQUEIA tudo. Porque fizeste isto?

TODOS os pacotes, SEM EXCESSÃO, que saem da máquina passam pelo nat POSTROUTING. E vão passar mesmo que tenha um ACCEPT no OUTPUT da filter!

Dá uma olhada neste meu artigo:
http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6901

O desenho é auto-explicativo!
Mude a politica para ACCEPT (ou simplesmente nao poe nada no nat) que vai funcionar


5. Re: Firewall bloqueando tudo ...

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 15/08/2007 - 10:19h

Se me permite realizar outras criticas ao teu script...

Tu disse que é máquina local, não roteia, certo?
Então pra que isto:
echo "1" >/proc/sys/net/ipv4/ip_forward

Cara, se é máquina local (servidor?) as regras podem ser muito, mas muito mais simples e poderosas usando o poder statefull do iptables.




6. Re: Firewall bloqueando tudo ...

Fagner Pires de Oliveira
fag_oliv

(usa Gentoo)

Enviado em 17/08/2007 - 08:25h

Obrigado a todos pela ajuda... concordo contigo Elgio, não tem sentido ativar o roteamento, se não vou rotear. Quanto ao POSTROUNTING, não havia me dado conta disso, estou começando a brincar com iptables agora.Vou testá-lo, assim que ele estiver funcionando, posto novamente para verificar se os senhores concordam comigo. Não é servidor, achei melhor testar primeiramente num micro separado de qualquer ambiente de produção para aprender melhor iptables, antes de me arriscar em colocá-lo em um ambiente crítico. Futuramente prentendo colocá-lo num server, mas primeiro tenho que conhecer melhor iptables, pra não fica tomando essa surras. Valeu professor, em breve posto novamente....


7. Re: Firewall bloqueando tudo ...

Fagner Pires de Oliveira
fag_oliv

(usa Gentoo)

Enviado em 17/08/2007 - 17:16h

Senhores ... conforme o prometido estou de volta com mais dúvidas ... bom alterei o firewall, que segue logo abaixo, aguardo suas sugestões e questionamentos. Quanto as dúvidas, eu tenho mania de gostar de logar tudo, ou seja, quero tudo logado de alguma maneira. Como eu faço para registrar todas as tentativas de conexões, como ssh, portas fechadas que não possui serviço ?,

Vi alguma como:
iptables -A INPUT -p tcp --dport 5050 -j LOG

No entanto essa opção so registra atividades nessa porta. Correto ? Como eu faço pra registrar toda atividade que esta ocorrendo nas portas.

Tenho dúvidas também sobre o Socket, tenho que definir sempre o tipo de socket ? se eu não qual a opção Default? o que pode acontecer caso eu não defina ?


#!/bin/bash
# ----------------------------------------------------------
# Limpando Regras
# ----------------------------------------------------------

/sbin/iptables -F # LIMPA AS CADEIAS DE IMPUT, OUTPUT E FORWARD
/sbin/iptables -F -t nat # LIMPA A TABELA NAT
#!/bin/bash
# ----------------------------------------------------------
# Definindo Politicas
# ----------------------------------------------------------

# Tabela filter
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP

# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# Tabela mangle
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

# ----------------------------------------------------------
# Ativa modulos
# ----------------------------------------------------------
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE

# ----------------------------------------------------------
# Ativa proteções basicas
# ----------------------------------------------------------

##### Proteção contra IP Spoofing #####
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 >$i
done

# O iptables define automaticamente o número máximo de conexões simultâneas
# com base na memória do sistema. Para 32MB = 2048, 64MB = 4096, 128MB = 8192,
# sendo que são usados 350 bytes de memória residente para controlar
# cada conexão.
# Quando este limite é excedido a seguinte mensagem é mostrada:
# "ip_conntrack: maximum limit of XXX entries exceed"
#
# Como temos uma rede simples, vamos abaixar este limite. Por outro lado isto
# criará uma certa limitação de tráfego para evitar a sobrecarga do servidor.

echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max

### FILTRANDO PACOTES ICMP ###
iptables -A INPUT -p icmp -s 0/0 --icmp-type 0 -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp -s 0/0 --icmp-type 8 -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp -s 0/0 --icmp-type 3 -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp -s 0/0 --icmp-type 11 -m limit --limit 1/s -j ACCEPT

### FILTRANDO PACOTES FRAGMENTADOS ###

/sbin/iptables -A INPUT -f -j DROP

### BLOQUEANDO ATAQUE "SMURFF" (PING DE BROADCAST), ping -b "ip"
### NAO FUNCIONA COM DHCP, POR QUE DHCP FAZ UM BROADCAST PARA GANHAR IP

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# ----------------------------------------------------------
# Definindo socks válidos
# ----------------------------------------------------------
#

### NO IPTABLES TEMOS QUE DIZER QUAIS SOCKETS SAO VALIDOS EM UMA CONEXAO
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# ----------------------------------------------------------
# Liberar conexões de Fora para Dentro
# ----------------------------------------------------------

# QUALQUER IP QUE VENHA DE LOCALHOST, OK.
iptables -A INPUT -i lo -j ACCEPT
#SAMBA
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p udp --dport 139 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
#SSL
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 563 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
#SSH
iptables -A INPUT -p tcp --dport 22058 -j ACCEPT
#SMTP
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#POP
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#NET
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#NTLMAPS
iptables -A INPUT -p tcp --dport 5050 -j ACCEPT

# ----------------------------------------------------------
# Liberar conexões de Dentro para Fora
# ----------------------------------------------------------
#CONSIDERANDO QUE MINHA REGRA NA TABELA FILTER É ACCEPT, NÃO É NECESSÁRIO REALIZAR ALTERAÇÕES NESTA CADEIA.
#NET
#iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
#SSH
#iptables -A OUTPUT -p tcp --dport 22058 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 86 -j ACCEPT
#MSN
#iptables -A OUTPUT -p tcp --dport 1863 -j ACCEPT
#SMTP
#iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
#POP
#iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
#iptables -A OUTPUT -p tcp --dport 563 -j ACCEPT


###############################################
echo "Firewall...........[ok]"


8. ssh

Juno Kim
juno

(usa Linux Mint)

Enviado em 18/08/2007 - 12:28h

Cara
As entradas no ssh são logadas no /var/log/secure
e veja também os logs em /var/log/messages

Falou!


9. Re: Firewall bloqueando tudo ...

Fagner Pires de Oliveira
fag_oliv

(usa Gentoo)

Enviado em 28/08/2007 - 08:38h

Ta mas este arquivo ou diretorio na minha distro não existe, e os ou bloqueios realizados pelo iptables não estão sendo logado no messages. entendeu ?, por acaso nao tenho que explicitar se necessito de log ou não ?


10. Logs

Juno Kim
juno

(usa Linux Mint)

Enviado em 30/08/2007 - 13:53h

Cara,
Você tem que usar os alvos com -LOG no iptables.

Falou =)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts