Você está na página 1de 15

O objetivo desse artigo é a configuração completa de um servidor simples, porém bem funcional.

Não utilizaremos um
firewall, apenas um script que habilitará a navegação em rede e redirecionará o trafego para o squid. Além do squid,
configuraremos um servidor dhcp, ssh para acesso remoto, apache2 para visualizarmos o relatório de trafego gerado
pelo sarg. Dessa forma, o artigo foi escrito especialmente para quem nunca configurou um servidor.

Introdução
Nossa base será o Debian. Para esta instalação, poderá baixar a versão netinst usando este link:

http://cdimage.debian.org/debian-cd/6.0.0/i386/iso-cd/debian-6.0.0-i386-netinst.iso

Ou se preferir baixar outra versão da distribuição, acesse: http://www.debian.org

Atenção: Este artigo não tem por objetivo abranger a instalação ou particionamento de disco. Para isso existem
inúmeros artigos aqui mesmo no VOL com este objetivo.

Algumas sugestões de artigos para instalação/particionamento:


http://www.vivaolinux.com.br/artigo/Esquemas-de-particionamento-e-sistemas-de-arquivos?pagina=1
http://www.vivaolinux.com.br/artigo/Fazendo-particionamento-avancado-no-Debian
http://www.vivaolinux.com.br/artigo/Particionamento-de-disco-(HD)
http://www.vivaolinux.com.br/artigo/Instalando-o-Debian-Lenny-Linux?pagina=1
http://www.vivaolinux.com.br/artigo/Instalando-o-Debian-em-uma-maquina-virtual-(VirtualBox)/?pagina=1

Observações:
1-) Durante a instalação, na tela de “Seleção de Software” deixe marcado apenas última opção (sistema básico).
2-) Como instalamos o sistema básico o mesmo ainda não possui o pacote sudo instalado ou configurado. Todavia para
todas as configurações que faremos, use o root, ou se preferir poderá logar-se com seu usuário, e depois usar o
comando su para obter os privilégios de root.
3-) Nossa forma de conexão com a internet, será por ADSL, IP dinâmico, conectado através de pppoe. O modem possui
o IP 10.0.0.1, e distribui via DHCP endereços entre 10.0.0.100 e 10.0.0.199.
4-) Nossa rede interna será 192.168.0.0, e nosso servidor terá o IP 192.168.0.1.
5-) O objetivo do servidor DHCP é fornecer um IP às maquinas para que estas estejam em rede com as outras, porém a
navegação não estará disponível.

Configurando as interfaces de rede


Vamos verificar inicialmente se as placas de rede foram reconhecidas pelo sistema, para depois carregarmos os
módulos. Para isso, use o comando lspci, que exibe uma lista de todo o hardware (este passo é mais didático do que
prático, visto que usaremos dmesg | grep eth para identificar qual módulo é de qual placa):

# lspci

Identifique as placas de rede, como no exemplo da saída do comando abaixo:

...
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:08.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 40)

Usaremos agora o comando dmesg | grep eth para identificar qual modulo carregaremos para cada placa:

# dmesg | grep eth


[ 2.342656] eth0: registered as PCnet/FAST III 79C973
[ 2.982290] eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
...

1
De acordo com a saída do comando, eth0 é a placa PCnet e eth1 é placa Intel. Usaremos eth0 para a conexão externa
(internet) e eth1 para a rede interna. Voce poderá inverter se preferir. Esta é a minha preferencia, mas há quem prefira
fazer o contrário.

Utilize agora o comando lsmod para ver uma lista dos módulos que estão carregados na memória, mesmo os que não
estão em uso. Baseado nessa lista carregaremos os módulos necessários:

# lsmod

A saída do comando, será mais ou menos assim:

...
e1000 77317 0
pcnet32 22226 0
...

Carregaremos agora os módulos manualmente:

# modprobe e1000
# modprobe pcnet32

