rendered paste body# TOKA IMPORTADOS --> Script Firewall!
#! /bin/bash
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#
##=========> VARIAVEIS <=====###
REDE_EXT="eth0"
REDE_INT="eth1"
IP_EXT="192.168.1.4"
IP_INT="10.0.0.1"
IP_REDE="10.0.0.30"
#----------------------------------------------------------------------------------------#
#--------------------------------> Ativa Módulos <---------------------------------------#
#----------------------------------------------------------------------------------------#
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_MASQUERADE
#----------------------------------------------------------------------------------------#
#----------------------------> Ativa Roteamento No Kernel <------------------------------#
#----------------------------------------------------------------------------------------#
echo "1" > /proc/sys/net/ipv4/ip_forward
#----------------------------------------------------------------------------------------#
#---------------------------> Proteção Contra IP Spoofing <------------------------------#
#----------------------------------------------------------------------------------------#
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
#----------------------------------------------------------------------------------------#
#-----------------------------> Proteção Contra Ping <-----------------------------------#
#----------------------------------------------------------------------------------------#
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#----------------------------------------------------------------------------------------#
#--------------------------> Proteção com SYNFLOODS <------------------------------------#
#----------------------------------------------------------------------------------------#
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#----------------------------------------------------------------------------------------#
#----------------------------------> Zera Regras <---------------------------------------#
#----------------------------------------------------------------------------------------#
$iptables -F
$iptables -X
$iptables -F -t nat
$iptables -X -t nat
$iptables -F -t mangle
$iptables -X -t mangle
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#
#----------------------------> Determina a Política Padrão <-----------------------------#
#----------------------------------------------------------------------------------------#
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP
#----------------------------------------------------------------------------------------#
#-------------------------> Proteção com SYN-Floding <-----------------------------------#
#----------------------------------------------------------------------------------------#
$iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
#----------------------------------------------------------------------------------------#
#-----------------------> Proteção Contra Ping da MOrte <--------------------------------#
$iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#----------------------------------------------------------------------------------------#
#-------------------------> Proteçao Contra o NETBUS <-----------------------------------#
$iptables -A FORWARD -p tcp --dport 12345 -j DROP
#----------------------------------------------------------------------------------------#
#---------------------> 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 $REDE_EXT -m unclean -j DROP
$iptables -A INPUT -i $REDE_EXT -m unclean -j LOG --log-level 6 --log-prefix "UNCLEAN "
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#
#----------------------> Maquinas que Nao Passariam Pelo Proxy <-------------------------#
#----------------------------------------------------------------------------------------#
#$iptables -A POSTROUTING -t nat -s 192.168.1.201/32 -o $REDE_EXT -j MASQUERADE
#----------------------------------------------------------------------------------------#
# #
#+--------------------------------------------------------------------------------------+#
#| T A B E L A F I L T E R |#
#+--------------------------------------------------------------------------------------+#
# #
#----------------------------------------------------------------------------------------#
#--------------------------> Dropa Pacotes TCP Indesejáveis <----------------------------#
#----------------------------------------------------------------------------------------#
$iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix "FWL: NEW sem syn: "
$iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
#----------------------------------------------------------------------------------------#
#--------------------------> Dropa Pacotes Mal Formados <--------------------------------#
#----------------------------------------------------------------------------------------#
#$iptables -A INPUT -i $REDE_EXT -m unclean -j LOG --log-level 6 --log-prefix "FWL: pacote mal formado: "
#$iptables -A INPUT -i $REDE_EXT -m unclean -j DROP
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#
#---------------------> Proteção Contra Port Scanner Avançados <-------------------------#
#----------------------------------------------------------------------------------------#
$iptables -N SCANNER
$iptables -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FWL: port scanner: "
$iptables -A SCANNER -j DROP
$iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $REDE_EXT -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $REDE_EXT -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $REDE_EXT -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $REDE_EXT -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $REDE_EXT -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $REDE_EXT -j SCANNER
$iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $REDE_EXT -j SCANNER
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#
#----------------------> Protecao Quanto a Ataques DoS <---------------------------------#
#----------------------------------------------------------------------------------------#
$iptables -A INPUT -i $REDE_EXT -m unclean -j DROP
$iptables -A INPUT -i $REDE_EXT -m unclean -j LOG --log-level 6 --log-prefix "UNCLEAN "
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#
#-----------------------> Proteção Contra Ping da MOrte <--------------------------------#
# Proteção contra Ping da Morte
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#----------------------------------------------------------------------------------------#
#----------------------------------------------------------------------------------------#
#------------------->Aceita os Pacotes Que Realmente Devem Entrar <----------------------#
#----------------------------------------------------------------------------------------#
$iptables -A INPUT -i ! $REDE_EXT -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,NEW -j ACCEPT
#----------------------------------------------------------------------------------------#
#-----------------------------> Proteção Contra Trinoo <---------------------------------#
#----------------------------------------------------------------------------------------#
$iptables -N TRINOO
$iptables -A TRINOO -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FWL: trinoo: "
$iptables -A TRINOO -j DROP
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 27444 -j TRINOO
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 27665 -j TRINOO
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 31335 -j TRINOO
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 34555 -j TRINOO
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 35555 -j TRINOO
#------------------------------------------------------------------------------------------#
#----------------------------> Proteção Contra Tronjans <----------------------------------#
#------------------------------------------------------------------------------------------#
$iptables -N TROJAN
$iptables -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FWL: trojan: "
$iptables -A TROJAN -j DROP
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 666 -j TROJAN
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 666 -j TROJAN
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 4000 -j TROJAN
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 6000 -j TROJAN
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 6006 -j TROJAN
$iptables -A INPUT -p TCP -i $REDE_EXT --dport 16660 -j TROJAN
#-------------------------------------------------------------------------------------------#
#------------------------------> Proteção Contra Worms <------------------------------------#
#-------------------------------------------------------------------------------------------#
$iptables -A FORWARD -p tcp --dport 135 -i $REDE_INT -j REJECT
#-------------------------------------------------------------------------------------------#
#-----> Ativa Mascaramento De Saída Roteamento Isto Que Habilita Toda a Rede Pra Fora <-----#
#-------------------------------------------------------------------------------------------#
$iptables -t nat -A POSTROUTING -o $REDE_EXT -j MASQUERADE
#-------------------------------------------------------------------------------------------#
#------------------> Criando o Direcionamento Para Proxy Transparente <---------------------#
#-------------------------------------------------------------------------------------------#
$iptables -t nat -A PREROUTING -i $REDE_INT -p tcp --dport 80 -j REDIRECT --to-port 3128
$iptables -t nat -A PREROUTING -i $REDE_INT -p tcp --dport 8080 -j REDIRECT --to-port 3128