Firewall ips liberados

1. Firewall ips liberados

Thiago Araujo
thiagomgt

(usa Debian)

Enviado em 12/09/2007 - 15:56h

Gostaria da ajuda de vcs para configurar o meu firewall... não consigo colocar para funcionar o laço de ips liberados, o de ips bloqueado aparentemente está funcionando, + o de liberado não. Fiz o seguinte teste: coloquei um ip no arquivo de ips bloq e não passou nada, ao tirar o ips de lá e colocar no ips liberado não consegui ter acesso a todas as portas, por exemplo a do msn. (apesar de ela está no script para bloq, os ips liberados deveriam acessar tudo?, correto???) favor, me ajudem..


###########################
## VARIAVEIS DO SISTEMA ###
###########################

# rede local e internet
WAN="eth0" # internet
LAN="eth1" #local

# Diretorio de arquivos do firewall
DIR="/etc/firewall"
# arquivos do firewall
BLOCKALL="ips_block_all"
ALLOWALL="ips_allow_all"

# Comando CAT
CAT="/bin/cat"


############################
# Iniciar - Valores TCP/IP #
############################

inicio() {
# Filtra Pacotes "Spoofados"
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Não Aceita Pacotes Redirecionados
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Desativa Redirecionamentos
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# Não Loga Ips Impossiveis
echo 0 > /proc/sys/net/ipv4/conf/all/log_martians
# Ignora Pacotes ICMP de Broadcast
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Ignora Pacotes ICMP de Erro
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Tempo Maximo de Espera da Conexao sem Resposta
echo 45 > /proc/sys/net/ipv4/tcp_fin_timeout
# Tempo Maximo de Conexão KeepAlive
echo 90 > /proc/sys/net/ipv4/tcp_keepalive_intvl
# Habilita Redirecionamento de Pacotes (Necessario para NAT)
echo 1 > /proc/sys/net/ipv4/ip_forward
# Protege Contra Ataques Syn Flood
echo 1 > /proc/sys/net/ipv4/tcp_syncookies


}

####################
# Limpar as regras #
####################

limpa(){
iptables -F # Limpa todas as regras da tabela Filter
iptables -X # Deleta todas as cadeias da tabela Filter
iptables -Z # Zera contador da tablea Filter
iptables -P INPUT ACCEPT # Habilita regra default de entrada de pacotes com ACEITAR
iptables -P FORWARD ACCEPT # Habilita regra default de passagem de pacotes com ACEITAR
iptables -P OUTPUT ACCEPT # Habilita regra default de saida de pacotes com ACEITAR
iptables -t nat -F # Limpa todas as regras da tabela NAT
iptables -t nat -X # Deleta todas as cadeias da tabela NAT
iptables -t nat -Z # Zera os contadores da tabela NAT
}

######################
## REGRAS DE ACESSO ##
######################

firewall_start(){

# liberar portas - conexoes primarias (ACESSAR O SERVIDOR)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT #SSH
iptables -A INPUT -p tcp --dport 21 -j ACCEPT #FTP
iptables -A INPUT -p tcp --dport 53 -j ACCEPT #DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT #DNS
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT # APACHE

# Fim das portas primarias

#############################
# Regra para Bloqueio Total #
#############################

# Laco de repeticao para pegar os ips dos PC com bloq total
for n in `$CAT $DIR/$BLOCKALL`
do
iptables -A FORWARD -s $n -j DROP
iptables -A FORWARD -d $n -j DROP

# Bloq direto no navegador
iptables -A INPUT -s $n -p tcp --dport 3128 -j DROP

done

#############################
## Regra para Acesso Total ##
#############################
# laco de repeticao para pegar os ips dos PC com permissao total
for n in `$CAT $DIR/$ALLOWALL`
do
iptables -A FORWARD -s $n -m state --state NEW -j ACCEPT
iptables -A FORWARD -d $n -m state --state NEW -j ACCEPT

done

####################################
######## ACESSO A INTERNET #########
####################################

iptables -A INPUT -i $LAN -p tcp --dport 3128 --syn -j ACCEPT # Permitir acesso ao squid
iptables -A INPUT -i $LAN -p tcp --dport 25 -j ACCEPT #SMTP (email)
iptables -A INPUT -i $LAN -p tcp --dport 587 -j ACCEPT #SMTP (locaweb)
iptables -A INPUT -i $LAN -p tcp --dport 110 -j ACCEPT # POP (locaweb)
iptables -A FORWARD -i $LAN -p tcp --dport 443 --syn -j ACCEPT # HTTPS
iptables -A FORWARD -i $LAN -p tcp --dport 80 --syn -j ACCEPT # HTTP

# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A INPUT -m state --state INVALID -j DROP

# Abre para a interface de loopback.
# Esta regra é essencial para o KDE e outros programas gráficos funcionarem adequadamente.
iptables -A INPUT -i lo -j ACCEPT


# Fecha as portas udp de 1 a 1024
iptables -A INPUT -p udp --dport 1:1024 -j DROP
iptables -A INPUT -p udp --dport 59229 -j DROP

# Bloqueia porta de saida do MENSSENGER, tanto local quanto forward
iptables -A OUTPUT -p tcp --dport 1863 -j DROP
iptables -A FORWARD -p tcp --dport 1863 -j DROP
iptables -A OUTPUT -p udp --dport 1863 -j DROP
iptables -A FORWARD -p udp --dport 1863 -j DROP


######################################
## Redirecinamento para SQUID - NAT ##
######################################
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

# Esta regra é o coração do firewall
# ela bloqueia qualquer conexão que não tenha sido permitida acima, justamente por isso ela é a última da cadeia.
iptables -A INPUT -p tcp --syn -j DROP

echo "O Firewall está sendo carregado..."
sleep 1
echo "Firewall OK!"
sleep 1
}


###################################
## Comando de inicio do firewall ##
###################################

case "$1" in
"start")
inicio; limpa; firewall_start
;;
"stop")
inicio; limpa
echo "O firewall está sendo desativado"
sleep 2
echo "ok."
;;
"restart")
echo "O firewall está sendo reiniciado"
sleep 1
echo "ok."
inicio; limpa; firewall_start
;;
*)
iptables -L -n
esac



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts