Duvidas em regras de firewall e sugestões

1. Duvidas em regras de firewall e sugestões

Andre chagas ramos
andre_ramos

(usa openSUSE)

Enviado em 01/07/2010 - 12:33h

Caro amigos estou com uma duvida em relação a uma regra do firewall e gostaria de uma explicação

no script do firewall tenho uma regras a seguinte:
$IPTABLES -A INPUT -i eth1 -j ACCEPT

se eu comentar essa regra, as maquinas da rede nao conecta na internet
para que serve esta regra? esta correto ter essa regra no firewall? nao deixa o firewal vulneravel?


outra duvida e o seguinte se eu deixar a regra acima eu posso comentar a regra do direcionamento para a porta 3128 que as maquina funciona normalmente.

outra duvida, gostaria de saber o significado dessa regra e para que serve
$IPTABLES -A INPUT -i $NETWORK -s ! 192.168.1.0/24 -j DROP


meu script segue abaixo

gostaria que os amigos desse sugestões sobre o script para eu dar uma melhorada grato


#!/bin/bash

# Autor: Andre Chagas Ramos
# Data Criacao: 25/09/2009
# Data Modificacao: 09/12/2009

IPTABLES=/usr/sbin/iptables/iptables
NETWORK=eth1
WEB=eth0

iniciar () {

# Limpando as regras
$IPTABLES -F
$IPTABLES -Z
$IPTABLES -t nat -F
$IPTABLES -t mangle -F

# Compatilhamento da conexao
echo 1 > /proc/sys/net/ipv4/ip_forward

echo "Ativando compatilhamento!"

# Politicas de acesso geral
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# Manter conexoes ja estabelecidas para nao parar
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state INVALID -j DROP

# Bloqueia pacotes intencionamente mal-formados
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

# Evitando SYN_Flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Carregamento de Modulos
modprobe ip_nat_ftp
modprobe iptable_nat
modprobe ip_tables
modprobe ip_conntrack
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ipt_layer7

# Aceita todo o trafego vindo do loopback e indo pro loopback
$IPTABLES -t filter -A INPUT -i lo -j ACCEPT

# Protecoes contra ataques #
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A INPUT -i $NETWORK -s ! 192.168.1.0/24 -j DROP

# Redirecionando o trafego para a porta 3128
$IPTABLES -t nat -A PREROUTING -i $NETWORK -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
#$IPTABLES -t nat -A PREROUTING -i $NETWORK -p tcp -d ! 200.201.174.207 --dport 443 -j REDIRECT --to-port 3128
$IPTABLES -A INPUT -i eth1 -j ACCEPT

# Bloquear IPS de sites proibidos
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 74.208.12.174 -j DROP # koolim.com
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 210.17.215.19 -j DROP #imunitive.com
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 64.13.161.58 -j DROP # imo.im
$IPTABLES -I FORWARD -s 192.168.1.0/24 -d 64.13.161.61 -j DROP # imo.im

# Bloquear o MSN
##$IPTABLES -I FORWARD -s 192.168.1.0/24 -p tcp --dport 1863 -j REJECT
#$IPTABLES -I FORWARD -s 192.168.1.0/24 -d loginnet.passport.com -j REJECT
#$IPTABLES -A FORWARD -s 192.168.0.0/24 -p tcp -m -d imo.im -j REJECT


# Regras para liberar o outlook
$IPTABLES -A FORWARD -p udp -s 192.168.1.0/24 -d 200.175.182.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.182.139 --sport 53 -d 192.168.1.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 192.168.1.0/24 -d 200.175.5.139 --dport 53 -j ACCEPT
$IPTABLES -A FORWARD -p udp -s 200.175.5.139 --sport 53 -d 192.168.1.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp -s 192.168.1.0/24 --dport 25 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 192.168.1.0/24 --dport 587 -j ACCEPT # SMTP
$IPTABLES -A FORWARD -p tcp -s 192.168.1.0/24 --dport 110 -j ACCEPT # POP3

# Regras para liberar o FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 192.168.1.0/24 --dport 20 -j ACCEPT # FTP
$IPTABLES -A INPUT -i $NETWORK -p tcp -s 192.168.1.0/24 --dport 21 -j ACCEPT # FTP

# INPUT # Pacotes que entram na rede
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 80 -j ACCEPT # HTTP
$IPTABLES -A INPUT -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS

# FORWARD # Pacotes que circulam na rede
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 22 -j ACCEPT # SSH
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 8333 -j ACCEPT # HTTP
$IPTABLES -A FORWARD -i $NETWORK -p tcp --dport 443 -j ACCEPT # HTTPS
$IPTABLES -A FORWARD -i $NETWORK -s 192.168.1.0/24 -j ACCEPT

# Mascaramento da rede para acesso externo
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE

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

echo "Firewall Ativado"
}

parar(){

echo "Regras de firewall e compartilhamento desativados"
iptables -F
iptables -t nat -F
iptables -t mangle -F
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar;;
*)echo "Use os paramentros start ou stop"
esac



  


2. Re: Duvidas em regras de firewall e sugestões

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 01/07/2010 - 13:02h

Vc deve entender uma coisa antes. Olhe no começo do arquivo e veja essas linhas:

# Politicas de acesso geral
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

Essas linhas referem-se à política do firewall. Tudo q entra e encaminha é bloqueado e tudo q sai é liberado.