Com os módulos carregados, já podemos dar um up nas eths:

# ifconfig eth0 up
# ifconfig eth1 up

Agora é só conferir se está tudo OK. Use o comando ifconfig. Caso a saída do comando não caber em sua tela,
adicione “| more” ao ifconfig (sem aspas). O símbolo antes da palavra more é a barra vertical, mais conhecida como
“pipe”.

# ifconfig
eth0 Link encap: Ethernet Endereco de HW 08:00:27:f6:c4:fb
UP BROADCASTMULTICAST MTU:1500 Metrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

eth1 Link encap: Ethernet Endereco de HW 08:00:27:8b:28:34


UP BROADCASTMULTICAST MTU:1500 Metrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
IRQ:9 Endereco de E/S:0xd240

lo Link encap:Loopback Local


inet end.: 127.0.0.1 Masc: 255.0.0.0
endereco inet6: ::1/128 Escopo Maquina
UP LOOPBACKRUNNING MTU:16436 Metrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Se o resultado do comando for parecido com este acima, as placas estão carregadas. Agora adicionaremos os módulos
ao arquivo modules para que o processo fique automático. Use o editor de sua preferencia. Visto que usamos a netinst
para instalar o sistema, apenas o vi e o nano estarão disponíveis. Visto que o nano é mais simples de usar, usaremos ele
no artigo todo.

# nano /etc/modules

Insira o seguinte antes da linha loop:

2
alias eth0 pcnet32
alias eth1 e1000

Para salvar suas alterações, tecle CTRL + O + ENTER, para sair do editor tecle CTRL + X

O próximo passo é configurar os ips das interfaces. Vamos editar o arquivo interfaces:

# nano /etc/network/interfaces

Você verá que o arquivo já tem o seguinte conteúdo:

# This file describes the network interfaces available on your system


# and how to activate them. For more information, see interfaces(5).

# The loopback network interface


auto lo
iface lo inet loopback

Iremos inserir as informações necessárias abaixo da ultima linha. Dessa forma o arquivo deverá ficar assim:

# This file describes the network interfaces available on your system


# and how to activate them. For more information, see interfaces(5).

# The loopback network interface


auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0

Salve e saia do editor.


Com essa alteração acima, nossa eth0 que será a conexão externa, adquirirá um IP via DHCP Client, no nosso caso
específico, 10.0.0.100, e a interface eth1, que será nossa rede interna, assumirá o IP 192.168.0.1

Execute o seguinte comando para reiniciar a rede:

# /etc/init.d/networking restart

Ao término do comando, execute ifconfig novamente para verificar se as alterações estão realmente OK. Se tudo
correu bem na configuração, a saída deste comando será algo do tipo:

# ifconfig
eth0 Link encap: Ethernet Endereco de HW 08:00:27:f6:c4:fb
inet end.: 10.0.0.100 Bcast:255.255.255.255 Masc:255.255.255.0
endereco inet6: fe80::a00:27ff:fef6:c4fb/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Metrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:1797 (1.7 B) TX bytes:1982 (1.9 B)

eth1 Link encap: Ethernet Endereco de HW 08:00:27:8b:28:34


inet end.: 192.168.0.1 Bcast:192.168.0.255 Masc:255.255.255.0
endereco inet6: fe80::a00:27ff:fe8b:2834/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Metrica:1
RX packets:11 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:2359 (2.3 KiB) TX bytes:510 (510.0 B)
IRQ:9 Endereco de E/S:0xd240

lo Link encap:Loopback Local


3
inet end.: 127.0.0.1 Masc: 255.0.0.0
endereco inet6: ::1/128 Escopo Maquina
UP LOOPBACKRUNNING MTU:16436 Metrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Para se certificar de que tudo está OK, reinicie o servidor. (Este passo não é necessário. Seu fim é apenas didático
quanto ao comando shutdown).

# shutdown –r now

Veja abaixo como fazer isso de outras formas:

