proxy squid
DESCRIPTION
Segurança de Servidores LinuxAutor: HumbertoTRANSCRIPT
Segurança em Servidores Linux
Proxy Squid
Prof. Humberto CaetanoFaculdade Santo Agostinho
Pós-Graduação em Redes de Computadores
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
2.20
O Proxy
● É um servidor que atende requisições dos clientes e repassa essas requisições a outros servidores
● Os servidores Proxy tem vários usos, como filtragem de conteúdo, anonimato, otimização da conexão, etc.
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
3.20
O Proxy
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
4.20
O Squid
● O Squid é um servidor de cache Proxy, que suporta HTTP, HTTPS, FTP e mais alguns protocolos.
● Permite o controle de acesso a páginas na Internet e a otimização do uso do link.
● Pode rodar em sistemas operacionais Windows e *NIX.
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
5.20
O Squid
● A instalação do Squid no sistema Debian é feita através do uso do apt-get● # apt-get install squid
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
6.20
Proxy Transparente
● O Proxy transparente é uma funcionalidade que pode ser utilizada no Squid quando não podemos configurar manualmente os computadores clientes.
● Ele permite que os clientes acessem a Internet através do proxy sem que a opção de servidor proxy esteja configurada no navegador
● Não é possível utilizarmos servidores transparentes para o protocolo HTTPS, nem autenticarmos os usuários. A segurança é feita pela liberação dos sites e pelo endereço IP do cliente.
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
7.20
Lab 20: Proxy Transparente
● Para configurarmos o Squid como proxy transparente:● # vim /etc/squid/squid.conf
– http_port 3128 transparent– http_access allow all
● # /etc/init.d/squid restart● # iptables -t nat -A PREROUTING -i eth0 -p tcp
--dport 80 -j REDIRECT --to-port 3128● # tail -f /var/log/squid/access.log
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
8.20
Permissão de Acesso a Sites
● No Squid, para bloquearmos ou liberarmos o acesso a um site ou a um conjunto de sites utilizamos as ACL's. Nelas podemos definir redes, usuários, sites, etc.
● Depois de definidas as ACL's, utilizamos o comando http_access dentro do arquivo de configuração do Squid para efetuarmos a liberação ou o bloqueio.
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
9.20
Criando Listas de Bloqueio / Liberação
● É possível criarmos listas de bloqueio ou liberação, como sites de conteúdo não permitido.
● No arquivo /etc/squid/squid.conf seria adicionada a ACL abaixo● acl blacklist url_regex -i "/etc/squid/blacklist.txt"
● Adicionaríamos o bloqueio dos sites contidos nesta ACL.● http_access deny blacklist
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
10.20
Criando Listas de Bloqueio / Liberação
● Também podemos liberar um site para uma máquina ou um conjunto de máquinas.
● No arquivo /etc/squid/squid.conf seria adicionada a ACL abaixo● acl localnet src 10.0.0.0/24
● A nossa regra de liberação, agora, ficaria assim:● http_access allow localnet
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
11.20
Utilizando Autenticação
● Com o Squid é possível autenticarmos usuários utilizando bases diversas como SAMBA, Windows AD, e local.
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
12.20
Lab 21: Proxy Autenticado● Para configuramos um Proxy Autenticado, primeiro
removemos a configuração transparente no arquivo squid.conf● http_port 3128
● Então criamos o arquivo de usuários● # touch /etc/squid/squid_passwd● root@debian:~# htpasswd /etc/squid/squid_passwd humberto● New password: ● Re-type new password: ● Adding password for user humberto
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
13.20
Lab 21: Proxy Autenticado
● Agora vamos editar o arquivo squid.conf e adicionar as linhas de configuração.● # vim /etc/squid/squid.conf
– auth_param basic realm Squid– auth_param basic program /usr/lib/squid/ncsa_auth
/etc/squid/squid_passwd
– acl autenticados proxy_auth REQUIRED
– http_access allow autenticados localnet
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
14.20
Lab 21: Proxy Autenticado
● Reiniciamos o serviço e acompanhamos o acesso.● # /etc/init.d/squid restart● # tail -f /var/log/squid/access.log
– 1341094975.729 0 10.0.0.2 TCP_DENIED/407 1610 GET http://www.globo.com/ - NONE/- text/html
– 1341094979.925 133 10.0.0.2 TCP_MISS/302 217 GET http://www.globo.com/ humberto DIRECT/186.192.82.163 -
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
15.20
Autenticando com o SAMBA
● Para que possamos utilizar o SAMBA para autenticar nossos usuários, é necessário que o servidor esteja configurado como controlador de domínio (PDC)
● Precisamos, também, liberar a pasta NETLOGON, que está no compartilhamento do servidor e criar um arquivo chamado proxyauth neste diretório contendo a palavra “allow”.
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
16.20
Autenticando com o SAMBA● Após configurado o servidor SAMBA podemos testar a
conectividade com o seguinte comando:● # /usr/lib/squid/smb_auth -W WORKGROUP -U 172.16.254.26 -d● humberto 123● Domain name: WORKGROUP● Pass-through authentication: no● Query address options: -U 172.16.254.26 -R● Domain controller IP address: 172.16.254.26● Domain controller NETBIOS name: DEBIAN● Contents of //DEBIAN/NETLOGON/proxyauth:
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
17.20
Autenticando com o SAMBA
● Agora vamos configurar o squid.conf.● # vim /etc/squid/squid.conf
– auth_param basic program /usr/lib/squid/smb_auth -W WORKGROUP -U 127.0.0.1
– auth_param basic realm Proxy Squid– auth_param basic children 5– auth_param basic credentialsttl 1 minute
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
18.20
Gerando Relatórios
● A geração de relatórios dos acessos efetuados através do Proxy é um dos pontos mais importentes. E a ferramenta mais utilizada para este fim é o SARG (http://sarg.sourceforge.net/).
● Após efetuado o download o arquivo de configuração pode ser encontrado em /etc/sarg/sarg.conf.
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
19.20
Gerando Relatórios
● Para gerarmos relatórios com o SARG basta utilizarmos o comando abaixo:● # sarg -d 30/06/2012-30/06/2012
– SARG: Period covered by log files: 30/06/2012-30/06/2012
● Agora basta acessar a página dos relatórios através do endereço http://IP_servidor/sarg
2015 Humberto Caetano @FSAPós Graduação em Redes de Computadores
20.20
Lab 22: Proxy
● Configure um proxy autenticado com servidor SAMBA para uma empresa em que os usuários tem a permissão de acesso a sites restrita.
● Crie regras para os grupos Diretoria, Administrativo, TI e Geral.