#!/bin/sh # # # LO_IFACE="lo" LO_IP="127.0.0.1" REDE_10MB="189.115.93.40/29" REDE_100MB="177.135.85.33/29" ADMIN="200.146.34.231" IFACELOCAL="eth1" IPTABLES="/usr/sbin/iptables" case "$1" in start) echo -e 'Iniciando Firewall Pessoal..\n' ########Carregando os Modulos do Kernel############## modprobe ip_tables modprobe ipt_LOG ########LocalHost - Aceita todos os pacotes########### $IPTABLES -A INPUT -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -s $LO_IP -j ACCEPT ########aceita todas as conexoes de saida############ $IPTABLES -A OUTPUT -j ACCEPT ########aceita todas conexoes de entrada pela rede local $IPTABLES -A INPUT -i $IFACELOCAL -j ACCEPT $IPTABLES -A FORWARD -i $IFACELOCAL -j ACCEPT ########liberar tudo para estas redes############# $IPTABLES -A INPUT -s $REDE_10MB -j ACCEPT $IPTABLES -A INPUT -s $ADMIN -j ACCEPT $IPTABLES -A INPUT -s $REDE_100MB -j ACCEPT ########## $IPTABLES -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT ##########negar as conexoes tcp iniciadas externamente e registra-las########## #$IPTABLES -A INPUT -p tcp -m state --state NEW -j LOG #$IPTABLES -A INPUT -p tcp -m state --state NEW -j DROP ##########liberando NTP######################## $IPTABLES -A INPUT -p udp --dport 123 -j ACCEPT ###########liberando DNS####################### $IPTABLES -A FORWARD -p udp --dport 53 -j ACCEPT $IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m recent --set --name HIGHF --rsource iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m recent --update --seconds 1 --hitcount 15 --name HIGHF --rsource -j LOG --log-prefix "DNS abuse 15/1s: " iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m recent --update --seconds 1 --hitcount 15 --name HIGHF --rsource -j DROP iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m recent --set --name LOWF--rsource iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m recent --update --seconds 7 --hitcount 35 --name LOWF --rsource -j LOG --log-prefix "DNS abuse 35/7s: " iptables -A INPUT -p udp -m udp --dport 53 -m state --state NEW -m recent --update --seconds 7 --hitcount 35 --name LOWF --rsource -j DROP ##########Liberando Porta API################# $IPTABLES -A INPUT -s 177.135.85.33 -j ACCEPT $IPTABLES -A INPUT -s 200.146.34.20 -j ACCEPT $IPTABLES -A INPUT -s 177.156.93.68 -j ACCEPT $IPTABLES -A INPUT -s 189.115.93.166/30 -j ACCEPT ##########libera porta 80 $IPTABLES -A INPUT -p tcp -s 0/0 --dport 21 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 --dport 8083 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 --dport 8080 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 --dport 8081 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 --dport 8082 -j ACCEPT #Permitir acesso SSH originado pela rede espeficicada em $ssh #$IPTABLES -A INPUT -p tcp -s $SSH --dport 22 -j ACCEPT #$IPTABLES -A INPUT -p tcp -s $ADMIN --dport 22 -j ACCEPT ##########as demais tentativas a SSH, negar #$IPTABLES -A INPUT -p tcp -s 0/0 --dport 22 -j LOG #$IPTABLES -A INPUT -p tcp -s 0/0 --dport 22 -j DROP ##########Negar tudo que nao se enquadrar nas regras anteriores $IPTABLES -A INPUT -j DROP $IPTABLES -A FORWARD -j DROP echo -e 'Firewall Pessoal Iniciado ..\n' ;; stop) echo -e 'Parando Firewall Pessoal ..\n' # Limpando regras $IPTABLES -F ;; restart) echo -e 'Reiniciando Firewall Pessoal, aguarde ..\n' $0 stop sleep 2 $0 start ;; *) echo "Sintaxe: $0 [ start | stop | restart ]" ;; esac