rorodrigo
(usa Debian)
Enviado em 27/07/2014 - 12:18h
#/bin/bash
# Interfaces
LINK01="eth0"
INTERNA="eth1"
# Rede Interna
REINT="10.10.0.0/24"
# IP das interfaces
IPEXT="192.168.1.254/24"
IPINT="10.10.0.1/24"
# Portas liberadas
PORTAS_TCP="22,80,445,443,1400,1450,1500,3001"
PORTAS_UDP="53"
######################## Zerando as regras ###########################################
iptables -F
iptables -Z
iptables -X
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -F PREROUTING -t nat
iptables -F -t nat
iptables -t nat -F
iptables -t mangle -F
echo "Limpando as regras ...................................[ OK ]"
####################### Ativa modulos no kernel #######################################
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ip_tables
modprobe iptable_filter
modprobe nf_conntrack_ipv4
echo "Modulos Ativados .....................................[ OK ]"
## CRIA IDA E VOLTA DO ACESSO NAS CHAINS INPUT, OUTPUT E FORWARD ##########
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
###################### ATRIBUINDO SEGURANCA ##################################
#### Protecao para SYN Flood ########################################################
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Rejeitar requisicao de ICMP Echo destinado a Broadcasts e Multicasts
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#### Protecao Contra IP Spoofing ######################################################
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
#### Ativando protecao contra responses bogus ############################################
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
#### Permite o redirecionamento seguro dos pacotes#########################################
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
#### Protege contra port scanners avancadas ######################## ######################
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
#### Protege contra ping da morte ######################################################
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#### Protege contra os ataques do tipo "Syn-flood, DoS, etc" ##################################
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
#### Logar os pacotes mortos por inatividade ##############################################
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
# Protege contra pacotes que podem procurar e obter informacoes da rede interna
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
#### Protecoes contra ataques #########################################################
iptables -A INPUT -m state --state INVALID -j DROP
# Bloqueia qualquer tentativa de conexao de fora para dentro por TCP############################
iptables -A INPUT -i $LINK01 -p tcp --syn -j DROP
#### Mesmo assim fechar todas as portas abaixo de 32000 ###################################
iptables -A INPUT -i $LINK01 -p tcp --dport :32000 -j DROP
#### Protecoes contra ataques #########################################################
iptables -A INPUT -m state --state INVALID -j DROP
######################## FIM DA SEGURANCA #####################################
######################## liberando encaminhamento de pacotes; ###########################
echo 1 > /proc/sys/net/ipv4/ip_forward
################### REGRA COMPARTILHAMENTO DOS LINKS ######################
########### INTERNET NOS LINKS EXTERNO PARA REDE INTERNA ###################
iptables -t nat -A POSTROUTING -o $LINK01 -j MASQUERADE
################# Liberando o Trafego na Interface loopback ###############################
iptables -A INPUT -i lo -j ACCEPT
########### Regras FORWARD PORTAS LIBERARDAS PARA REDE INTERNA #############
echo "Compartilhamento de Internet Ativados ................[ OK ]"
################### REGRAS DE LIBERACAO DE PORTAS ############################
########## REGRAS DE LIBERACAO DE PORTAS TCP##################################
iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
################### REGRAS DE LIBERACAO DE PORTAS UDP ########################
iptables -A INPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
################## FIM LIBERACAO DE PORTAS ###################################
################## REDIRECT PARA A PORTA DO SQUID ############################
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 1500
################## Manter Conexar estabelecidas #######################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
################ REGRA QUE BLOQUEIA TUDO O QUE NAO ESTA ACIMA #############
echo "Bloqueando tudo que restou.."
iptables -A INPUT -p tcp -j DROP
iptables -A INPUT -p udp -j DROP
iptables -A FORWARD -i $LINK01 -p tcp -j DROP
iptables -A FORWARD -i $LINK01 -p udp -j DROP
#################################################################################
echo "Firewall iniciando!"