quinta-feira, 23 de maio de 2013

Servidor Debian – Parte 4

Bom agora vamos trabalhar no bloqueio as paginas Webs, coisa que vai tornar você um cara muito prezado por todos os funcionários da sua empresa.
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 squid
Faremos o backup da configuração padrão
mv /etc/squid/squid.conf squid.conf.old
Depois iremos configura-lo:
#vim /etc/squid/squid.conf
Primeiro 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/cache
#chmod 777 /etc/squid/cache
Agora 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/ .
#apt-get install squidguard
#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
Esses comandos permitiram que você instalasse o SquidGuard, baixa-se as listas de bloqueios, agora vamos configurar o squidGuard.conf
#vim /etc/squid/squidGuard.conf
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
}
Agora vamos configurar a ACL white que criamos:
# mkdir /var/lib/squidguard/db/white
# touch /var/lib/squidguard/db/white/domains
# touch /var/lib/squidguard/db/white/urls
Agora vamos compilar as listas, e atribuir as permissões aos arquivos
# squidGuard -C all
# 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
Se 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.
#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