# shutdown –r now (reinicia a máquina)


# reboot (reinicia a máquina)
# shutdown –h now (desliga a máquina)
# halt (desliga a máquina)

Caso prefira fazer a reinicialização do sistema, logue-se novamente e veja se está tudo OK com o comando ifconfig.
Agora que estamos com nossas placas de rede configuradas e inicializando, vamos configurar a internet no servidor.

Configurando a internet no servidor


Note que se sua internet usar IP fixo, ou você tiver um modem roteado e preferir enviar o sinal já roteado para o
servidor, seu servidor já estará com internet (eth0). Se este for o seu caso, poderá testar sua conectividade pelo
comando ping.

Obs.: Para abortar o comando ping, pressione CTRL + C

# ping www.vivaolinux.com.br
PING vivaolinux.com.br (174.123.53.162) 56(84) bytes of data.
64 bytes from sunshine.vivaolinux.com.br (174.123.53.162): icmp_seq=1 ttl=52 time=208 ms
64 bytes from sunshine.vivaolinux.com.br (174.123.53.162): icmp_seq=2 ttl=50 time=232 ms
64 bytes from sunshine.vivaolinux.com.br (174.123.53.162): icmp_seq=3 ttl=51 time=217 ms
64 bytes from sunshine.vivaolinux.com.br (174.123.53.162): icmp_seq=4 ttl=51 time=215 ms
64 bytes from sunshine.vivaolinux.com.br (174.123.53.162): icmp_seq=5 ttl=52 time=222 ms
64 bytes from sunshine.vivaolinux.com.br (174.123.53.162): icmp_seq=6 ttl=51 time=212 ms
64 bytes from sunshine.vivaolinux.com.br (174.123.53.162): icmp_seq=7 ttl=50 time=209 ms

Mas seguindo a sequencia de acordo com o predisposto para o artigo, precisaremos instalar o pacote pppoeconf. Para
isso insira seu cd de instalação, e execute o seguinte comando:

# aptitude install pppoeconf

Responda “yes” para a pergunta, e aguarde o termino da instalação.


Após terminada a instalação, iniciaremos a configuração da conexão pppoe. Para isso execute o seguinte comando:

# pppoeconf

Prossiga a instalação, e forneça os dados solicitados. Quando o instalador perguntar se deseja iniciar a conexão na
inicialização, escolha a opção sim. Agora podemos fazer manualmente a conexão:

# pon dsl-provider
Obs.: Se precisar desconectar use o comando:

# poff

Agora vamos verificar se a conexão foi bem sucedida. Use novamente ifconfig. Voce notará que no final do comando,
apareceu uma nova interface: ppp0. O resultado do comando será mais ou menos assim:

4
# ifconfig
eth0 Link encap: Ethernet Endereco de HW 08:00:27:f6:c4:fb
inet end.: 10.0.0.100 Bcast:255.255.255.255 Masc:255.255.255.0
endereco inet6: fe80::a00:27ff:fef6:c4fb/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Metrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:1797 (1.7 B) TX bytes:1982 (1.9 B)

eth1 Link encap: Ethernet Endereco de HW 08:00:27:8b:28:34


inet end.: 192.168.0.1 Bcast:192.168.0.255 Masc:255.255.255.0
endereco inet6: fe80::a00:27ff:fe8b:2834/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Metrica:1
RX packets:11 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:2359 (2.3 KiB) TX bytes:510 (510.0 B)
IRQ:9 Endereco de E/S:0xd240

lo Link encap:Loopback Local


inet end.: 127.0.0.1 Masc: 255.0.0.0
endereco inet6: ::1/128 Escopo Maquina
UP LOOPBACKRUNNING MTU:16436 Metrica:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

ppp0 Link encap:Protocolo Ponto-a-Ponto


inet end.: 187.34.48.135 P-a-P:201.92.100.190 Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metrica:1
RX packets:515 errors:0 dropped:0 overruns:0 frame:0
TX packets:294 errors:0 dropped:0 overruns:0 carrier:0
colisoes:0 txqueuelen:3
RX bytes:2799 (2.7 KiB) TX bytes:910 (910.0 B)

Agora que nossa conexão está configurada e iniciada, vamos atualizar os repositórios que usaremos para as demais
instalações.

Configurando os repositórios
Vamos editar o arquivo sources.list:
# nano /etc/apt/sources.list

Primeiramente apague a seguinte linha:

deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official i386 NETINST Binary-1...

Agora apague o “#” das seguintes linhas:

deb http://security.debian.org/ squeeze/updates main


deb-src http://security.debian.org/ squeeze/updates main

Insira as seguintes linhas no final:

deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free


deb http://ftp.debian.org/debian/ squeeze main contrib non-free
deb http://linorg.usp.br/debian/squeeze-updates main
deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
#

Salve e saia. Execute o comando para atualização dos repositórios:


5
# apt-get update

Você notará que ao término da atualização, será apresentado um erro de chave pública, em uma tela como abaixo:

...
Lendo listas de pacotes... Pronto
W: Erro GPG: http://download.webmin.com sarge Release: As assinaturas a seguir não puderam ser
verificadas devido à chave pública não estar disponível: NO_PUBKEY D97A3AE911F63C51

Execute os seguintes comandos para adicionar a chave pública (Obs.: Observe que a chave requerida são os 8 últimos
dígitos da chave publica fornecida, neste caso “11F63C51”):

# gpg --keyserver subkeys.pgp.net --recv-keys 11F63C51

Esta será a saída do comando:

gpg: directory `/root/.gnupg` created


gpg: criado um novo ficheiro de configuracao `/root/.gnupg/gpg.conf`
gpg: AVISO: opcoes em `/root/.gnupg/gpg.conf` ainda nao estao activas nesta execucao
gpg: porta-chaves `/root/.gnupg/secring.gpg` criado
gpg: porta-chaves `/root/.gnupg/pubring.gpg` criado
gpg: requesting key 11F63C51 from hkp server subkeys.pgp.net
gpg: /root/.gnupg/trustdb.gpg: banco de dados de confiabilidade criado
gpg: key 11F63C51: public key "Jamie Cameron <jcameron@webmin.com>" imported
gpg: no ultimately trusted keys found
gpg: Numero total processado: 1
gpg: importados: 1

Agora execute o outro comando:

# gpg --armor --export 11F63C51 | apt-key add –

O resultado desse comando será apenas um “OK”

Execute novamente o comando de atualização:

# apt-get update

Dessa vez o resultado será:

Lendo listas de pacotes... Pronto

Já temos nossos repositórios configurados e atualizados. Agora partiremos para a instalação dos serviços.

Instalando os pacotes necessários


# aptitude install apache2 php5 squid webmin ssh dhcp3-server isc-dhcp-server linuxlogo rcconf

Configurando linuxlogo

*** Note que este passo é unicamente estético, não importando em nada para o funcionamento do servidor.
Para deixar uma tela mais apresentável, vamos configurar o linuxlogo. O linuxlogo exibe o logo da distribuição debian
em formato texto, substituindo a conhecida tela preta. Antes de alterarmos a tela, faremos uma copia de segurança do
arquivo original. Execute os seguintes comandos:

# cp /etc/issue /etc/issue.bak
# cp /etc/issue.linuxlogo /etc/issue

Para testar sua nova tela, use o comando exit. Após reiniciar o servidor, o mesmo ficara aguardando a digitação do user
e senha com a nova tela.
6
# exit

Configurando o apache2
Agora, vamos configurar os serviços propriamente ditos, iniciando pelo apache2.

# nano /etc/apache2/httpd.conf

O arquivo estará vazio. Insira a seguinte linha:

ServerName localhost

Salve e saia, e restarte o serviço:

# /etc/init.d/apache2 restart