"se eu comentar essa regra, as maquinas da rede nao conecta na internet
para que serve esta regra? esta correto ter essa regra no firewall? nao deixa o firewal vulneravel?"

R: Como disse, a política é tudo bloqueado, lembra? Então vc deve acrescentar regras d liberação pra q o firewall libere a conexão pra galera, porém acho essa regra um pouco vasta. Se tiver apenas uma rede conectada a esta interface (eth1), vc pode restringir, colocando assim:

$IPTABLES -A INPUT -i eth1 -s 192.168.1.0/24 -j ACCEPT

Ae, sim, tá liberando o acesso da interface apenas por esta rede.

"outra duvida e o seguinte se eu deixar a regra acima eu posso comentar a regra do direcionamento para a porta 3128 que as maquina funciona normalmente."

R: Realmente. A regra acima ainda fica vaga. Vc pode liberando porta por porta, q fica mais seguro e manter o redirecionamento, sem por aquela regra acima.

"outra duvida, gostaria de saber o significado dessa regra e para que serve
$IPTABLES -A INPUT -i $NETWORK -s ! 192.168.1.0/24 -j DROP"

R: Essa regra informa q todos os pacotes serão rejeitados pela interface eth1, menos a rede 192.168.1.0/24. Essa regra é desnecessária, uma vez q a política é d bloqueio. Basta liberar o q deseja q o resto será bloqueado.


3. Re: Duvidas em regras de firewall e sugestões

Andre chagas ramos
andre_ramos

(usa openSUSE)

Enviado em 01/07/2010 - 13:33h

Muito obrigado pelas dicas, mas nao entendi uma coisa

se eu comentar essaa regra $IPTABLES -A INPUT -i eth1 -s 192.168.1.0/24 -j ACCEPT minha rede nao tem acesso a internet

isso esta certo ou falta algo no script, liberar portas ou coisa assim,

outra e com essa regra ativa nao preciso colocar a regra de direcionamento da porta 80 para 3128, pois as maquinas da rede ja conecta, isso e certo, pois eu achei que precisava da regra de redirecionamento


grato


4. Re: Duvidas em regras de firewall e sugestões

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 01/07/2010 - 14:09h

"se eu comentar essaa regra $IPTABLES -A INPUT -i eth1 -s 192.168.1.0/24 -j ACCEPT minha rede nao tem acesso a internet. isso esta certo ou falta algo no script, liberar portas ou coisa assim?"

R: tá certo, como eu já havia explicado. Tente entender as políticas e as regras.

"outra e com essa regra ativa nao preciso colocar a regra de direcionamento da porta 80 para 3128, pois as maquinas da rede ja conecta, isso e certo, pois eu achei que precisava da regra de redirecionamento."

R: a regra do redirecionamento é necessária pra fazer o proxy transparente. O problema é a regra q vc mencionou acima. Ela libera TUDO pra interface eth1, ou seja, libera tanto portas quanto IP's. Com isso, a regra d redirecionamento fica inútil, pois eles conseguem acessar diretamente. Sò pra t uma ideia, eles podem burlar o seu proxy, acessando d forma direta a porta 80 do seu servidor.


5. Re: Duvidas em regras de firewall e sugestões

Andre chagas ramos
andre_ramos

(usa openSUSE)

Enviado em 01/07/2010 - 14:20h

oque devo fazer para que fique mais seguro, ou seja tirar a possibilidade de burlar o proxy,


meu escript do squid nao esta transparente, seu eu colocar no caso como proxy transparente eu irei precisar sim da regra isso?


outra duvida e que implantei o layer7 deu tudo certo mas qdo eu coloco as regras para bloquear o msn nao da certo,

tento conectar na minha rede interna e conecta sem problema,

oque pode ser?

a regra que coloquei e a seguinte?

iptables -A INPUT -m layer7 --l7proto msnmessenger -j DROP


6. Re: Duvidas em regras de firewall e sugestões

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 01/07/2010 - 16:08h

"oque devo fazer para que fique mais seguro, ou seja tirar a possibilidade de burlar o proxy,
meu escript do squid nao esta transparente, seu eu colocar no caso como proxy transparente eu irei precisar sim da regra isso?"

R: Vc tira aquela regra q libera tudo e libere a porta 3128, a porta 80 e a 443. Só q as portas 80 e 443 vc vai liberar d uma forma diferente.

iptables -A INPUT -i eth1 -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dport http,https -m owner ! --uid-owner squid -j REJECT --reject-with tcp-reset

A segunda regra só libera a conexão pra porta 80 e 443 se o dono do pacote for o squid, senão rejeita o pacote (créditos para o @irado!). Depois vc vai liberando as portas aos poucos. Lembre-se q existem portas q necessitam d ser liberados os forwards. Então estude o comportamento d cada protocolo, ok?

"outra duvida e que implantei o layer7 deu tudo certo mas qdo eu coloco as regras para bloquear o msn nao da certo,
tento conectar na minha rede interna e conecta sem problema,
oque pode ser?
a regra que coloquei e a seguinte?

iptables -A INPUT -m layer7 --l7proto msnmessenger -j DROP"

R: sobre o layer7, lendo aki sobre ele, tente descartar o pacote encaminhado, em vez d entrada:

iptables -A FORWARD -m layer7 --l7proto msnmessenger -j DROP






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts