# 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