Activar repositórios necessários.
rpmforge
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
Instalar a chave GPG de DAG
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
EPEL
O Repositório EPEL (Extra Packages for Enterprise Linux) é um repositório construído por voluntários do projecto do Fedora para criar um repositório de pacotes adicionais de grande qualidade que complementa o Red Hat Enterprise Linux e distribuições compatíveis (tipo o CentOS). Este repositório fornece muitos pacotes para CentOS/RHEL, que não são parte dos repositórios oficiais, mas que são desenhados para trabalhar com estas distribuições.
wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm
Verificar os repositorios
yum repolist
Após o comando anterior, vão aparecer os repositórios disponiveis e a quantidade de pacotes em cada um deles.
Instalar o Squid e o dansguardian
yum install squid dansguardian
Squid
Editar o squid.conf
vi /etc/squid/squid.conf
O ficheiro de configuração do squid parece extenso, mas está muito bem documentado. De qualquer forma, as unicas linhas necessárias para uma minima configuração do squid são:
http_port 3128
#Definicao de ACLS
# Redes permitidas
acl AllowedNetworks src 192.168.100.0/24
# Se preferirem, em vez de colocar as redes separadas por espaco, podem ser colocadas num ficheiro e adicionadas aqui:
# acl <nome_da_acl> src "ficheiroComRedes"
# Maquinas sem acesso - Se quiserem que maquinas nao tenham acesso a internet
acl Nonet src "ficheiroIPsSemAcesso"
# Sites nao autorizados
acl sitesDeny dstdom_regex "ficheiroComListaSitesParaNaoAcederemAEles"
#Permitir / Negar ACLS definidas em cima
# Redes
http_access allow AllowedNetworks
# Localhost
http_access allow localhost
# Sites negados
http_access deny sitesDeny
# Negar tudo o resto
http_access deny all
icp_access allow AllowedNetworks
icp_access allow all
hierarchy_stoplist cgi-bin ?
#Cache stuff
cache_replacement_policy lru
# Definicao da cache - tamanho (ate 80% do espaco disponivel) NumerodeDirectoriasPrimeiroNivel NumeroDirectoriasSegundoNivel
cache_dir ufs /cache/cache1 16384 16 256
cache_dir ufs /cache/cache2 16384 16 256
store_dir_select_algorithm round-robin
# Qual o tamanho maximo de objectos a guardar na cache
maximum_object_size 31457280 KB
access_log /var/log/squid/access.log squid
acl QUERY urlpath_regex cgi-bin ?
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
visible_hostname <hostname da maquina visivel>
cache_mgr <email gestor da maquina>
cache_effective_user squid
cache_effective_group squid
coredump_dir /var/spool/squid
squid -z
/etc/init.d/squid start
chkconfig --levels 35 squid on
Dansguardian
/etc/dansguardian
dansguardian.conf
filterip =
filterport = 8080
proxyip = 127.0.0.1
proxyport = 3128
- filterip diz respeito ao IP onde o dansguardian deverá escutar por pedidos. Se deixado em branco, escuta em todos os IPs que a máquina tiver. Preencham sempre.
- filterpor a porta onde escutar. Esta é porta que devem configurar nos clientes
- proxyip o IP onde o squid está à escuta. Por defeito, é a propria maquina. Se o squid estiver numa maquina diferente, coloquem aqui o IP.
- proxyport a porta onde o SQUID escuta. Configurada no squid como http_port . Não deverá ser a mesma que o dansguardian.
No ficheiro dansguardianf1.conf
encontram-se algumas opções relativamente à filtragem de conteúdos.
Tenham atenção à opção naughtynesslimit.
As listas de conteúdos para filtrar, vamos retirar de URLBlacklist.com. Vão a download e retirem o ficheiro.
Assim que tiverem o ficheiro, descomprimam para /etc/dansguardian/. Automaticamente é criada a directoria blacklists. A configuração das listas que desejam que o dansguardian filtre é feita em vários ficheiros:
- bannedsitelist
- bannedurllist
Nestes ficheiros encontram-se linhas comentadas que podem ser descomentadas. Atenção que, um dos ficheiros diz respeito a sites e outro aos URLs. Tenham atenção a isso. A seguinte listagem exemplo é do ficheiro bannedurllist
.
#.Include</etc/dansguardian/blacklists/ads/urls>
#.Include</etc/dansguardian/blacklists/adult/urls>
#.Include</etc/dansguardian/blacklists/aggressive/urls>
#.Include</etc/dansguardian/blacklists/audio-video/urls>
#.Include</etc/dansguardian/blacklists/chat/urls>
#.Include</etc/dansguardian/blacklists/drugs/urls>
#.Include</etc/dansguardian/blacklists/entertainment/urls>
#.Include</etc/dansguardian/blacklists/frencheducation/urls>
#.Include</etc/dansguardian/blacklists/gambling/urls>
#.Include</etc/dansguardian/blacklists/government/urls>
#.Include</etc/dansguardian/blacklists/hacking/urls>
dansguardian -r
/etc/init.d/dansguardian start
chkconfig --levels 35 dansguardian on
Ligação entre dansguardian e squid.
Para que exista ligação entre o dansguardian e o squid, é necessário activar algumas opções:
No squid, existem duas linhas de configuração que temos que activar:
# Para permitir o dansguardian
acl_uses_indirect_client on
# Se nao funcionar, experimentem, na linha seguinte, alterar localhost para o nome da acl para as vossas redes permitidas
follow_x_forwarded_for allow localhost
No Dansguardian, as linhas são as seguintes:
# if on it adds an X-Forwarded-For: <clientip> to the HTTP request
# header. This may help solve some problem sites that need to know the
# source ip. on | off
forwardedfor = on
# if on it uses the X-Forwarded-For: <clientip> to determine the client
# IP. This is for when you have squid between the clients and DansGuardian.
# Warning - headers are easily spoofed. on | off
usexforwardedfor = on
http_port 127.0.0.1:3128
iptables -A INPUT -i eth0 -s 127.0.0.1 -p tcp --destination-port 3128 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --destination-port 3128 -j DROP
Referências
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html