Escolar Documentos
Profissional Documentos
Cultura Documentos
Obs.: Vou usar meu editor preferido, o Vim, quando eu pedir para editar um arquivo, usem o editor de
arquivo de sua escolha.
Começando com as atualizações dos pacotes e também, atualizar o sistema com os seguintes comandos:
# apt-get update
# apt-get upgrade
Nosso servidor precisa de duas placas de rede, uma para Internet e outra para rede local. Supondo que
temos estas duas placas de rede, vamos determinar que:
# vim /etc/network/interfaces
mail.vivaolinux.com.br/artigos/impressora.php?codigo=13939 1/8
29/01/13 Servidor Debian 6 DHCP + Squid + IPtables [Artigo]
allow-hotplug eth0
#NetworkManager
#iface eth0 inet dhcp #a placa eth0 tem que ta conectada com a internet
#Lan eth1
allow-hotplug eth1 #quando subi o sistema ele já carrega com essas configurações como padrão
iface eth1 inet static #setando IP na mão
address 192.168.100.1 #IP da placa de rede
netmask 255.255.255.0 #mascara da sub rede
network 192.168.100.0 #endereço da rede
broadcast 192.168.100.255 #broadcast da rede
# /etc/init.d/networking restart
# ifconfig
Acessar o diretório:
# cd /etc/dhcp/
# mv dhcpd.conf dhcpd.conf.bkp
# vim dhcpd.conf
ddns-update-style none;
default-lease-time 86400; #com esses valores, os IPs ficaram emprestados durante 8 horas e após 8 horas
vai ter uma nova requisição de IP
max-lease-time 604800;
authoritative; #nosso servidor vai ser o principal na rede, ele vai atender todas requisições de IPs
mail.vivaolinux.com.br/artigos/impressora.php?codigo=13939 2/8
29/01/13 Servidor Debian 6 DHCP + Squid + IPtables [Artigo]
subnet 192.168.100.0 netmask 255.255.255.0 { #aqui vamos colocar o IP da nossa rede local, e a mascara
de sub rede
range 192.168.100.5 192.168.100.10; #aqui vamos colocar o range de IPs do nosso servidor, vamos
entregar 5 IPs para testes
option domain-name-servers 8.8.4.4, 8.8.8.8; #aqui vamos colocar o nosso servidor DNS, tem que ser o
mesmo que esta configurado em nosso modem ou roteador, ou pode ser o do Google mesmo
option domain-name "dominio.local"; #aqui vamos colocar um domínio de DNS, se você tiver um AD ou
servidor BIND 9 rorando na empresa, podemos usar o dominio local da empresa
option routers 192.168.100.1; #esse IP é o que vai fazer o roteamento dos pacotes, é o IP do nosso servidor
DHCP
option broadcast-address 192.168.100.255; #broadcast da rede
}
#nessa parte podemos configurar o servidor para entrega o mesmo IP para um determinado cliente da rede
local:
#host TESTE { #nome do host
#hardware ethernet 1c:4b:d6:f9:09:42; #adiciona o MAC do computador da rede
#fixed-address 192.168.100.2; #escolha um IP valido para o host
#}
Editar o arquivo:
# vim /etc/default/dhcp3-server
INTERFACES="eth1"
# /etc/init.d/isc-dhcp-server restart
Se tudo tiver correto, o serviço vai subir. Se apresentar alguma falha, temos que ver os arquivos de
configuração novamente para procurar o problema.
mail.vivaolinux.com.br/artigos/impressora.php?codigo=13939 3/8
29/01/13 Servidor Debian 6 DHCP + Squid + IPtables [Artigo]
# cd /etc/squid3
# mv squid.conf squid.conf.bkp
# vim squid.conf
http_port 3128 transparent #proxy transparente é super interessante e viável para uma grande ou pequena
rede local
cache_dir ufs /var/spool/squid3 100 16 256 #o primeiro numero o "100" é o tamanho do arquivo em KB,
aqui podemos escolher quando KB nosso arquivo vai ter
cache_mem 50 MB #nessa parte vamos disponibilizar 50MB de memoria RAM para o Squid, podem mudar
conforme a necessidade disponibilidade de cada um
visible_hostname NOME #aqui vai o nome do nosso servidor no rodapé da pagina
#regras;
acl REDE01 src 192.168.100.0/24 #regra para rede local
acl LIBERAR url_regex "/etc/squid3/LIBERAR.txt" #regra para o arquivos de sites e palavras liberados
acl NEGAR url_regex "/etc/squid3/NEGAR.txt" #regra para o arquivo de sites e palavras proibidas
#acl diretor src 192.168.100.7 #essa regra é para liberar um determinado IP para navegação sem restrições
#http_access allow all diretor
http_access allow all REDE01 LIBERAR #vamos liberar o acesso aos sites e palavras que estão no arquivo
LIBERAR.txt
http_access deny all REDE01 NEGAR #vamos negar o acesso para rede local dos sites e palavras que estão
dentro do arquivo NEGAR.txt
# vim NEGAR.txt
Dentro desse arquivo, vamos colocar os sites e palavras que vamos proibir o acesso.
# vim LIBERAR.txt
Dentro deste arquivo, vamos colocar os sites e palavras permitidos em nossa rede local.
# /etc/init.d/squid3 restart
Se tudo tiver OK, o Squid vai subir sem problemas. Caso o serviço não suba, temos que verificar os arquivos
e procurar o possível erro.
# cd /home
# vim firewall.sh
#! /bin/bash
#rezando as regras;
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t mangle -F
#compartilhando a internet;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#Proxy transparente, tratando dos protocolos UDP e TCP, e movendo o trafego das portas 80,443 para
porta 3128;
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
mail.vivaolinux.com.br/artigos/impressora.php?codigo=13939 5/8
29/01/13 Servidor Debian 6 DHCP + Squid + IPtables [Artigo]
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p udp --dport 443 -j REDIRECT --to-port 3128
# chmod +x firewall.sh
Toda as vezes que precisarmos compartilhar a Internet com os computadores da rede local e ativar o Squid
Transparente, vamos ter que executar o script:
# ./firewall.sh
- Não seria interessante colocar o script de firewall para ativar o script de forma automática, e na inicialização
do sistema?
É vantajoso, pois se o nosso servidor desligar, quando subir, não vai precisar dar start no script de firewall.
# vim /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
ifdown eth0
ifdown eth1
ifup eth0
ifup eth1
./home/firewall.sh
exit 0
Adicionamos em nosso script, o comando ifdown e ifup para subir nossas interfaces de rede, só para
garantir. E também, colocamos para subir o nosso script de firewall.
Vou ensinar a monitorar um determinado IP de um determinado usuário sem precisar instalar e configurar o
famoso SARG.
Bem amigos, quem chegou até aqui, é porque conseguiu fazer o nosso servidor DHCP + Squid + IPtables
funcionar.
Vou mostrar que é possível gerar um simples relatório do arquivo "access.log" do Squid.
Vamos ao diretório:
# cd /home
# vim monitoramento.sh
#!/bin/bash
mail.vivaolinux.com.br/artigos/impressora.php?codigo=13939 7/8
29/01/13 Servidor Debian 6 DHCP + Squid + IPtables [Artigo]
# chmod +x monitoramento.sh
# ./monitoramento
Responder às perguntas e pronto! Vai gerar um relatório da navegação do usuário no diretório /home com a
data, nome do usuário e até mesmo o que ele acessou!
Comentem o que acharam, por favor, pois críticas construtivas são sempre bem-vindas!
Até a próxima.
http://www.vivaolinux.com.br/artigo/Servidor-Debian-6-DHCP-+-Squid-+-IPtables
mail.vivaolinux.com.br/artigos/impressora.php?codigo=13939 8/8