Squid + proxy transparente + autentificação + SSL
Se você já tentou configurar seu Squid como proxy transparente e com autenticação ao mesmo tempo e nunca conseguiu, chegou a solução! NatACL, um pequeno software, porém muito útil, que faz ambos funcionarem ao mesmo tempo no Squid e que ainda trafega os dados com criptografia SSL, aumentando a segurança na autenticação.
Introdução
O NatACL é um pequeno software que trabalha junto com o Squid e Iptables para fazer funcionar o método de transparência e autenticação do Squid. Ele opera do seguinte modo:
Ao receber pacotes na porta 80, ele redireciona para a porta do serviço NatACL (porta que você define no arquivo de configuração dele), depois disso o programa faz tudo em conjunto com iptables com dados todos criptografados.
Tudo muito simples e fácil!
Para fazemos isso vamos precisar do seguintes softwares:
Vamos a instalação do NatACL:
Baixe o programa no site:
Se quiser baixar a documentação:
Após baixar o programa, vamos extraí-lo:
# tar -zxvf NatACL.20050311.tar.gz
Depois de extraí-lo entre na pasta e use o comando make:
# cd NatACL.20050311
# make
Quando for executado o comando "make", vem as perguntas para gerar a chave RSA e os certificados. Primeiramente ele vai gerar a chave RSA. Em caso de sucesso aparecerá a seguinte mensagem:
Generating a 1024 bit RSA private key
.................++++++
..............++++++
writing new private key to '/var/NatACL/cert_server.pem'
Agora vamos à pergunta para gerarmos os certificados:
Aqui ele pergunta a sigla de seu país, no meu caso BR. No caso de querer deixar em branco coloque um ".".
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: BR
Aqui ele pergunta seu estado:
State or Province Name (full name) [Some-State]: São Paulo
Aqui ele pergunta sua cidade:
Locality Name (eg, city) []: São Paulo
Aqui ele pergunta Nome da organização:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Consultoria Datacom
Aqui ele pergunta o nome da unidade da organização:
Organizational Unit Name (eg, section) []: Segurança
Aqui ele pergunta seu nome e e-mail:
Common Name (eg, YOUR name) []: Leandro Totino Pereira
Email Address []: tatototino@hotmail.com
Se nenhum erro ocorrer, vamos mover o banco de dados Mysql.DUMP para a pasta do mysql. Para isso:
# mv Mysql.DUMP /var/lib/mysql
(isso na minha distribuição Slackware)
Agora vamos criar a "database" do NatACL no MySQL:
# mysql -u <usuário administrador do mysql> -p < Mysql.DUMP
Ele vai pedir a senha do usuário do MySQL.
Ao receber pacotes na porta 80, ele redireciona para a porta do serviço NatACL (porta que você define no arquivo de configuração dele), depois disso o programa faz tudo em conjunto com iptables com dados todos criptografados.
Tudo muito simples e fácil!
Instalação
Para fazemos isso vamos precisar do seguintes softwares:
- Iptables ou ipfw;
- MySQL;
- Squid;
- NatACL;
Vamos a instalação do NatACL:
Baixe o programa no site:
Se quiser baixar a documentação:
Após baixar o programa, vamos extraí-lo:
# tar -zxvf NatACL.20050311.tar.gz
Depois de extraí-lo entre na pasta e use o comando make:
# cd NatACL.20050311
# make
Quando for executado o comando "make", vem as perguntas para gerar a chave RSA e os certificados. Primeiramente ele vai gerar a chave RSA. Em caso de sucesso aparecerá a seguinte mensagem:
Generating a 1024 bit RSA private key
.................++++++
..............++++++
writing new private key to '/var/NatACL/cert_server.pem'
Agora vamos à pergunta para gerarmos os certificados:
Aqui ele pergunta a sigla de seu país, no meu caso BR. No caso de querer deixar em branco coloque um ".".
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: BR
Aqui ele pergunta seu estado:
State or Province Name (full name) [Some-State]: São Paulo
Aqui ele pergunta sua cidade:
Locality Name (eg, city) []: São Paulo
Aqui ele pergunta Nome da organização:
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Consultoria Datacom
Aqui ele pergunta o nome da unidade da organização:
Organizational Unit Name (eg, section) []: Segurança
Aqui ele pergunta seu nome e e-mail:
Common Name (eg, YOUR name) []: Leandro Totino Pereira
Email Address []: tatototino@hotmail.com
Se nenhum erro ocorrer, vamos mover o banco de dados Mysql.DUMP para a pasta do mysql. Para isso:
# mv Mysql.DUMP /var/lib/mysql
(isso na minha distribuição Slackware)
Agora vamos criar a "database" do NatACL no MySQL:
# mysql -u <usuário administrador do mysql> -p < Mysql.DUMP
Ele vai pedir a senha do usuário do MySQL.