Olhem a dica de Firewall pessoal...


27-12-2004 por Aztechno
Olhem a dica de Firewall pessoal...
Achei uma dica bem interessante do site www.slack-pr.com.br

Galera estou disponibilizando meu firewall (básico) que fiz para uso próprio, não tem nada de extraordinário nele, mas com a ajuda de todos podemos implementar novas regras para deixá-lo mais dinâmico ou robusto...

#!/bin/sh

# Firewall Pessoal escrito por Leandro Lustosa.
# Email: slackuser_@linuxmail.org - slackuser_

# Para que as regras funcionem de acordo e necessario
# a instalacao do pacote de iptables, alguns modulos
# descritos abaixo sao do IPT entao para que os mesmos
# funcionem e so instalar o pacote do mesmo.

# Estas Simples Regras Sao para Uso Pessoal, entao
# quem quiser implementar mais regras para deixar
# o script ainda melhor sinta-se a vontade.

# OBS: Se Forem Modificar o Script por Favor Me Enviem Uma Copia OK,
# assim todos nos linuxers vamos desfrutar do script/troca de conhecimento.

echo "========================="
echo "== Ativando as Regras de Firewall... =="
echo "========================="

##############
# Modulos do Iptables
##############
# #Modulo IPV4
# modprobe ip_tables
#
# #Modulo Para Aceitar Logs Limitados
# modprobe ipt_limit # Aceita logs limitados
#
# #Modulos Para Checar Estado de Pacotes
# modprobe ipt_state
#
# #Modulo Para Permitir Pacotes/Desfragmentados
# modprobe ip_conntrack
#
# #Modulo Para Ativar FTP/Requer IP_Conntrack
# modprobe ip_conntrack_ftp
#
# #Modulo Para Aceitar Pacotes de Varias Portas
# modprobe ipt_multiport
#
# #Modulo Para Abilitar Tabela de Filtros
# modprobe iptable_filter
#
# #Modulo Para Abilitar Busca de Pacotes
# modprobe ip_queue
#
# #Modulo Para Uso de TTL
# modprobe ipt_ttl
#
# #Modulo Para Ativar Mac Address Especificos
# modprobe ipt_mac
#
# #Modulo Que Permite Usuario/Grupo Checar os Pacotes de Saida
# modprobe ipt_owner
#
# #Modulo Para Checar Pacotes TCP/MSS Ativos
# modprobe ipt_tcpmss
#
# #Modulo Para Ativar NAT
# modprobe iptable_nat
#
# #Modulo Para o Uso da Tabela Mangle
# modprobe iptable_mangle
#
# #Modulo Para Pacotes/TOS
# modprobe ipt_tos
################################################

#Coloque Entre as ASPAS a INTERFACE da sua REDE, Exemplo: eth0, eth1, ppp.
INTERFACE="lo"

#Coloque Entre as ASPAS a ETH-X da Segunda Placa de Rede Caso Possua
INTERFACE2="eth0"

#Coloque Entre as ASPAS os Servidores de DNS Utilizados
DNS1="200.175.5.139"
DNS2="200.175.89.139"

#Coloque Entre as ASPAS a IP/CLASSE da sua REDE Utilizada,
#Exemplo: 172.0.0.0, 10.0.0.0, 192.168.0.0
REDE="10.0.0.0"

#Coloque Entre as ASPAS o MAC-ADDRESS que Voce Deseja BARRAR
MAC="40:F0:B2:8F:00:01"

#PROTCOCOLO TCP/UDP
PROTO="tcp"
PROTO2="udp"

#REJECT/DROP and ACCEPT
DP="DROP"
RJ="REJECT"
AP="ACCEPT"

#Liberando a Porta 80 Para Uso da Internet
iptables -A INPUT -p tcp --dport 80 -j $AP

#Compartilhando a Internet Atraves da Segunda Placa de Rede ( requer o modulo de NAT ativado / ip_forward )
#Para o Computador Compartilhado Poder Navegar o Mesmo Tem que Usar o IP/CLASSE da ETH-0
#e como gateway o IP da ETH-0, nao esqueca de acrescentar DNS tambem.
iptables -t nat -A POSTROUTING -o $INTERFACE2 -j MASQUERADE

#Regra Para Redirecionamento de Porta ( requer o modulo de NAT ativado / ip_forward )
#Aqui Redirecionamos a Porta 80 para a Porta 3128 Para Uso do SQUID
iptables -t nat -A PREROUTING -i $INTERFACE -p $PROTO --dport 80 -j REDIRECT --to-port 3128

