HowTo, Sysadmin

Bastille+Squid+Dansguardian=Nicolas navegando seguro ( Atualizado )

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:

15 Comments

  1. 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)

  2. 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?

  3. 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

  4. iptables -t nat -A OUTPUT -p tcp –dport 80 -m owner –uid-owner proxy -s 192.168.0.1/24 -j ACCEPT

    assim?

  5. Tentei redirecionar com o Firestarter, mas não sei por que motivo ele não aceitou o redirecionamento transparente.

  6. 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 ?

      1. Já instalei e configurei o Squid + Dansguardian no Centos 5.0, e agora vou configurar a autenticação. Valeus pela dica.

  7. 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 ??

    1. 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

      1. 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é

  8. 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.

  9. 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

Comments are closed.