Configurando o ssh
Vamos configurar agora o ssh, não permitindo que o root faça login via ssh (medida de segurança).

# nano /etc/ssh/sshd_config

Procure no arquivo a seguinte linha:

PermitRootLogin yes

Mude o parâmetro yes para no.


Se quiser aumentar um pouco mais a segurança, mude a porta padrão, que é 22 para outra qualquer. Alguns usam as
seguintes portas: 8022, 5522, 2222, etc, etc.

Salve e saia, e restarte o serviço:

# /etc/init.d/ssh restart

Configurando o servidor dhcp


O próximo passo é a configuração do servidor DHCP. Iremos editar dois arquivos.

# nano /etc/default/isc-dhcp-server

A ultima linha é: INTERFACES=””, deixe-a assim:

INTERFACES=”eth1”
Salve e saia, e edite o próximo arquivo:

# nano /etc/dhcp/dhcpd.conf

Apague todo o conteúdo e deixe o arquivo assim:

ddns-update-style none;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.109;
option domain-name-servers 200.204.0.10, 200.204.0.138;
option domain-name "mylan.com.br";
option routers 192.168.0.1;
option broadcast-address 255.255.255.255;
default-lease-time 600;
max-lease-time 7200;

host patrao_notebook{
7
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.0.15;
}
}

Obs.: No campo option domain-name-servers, não esqueça de trocar o dns que eu usei pelos dnss de seu provedor.

Salve e saia, e restarte o serviço:

# /etc/init.d/isc-dhcp-server restart

Configurando o sarg
Vamos instalar e configurar o sarg (gerador de relatórios). Visto que o sarg não se encontra disponível (pelo menos por
enquanto) no debian squeeze, vamos adicionar um repositório apenas para instalar a última versão do sarg, depois
removeremos ele:

# nano /etc/apt/sources.list

Insira a seguinte linha:

deb http://ftp.debian.org/debian/ sid main contrib non-free

ou

deb http://backports.debian.org/debian-backports squeeze-backports main

Salve e saia, e vamos atualizar a lista:

# apt-get update

Agora instale o sarg:

# aptitude install sarg

Responda “yes” e aguarde o término da instalação. Ao terminar, vamos fazer uma pequena edição no sarg.conf.

# nano /etc/sarg/sarg.conf

Procure pela linha “date_format u”, e altere para “date_format e”


Com isso, as datas que apareceriam no formato americano (mm/dd/yyyy) vão aparecer no formato europeu
(dd/mm/yyyy)

Salve e saia e vamos editar mais um arquivo do sarg, o “usertab”.

# nano /etc/sarg/usertab

Neste arquivo iremos atribuir nomes aos IPs. Assim fica mais fácil a identificação nos relatórios. Por exemplo, o usuário
do IP 192.168.0.20 é “fulano” e do IP 192.168.0.21 é o “cicrano”. Dessa forma nosso arquivo ficaria assim:
# Insert userid/ip address mapping information – see sarg.conf for more info
192.168.0.20 fulano
192.168.0.21 cicrano
#

Edite conforme sua necessidade. Logo após salve e saia, e retiraremos o repositório do debian sid da lista.

# nano /etc/apt/sources.list

Apague a linha:

deb http://ftp.debian.org/debian/ sid main contrib non-free


8
Salve e saia e atualize:

# apt-get update

Configurando o squid
Agora configuraremos o squid, que fará o controle da navegação. Para este artigo vamos fazer uma configuração
relativamente simples. Nosso servidor oferecerá 3 níveis de acesso.
1 nível diretoria
Acesso total
2 nível gerencia
Navegação liberada, exceto os sites que estiverem na lista de bloqueio
3 nível funcionários
Navegação liberada, exceto os sites que estiverem na lista de bloqueio, e as palavras que estiverem na
lista de palavras bloqueadas, e downloads proibidos

Primeiramente vamos criar os arquivos que serão usados:

# touch /etc/squid/downloads.allow
# touch /etc/squid/downloads.deny
# touch /etc/squid/ip.diretoria
# touch /etc/squid/ip.gerencia
# touch /etc/squid/ip.funcionarios
# touch /etc/squid/palavras.deny
# touch /etc/squid/sites.allow
# touch /etc/squid/sites.deny

Agora vamos adicionar os conteúdos.

# nano /etc/squid/downloads.allow

Neste arquivo colocaremos os downloads permitidos. Adapte conforme sua necessidade. Segue um exemplo abaixo:

.pps$
.ppt$
.doc$
.docx$
.xls$
.xlsx$
.jpg$
.jpeg$
.pdf$
#

Salve e saia, e agora vamos editar o arquivo que conterá os downloads proibidos:

# nano /etc/squid/downloads.deny

Insira o seguinte conteúdo (adapte conforme sua necessidade):

.exe$
.com$
.zip$
.rar$
.iso$
.ace$
.mp3$
.wmv$
.bat$
.pif$
.avi$
.asf$
.mpe$

9
.mpg$
.mpeg$
.wav$
.wma$
.rmvb$
.rm$
.ra$
#

Salve e saia, e agora editaremos o arquivo que conterá os IPs dos diretores:

# nano /etc/squid/ip.diretoria

Coloque os seguintes IPs (imaginando que nesse caso seriam 2 diretores):

192.168.0.10
192.168.0.11
#

Salve e saia, e agora editemos o arquivo com os IPs dos gerentes:

# nano /etc/squid/ip.gerencia

Coloque os seguintes IPs (imaginando que temos 2 gerentes):

192.168.0.20
192.168.0.21
#

Salve e saia, e por fim vamos editar o arquivo com os IPs dos funcionários:

# nano /etc/squid/ip.funcionarios

Insira os seguintes IPs (25 funcionarios)

192.168.0.30
192.168.0.31
192.168.0.32
192.168.0.33
192.168.0.34
192.168.0.35
192.168.0.36
192.168.0.37
192.168.0.38
192.168.0.39
192.168.0.40
192.168.0.41
192.168.0.42
192.168.0.43
192.168.0.44
192.168.0.45
192.168.0.46
192.168.0.47
192.168.0.48
192.168.0.49
192.168.0.50
192.168.0.51
192.168.0.52
192.168.0.53
192.168.0.54
#

Salve e saia. Vamos agora editar o arquivo que conterá uma lista de palavras que serão bloqueadas. O bloqueio ocorrerá
quando alguma URL, não o conteúdo do site, contiver as palavras da lista. Você deve ter um certo cuidado ao editar esta
lista, pois algumas palavras podem gerar um bloqueio indevido. Um exemplo típico, é o bloqueio da palavra seio/seios.
Talvez isso iniba o acesso a sites impróprios, porém poderá bloquear algum site que esteja falando sobre saúde
feminina.
10
Por exemplo, o site abaixo, tem um artigo relacionado à saúde:

http://cliquesaude.com.br/tamanho-dos-seios-descubra-ate-que-idade-eles-podem-crescer-768.html

Enquanto este outro site, não tem conteúdo informativo, e sim erótico.

http://seiosfantasticos.tumblr.com/

Porém se a palavra seios estiver na lista, ambos serão bloqueados, independente de conteúdo. Em todo o caso, vamos
editar o arquivo:

# nano /etc/squid/palavras.deny

Agora insira uma palavra por linha, como no caso dos outros arquivos (altere conforme sua necessidade):

batepapo
chat
playboy
sex
strip
erotic
porno
porn
adults
hardcore
ninfeta
sexy
orgia
games
orkut
facebook
webmessenger
#
Vamos agora ao arquivo com os sites que estarão totalmente liberados, incluindo downloads.

# nano /etc/squid/sites.allow

Algumas sugestões (você poderá incluir quantos sites precisar, um por linha):

.gov.br/*
site_do_cliente.com.br/*
correios.com.br
telefonica.com
#

Salve e saia para editarmos o arquivo com os sites proibidos.

# nano /etc/squid/sites.deny

Poderá incluir sites pornográficos, sites de relacionamento, entre outros. Veja abaixo alguns exemplos:

.playboy.
.sexy.
.sandrinha.
.galinhas.
.pombaloca.com.br
.redsex.com.br
.redtube.
sexo.uol.com.br
.youtube.
.facebook.com
.twitter.com
.flickr.com
.orkut.
.tv

11
.games.
.video.
.megaupload.com
.rapidshare.com
.easyshare.com
#

Salve e saia, e vamos finalmente ao squid.conf

# nano /etc/squid/squid.conf

Apague o conteúdo do arquivo e insira o conteúdo abaixo:

# Configuracoes gerais
http_port 3128 transparent
visible_hostname LINUX
hierarchy_stoplist cgi-bin?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 350 MB
maximum_object_size_in_memory 100 KB
maximum_object_size 15360 KB
minimum_object_size 0 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
cache_replacement_policy lru
memory_replacement_policy lru
logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log /var/log/squid/access.log squid
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 3000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_swap_log /var/spool/squid/swap.log
cache_mgr vaini@itelefonica.com.br
error_directory /usr/share/squid/errors/Portuguese
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
dns_nameservers 200.204.0.10 200.204.0.138

# Definicao das ACLs


acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # snews
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 407 # msn
acl Safe_ports port 25 # smtp
acl Safe_ports port 110 # pop
acl purge method PURGE
acl CONNECT method CONNECT

# Downloads Bloqueados/Liberados e Palavras Bloqueadas


acl DownloadsLiberados url_regex -i "/etc/squid/downloads.allow"
acl DownloadsBloqueados url_regex -i "/etc/squid/downloads.deny"
acl PalavrasBloqueadas url_regex -i "/etc/squid/palavras.deny"

12
# Sites Bloqueados/Liberados
acl SitesLiberados url_regex -i "/etc/squid/sites.allow"
acl SitesBloqueados url_regex -i "/etc/squid/sites.deny"

# Grupos de Acesso
acl Diretoria src "/etc/squid/ip.diretoria"
acl Gerencia src "/etc/squid/ip.gerencia"
acl Funcionarios src "/etc/squid/ip.funcionarios"

# Ativando as ACLs Padrao


http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny to_localhost

# Ativando as ACLs Personalizadas


http_access allow Diretoria
http_access allow SitesLiberados
http_access allow DownloadsLiberados
http_access deny DownloadsBloqueados
http_access allow Gerencia !SitesBloqueados
http_access deny PalavrasBloqueadas
http_access deny SitesBloqueados
http_access allow Funcionarios
http_access deny all

# Fim do arquivo

Salve e saia e vamos restartar o squid:

# /etc/init.d/squid stop
# squid –z
# /etc/init.d/squid start
# squid –k reconfigure

Nosso squid já está em funcionamento.

Uma observação importante. Sempre que você fizer qualquer alteração relacionada ao squid, seja no squid.conf, ou em
qualquer um dos arquivos que criamos, é necessário colocar essas alterações em vigor com o comando “ squid –k
reconfigure”. Note que não é necessário restartar o squid toda vez. Fizemos isso somente na primeira vez que
executamos o squid, dessa forma, ele criou a estrutura necessária para seu bom funcionamento. Mesmo que você
incluir apenas um site na lista dos bloqueados, será necessário squid –k reconfigure.

Configurando o cron
Iremos agora configurar o cron para que o sarg gere relatórios a cada duas horas.

# nano /etc/crontab

Insira a seguinte linha antes do ultimo “#” (jogo da velha)

0 */2 * * * root sarg –f /etc/sarg/sarg.conf

Salve, saia e restarte o cron

# /etc/init.d/cron restart