#Liberando a Porta 25/110 Servico POP/SMTP
iptables -A INPUT -p $PROTO --dport 25 -j $AP
iptables -A INPUT -p $PROTO --dport 110 -j $AP

#Liberando Acesso as Portas 21,22,443
iptables -A INPUT -p $PROTO --dport 21 -j $AP
iptables -A INPUT -p $PROTO --dport 22 -j $AP
iptables -A INPUT -p $PROTO --dport 443 -j $AP

#Liberando Acesso as Portas 995 (POP) / 587 (SMTP) do Google
iptables -A INPUT -p $PROTO --dport 587 -j $AP
iptables -A INPUT -p $PROTO --dport 995 -j $AP

#Liberando Acesso as Portas 587/995 para Fora
iptables -A OUTPUT -p $PROTO --dport 587 -j $AP
iptables -A OUTPUT -p $PROTO --dport 995 -j $AP

#Liberando Acesso das Portas 21,22,25,80,110,443 para Fora
iptables -A OUTPUT -p $PROTO --dport 21 -j $AP
iptables -A OUTPUT -p $PROTO --dport 22 -j $AP
iptables -A OUTPUT -p $PROTO --dport 25 -j $AP
iptables -A OUTPUT -p $PROTO --dport 53 -j $AP
iptables -A OUTPUT -p $PROTO --dport 80 -j $AP
iptables -A OUTPUT -p $PROTO --dport 110 -j $AP
iptables -A OUTPUT -p $PROTO --dport 443 -j $AP

#Barrando Todas as Portas UDP e Deixar Passar Apenas Os Servidores de DNS
iptables -A INPUT -i $INTERFACE -p $PROTO2 -j $RJ
iptables -A INPUT -i $INTERFACE -p $PROTO2 -s $DNS1 -j $AP
iptables -A INPUT -i $INTERFACE -p $PROTO2 -s $DNS2 -j $AP

#Ignora pings ( para desativar troque o valor do numro 1 para o numro 0 )
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

#Ativando IP-Forwarding ( para desativar mude o valor de 1 para 0 )
echo 1 > /proc/sys/net/ipv4/ip_forward

#Protecao contra TCP syncookies ( troque o 1 por 0 para desativar a regra )
#echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#Delay minimo para melhor performance do trafego web
iptables -t mangle -A OUTPUT -o $INTERFACE -p $PROTO --dport 53 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o $INTERFACE -p $PROTO --dport 80 -j TOS --set-tos Minimize-Delay

#Protecoes diversas contra portscanners, ping of death, ataques DoS, syn-floods, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j $AP
iptables -A FORWARD -p $PROTO -m limit --limit 1/s -j $AP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j $AP
iptables -A FORWARD -p $PROTO --$PROTO-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j $AP
iptables -A FORWARD --protocol $PROTO --$PROTO-flags ALL SYN,ACK -j $DP
iptables -A FORWARD -m unclean -j $DP
iptables -A INPUT -m state --state INVALID -j $DP

#Protecao contra IP-Spoofing
iptables -A INPUT -s 10.0.0.0/8 -i $INTERFACE -j $DP
iptables -A INPUT -s 172.16.0.0/16 -i $INTERFACE -j $DP
iptables -A INPUT -s 192.168.0.0/24 -i $INTERFACE -j $DP

#Barrando o Uso do Kazaa ( regra ainda nao testada - requer lib )
#iptables -A FORWARD -p $PROTO -m string --string X-Kazaa-Username: -j $RJ --$RJ-with tcp-reset
#iptables -A INPUT -m string --string "X-Kazaa" -j $DP
#iptables -A INPUT -m string --string "GET /.hash=" -j $DP


#Barrando Red de Audio Galaxy
iptables -A INPUT -d 64.245.58.0/23 -j $RJ

#Barrando GNUtella, Bearshare y ToadNode
iptables -A INPUT -p $PROTO --dport 6346 -j $RJ

#Barrando eDonkey
iptables -A INPUT -p $PROTO --dport 4662 -j $RJ
iptables -A INPUT -p $PROTO --dport 4661 -j $RJ
iptables -A INPUT -p $PROTO2 --dport 4665 -j $RJ

#Barrando iMesh
iptables -A FORWARD -d 216.35.208.0/24 -j $RJ

#Barrando ToadNode
iptables -A FORWARD -p $PROTO --dport 6346 -j $RJ

#Barrando Red de Napster
iptables -A FORWARD -d 64.124.41.0/24 -j $RJ

#Barrando WinMX
iptables -A FORWARD -d 209.61.186.0/24 -j $RJ
iptables -A FORWARD -d 64.49.201.0/24 -j $RJ

