Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Criado por: Igor Pereira
- echo "Carregando o firewall..."
- #!/bin/bash
- #
- #Desabilitando o tráfego entre as placas
- #################################
- echo 0 > /proc/sys/net/ipv4/ip_forward
- #
- ##Definindo variáveis
- # Utilizar variáveis é uma boa opção quando o script é muito complexo,
- # senão, não tem necessidade.
- #########################
- #IP="192.168.1.1"
- #LOOPBACK="127.0.0.0/8"
- #INTERNET="eth0"
- #INTRANET="eth1"
- #DMZ="eth2"
- #
- #CA="10.0.0.0/8"
- #CB="172.16.0.0/12"
- #CC="192.168.0.0/16"
- #D_MULTICAST="224.0.0.0/4"
- #E_RESERVED="240.0.0.0/5"
- #LOCAL="172.16.1.0/24"
- #
- ##Apagando e restaurando as chains e tabelas
- ######################################
- iptables -Z
- iptables -F
- iptables -X
- iptables -t nat -Z
- iptables -t nat -F
- iptables -t nat -X
- iptables -t mangle -Z
- iptables -t mangle -F
- iptables -t mangle -X
- #
- ##Proteção contra ping, SYN Cookies, IP Spoofing e proteções do kernel
- ##########################################################
- echo 1 > /proc/sys/net/ipv4/tcp_syncookies
- echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
- echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
- for i in /proc/sys/net/ipv4/conf/*; do
- echo 0 > $i/accept_redirects
- echo 0 > $i/accept_source_route
- echo 1 > $i/log_martians
- echo 1 > $i/rp_filter
- echo 1 > $i/secure_redirects; done
- echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
- #Bloqueia traceroute
- iptables -A INPUT -p udp --dport 33435:33525 -j DROP
- #
- ##Carregando os módulos – Não é necessário todos os módulos,
- #somente aqueles que você irá utilizar.
- #O iptables, por padrão, carrega os módulos principais automaticamente.
- # Leia o manual abaixo.
- #Para identificar qual módulo adicional carregar, você deve elaborar todo o script
- #e depois de acordo com o nome do alvo utilizado, você carrega o mesmo módulo.
- #Por exemplo, se você utilizar a seguinte regra:
- # iptables -A FORWARD -p udp -m multiport --dport 80,1024:65535 -j DROP
- #o módulo “ipt_multiport” deve ser carregado.
- #Abaixo estão quase todos os módulos.
- ################################
- modprobe ip_tables
- modprobe iptable_nat
- modprobe iptable_filter
- modprobe iptable_mangle
- modprobe ip_conntrack
- modprobe ip_conntrack_ftp
- modprobe ip_nat_ftp
- modprobe ip_queue
- modprobe ip_gre
- modprobe ipt_LOG
- modprobe ipt_MARK
- modprobe ipt_REDIRECT
- modprobe ipt_REJECT
- modprobe ipt_MASQUERADE
- modprobe ipt_TCPMSS
- modprobe ipt_TOS
- modprobe ipt_NETMAP
- modprobe ipt_limit
- modprobe ipt_mac
- modprobe ipt_multiport
- modprobe ipt_owner
- modprobe ipt_state
- modprobe ipt_tos
- modprobe ipt_mark
- modprobe ipt_tcpmss
- modprobe ipt_string
- modprobe ipt_statistic
- modprobe nf_nat_pptp
- modprobe nf_nat_proto_gre
- ##Definindo políticas padrões
- iptables -P INPUT DROP
- iptables -P FORWARD DROP
- iptables -P OUTPUT ACCEPT
- ##Liberando a Loopback
- iptables -A INPUT -i lo -j ACCEPT
- ##Regras de segurança na internet e acessos
- #####################################
- iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
- iptables -A INPUT -m state --state NEW ! -i eth0 -j DROP # Interface de entrada da internet
- iptables -A FORWARD -m state --state NEW ! -i eth0 -j DROP
- iptables -A INPUT -m state --state INVALID -j DROP
- iptables -A FORWARD -m state --state INVALID -j DROP
- #Libera conexoes de fora para dentro
- iptables -A INPUT -p tcp -i eth0 --dport 2743 -j ACCEPT #SSH
- iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT #WEB
- #Libera conexoes de dentro para fora
- iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT #WEB
- iptables -A OUTPUT -p tcp --dport 7171 -j ACCEPT #TIBIA
- iptables -A OUTPUT -p tcp --dport 7172 -j ACCEPT #TIBIA2
- #Protecao Contra SynFlood
- iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
- iptables -A INPUT -f -j DROP
- iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
- iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
- iptables -A FORWARD -p tcp --syn -j DROP
- iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 7 -j REJECT
- #Protecao contra IP Spoof Syn
- iptables -A INPUT -i ext_face -s 0.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 127.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 10.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 172.16.0.0/12 -j DROP
- iptables -A INPUT -i ext_face -s 192.168.0.0/16 -j DROP
- iptables -A INPUT -i ext_face -s 224.0.0.0/3 -j DROP
- iptables -A INPUT -i ext_face -s 0.0.0.0/7 -j DROP
- iptables -A INPUT -i ext_face -s 2.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 5.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 7.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 10.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 23.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 27.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 31.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 36.0.0.0/7 -j DROP
- iptables -A INPUT -i ext_face -s 39.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 42.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 49.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 50.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 77.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 78.0.0.0/7 -j DROP
- iptables -A INPUT -i ext_face -s 92.0.0.0/6 -j DROP
- iptables -A INPUT -i ext_face -s 96.0.0.0/4 -j DROP
- iptables -A INPUT -i ext_face -s 112.0.0.0/5 -j DROP
- iptables -A INPUT -i ext_face -s 120.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 169.254.0.0/16 -j DROP
- iptables -A INPUT -i ext_face -s 172.16.0.0/12 -j DROP
- iptables -A INPUT -i ext_face -s 173.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 174.0.0.0/7 -j DROP
- iptables -A INPUT -i ext_face -s 176.0.0.0/5 -j DROP
- iptables -A INPUT -i ext_face -s 184.0.0.0/6 -j DROP
- iptables -A INPUT -i ext_face -s 192.0.2.0/24 -j DROP
- iptables -A INPUT -i ext_face -s 197.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 198.18.0.0/15 -j DROP
- iptables -A INPUT -i ext_face -s 223.0.0.0/8 -j DROP
- iptables -A INPUT -i ext_face -s 224.0.0.0/3 -j DROP
- #Protecao contra "ping of death"
- iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
- #Protecao contra syn-flood brute force
- iptables -N syn-flood
- iptables -A INPUT -p tcp --syn -j syn-flood
- iptables -A syn-flood -m limit --limit 10/second --limit-burst 50 -j RETURN
- iptables -A syn-flood -j LOG --log-level 4 --log-prefix 'SYN-flood attempt: '
- iptables -A syn-flood -j DROP
- #Protecao contra IP Spoofing
- iptables -A INPUT -i ext-int -s 10.0.0.0/8 -j DROP
- iptables -A INPUT -i ext-int -s 127.0.0.0/8 -j DROP
- iptables -A INPUT -i ext-int -s 172.16.0.0/16 -j DROP
- iptables -A INPUT -i ext-int -s 192.168.0.0/24 -j DROP
- iptables -A INPUT -s 0.0.0.0/7 -j DROP
- iptables -A INPUT -s 2.0.0.0/8 -j DROP
- iptables -A INPUT -s 5.0.0.0/8 -j DROP
- iptables -A INPUT -s 7.0.0.0/8 -j DROP
- iptables -A INPUT -s 10.0.0.0/8 -j DROP
- iptables -A INPUT -s 23.0.0.0/8 -j DROP
- iptables -A INPUT -s 27.0.0.0/8 -j DROP
- iptables -A INPUT -s 31.0.0.0/8 -j DROP
- iptables -A INPUT -s 36.0.0.0/7 -j DROP
- iptables -A INPUT -s 39.0.0.0/8 -j DROP
- iptables -A INPUT -s 42.0.0.0/8 -j DROP
- iptables -A INPUT -s 49.0.0.0/8 -j DROP
- iptables -A INPUT -s 50.0.0.0/8 -j DROP
- iptables -A INPUT -s 77.0.0.0/8 -j DROP
- iptables -A INPUT -s 78.0.0.0/7 -j DROP
- iptables -A INPUT -s 92.0.0.0/6 -j DROP
- iptables -A INPUT -s 96.0.0.0/4 -j DROP
- iptables -A INPUT -s 112.0.0.0/5 -j DROP
- iptables -A INPUT -s 120.0.0.0/8 -j DROP
- iptables -A INPUT -s 169.254.0.0/16 -j DROP
- iptables -A INPUT -s 172.16.0.0/12 -j DROP
- iptables -A INPUT -s 173.0.0.0/8 -j DROP
- iptables -A INPUT -s 174.0.0.0/7 -j DROP
- iptables -A INPUT -s 176.0.0.0/5 -j DROP
- iptables -A INPUT -s 184.0.0.0/6 -j DROP
- iptables -A INPUT -s 192.0.2.0/24 -j DROP
- iptables -A INPUT -s 197.0.0.0/8 -j DROP
- iptables -A INPUT -s 198.18.0.0/15 -j DROP
- iptables -A INPUT -s 223.0.0.0/8 -j DROP
- iptables -A INPUT -s 224.0.0.0/3 -j DROP
- iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 7 -j REJECT
- #Protecao contra port scanners ocultos
- iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
- iptables -A INPUT -s 0.0.0.0/0 -p icmp -j DROP
- #Bloqueando tracertroute
- iptables -A INPUT -p udp -s 0/0 -i eth1 --dport 33435:33525 -j DROP
- #Bloqueando Ataques Nivel Medio
- iptables -A INPUT -m state --state INVALID -j DROP
- #Regra simples de bloqueiar
- iptables -N conn-flood
- iptables -I INPUT 1 -p tcp --syn -j conn-flood
- iptables -A conn-flood -m limit --limit 7/s --limit-burst 20 -j RETURN
- iptables -A conn-flood -j DROP
- iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j ACCEPT
- iptables -A INPUT -p icmp -j DROP
- #Bloqueando ataques UDP
- iptables -N udp-flood
- iptables -A INPUT -p UDP -f -j DROP
- iptables -A INPUT -p UDP --dport 7 -j DROP
- iptables -A INPUT -p UDP --dport 19 -j DROP
- iptables -A INPUT -p UDP -m pkttype --pkt-type broadcast -j DROP
- iptables -A INPUT -p UDP -m limit --limit 3/s -j ACCEPT
- iptables -A OUTPUT -p udp -m state --state NEW -j ACCEPT
- iptables -A OUTPUT -p udp -m limit --limit 100/s -j ACCEPT
- iptables -A OUTPUT -p udp -j DROP
- iptables -A OUTPUT -p udp -j udp-flood
- iptables -A udp-flood -p udp -m limit --limit 200/s -j RETURN
- iptables -A udp-flood -j LOG --log-level 4 --log-prefix 'UDP-flood attempt: '
- iptables -A udp-flood -j DROP
- #Bloqueando traceroute
- iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP
- #Bloqueia toda entrada com excessao das regras acima
- iptables -A INPUT -j DROP
- #Limita a rate do SSH
- iptables -A INPUT -p tcp --dport 2743 -m state --state NEW -m recent --set --name SSH-LIMIT
- iptables -A INPUT -p tcp --dport 2743 -m state --state NEW -m recent --update --rttl --seconds 60 --hitcount 20 -j REJECT --reject-with tcp-reset --name SSH-LIMIT
- #Anulando resposta ICMP
- echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
- #Bloqueia conexoes nas demais portas
- iptables -A INPUT -p tcp --syn -j DROP
- #Regras IPFilter
- iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
- echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
- echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
- echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
- echo 0 > /proc/sys/net/ipv4/ip_forward
- echo 1 > /proc/sys/net/ipv4/tcp_syncookies
- echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
- iptables -A INPUT -m state --state INVALID -j DROP
- #Cria log dos bloqueios - Ativar somente se necessario
- #iptables -I INPUT 5 -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
- echo "Firewall ativado!"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement