Firewall bem prático e bom

Publicado por Vitor Hugo sampiron em 13/02/2006

[ Hits: 10.685 ]

 


Firewall bem prático e bom



Aí galera do VOL, andei vendo aí pelo site e vi que tem gente que precisa de um firewall, então aí vai um que eu uso e acho muito bom, pois fui elaborando ele aos poucos.

#!/bin/sh

echo "Ativando Firewall........"

### Limpando as regras ###
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

# Definindo a Política Default das Cadeias
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

### Passo 2: Desabilitar o trafego IP entre as placas de rede ###
echo "0" > /proc/sys/net/ipv4/ip_forward

# Configurando a Proteção anti-spoofing
for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo "1" > $spoofing
done

# Impedimos que um atacante possa maliciosamente alterar alguma rota
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

# 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

# Proteção contra responses bogus
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

### Carregando os módulos do iptables ###
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_mangle
modprobe iptable_nat
modprobe ipt_MASQUERADE

### Agora, vamos definir o que pode passar e o que não ###
####################
# Cadeia de Entrada

#Proteção contra
# Proteção contra tronjans
# -------------------------------------------------------

iptables -A INPUT -p TCP -i eth0 --dport 666 -j DROP
iptables -A INPUT -p TCP -i eth0 --dport 666 -j DROP
iptables -A INPUT -p TCP -i eth0 --dport 4000 -j DROP
iptables -A INPUT -p TCP -i eth0 --dport 6000 -j DROP
iptables -A INPUT -p TCP -i eth0 --dport 6006 -j DROP
iptables -A INPUT -p TCP -i eth0 --dport 16660 -j DROP

# LOCALHOST - ACEITA TODOS OS PACOTES
iptables -A INPUT -i lo -j ACCEPT

# PORTA 80 - ACEITA PARA A REDE LOCAL
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

# PORTA 8050 - ACEITA PARA A REDE LOCAL (VINDO DE FORA)
iptables -A INPUT -i eth0 -p tcp --dport 8050 -j ACCEPT

# No iptables, temos de dizer quais sockets são validos em uma conexao
iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

################################
# Cadeia de Reenvio (FORWARD).
# Primeiro, ativar o mascaramento (nat).
iptables -t nat -F
iptables -t nat -A POSTROUTING -j MASQUERADE

# Agora dizemos quem e o que podem acessar externamente
# No iptables, o controle do acesso a rede externa e feito na cadeia "FORWARD"

########################VÍRUS######################
# Vírus Protecao porta 445 e interface eth0
iptables -A FORWARD -p tcp --dport 445 -i eth0 -j DROP
iptables -A FORWARD -p tcp --sport 445 -i eth0 -j DROP
iptables -A FORWARD -p udp --dport 445 -i eth0 -j DROP
iptables -A FORWARD -p udp --sport 445 -i eth0 -j DROP

# Vírus Protecao porta 135 e interface eth0
iptables -A FORWARD -p tcp --dport 135 -i eth0 -j DROP
iptables -A FORWARD -p tcp --sport 135 -i eth0 -j DROP
iptables -A FORWARD -p udp --dport 135 -i eth0 -j DROP
iptables -A FORWARD -p udp --sport 135 -i eth0 -j DROP

#iptables -A FORWARD -s 192.168.0.201 -j ACCEPT
# PORTA 3128 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth1 -p tcp --dport 3128 -j ACCEPT

# Redireciona porta 80 para 3128 (Squid)
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

# PORTA 53 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT

#PORTA 53 UDP - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT

# PORTA 110 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT

# PORTA 25 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT

# PORTA 443 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth1 -p tcp --dport 443 -j ACCEPT

# PORTA 21 - ACEITA PARA A REDE LOCAL
iptables -A FORWARD -i eth1 -p tcp --dport 21 -j ACCEPT

# No iptables, temos de dizer quais sockets são validos em uma conexao
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

#faz o nat do TS pro notebook da porta do ts
iptables -A PREROUTING -t nat -p tcp --dport 3389 -j DNAT --to 192.168.0.201

# Habilitando o trafego IP, entre as Interfaces de rede
echo "1" > /proc/sys/net/ipv4/ip_forward
echo
echo
echo
echo "Firewall ativado e pronto...."


Beleza! Qualquer duvida ou sugestão:

e-mail: vitor@conflinux.com.br
e-mail2: vitor@a2web.com.br

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Quebrando tudo: HPC com Cluster Debian e John The Ripper

Macetes para iptables

Alterando o número de hops do Tor

Deixe seu servidor web mais seguro

Permitir mudança de senha via SSH (e só!)

  

Comentários
[1] Comentário enviado por ejmjunior em 17/04/2006 - 17:34h

Por favor Vitor, sou iniciante em firewall, e gostaria de tirar algumas duvidas. Tipo, onde salvar esse arquivo de forma q sempre q ligar o pc ele iniciarlizar-se, na minha rede, q tem duas placas de rede, a primeira eht0 fica na rede interna com ip 192.168.1.254 mask 255.255.255.0 e a outra eth1 fica na rede da NET com ip 200.199.241.17 (brturbo) , resumindo quais modificacoes terei q fazer pra eu poder usar esse firewall q vc escreveu.
Desde ja obrigado...

[2] Comentário enviado por gzanatta00 em 06/11/2007 - 17:34h

amigo salva em qualquer lugar tipo /etc/init.d/firewall
pra executar na inicializacao, pra debian executa ln -s /etc/init.d/firewall /etc/rc2.d/S99firewall

para trabalhar com este firewall deixe a eth0 pra internet e eth1 pra interna, ou modifique o firewall



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts