Firewall

#!/bin/bash #Este Script foi desenvolvido por Fabio Tezzei. # GNU/Linux . #Qualquer duvida poste um email para tezzei@gmail.com. #13/01/2005 echo "ESTE SCRIPT INICIA O FIREWALL, E HABILITA O PROXY"; /etc/init.d/squid stop; sync; sleep 3; sync; /etc/init.d/squid start; sleep 2; echo "Ativando FIREWALL"; #Limpando possiveis regras antigas. iptables -F; iptables -t nat -F; sync; #Estou negando todas as conexoes. iptables -P INPUT DROP; iptables -P OUTPUT DROP; iptables -P FORWARD DROP; #Declarando Variaveis de Ip,Ip externo, Ip seguro para ssh e rede. IP=`ifconfig eth0 | grep end.: | cut -c 21-33 `; IPEXT=`ifconfig eth1 | grep end.: | cut -c 21-33 `; REDE=192.168.1.0; IPSEG=192.168.1.35; #Estou Liberando o Ping externo, e uma possivel conexao com o Squid, mas apenas #no IP Declarado acima. iptables -A INPUT -p 1 --icmp-type 8 -s $IP -d 0/0 -j ACCEPT; iptables -A OUTPUT -p 1 --icmp-type 8 -s $IP -d 0/0 -j ACCEPT; iptables -A INPUT -d 127.0.0.1 -j ACCEPT; iptables -A INPUT -d $IP -j ACCEPT; iptables -A OUTPUT -d $IP -j ACCEPT; iptables -A FORWARD -d $IP -j ACCEPT; iptables -A FORWARD -d 127.0.0.1 -j ACCEPT; iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT; #Regra que permite a navegacao WEB, caso nao utilize Squid #iptables -A OUTPUT -p tcp -s $IP --sport 1024:65535 -d 0/0 --dport 80 -j ACCEPT; #iptables -A INPUT -p tcp -s 0/0 --sport 80 -d $IP --dport 1024:65535 -j ACCEPT; #Criando Regra de Mascareamento. iptables -A FORWARD -s $REDE/24 -j ACCEPT; iptables -A FORWARD -d $REDE/24 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -s $IP/24 -j MASQUERADE; #Regra para permitir ssh no firewall, por um IP Seguro. iptables -A INPUT -p 6 -s $IPSEG --sport 1024:65535 -d $IP --dport 22 -j ACCEPT; #Regra que permite o Traceroute #iptables -A INPUT -p icmp -s 0/0 -icmp type 11 -j ACCEPT; #Regra para resolucao de nomes, quando nao estiver usando Squid. #iptables -A OUTPUT -p udp -s $IP --sport 1024:65535 -d 0/0 --dport 53 -j ACCEPT; #iptables -A INPUT -p udp -s 0/0 --sport 53 -d 0/0 -d $IP --dport 1024:65535 -j ACCEPT; #Salvando regras iptables-save >/etc/backup/regras; #Levantando os modulos da tabela Nat modprobe iptable_nat; echo 1 > /proc/sys/net/ipv4/ip_forward; iptables-restore /etc/backup/regras; #echo "Verificando regras ativas"; #iptables -t nat -L; #iptables -L; #Declarando variavel do path do log do Firewall LOG=/var/log/firewall/firewall.log #Criando pasta de log if test -f /var/log/firewall/firewall.log then echo "Arquivos de LOG ja criados" exit 0 else mkdir /var/log/firewall fi; echo ---------------------------------------------------------------- > $LOG; echo "Criando Arquivo de log em /var/log/firewall/firewall.log"; echo Arquivo de log gerado por Firewall, criado por Fabio Tezzei > $LOG; echo Data da geracao. >> $LOG; date >> $LOG; echo Listando Regras. >> $LOG; iptables -n -L >> $LOG; iptables -n -L -t nat >> $LOG; echo Verificando Status do Proxy. >> $LOG; ps aux |grep squid >> $LOG; echo Verificando Portas Ativas. >> $LOG; netstat -nlt >> $LOG; netstat -nlu >> $LOG; echo Verificando processos ativos nas respectivas portas >> $LOG; fuser -v 3128/tcp >> $LOG; fuser -v 3130/udp >> $LOG; fuser -v 32768/udp >> $LOG; echo Verificando se existem portas ativas para conexoes externas, no IP $IP >> $LOG; nmap -sT -n -P0 $IP >> $LOG; nmap -sU -n -P0 $IP >> $LOG; #echo Verificando se existem portas abertas para ips externos >> $LOG; #nmap -sT -n -P0 $IPEXT >> $LOG; #nmap -sU -n -P0 $IPEXT >> $LOG; # Colocando os logs do squid nos terminais 2,3,4 echo "Utilizando os terminays 2,3,4, para visualizar a saida de logs"; tail -f /var/log/squid/cache.log >> /dev/tty2 &; tail -f /var/log/squid/store.log >> /dev/tty3 &; tail -f /var/log/squid/access.log >> /dev/tty4 &; sync; cat $LOG >> /var/log/firewall/firelogs.log; #rm -rf teste.txt && rm -rf teste2 && ifconfig eth0 >teste.txt && sleep 2 | grep end.: teste.txt | cut -c 21-33 > teste2 ; sleep 2; sync; cat teste2

Por: Fabio Tezzei






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts