Pessoal, coloquei esse script de firewall, com dhcp, as maquinas receberam os ips, blz, mas elas nao saem para a internet.Nao sei porque, to collocando meu script de firewall, por favor, alguem de uma olhada e me de essa ajuda...Nao sei o que pode ser, o ipv4 está 1 e coloquei Mascaramento.
Segue o script
#!/bin/bash
iniciar(){
IPTABLES="iptables"
REDE="192.168.2.0/24"
IFACE="eth0"
# Comecar com uma mensagem para informar que estamos vivos !
echo "Inicializando o firewal..."
# Iniciando o servico sujo, inicializado o firewall...
echo "Limpando regras e colocando os modulos..."
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -t nat -X
# Definindo politica padrão de DITADURA ! ninguém passa !
echo "Política de ditadura, ninguém passa..."
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# Informar mais coisas...
echo "Ajustando opcoes do kernel..."
# Ligando protecao do kernel para IP spoof...
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
# Ajustando configuracao de TCP timestamps...
echo 1 > /proc/sys/net/ipv4/tcp_timestamps 2> /dev/null
# Habilitando protecao TCP SYN Cookie...
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route 2> /dev/null
# Habilitar log de marcianos...
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians 2> /dev/null
echo 1 > /proc/sys/net/ipv4/conf/default/log_martians 2> /dev/null
# Habilitando trabalho normal do Loopback...
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Relatar os progressos...
echo "Definindo as regras do firewall, se segurem !"
# Criar chains para lidar com o trabalho sujo...
# Regra para os pacotes descartados...
$IPTABLES -N descartado2
$IPTABLES -A descartado2 -j LOG --log-prefix "DESCARTADO " --log-level debug --
log-ip-options --log-tcp-options --log-tcp-sequence
$IPTABLES -A descartado2 -j DROP
$IPTABLES -N descartado
$IPTABLES -A descartado -j descartado2
# Regra para pacotes rejeitados oficialmente...
$IPTABLES -N rejeitado2
$IPTABLES -A rejeitado2 -p tcp -j REJECT --reject-with tcp-reset
$IPTABLES -A rejeitado2 -p udp -j REJECT --reject-with icmp-port-unreachable
$IPTABLES -A rejeitado2 -j DROP
$IPTABLES -N rejeitado
$IPTABLES -A rejeitado -j rejeitado2
# Regra para pacotes abortados...
$IPTABLES -N abortado2
#!/bin/bash
iniciar(){
IPTABLES="iptables"
REDE="192.168.2.0/24"
IFACE="eth0"
# Comecar com uma mensagem para informar que estamos vivos !
echo "Inicializando o firewal..."
# Iniciando o servico sujo, inicializado o firewall...
echo "Limpando regras e colocando os modulos..."
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -t nat -X
# Definindo politica padrão de DITADURA ! ninguém passa !
echo "Política de ditadura, ninguém passa..."
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# Informar mais coisas...
echo "Ajustando opcoes do kernel..."
# Ligando protecao do kernel para IP spoof...
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
# Ajustando configuracao de TCP timestamps...
echo 1 > /proc/sys/net/ipv4/tcp_timestamps 2> /dev/null
# Habilitando protecao TCP SYN Cookie...
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route 2> /dev/null
# Habilitar log de marcianos...
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians 2> /dev/null
echo 1 > /proc/sys/net/ipv4/conf/default/log_martians 2> /dev/null
# Habilitando trabalho normal do Loopback...
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Relatar os progressos...
echo "Definindo as regras do firewall, se segurem !"
# Criar chains para lidar com o trabalho sujo...
# Regra para os pacotes descartados...
$IPTABLES -N descartado2
$IPTABLES -A descartado2 -j LOG --log-prefix "DESCARTADO " --log-level debug --
log-ip-options --log-tcp-options --log-tcp-sequence
$IPTABLES -A descartado2 -j DROP
$IPTABLES -N descartado
$IPTABLES -A descartado -j descartado2
# Regra para pacotes rejeitados oficialmente...
$IPTABLES -N rejeitado2
$IPTABLES -A rejeitado2 -p tcp -j REJECT --reject-with tcp-reset
$IPTABLES -A rejeitado2 -p udp -j REJECT --reject-with icmp-port-unreachable
$IPTABLES -A rejeitado2 -j DROP
$IPTABLES -N rejeitado
$IPTABLES -A rejeitado -j rejeitado2
# Regra para pacotes abortados...
$IPTABLES -N abortado2
$IPTABLES -A abortado2 -j LOG --log-prefix "ABORTADO " --log-level debug --logip-
options --log-tcp-options --log-tcp-sequence
$IPTABLES -A abortado2 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -N abortado
$IPTABLES -A abortado -m limit --limit 1/second --limit-burst 10 -j abortado2
$IPTABLES -A abortado -m limit --limit 2/minute --limit-burst 1 -j LOG --logprefix
"LIMITADO " --log-level debug
# Criar chains para trabalhar com diferentes protocolos...
$IPTABLES -N PACOTES_TCP
$IPTABLES -N PACOTES_TCP_ENTRADA
$IPTABLES -N PACOTES_TCP_SAIDA
$IPTABLES -N PACOTES_UDP
$IPTABLES -N PACOTES_UDP_ENTRADA
$IPTABLES -N PACOTES_UDP_SAIDA
$IPTABLES -N PACOTES_ICMP
#################################################
# Criar conteudo das regras do filtro PACOTES_TCP
# Relatar coneccoes abortadas...
$IPTABLES -A PACOTES_TCP -m state --state ESTABLISHED,RELATED -p tcp --tcpflags
RST RST -j abortado
# Permitir o transito de pacotes de coneccoes estabelecidas primeiro pelo meu
computador...
$IPTABLES -A PACOTES_TCP -m state --state ESTABLISHED,RELATED -p tcp -j ACCEPT
#########################################################
echo "Aqui começa o esquema..."
# Criar conteudo das regras do filtro PACOTES_TCP_ENTRADA
# Chama a regra basica, oque não passar vai pro inferno... (DROP)
# Permitir comunicação com a rede interna na rede ip definida em REDE...
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -s $REDE -i $IFACE -j ACCEPT
# POP3: Permitir handshaking com o servidor POP remoto...
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --sport 1024:65535 --dport 110:110 -m
state --state NEW -j ACCEPT
# Mandar pro inferno portscans em tcp...
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags ALL FIN,URG,PSH -j
abortado
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags SYN,RST SYN,RST -j
abortado
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags SYN,FIN SYN,FIN -j
abortado
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-option 64 -j abortado
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-option 128 -j abortado
# Evitar portscanners ocultos...
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp --tcp-flags SYN,ACK,FIN,RST
SYN,ACK,FIN -m limit --limit 1/s -j ACCEPT
# Evitar ataques SYN-FLOOD
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -m limit --limit 1/s -j ACCEPT
# Regras adicionais para entrads TCP devem vir aqui...
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -j PACOTES_TCP
# Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
inferno...
$IPTABLES -A PACOTES_TCP_ENTRADA -p tcp -j descartado
# Criar conteudo das regras do filtro PACOTES_TCP_SAIDA
# Permitir comunicação com a rede interna na rede ip definida em REDE...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp -d $REDE -o $IFACE -j ACCEPT
# POP3: Permitir coneccao da maquina atual para a porta 110 de um servidor
remoto...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 110:110 -m state
--state NEW -j ACCEPT
# SMTP: Permitir coneccao da maquina atual para a porta 25 de um servidor
remoto...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 25:25 -m state
--state NEW -j ACCEPT
# DNS: Permitir a troca de informacoes entre a maquina atual e o servidor de
DNS...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 53:53 -m state
--state NEW -j ACCEPT
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 53:53 -j ACCEPT
# HTTP: Permitir que a maquina local se comunique com um servidor remoto na
porta tcp:80...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 1024:65535 --dport 80:8085 -m
state --state NEW -j ACCEPT
# HTTPS: Permitir que a maquina local se comunique com um servidor remoto
SEGURO na porta tcp:443...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 443:443 -m state
--state NEW -j ACCEPT
# FTP: Permitir que a maquina local se comunique com um servidor remoto na
porta tcp:21...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp --sport 0:65535 --dport 21:21 -m state
--state NEW -j ACCEPT
# Aplicar regra generica para pacotes TCP que saem...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp -j PACOTES_TCP
# Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
inferno...
$IPTABLES -A PACOTES_TCP_SAIDA -p tcp -j descartado
#################################################
# Criar conteudo das regras do filtro PACOTES_UDP
# Permitir o transito de pacotes de coneccoes estabelecidas primeiro pelo meu
computador...
$IPTABLES -A PACOTES_UDP -m state --state ESTABLISHED,RELATED -p udp -j ACCEPT
#########################################################
echo "O que nao passar aqui vai pro inferno.."
# Criar conteudo das regras do filtro PACOTES_UDP_ENTRADA
# Chama a regra basica, oque não passar vai pro inferno... (DROP)
# Regras adicionais para entrads UPD devem vir aqui...
# Permitir comunicação com a rede interna na rede ip definida em REDE...
$IPTABLES -A PACOTES_UDP_ENTRADA -p udp -s $REDE-i $IFACE -j ACCEPT
# Aplicacao de regras genericas para pacotes UDP...
$IPTABLES -A PACOTES_UDP_ENTRADA -p udp -j PACOTES_UDP
# Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
inferno...
$IPTABLES -A PACOTES_UDP_ENTRADA -p udp -j descartado
#######################################################
# Criar conteudo das regras do filtro PACOTES_UDP_SAIDA
# Permitir comunicação com a rede interna na rede ip definida em REDE...
$IPTABLES -A PACOTES_UDP_SAIDA -p udp -d $REDE -o $IFACE -j ACCEPT
$IPTABLES -A PACOTES_UDP_SAIDA -p udp -j PACOTES_UDP
# DNS: Permitir a troca de informacoes entre a maquina atual e o servidor de
DNS...
$IPTABLES -A PACOTES_UDP_SAIDA -p udp --sport 0:65535 --dport 53:53 -j ACCEPT
# HTTPS: Permitir que a maquina local se comunique com um servidor remoto
SEGURO na porta udp:443...
$IPTABLES -A PACOTES_UDP_SAIDA -p udp --sport 0:65535 --dport 443:443 -m state
--state NEW -j ACCEPT
# Por fim qualquer pacote que nao se encaixa na regras previas é mandado pro
inferno...
$IPTABLES -A PACOTES_UDP_SAIDA -p udp -j descartado
#####################################################
# Criar conteudo das regras do filtro PACOTES_ICMP...
$IPTABLES -A PACOTES_ICMP -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPTABLES -A PACOTES_ICMP -p icmp --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A PACOTES_ICMP -p icmp --icmp-type parameter-problem -j ACCEPT
# Evitar os pings da morte...
$IPTABLES -A PACOTES_ICMP -p icmp --icmp-type echo-request -m limit --limit 1/s
-j ACCEPT
$IPTABLES -A PACOTES_ICMP -p icmp -s $REDE -j ACCEPT
# MASQUERADE: Destino para pacotes descartados na tabela NAT...
$IPTABLES -t nat -N descart-nat
$IPTABLES -t nat -A descart-nat -j LOG --log-prefix "DESCARTADO-NAT " --loglevel
debug --log-ip-options --log-tcp-options --log-tcp-sequence
$IPTABLES -t nat -A descart-nat -j DROP
# Todos pacotes da rede 192,168.2.0 que não forem de nossa interface
# de rede, configurada para 192.168.2.0, serão enviados pro inferno...
$IPTABLES -t nat -A PREROUTING -s $REDE -i ! $IFACE -j descart-nat
# Teste para o funcionamento do proxy transparente com squid...
$IPTABLES -t nat -A PREROUTING -s $REDE -i $IFACE -p tcp --dport 80 -j
REDIRECT --to-port 3128
# MASQUERADE: Permitir que a rede 192.168.2.0/24 acesse a internet sempre
# passando por todas regras do firewall antes...
$IPTABLES -t nat -A POSTROUTING -s $REDE -o $IFACE -j MASQUERADE
# Habilitando o Masquerade SNAT...
echo "1" > /proc/sys/net/ipv4/ip_forward
# Classificar as entradas entre os chains principais...
# Classificar pelos pacotes TCP...
$IPTABLES -A INPUT -p tcp -j PACOTES_TCP_ENTRADA
$IPTABLES -A OUTPUT -p tcp -j PACOTES_TCP_SAIDA
$IPTABLES -A FORWARD -i $IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp -j PACOTES_TCP
# Classificar pelos pacotes UDP...
$IPTABLES -A INPUT -p udp -j PACOTES_UDP_ENTRADA
$IPTABLES -A OUTPUT -p udp -j PACOTES_UDP_SAIDA
$IPTABLES -A FORWARD -p udp -j PACOTES_UDP
# Classificar pelos pacotes ICMP...
$IPTABLES -A INPUT -p icmp -j PACOTES_ICMP
$IPTABLES -A OUTPUT -p icmp -j PACOTES_ICMP
$IPTABLES -A FORWARD -p icmp -j PACOTES_ICMP
# TOS: Ajusta o TOS do pacote IP para Minimizar retardo no transporte...
$IPTABLES -t mangle -A POSTROUTING -p tcp -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A POSTROUTING -p udp -j TOS --set-tos Minimize-Delay
# Relatar o fim do servico sujo...
echo "Configuracao do firewall finalizada..."
echo "Começou a choradeira..."
}
case "$1" in
"start")
iniciar
;;
"stop")
parar
;;
*)
echo $"Use os parametros start ou stop"
exit 1
esac
exit $?