#Barrando Napigator
iptables -A FORWARD -d 209.25.178.0/24 -j $RJ

#Barrando Morpheus
iptables -A FORWARD -d 206.142.53.0/24 -j $RJ
iptables -A FORWARD -p $PROTO --dport 1214 -j $RJ

#Barrando Limewire
iptables -A FORWARD -p $PROTO --dport 6346 -j $RJ

#Barrando Audiogalaxy
iptables -A FORWARD -d 64.245.58.0/23 -j $RJ

#Bloqueando pacotes fragmentados ( regra ainda nao testada - requer lib )
#iptables -A INPUT -i INTEXT -m unclean -j log_unclean
#iptables -A INPUT -f -i INTEXT -j log_fragment

#Bloqueando tracertroute
iptables -A INPUT -p $PROTO2 -s 0/0 -i $INTERFACE --dport 33435:33525 -j $DP

#Libera o loopback
iptables -I INPPUT -i lo -j $AP
iptables -I OUTPUT -o lo -j $AP
iptables -A OUTPUT -p $PROTO --syn -s 127.0.0.1/255.0.0.0 -j $AP

#Bloqueando todos os endereços vindo de uma determinada rede para a minha máquina
iptables -A INPUT -s $REDE/8 -j $DP

#Bloqueando uma máquina pelo endereço MAC
iptables -A INPUT -m mac --mac-source $MAC -j $DP

#Gravando LOG de Acesso/Porta no Arquivo (/var/log/messages)
iptables -A INPUT -p $PROTO --dport 21 -j LOG
iptables -A INPUT -p $PROTO --dport 22 -j LOG
iptables -A INPUT -p $PROTO --dport 23 -j LOG
iptables -A INPUT -p $PROTO --dport 25 -j LOG
iptables -A INPUT -p $PROTO --dport 80 -j LOG
iptables -A INPUT -p $PROTO --dport 443 -j LOG
iptables -A INPUT -p $PROTO --dport 1863 -j LOG
iptables -A INPUT -p $PROTO --dport 5190 -j LOG

#Barrando o Messenger
iptables -A FORWARD -d messenger.hotmail.com -j $RJ
iptables -A INPUT -p $PROTO --dport 1863 -j $DP
iptables -A OUTPUT -p $PROTO --dport 1863 -j $DP
iptables -t nat -A PREROUTING -i $INTERFACE -p $PROTO --dport 1863 -j REDIRECT --to 10.0.0.0

#Bloqueia o trafego de Servers MSN
iptables -A INPUT -p ALL -s 207.46.110.0/24 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 65.54.183.198 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 207.68.171.245 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 207.68.172.234 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 207.68.173.254 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 207.46.110.14 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 207.46.110.41 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 207.46.110.13 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 82.98.252.234 -d 127.0.0.1 -j $DP
iptables -A INPUT -p ALL -s 212.26.221.17 -d 127.0.0.1 -j $DP
iptables -A FORWARD -d 64.4.13.0/24 -j $RJ

#Barrando o ICQ
iptables -A INPUT -p $PROTO --dport 5190 -j $DP
iptables -A INPUT -p $PROTO2 --dport 5190 -j $DP
iptables -t nat -A PREROUTING -i $INTERFACE -p $PROTO --dport 5190 -j REDIRECT --to 127.0.0.1


#Fechando Todas as Portas, nesta regra barrei toda e qualquer entrada nos devices ETH-X
#visto que nao possuo ADSL e utilizo CONEXAO DISCADA, como uso DISCADA e a mesma estabelece
#uma conexao PPP0 liberei a mesma e so restringi outra conexao PPP, para quem usa ADSL
#basta mudar o 'ppp1' para "ppp+" e trocar 'eth+' por "eth1" se tiver somente uma placa
#funcionado ou trocar por "eth2" se tiver duas placas funcionado na maquina.
iptables -A INPUT -i eth+ -j $DP
iptables -A INPUT -i ppp1 -j $DP

iptables-save

echo "======================="
echo "== Regras de Firewall Ativadas... =="
echo "======================="

# EOF
28-12-2004 por macroney
bom, muito bom!
28-12-2004 por marcos jost
Dica: Usa o tópico: Iptables Comunitário http://forumgdh.net/viewtopic.php?t=97877
Ja tem diversos scriptas por la, colcoa o seu la tambem....
28-12-2004 por Evandro Pastor
Achei essa dica pra um firewall mais básico:

http://geocities.yahoo.com.br/cesarakg/iptables.html
 
Guia do Hardware Melhores Tópicos