slacklex
(usa Slackware)
Enviado em 07/04/2006 - 21:07h
Olá pessoal esse firewall abaixo é o que estou usando aqui no momento, ainda não está completamente pronto pois ainda faltam alguns servidores entrar no ar aqui,mas gostaria que vocês pudesse dar suas críticas construtivas, melhorias, erros dicas dele etc..
Muito obrigado..
#!/bin/bash
########################### FIREWALL LEX INFORMATICA ##################################
########################### ##################################
######### Carrega os módulos###############
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_layer7
#####################Definindo Policiamento Padrão###########################
# Zera Tabelas
iptables -F
iptables -X
# Tabela Filter
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT ACCEPT
# Tabela Nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# 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###################################
# Barra pacotes TCP indesejáveis e loga isso (Cuja nova conexão NÃO é iniciada com flag syn)
iptables -A FORWARD -p tcp -m tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "NAO SYN: "
iptables -A FORWARD -p tcp -m tcp ! --syn -m state --state NEW -j DROP
# Aceita os pacotes que podem entrar (liberação de entrada)
iptables -A INPUT -i ! eth0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Bloqueia conexões inválidas vindas da interface ppp0
iptables -A INPUT -m state --state INVALID -j DROP
#### Abaixo seguem regras contra Port Scannners, trojans, floods... ########
# Proteção contra Port Scanner Avançados
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Protecao quanto a ataques DoS
iptables -A INPUT -i ppp0 -m unclean -j DROP
iptables -A INPUT -i ppp0 -m unclean -j LOG --log-level 6 --log-prefix "UNCLEAN "
# Proteção com SYNFLOODS
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Proteção contra Ping da Morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Proteção contra SYN-Floding
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Proteçao contra icmp
iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
# Proteção contra IP Spoofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Proteção contra Tracert
iptables -A INPUT -p udp -s 0/0 -i ppp0 --dport 33435:33525 -j DROP
# Proteção contra o Wincrash
iptables -A FORWARD -p tcp --dport 5042 -j LOG --log-prefix "WINCRASH"
iptables -A FORWARD -p tcp --dport 5042 -j DROP
# Proteçao contra o NETBUS
iptables -A FORWARD -p tcp --dport 12345 -j DROP
# Proteção contra trinoo
iptables -A INPUT -p tcp -i ppp0 --dport 27444 -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 27665 -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 31335 -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 34555 -j DROP
iptables -A INPUT -p tcp -i ppp0 --dport 35555 -j DROP
# Fechando portas Time e o Server X
iptables -A INPUT -i ppp0 -p tcp --dport 37 -j DROP
# Não permite que usuários da rede baixem ou façam upload de arquivos com extensao exe
iptables -A FORWARD -m layer7 --l7proto exe -d 192.168.1.0/24 -j DROP
# Permitindo FORWARD para a porta SSH
iptables -A FORWARD -i ppp0 -p tcp -d 192.168.0.2 --dport 22 -j ACCEPT
# Libera acesso de smtp para fora apenas para o IP 192.0.0.0
iptables -A FORWARD -p tcp -d ! 192.0.0.0 --dport 25 -j LOG --log-level 6 --log-prefix "SMTPNOTHING "
iptables -A FORWARD -p tcp -d ! 192.0.0.0 --dport 25 -j DROP
# Bloqueio do acesso ao orkut tanto via https quanto http
iptables -A FORWARD -d
www.orkut.com -p tcp --dport 80 -j DROP
iptables -A INPUT -d
www.orkut.com -p tcp --dport 80 -j DROP
iptables -A FORWARD -d orkut.com -p tcp --dport 80 -j DROP
iptables -A INPUT -d orkut.com -p tcp --dport 80 -j DROP
iptables -A OUTPUT -d
www.orkut.com -p tcp --dport 80 -j DROP
iptables -A FORWARD -d
www.orkut.com -p tcp --dport 443 -j DROP
iptables -A INPUT -d
www.orkut.com -p tcp --dport 443 -j DROP
iptables -A FORWARD -d orkut.com -p tcp --dport 443 -j DROP
iptables -A INPUT -d orkut.com -p tcp --dport 443 -j DROP
iptables -A OUTPUT -d
www.orkut.com -p tcp --dport 443 -j DROP
#######################TABELA NAT #######################################
# Ativando NAT somente para a rede interna p/ acesso a internet
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE
# Permitindo acesso remoto ao servidor SSH da rede local
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 22 -j DNAT --to 192.168.0.2
# Redirecionando todo o tráfego interno à porta 80 para que vá para o Proxy
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p udp -i eth1 --dport 80 -j REDIRECT --to-port 3128
# Proteção contra ataques Spoofing
iptables -t nat -A PREROUTING -i ppp0 -s 172.16.0.0/16 -j DROP
iptables -t nat -A PREROUTING -i ppp0 -s 192.168.0.0/24 -j DROP
iptables -t nat -A PREROUTING -i ppp0 -s 10.0.0.0/8 -j DROP
#Bloqueio de NetBios
iptables -t nat -A PREROUTING -p tcp --dport 445 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 135 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 137 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 138 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 139 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 445 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 135 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 137 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 138 -j DROP
iptables -t nat -A PREROUTING -p udp --dport 139 -j DROP