Depois da odisséia para que a máquina de Nicolas funcionasse veio a hora de por restrições e implementar um pouco de segurança na máquina do meu filhote.
Inicialmente rodei o Bastille para fazer o Hardening do S.O. tirando as possiveis brechas de segurança. Como fiz isso fica para um outro post que saira muito em breve.
Depois foi a vez da dupla Squid + Dansguardian evitando assim acessos a sites indevidos. Apesar dele ter apenas 4 anos alguns cliques em banners infonesivos podem levá-lo ao lado negro da internet, coisa que ainda está muito cedo para acontecer.
Agora vou mostrar como isso foi feito de forma fácil e rápida
Inicialmente instalei o pacotes necessários
OBS: Não vou colocar o sudo antes porque tudo foi feito no Debian Lenny, lembre-se de usar o sudo antes dos comandos se estiver usando o Ubuntu.
aptitude install squid dansguardian sysvconfig
Após a instalação configurei o Squid
cp /etc/squid/squid.conf /etc/squid/squid.conf.original
vim /etc/squid.conf
No Squid configurei as seguintes linhas:
http_port 3128 transparent
cache_effective_user proxy
Após configurar o Squid foi necessário reiniciá-lo
service squid restart
OBS: O comando service normalmente é usado em distros RedHat like, porém podemos usá-lo nos Debian like instalando o pacote sysvconfig.
Depois foi a vez de configurar o Dansguardian
vim /etc/dansguardian/dansguardian.conf
Comentei a seguinte linha:
UNCONFIGURED – Please remove this line after configuration
Editei a linha abaixo:
# language to use from languagedir.
# language = ‘ukenglish’ #Configuracao original comentado por Alex
language = ‘portuguese’
Fiz o download da blacklist
Descompactei a blacklist no diretório /etc/dansguardian/lists/
cd /etc/dansguardian/lists
tar zxvf shallalist.tar.gz
Renomeei o diretório shallalist1 para blacklists
mv shalalist1 blacklists
Movi o conteúdo do diretório blacklists/BL para blacklists
cd /etc/dansguardian/lists/blacklists/
mv -fr BL/* .
Editei o arquivo /etc/dansguarian/lists/bannedsitelist adcionando as categorias existentes no diretório /etc/dansguardian/lists/blacklists/ e tirando o comentário das catgorias que quero bloquear.
Após as configurações foi necessário iniciar o Dansguardian
service dansguardian start
Para finalizar configurei o iptables para fazer proxy transparente executando os seguintes comandos
iptables -t nat -A OUTPUT -p tcp –dport 80 -m owner –uid-owner proxy -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -m tcp –dport 3128 -m owner –uid-owner dansguardian -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080
iptables -t nat -A OUTPUT -p tcp -m tcp –dport 3128 -j REDIRECT –to-ports 8080
Para que isso fosse executado após reinciar a máquina criei um pequeno script de inicialização
iptables-save > /etc/firewall
vim /etc/init.d/iptrestore
#!/bin/sh
iptables-restore < /etc/firewall
chmod 755 /etc/init.d/iptrestore
update-rc.d iptrestore defaults
Depois disso tudo veio a hora do teste. Digitei no Iceweasel www.playboy.com e shoowwww.
As fotos das mulheres peladas foram substituidas pela tela abaixo:
Tadinho do teu filho!! hauhauau
Vlw pela dica!!
Cara, valeu pela dica…
Eu ainda acho um pouco difícil esse tipo de configuração no linux. Existe alguma interface gráfica em GTK para fazer esse tipo de configuração? (firewall, permissões a sites.. etc)
Po, o dansguardian bloqueou somente o servidor e nada nas máquinas clientes.
Como faço para liberar o servidor e bloquear somente nos clientes?
E outra, porque é 8080 nas regras do firewall a porta em vez de 3128 do squid?
Olá Rodrigo,
Para liberar o servidor adicione no arquivo exceptioniplist o ip do servidor
Para bloquear as estações adicione na regra do iptables a opção -s ip_da_rede em todas as regras.
O Dansguardian escuta na porta 8080, o squid redireciona todas as requisições para ele.
Sds,
Alex
iptables -t nat -A OUTPUT -p tcp –dport 80 -m owner –uid-owner proxy -s 192.168.0.1/24 -j ACCEPT
assim?
Tentei redirecionar com o Firestarter, mas não sei por que motivo ele não aceitou o redirecionamento transparente.
Não ta funcionando o proxy transparente… apenas o servidor esta boqueando…
Alex,
Como fazer a interação do Dansguardian com o Active Directory, para que eu possa utilizar melhor os usuários já criados na rede ?
Olá Eduardo,
Nesse caso que irá autenticar é o squid. Para facilitar sua vida fiz uma pequena busca no oráculo e encontrei os howtos abaixo:
http://www.cyberciti.biz/tips/howto-configure-squid-ldap-authentication.html
http://howtoforge.com/dansguardian-with-multi-group-filtering-and-squid-with-ntlm-auth-on-debian-etch
Abs,
Alexos
Já instalei e configurei o Squid + Dansguardian no Centos 5.0, e agora vou configurar a autenticação. Valeus pela dica.
Alex,
Teria como criar uma regra para limitar o usuário ( IP ) a somente acessar uma quantidade determinada de horas por dia, sendo que em momentos alternados. Explicando melhor … um determinado usuário só poder acessar 1 hora por dia , sendo 20 min pela manha, 20 min na hora do almoço e 20 pela tarde. Isso é possível ??
Olá Eduardo,
Têm sim.
Verifique a seguinte linha no inicio do arquivo bannedsitelist
# Time limiting syntax:
# #time:
# Example:
##time: 9 0 17 0 01234
# Remove the first # from the line above to enable this list only from
# 9am to 5pm, Monday to Friday.
Ai você poderá configurar as regras de acesso por horário.
Abs,
Alexos
Alex,
Essa limitação de seria de quantidades de horas, independente do horário. Deixa eu explixar, o usuário tem permissão de acesso de somente 1 hora por dia. Ele pode user 20 min pela manhã, 10 min na hora do almoço até completar suas 1 horas totais. Dei uma olhada no arquivo que vc falou, mas pelo que vi ele determina a hora do dia que o usu[ário pode acessar e não a quantidade de horas independente do horário.
Opa Eduardo,
Realmente nunca presenciei esse estado de sitio em nenhum lugar que implementei o Dansguardian. 🙂
Se não estou enganado este tipo de regra tem que ser via firewall já que ele é quem controla a saída para a internet enquanto que o proxy só faz o controle de conteúdo.
Dê uma olhada nessa minha sugestão.
Abs,
Alexos
Leonardo, boa tarde.
Estou tentando fazer a configiração de limitação por tempo, mas não da resultado.
Outra informação, é que nao tinha estas linhas no meu arquivo bannedsitelist.
Será que minha versão nao comporta ?
ipcop 1.4.21
Grato
André