Antes do bloqueio vamos configurar o cache, para acelerar um pouco a navegação nos sites liberados. O cache e uma cópia do site que fica no disco do servidor, sendo assim depois de um primeiro acesso ao site, o proxy não precisa “pegar” na internet o site inteiro, apenas as modificações no mesmo.
Instalaremos assim o squid:
#apt-get install squidFaremos o backup da configuração padrão
mv /etc/squid/squid.conf squid.conf.oldDepois iremos configura-lo:
#vim /etc/squid/squid.confPrimeiro devemos saber que o squid pode funcionar em modo transparente ou em modo autenticado, eu prefiro o transparente, porquê evita de ter de configura-lo em cada equipamento.
Outra coisa que vamos configurar e a pasta onde ele irá fazer cache, e a politica de substituição dos arquivos no cache. Vamos configurar também as redes que o squid irá servir, alem de outras coisinhas que comentei na conf abaixo:
#Configuracao do proxy transparent na porta 4545
http_port 4545 transparent
#configuracoes default
#configuracao da acl para ips que estao na internet
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl purge method PURGE
acl CONNECT method CONNECT
#Portas que serao tratadas pelo Proxy
acl SSL_ports port 433 563 10000
acl Safe_ports port 80 # http
acl Safe_ports port 20 # ftp-data
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 25 # pop
acl Safe_ports port 110 # smtp
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#configuracao para funcionamento do squidGuard
redirect_program /usr/bin/squidGuard
#Permitindo acesso da rede local e negando para acessos externos
acl redelocal src 192.168.25.0/24
http_access allow redelocal
http_access deny manager !localhost
http_access allow all
###CACHE###
#Tamanho do Cache na Memoria Ram
cache_mem 350 MB
maximum_object_size_in_memory 250 KB
#Tamanho do Cache em Disco
maximum_object_size 32 MB
minimum_object_size 0 KB
#Porcentagem de uso de Cache que faz o squid descartar
cache_swap_low 90
cache_swap_high 95
#localizacao e tamanho do cache em disco
cache_dir ufs /etc/squid/cache 10000 128 256
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
Agora precisamos criar e dar permissão no diretório de cache:#mkdir /etc/squid/cacheAgora vamos instalar o SquidGuard, ele permite que usemos imensas listas de bloqueio sem a perda de desempenho do Squid. Vou colocar apenas os comandos para a configuração do mesmo, no site do guia do hardware você encontra um excelente tutorial , e o melhor que realmente funciona. O link está aqui http://www.hardware.com.br/tutoriais/filtro-conteudo-squidguard/ .
#chmod 777 /etc/squid/cache
#apt-get install squidguardEsses comandos permitiram que você instalasse o SquidGuard, baixa-se as listas de bloqueios, agora vamos configurar o squidGuard.conf
#wget -c http://squidguard.mesd.k12.or.us/blacklists.tgz
#wget -c http://www.shallalist.de/Downloads/shallalist.tar.gz
#cp blacklists.tgz shallalist.tar.gz /var/lib/squidguard/db/
#cd /var/lib/squidguard/db/
#tar -zxvf blacklists.tgz
#tar -zxvf shallalist.tar.gz
#rm -f blacklists.tgz shallalist.tar.gz
#vim /etc/squid/squidGuard.confAgora vamos configurar a ACL white que criamos:
dbhome /var/lib/squidguard/db logdir /var/log/squid src diretores { #Aqui ficam os ips liberados ip 192.168.25.100 ip 192.168.25.53 } dest white { domainlist white/domains urllist white/urls } dest ads { domainlist blacklists/ads/domains urllist blacklists/ads/urls } dest aggressive { domainlist blacklists/aggressive/domains urllist blacklists/aggressive/urls } dest audio-video { domainlist blacklists/audio-video/domains urllist blacklists/audio-video/urls } dest drugs { domainlist blacklists/drugs/domains urllist blacklists/drugs/urls } dest gambling { domainlist blacklists/gambling/domains urllist blacklists/gambling/urls } dest porn { domainlist blacklists/porn/domains urllist blacklists/porn/urls } dest proxy { domainlist blacklists/proxy/domains urllist blacklists/proxy/urls } dest redirector { domainlist blacklists/redirector/domains urllist blacklists/redirector/urls } dest spyware { domainlist blacklists/spyware/domains urllist blacklists/spyware/urls } dest violence { domainlist blacklists/violence/domains urllist blacklists/violence/urls } dest warez{ domainlist blacklists/warez/domains urllist blacklists/warez/urls } dest porn2{ domainlist BL/porn/domains urllist BL/porn/urls } dest socialnet{ domainlist BL/socialnet/domains urllist BL/socialnet/urls } dest tracker{ domainlist BL/tracker/domains urllist BL/tracker/urls } acl { diretores{ pass any } default { pass white !ads !aggressive !audio-video !drugs !gambling !porn !proxy !redirector !spyware !violence !warez !porn2 !socialnet !tracker all redirect http://amcollucci.com.br }
# mkdir /var/lib/squidguard/db/whiteAgora vamos compilar as listas, e atribuir as permissões aos arquivos
# touch /var/lib/squidguard/db/white/domains
# touch /var/lib/squidguard/db/white/urls
# squidGuard -C allSe você tiver seguido todos os passos corretamente, você agora estará rodando o squid, porem ainda falta uma coisinha temos de fazer o Firewall redirecionar para a porta do squid.
# chown -R proxy:proxy /var/lib/squidguard/db/*
# find /var/lib/squidguard/db -type f | xargs chmod 644
# find /var/lib/squidguard/db -type d | xargs chmod 755
# squid -k reconfigure
#vim /etc/init.d/firewall.sh
#!/bin/bash
echo "Parando o forward pelo kernel"
echo 0 > /proc/sys/net/ipv4/ip_forward
echo "Iniciando o forward pelo kernel"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "configurando rota default"
route add default gw ip_do_roteador_ou_modem
echo "configurando dns"
rm /etc/resolv.conf
echo nameserver 8.8.8.8 >> /etc/resolv.conf
echo "Limpando todas as tabelas"
iptables -F
iptables -t nat -F
iptables -t mangle -F
echo "criando liberacoes"
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
echo "liberando o loopback"
iptables -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
echo "Criando a regra de NAT"
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo "Redirecionando para o Squid"
iptables -t nat -A PREROUTING -s 192.168.25.0/24 -p tcp --dport 80 -j REDIRECT --to-port 4545
iptables -t nat -A PREROUTING -s 192.168.25.0/24 -p udp --dport 80 -j REDIRECT --to-port 4545
echo "Iniciando o forward pelo kernel"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 'Firewall Amcollucci ok'
exit 0
O ip de vermelho deve ser alterado para o ip do seu modem.Reinicie o seu firewall e pronto! Voi-lá seu server estará ok!
Nenhum comentário:
Postar um comentário