#/bin/bash -x
#Por Eduardo (tr0p1x)
#Firewallzinho escrito em um par de minutos. Parto do presuposto que o firewall seja uma maquina usada normalmente (desktop)
#por isso o fato do estado da conexao NEW na OUTPUT. Podemos liberar somente servicos especificos, mas dae eh muito trabalho.
#Qq coisa postem ae duvidas, sugestoes, xingamentos, coisa do tipo q na medida do possivel eu respondo hehehehe.
#Nao tem linhas para LOG de conexoes e coisa do tipo.
#Compartilha internet, soh configurem certo os ips da rede interna e as interfaces de rede.
IPTABLES=/sbin/iptables
modprobe ip_conntrack
modprobe ip_tables
modprobe ipt_MASQUERADE
modprobe ipt_state
modprobe iptable_nat
modprobe ipt_LOG
modprobe ipt_REJECT
#desligando forward
echo 0 > /proc/sys/net/ipv4/ip_forward
#limpando tabela NAT
$IPTABLES -t nat -F
$IPTABLES -t nat -X
$IPTABLES -t nat -Z
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t nat -F PREROUTING
#limpando regras
$IPTABLES -F INPUT
$IPTABLES -F OUTPUT
$IPTABLES -F FORWARD
#setando polihticas
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP
#impedindo alteracao de rotas
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
#prot contra responses bogus
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#prot contra syn-flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#contra traceroute
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
#contra ip spoofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
#--------INPUT--------
$IPTABLES -A INPUT -i lo -s 127.0.0.1/8 -d 127.0.0.1/8 -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state INVALID -j DROP
#--------OUTPUT-------
$IPTABLES -A OUTPUT -o lo -s 127.0.0.1/8 -d 127.0.0.1/8 -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state INVALID -j DROP
#------FORWARD--------
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -i eth1 -s 192.168.0.0/24 -o eth0 -j ACCEPT
#--------NAT----------
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
#habilitando forward
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Firewall Startado com Sucesso"
exit 0
[3] Comentário enviado por luizhjr em 05/03/2007 - 10:51h
Eduardo...estou começando a mexer com o iptables e gostaria de saber pq vc inseriu essas seguintes regras:
$IPTABLES -A INPUT -i lo -s 127.0.0.1/8 -d 127.0.0.1/8 -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m state --state INVALID -j DROP
pq existe um input pro localhost???
o q esse módulo established e o related fazem???
to perguntando pq vc inseriu esses modulos pra rede 192.168.0.0/24 tb
Obrigado e desculpe o incomodo.
[4] Comentário enviado por aps167 em 17/05/2007 - 16:37h
Cara!! show de Bola!!
A tempos que estava em busca de um script assim simples, e uma coisa que destacou foi você ter dividido as regras em input, output e forward na sequência correta (ao meu ver).
Agora eu vou adapta-lo a minha realidade e só alegria.
[5] Comentário enviado por resende em 26/10/2007 - 15:49h
escuta tche sou leigo pacas mais mesmo assim por favor nao me ingnore pois estou determinado a
montar um firewall apartir do debian se puder me ajudar cara!! te agradeço muito mesmo