Configurando o script firewall para o compartilhamento da internet com a rede


Primeiramente vamos criar o arquivo:

13
# touch /etc/init.d/firewall

Agora vamos edita-lo:

# nano /etc/init.d/firewall

Insira o seguinte conteúdo no script:

#!/bin/sh
iptables –F
iptables –X
iptables –t nat –F
iptables –t nat –X
modprobe ip_tables
modprobe iptable_nat
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
iptables –t nat –A PREROUTING –p tcp –i eth1 -–dport 80 –j REDIRECT --to 3128
iptables –t nat –A PREROUTING –p tcp –i ppp0 –-dport 3389 –j DNAT –to 192.168.1.200:3389
#

Aqui cabe uma observação. Lembra-se que na seção “Configurando a internet no servidor”, você viu o seguinte
comentário:

“Note que se sua internet usar IP fixo, ou você tiver um modem roteado e preferir enviar o sinal já roteado para o
servidor, seu servidor já estará com internet (eth0). Se este for o seu caso, poderá testar sua conectividade pelo
comando ping.”

Caso você se encaixe nesse caso, seu script terá o seguinte conteúdo, ao invés do conteúdo acima:

#!/bin/sh
modprobe iptable_nat
iptables –F
iptables –t nat –F
iptables –X
echo “1” > /proc/sys/net/ipv4/ip_forward
iptables –t nat –A PREROUTING –p tcp –i eth1 -–dport 80 –j REDIRECT --to 3128
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE

A partir daqui, proceda da mesma forma para ambos os casos.


Salve e saia, e vamos dar permissão de execução ao arquivo

# chmod +x /etc/init.d/firewall

Agora vamos inclui-lo na inicialização, para que o processo fique automático. Para isso execute o rcconf

# rcconf

Voce notará uma tela semelhante a esta:

âââââââââââ⤠rcconf - Debian Runlevel Configuration tool âââââââââââââââ


â â
â [*] acpid â
â [*] apache2 â
â [*] bootlogs â
â [*] console-setup â
â [*] cron â
â [*] isc-dhcp-server â
â [*] kbd â
â [*] keyboard-setup â
â [*] linuxlogo â
â [*] modules-init-tools â
â â
â â
â â

14
â â
â â
â <Ok> <Cancelar> â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ

Desça na lista até encontrar firewall (provavelmente será a última opção). Você notará que a opção estará desmarcada.
Marque-a teclando a barra de espaços e em seguida tecle ENTER para confirmar as alterações e voltar ao prompt.

Agora é só executar o script para o servidor funcionar 100%, e quando precisar reiniciar o servidor, o script já será
executado automaticamente.

# /etc/init.d/firewall

Pronto!!! Servidor concluído.

Considerações finais

Nas máquinas da rede, você irá configurar o IP, a mascara, o gateway e os DNSs. O gateway deverá ser 192.168.0.1 e os
DNSs você poderá usar o de sua operadora. Visto que configuramos o squid para rodar transparente, não é necessário
configurar endereço proxy no navegador.

Para acessar o Webmin (para visualizar ou gerar relatórios, bem como outras configurações) você poderá usar qualquer
maquina da rede e acessar o seguinte endereço: https://192.168.0.10:10000

O usuário/senha, será o root com sua respectiva senha. Você poderá criar um usuário para você, assim evitará usar a
senha de root.

Há um ditado popular que diz: “a repetição é a mãe da retenção”, assim, com o tempo e a prática, você conseguirá
enxergar mil maneiras de configurar seu próprio servidor. Uma sugestão é usar máquinas virtuais com as placas de rede
configuradas em modo Brigde. Também recorra sempre ao VOL em busca de mais conhecimento, e claro, não deixe de
pesquisar sobre um bom script de firewall para proteger melhor seu servidor.

Enfim, espero que o artigo possa ser útil para você que está iniciando.

Um abraço.

15

Você também pode gostar