Você está na página 1de 77

CENTRO PAULA SOUZA

FACULDADE DE TECNOLOGIA DE TAQUARITINGA



TECNOLOGIA EM PROCESSAMENTO DE DADOS










IMPLEMENTAO DE SERVIDOR LINUX UBUNTU
SERVER: FIREWALL, PROXY E FILE SERVER





TIAGO BEZERRA DOS SANTOS



Orientador: MARCO ANTONIO ALVES PEREIRA










Taquaritinga
2009


IMPLEMENTAO DE SERVIDOR LINUX UBUNTU
SERVER: FIREWALL, PROXY E FILE SERVER







TIAGO BEZERRA DOS SANTOS












Monografia apresentada Faculdade de Tecnologia de Taquaritinga, como parte dos
requisitos para a obteno do ttulo de Tecnlogo em Processamento de Dados.
Orientador: Marco Antonio Alves Pereira

























Taquaritinga
2009



























































Ningum chega ao seu paraso sem antes lutar.

Neil Peart (Rush) Armor And Sword


























































Dedico,

Aos meus pais Ivanildo e Lili,
e a minha irm Talita, que sempre me incentivaram.



AGRADECIMENTOS


Ao Prof. Ramlio Ramalho Reis Filho e sua famlia, por terem acreditado em mim.

Ao Prof. Marco Antonio Alves Pereira, por sua competncia, dedicao e
disponibilidade como orientador.

Aos Professores da Fatec, pelos valiosos ensinamentos e experincias.

minha amiga Josy Diniz, pelo apoio e palavras de incentivo em diversos
momentos.

minha famlia e amigos, pelo apoio, pacincia e amor.

A Deus, por ter colocado pessoas especiais em minha vida.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - v

SUMRIO

LISTA DE FIGURAS...............................................................................................................vii
LISTA DE QUADROS ............................................................................................................. ix
LISTA DE ABREVIATURAS E SIGLAS ................................................................................ x
RESUMO................................................................................................................................... xi
ABSTRACT .............................................................................................................................xii
INTRODUO ........................................................................................................................ 13
1. INSTALAO DO UBUNTU SERVER ............................................................................ 15
1.1 Ubuntu Desktop x Ubuntu Server ................................................................................... 15
1.2 Instalao do Sistema ...................................................................................................... 16
1.2.1 Configurao inicial de rede ..................................................................................... 16
1.2.2 Particionamento ........................................................................................................ 18
1.2.3 Instalao do Sistema Bsico .................................................................................... 20
2. FIREWALL IPTABLES E CONFIGURAO DE REDE ................................................ 23
2.1 Interfaces ......................................................................................................................... 23
2.2 Firewall Iptables .............................................................................................................. 25
2.2.1 Regras de compartilhamento..................................................................................... 25
2.2.2 Configurao de Portas ............................................................................................. 27
2.2.3 Regras de Segurana ................................................................................................. 28
2.3 Servidor DHCP................................................................................................................ 29
2.3.1 Instalao e configurao do servidor....................................................................... 29
3. SERVIDOR PROXY SQUID............................................................................................... 32
3.1 Tipos de Proxy................................................................................................................. 32
3.1.1 Tradicional ................................................................................................................ 32
3.1.2 Transparente.............................................................................................................. 33
3.1.3 Com Autenticao..................................................................................................... 33
3.1.4 PAC ........................................................................................................................... 33
3.1.5 WPAD ....................................................................................................................... 34
3.2 Instalao do Squid.......................................................................................................... 34
3.3 Configurao bsica como Proxy Transparente .............................................................. 35
3.4 Definindo o Cache do servidor Proxy ............................................................................. 37
3.5 Regras para Polticas de Acesso (ACLs) ......................................................................... 39
3.5.1 Bloqueio de sites ....................................................................................................... 39
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - vi

3.5.2 Controle de acesso de mquinas ............................................................................... 40
3.6 SquidGuard ...................................................................................................................... 43
3.6.1 Instalao e Configurao ......................................................................................... 43
3.6.2 Ajustando as permisses de acesso e alterando o Squid ........................................... 45
3.7 Monitorando os acessos com o Sarg ............................................................................... 46
4. SERVIDOR DE ARQUIVOS SAMBA ............................................................................... 48
4.1 Instalao do Samba ........................................................................................................ 48
4.2 Usurios ........................................................................................................................... 48
4.2.1 Cadastro de usurios no sistema ............................................................................... 49
4.2.2 Cadastro de usurios no Samba ................................................................................ 50
4.3 Configurao usando o smb.conf .................................................................................... 51
4.3.1 Configurao global .................................................................................................. 51
4.3.2 Criao dos compartilhamentos ................................................................................ 55
4.4 Ajustes de permisses no sistema.................................................................................... 57
4.4.1 Grupos de usurios.................................................................................................... 58
4.4.2 Permisses de acesso ................................................................................................ 58
5. ACESSO REMOTO ............................................................................................................. 62
5.1 Servidor OpenSSH .......................................................................................................... 62
5.1.1 Instalao e configurao no servidor....................................................................... 63
5.2 Administrao remota ..................................................................................................... 65
5.2.1 Usando o no- ip como DNS dinmico ....................................................................... 65
5.2.2 PuTTY....................................................................................................................... 66
5.2.3 Webmin ..................................................................................................................... 69
CONCLUSO .......................................................................................................................... 74
REFERNCIAS BIBLIOGRFICAS ..................................................................................... 75
BIBLIOGRAFIA ...................................................................................................................... 76


Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - vii

LISTA DE FIGURAS
Figura 1 Gerenciador de boot egrub. ..................................................................................... 16
Figura 2 Seleo de qual interface de rede ser a primria. .................................................. 17
Figura 3 Configurao da rede adiada. .................................................................................. 17
Figura 4 Particionamento do Disco Rgido. .......................................................................... 18
Figura 5 Escolha de um espao livre ou partio a ser usada. ............................................... 19
Figura 6 Esquema de particionamento utilizado. .................................................................. 20
Figura 7 Configurao de usurio e senha. ............................................................................ 21
Figura 8 Instalao de pacotes de softwares. ......................................................................... 21
Figura 9 Finalizao da instalao. ........................................................................................ 22
Figura 10 Terminal. ............................................................................................................... 22
Figura 11 Edio das configuraes de rede usando o editor nano. ...................................... 24
Figura 12 Atualizao da lista de pacotes dos repositrios. .................................................. 24
Figura 13 Atualizao dos pacotes j instalados. .................................................................. 25
Figura 14 Regras para compartilhamento de Internet no Iptables. ........................................ 26
Figura 15 Regras para portas no Iptables. ............................................................................. 27
Figura 16 Regras de segurana no Iptables. .......................................................................... 28
Figura 17 Arquivo dhcpd.conf. .............................................................................................. 30
Figura 18 Instalao do Squid. .............................................................................................. 34
Figura 19 Configurao inicial do squid.conf. ...................................................................... 35
Figura 20 Configurao parcial do squid.conf. ..................................................................... 38
Figura 21 Arquivo com lista de endereos bloqueados. ........................................................ 40
Figura 22 Arquivo com lista de palavras bloqueadas. ........................................................... 40
Figura 23 Arquivo com lista de endereos MAC de mquinas. ............................................ 41
Figura 24 Arquivo squid.conf configurado com ACLs. ........................................................ 42
Figura 25 Acesso negado pelo Squid. .................................................................................... 43
Figura 26 Diretrio blacklists. ............................................................................................... 44
Figura 27 Arquivo squidGuard.conf. ..................................................................................... 45
Figura 28 Adicionando usurios ao sistema. ......................................................................... 49
Figura 29 Adicionando usurios ao servidor Samba. ............................................................ 50
Figura 30 Configurao da seo [global] no smb.conf. ....................................................... 52
Figura 31 Adicionando endereo do servidor WINS no DHCP. ........................................... 53
Figura 32 Verificao do smb.conf usando o testparm. ........................................................ 54
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - viii

Figura 33 Visualizando o servidor nos Meus locais de rede da estao. ............................... 54
Figura 34 Criao dos diretrios publico e arquivos. ............................................................ 55
Figura 35 Sees de compartilhamento no smb.conf. ........................................................... 56
Figura 36 Visualizando os compartilhamentos nas estaes Windows. ................................ 57
Figura 37 Incluso de usurios em grupos. ........................................................................... 58
Figura 38 Gravao negada no compartilhamento. ............................................................... 59
Figura 39 Alterao da propriedade dos diretrios share. ..................................................... 59
Figura 40 Gravao autorizada no compartilhamento. .......................................................... 60
Figura 41 Ajustes de permisses para os grupos e seus diretrios. ....................................... 60
Figura 42 Acesso aos compartilhamentos arquivos e publico. ....................................... 61
Figura 43 Arquivo sshd_config original. ............................................................................... 63
Figura 44 Arquivo sshd_config configurado. ........................................................................ 64
Figura 45 Gerenciador de Hosts do servio DDNS no- ip. .................................................... 66
Figura 46 Assistente de configurao do no- ip. .................................................................... 66
Figura 47 Configurao do PuTTY. ...................................................................................... 67
Figura 48 Alerta sobre a chave e autorizao de acesso ao servidor. .................................... 68
Figura 49 Acesso remoto ao servidor via SSH pelo PuTTY. ................................................ 68
Figura 50 Tentativa de instalao do pacote .deb do Webmin. ......................................... 69
Figura 51 Resoluo de dependncias e instalao usando o apt-get install - f.................. 70
Figura 52 Primeiro acesso ao Webmin pelo Firefox. ............................................................ 71
Figura 53 Adicionando uma exceo de segurana no Firefox. ............................................ 71
Figura 54 Tela de login do Webmin. ..................................................................................... 72
Figura 55 Tela inicial do gerenciador Webmin. .................................................................... 72
Figura 56 Webmin listando relatrios do Sarg. ..................................................................... 73

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - ix

LISTA DE QUADROS
Quadro 1 Script de compartilhamento no Iptables. ............................................................... 26
Quadro 2 Regras para portas no Iptables. .............................................................................. 27
Quadro 3 Regras de segurana no Iptables. ........................................................................... 29
Quadro 4 Arquivo dhcpd.conf. .............................................................................................. 30
Quadro 5 Configurao inicial do squid.conf. ....................................................................... 35
Quadro 6 Configurao parcial do squid.conf. ...................................................................... 38
Quadro 7 Configurao da seo [global] do smb.conf. ....................................................... 52
Quadro 8 Configurao das sees de compartilhamento no smb.conf. ............................... 56
Quadro 9 Configurao do arquivo sshd_config. .................................................................. 64


Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - x

LISTA DE ABREVIATURAS E SIGLAS
ACL Access Control List
APT-GET Advanced Packaging Tool
DHCP Dynamic Host Configuration Protocol
DDNS Dynamic Domain Name System
DNS Domain Name System
EXT3 Third Extended File System
GB GigaByte
GNOME GNU Network Object Model Environment
HD Hard Disk
HTTP Hypertext Transfer Protocol
HTTPS HyperText Transfer Protocol Secure
IP Internet Protocol
KDE K Desktop Environment
LTS Long Term Support
MB MegaByte
MHz MegaHertz
NAT Network Address Translation
PAC Proxy Auto-Configuration
PDC Primary Domain Controller
RAM Random Access Memory
SAS Serial Attached SCSI
SSH Secure Shell
TCP Transmission Control Protocol)
UDP User Datagram Protocol
WINS Windows Internet Name Services
WPAD Web Proxy Auto-Discovery protocol
WWW World Wide Web
XFCE XForms Common Environment





















Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - xi


RESUMO

O presente trabalho tem como objetivo demonstrar os procedimentos necessrios para
a implementao de um servidor Linux com funes de Firewall, Proxy e File Server,
utilizando a distribuio Ubuntu Server. Utilizando o software de virtualizao VMware, foi
simulado um ambiente de rede de computadores com um servidor virtual com o Ubuntu
Server instalado e estaes Windows tambm virtuais. O servidor foi configurado com
funes de roteador e Firewall Iptables, possibilitando um acesso compartilhado e seguro
Internet a partir das estaes. Por meio de um servio DHCP, o servidor tambm ficou
responsvel por distribuir de forma automtica os endereos IP que cada estao deveria ter,
alm de filtrar o contedo acessado atravs do Proxy Squid. Adicionalmente, o servidor foi
configurado como um File Server, disponibilizando arquivos por meio de compartilhamentos
configurados no servidor Samba. A administrao remota do servidor foi definida atravs da
configurao do servidor OpenSSH, acessvel utilizando o cliente PuTTY a partir de qualquer
mquina conectada rede local ou mesmo Internet. De forma complementar, o software de
gerenciamento web Webmin tambm foi instalado e configurado, possibilitando a
administrao do servidor atravs de uma interface grfica com acesso a partir de qualquer
navegador.

Palavras-Chaves: Servidores; Linux; Ubuntu; Firewall; Proxy; File.


Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - xii

ABSTRACT

This work aims to demonstrate the necessary procedures for the implementation of a
Linux server with functions of Firewall, Proxy and File Server, using the Ubuntu Server
distribution. Using VMware virtualization software, was a simulated network environment for
computers with a virtual server with Ubuntu Server installed and Windows virtual stations.
The server was configured with Iptables Firewall and router functions, allowing a shared and
secure access to the Internet from the stations. Through a DHCP service, the server was also
responsible for automatically distributing the IP addresses that each station should have, and
filter the content accessed through the Squid Proxy. Additionally, the server was configured
as a File Server, providing files via Samba shares configured on the server. The remote
administration was defined by the configuration of the OpenSSH server, accessible using the
PuTTY client on any machine connected to the LAN or the Internet. In addition, the Webmin
web management software was installed and configured, allowing the administration of the
server via a graphical interface to access from any browser.

Keywords: Servers; Linux; Ubuntu; Firewall; Proxy; File.



INTRODUO

cada vez mais comum a utilizao de uma rede de computadores em qualquer
empresa, independentemente de seu porte ou ramo de atuao. Isso contribui de maneira
significativa na crescente necessidade de se obter um controle e gerenciamento dos recursos
computacionais disponveis. Este tipo de gerenciamento possvel com a utilizao de um
computador servidor.
Basicamente, qualquer mquina com um mnimo de caractersticas e funcionalidades
pode ser utilizada como servidor de uma rede de computadores. possvel, por exemplo,
aproveitar uma mquina antiga com 64 MB de memria RAM, processador de 500 MHz e
duas placas de rede rodando (sem ambiente grfico) qualquer distribuio Linux para executar
funes de roteador e firewall em uma rede de pequeno porte. Ou ainda, utilizar uma mquina
com uma configurao mais completa, com 8 GB de RAM (ou mais), processador dual ou
quad core, um ou vrios discos rgidos SAS, placas de rede Gigabit, suporte a redundncia e
diversos outros recursos; para funes mais crticas, como um servidor de Banco de Dados de
alta demanda, um servidor de mquinas virtuais, dentre outras aplicaes que exijam um
conjunto mais robusto.
Alm do hardware da mquina tambm h a necessidade de se escolher qual sistema
operacional ser utilizado no servidor, escolha essa que invariavelmente recai na eterna
discusso: Windows ou Linux?
A grande popularidade do Windows conhecida por todos que eventualmente usam ou
j usaram um computador, principalmente nos ambientes domstico e corporativo, onde se
usam computadores comuns (desktops). Sua principal caracterstica a unio de facilidade e
praticidade de uso mesmo por usurios com conhecimento bsico em informtica.
No entanto, h muitos aspectos que favorecem a escolha de um sistema operacional
Linux para utilizao em servidores. O Linux conhecido originalmente por sua alta
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 14
estabilidade e segurana, sendo imune a ameaas comuns ao ambiente Windows (como vrus e
spywares) devido ao seu sistema de permisses e privilgios de acesso. Pode-se dizer que, sob
o ponto de vista terico, um servidor rodando o Linux com programas e servios atualizados e
configurados corretamente, atinge um nvel quase que perfeito de confiabilidade e segurana
no que se refere a software.
Por caractersticas como estas, foi escolhido como foco deste trabalho demonstrar
como implementar e configurar um Servidor Linux com as funes de Proxy, Firewall e
servidor de Arquivos utilizando a distribuio Ubuntu Server. Estas so algumas das funes
mais comuns encontradas em servidores de muitas empresas.
O desenvolvimento do trabalho foi feito com o software de virtualizao VMware
Server, utilizando para o servidor uma mquina virtual configurada inicialmente com 128 MB
de memria RAM, disco rgido com 7,5 GB e duas placas de rede, alm de mquinas virtuais
com 256 MB de RAM e disco rgido com 4 GB para estaes com Windows XP Professional,
simulando virtualmente as caractersticas reais de uma rede de computadores. Com exceo
do espao definido inicialmente para os HDs, praticamente todas as outras configuraes de
hardware virtual podem ser modificadas posteriormente atravs da interface web de
gerenciamento do VMware Server.
Neste trabalho so abordados todos os procedimentos inerentes a instalao da
mquina na rede, como a instalao do Sistema Operacional Ubuntu Server, configurao das
interfaces de rede e do servidor DHCP necessrio para distribuio de endereos IP para as
estaes, definio de regras para uso de Internet atravs do Proxy Squid, instalao e
configurao do servidor OpenSSH para acesso remoto, criao de compartilhamentos no
Samba, alm de definies de regras de segurana no firewall Iptables e mtodos de
administrao remota usando os utilitrios PuTTY e Webmin.













1. INSTALAO DO UBUNTU SERVER
durante a instalao do Sistema Operacional que algumas pr-configuraes bsicas
devero ser definidas, determinando a forma como recursos do servidor podero ser mais bem
utilizados. Neste captulo sero abordadas as diferenas entre a verso Desktop e Server do
Ubuntu, alm de sua instalao e configurao iniciais.
1.1 Ubuntu Desktop x Ubuntu Server
Para Paula Jnior (2007, p.4) o Ubuntu um sistema operacional livre e de cdigo
aberto, feito em volta do Kernel do Linux, baseado na distribuio chamada Debian.
A empresa Canonical apia o desenvolvimento do Ubuntu, e alm de verses com
diferentes tipos de ambientes de trabalho (Kubuntu/KDE e Xubuntu/XFCE, por exemplo),
tambm disponibiliza uma verso destinada a servidores, conhecida como Ubuntu Server.
Atualmente na verso 9.04, o Ubuntu Server , essencialmente, idntico ao Ubuntu
Desktop. No entanto, seu ambiente de trabalho GNOME no instalado por padro, tornando
seu uso possvel mesmo em mquinas com caractersticas mais modestas de hardware;
tambm inclui um conjunto de pacotes especficos para servidores.
O Ubuntu Server, assim como as verses desktop, utiliza repositrios derivados do
repositrio unstable do Debian, sendo que as verses LTS (Long Term Support) so as mais
semelhantes s verses estveis do Debian (MORIMOTO, 2008, p. 38). Para este trabalho foi
utilizada a verso 8.04 LTS. A terminologia LTS indica que seu perodo de suporte e
atualizaes maior em comparao s verses regulares (como a 9.04). A partir da verso
8.04 LTS, a Canonical estendeu esse perodo de 18 meses para 5 anos.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 16

1.2 Instalao do Sistema
Antes de proceder com a instalao do Ubuntu Server, algumas configuraes como
idioma e layout do teclado podem ser necessrias e feitas por meio do gerenciador de boot
egrub (Figura 1).

Figura 1 Gerenciador de boot egrub.
FONTE: Arquivo do autor.

Na parte inferior da tela h informaes sobre quais teclas utilizar para acessar
determinadas configuraes do gerenciador, como por exemplo, F2 para idioma e F3 para o
layout do teclado.
Aps a definio dos ajustes iniciais, basta escolher a opo Install Ubuntu Server e
pressionar Enter para iniciar a instalao.
1.2.1 Configurao inicial de rede
A mquina virtual utilizada possui duas interfaces de rede (eth0 e eth1), caracterstica
identificada automaticamente pelo instalador e onde se deve escolher qual ser a interface
primria (Figura 2).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 17

Figura 2 Seleo de qual interface de rede ser a primria.
FONTE: Arquivo do autor.

Aps a escolha da interface eth0 como primria, o instalador prossegue com a
configurao de rede tentando obt-la automaticamente atravs de um servidor DHCP. Esta
configurao pode ser cancelada neste momento e efetuada manualmente mais tarde (Figura
3).

Figura 3 Configurao da rede adiada.
FONTE: Arquivo do autor.

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 18
Posteriormente o instalador pede a definio de um nome para identificao do
servidor na rede, alm de configuraes de fuso horrio.
1.2.2 Particionamento
Particionamento a tarefa de preparao do disco rgido (HD) em uma ou mais partes
(parties) que recebero um sistema de arquivos para armazenamento de dados. Existem
diversos tipos de sistema de arquivos para parties Linux, sendo o sistema EXT3 um dos
mais utilizados em diversas distribuies. O EXT3 caracteriza-se por possuir suporte ao
recurso de journaling, responsvel por manter registros das operaes realizadas no sistema
de arquivos da partio.
Aps os ajustes inicias da instalao, necessrio executar o particionamento do disco
rgido, escolhendo a opo Manual para personalizar a definio das parties (Figura 4).

Figura 4 Particionamento do Disco Rgido.
FONTE: Arquivo do autor.
Aps a escolha do espao vazio o particionador solicita a criao de uma nova tabela
de parties, responsvel pela definio das caractersticas das parties. Assim o disco rgido
fica pronto para definio de uma ou mais parties a partir de um espao livre (Figura 5).

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 19

Figura 5 Escolha de um espao livre ou partio a ser usada.
FONTE: Arquivo do autor.
O Ubuntu Server possui como requisito mnimo de instalao pelo menos 1 GB de
espao em disco. Neste servidor virtual com disco rgido de 7.5 GB, sua instalao foi feita
usando a partio 1 (primria) com espao de 3 GB para armazenar o diretrio raz (/) e toda a
estrutura do sistema operacional.
O diretrio /home, local onde ficam os arquivos dos usurios, foi instalado na
partio 2 (lgica) com cerca de 4 GB. Este diretrio tende a ter seu espao ocupado com
mais rapidez, j que armazena tudo relacionado aos arquivos e configuraes dos usurios
cadastrados no sistema.
J a partio 3 utilizada como uma memria virtual para o sistema, chamada de
SWAP, aproveitando o restante (500 MB) dos 7.5 GB do disco rgido do servidor.
Sendo assim, as parties sero criadas com a seguinte configurao (Figura 6):
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 20

Figura 6 Esquema de particionamento utilizado.
FONTE: Arquivo do autor.
Aps a definio do esquema para as parties, a opo Finalizar o particionamento e
gravar as mudanas no disco escolhida e o instalador prossegue com a instalao do
sistema.
1.2.3 Instalao do Sistema Bsico
Durante o processo de instalao do sistema bsico, algumas configuraes so
solicitadas pelo instalador como, por exemplo, a definio de uma conta de usurio e senha de
acesso (Figura 7).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 21

Figura 7 Configurao de usurio e senha.
FONTE: Arquivo do autor.
O usurio criado aqui ser utilizado para configurao do sistema aps o trmino da
instalao, evitando o uso da conta root .
Tambm dada a opo de instalar alguns dos pacotes de softwares mais comuns
usados em servidores (Figura 8).

Figura 8 Instalao de pacotes de softwares.
FONTE: Arquivo do autor.
No entanto, a instalao dos pacotes necessrios ao Servidor Proxy (Squid), Firewall
(Iptables), File Server (Samba) e OpenSSH para acesso remoto ser feita posteriormente
atravs da ferramenta APT-GET, o que possibilita a utilizao de verses mais recentes.

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 22
A instalao prossegue e alguns minutos depois finalizada (Figura 9).

Figura 9 Finalizao da instalao.
FONTE: Arquivo do autor.
O instalador reinicia a mquina e o Ubuntu Server iniciado, solicitando em seguida o
nome de usurio e senha para login. Aps preencher os dados, o terminal apresentado e as
configuraes do servidor j podem ser feitas (Figura 10).

Figura 10 Terminal.
FONTE: Arquivo do autor.

2. FIREWALL IPTABLES E CONFIGURAO DE REDE
Neste captulo as interfaces de rede do servidor sero configuradas de acordo com o
tipo de conexo Internet existente e das caractersticas da rede onde o servidor ser
utilizado. Tambm ser ativado o compartilhamento da Internet usando regras no firewall
Iptables, juntamente com regras de segurana. Por fim, ser instalado e configurado um
servidor DHCP, responsvel pela distribuio automtica das configuraes de rede que cada
estao dever possuir.
2.1 Interfaces
A configurao das interfaces de rede feita no arquivo /etc/network/interfaces,
usando um editor de textos como o nano.
Neste arquivo possvel definir as configuraes de endereo IP, mscara, rede,
broadcast e gateway que cada interface ethernet do servidor possui.
Para este trabalho, com um servidor virtual conectado a uma conexo de Internet com
IP dinmico, foi definida a configurao representada na imagem abaixo (Figura 11).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 24

Figura 11 Edio das configuraes de rede usando o editor nano.
FONTE: Arquivo do autor.
Para que as configuraes entrem em funcionamento, o contedo do arquivo
/etc/network/interfaces precisa ser recarregado reiniciando o daemon (servio) responsvel
pelas configuraes de rede: sudo /etc/init.d/networking restart.
Antes de executar outras tarefas de configurao dos servios do servidor,
recomendvel atualizar a lista de pacotes dos repositrios do Ubuntu Server atravs do
comando sudo apt-get update (Figura 12), alm de efetuar a atualizao dos pacotes j
instalados por padro, utilizando o comando sudo apt-get upgrade (Figura 13).

Figura 12 Atualizao da lista de pacotes dos repositrios.
FONTE: Arquivo do autor.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 25

Figura 13 Atualizao dos pacotes j instalados.
FONTE: Arquivo do autor.
2.2 Firewall Iptables
Para von Hagen (2007, p. 727) Firewall um termo usado para descrever um sistema
que fica entre um ou mais sistemas de computadores, e monitora e gerencia o trfego da
rede.
O Iptables (tambm conhecido como netfilter) um firewall embutido no Kernel do
Linux, caracterizado por ser muito estvel e confivel, permitindo grande flexibilidade na
definio de regras. Seu funcionamento baseado na comparao de regras para saber se um
pacote tem ou no permisso para passar; podendo tambm ser utilizado para modificar e
monitorar o trfego da rede, roteamento, compartilhamento (NAT), e proteo contra diversas
formas de ataque. O Iptables ainda pode ter diversas funes adicionadas atravs de mdulos,
o que possibilita inmeras formas de uso do firewall (SILVA, 2007, p. 107).
2.2.1 Regras de compartilhamento
Aps a configurao das interfaces de rede do servidor, necessrio fazer a
configurao que permitir o compartilhamento da Internet (ligada eth0) com a rede local
(eth1) atravs de regras no Iptables.
Os comandos listados na Figura 14 constituem as regras necessrias para o
compartilhamento e para uma proteo bsica contra ataques vindos da Internet. Estes
comandos sero colocados em um arquivo chamado firewall dentro do diretrio
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 26
/usr/local/bin, e este arquivo ser transformado em um script executvel (sudo chmod +x
/usr/local/bin/firewall). Desta forma, adicionando sua localizao ao final do arquivo
/etc/rc.local (antes da linha exit0), o script ser sempre carregado mesmo que o servidor
seja reiniciado.

Figura 14 Regras para compartilhamento de Internet no Iptables.
FONTE: Arquivo do autor.
O Quadro 1 apresenta a descrio dos comandos usados no script, sem referncia aos
comentrios:
Quadro 1 Script de compartilhamento no Iptables.
Comando Funo
conexinternet=eth0 Varivel que identifica a interface de rede
conectada Internet (eth0).
conexlocal=eth1 Varivel que identifica a interface de rede
conectada rede local (eth1).
modprobe iptable_nat Ativa o mdulo iptable_nat para suporte a
roteamento de pacotes por NAT.
echo 1 > /proc/sys/net/ipv4/ip_forward Ativa o mdulo ip_forward que possibilita o
encaminhamento de pacotes.
iptables t nat A POSTROUTING o
$conexinternet j MASQUERADE
Regra que faz efetivamente o
compartilhamento.
iptables A INPUT p tcp synn j DROP Regra geral de segurana, bloqueando o
acesso a partir de conexes externas
(Internet).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 27
2.2.2 Configurao de Portas
As regras definidas anteriormente so suficientes apenas para o compartilhamento da
Internet com o restante das estaes da rede e uma proteo geral contra acessos provenientes
da Internet. No entanto, tambm possvel no Iptables definir regras para determinadas portas
no servidor.
A relao de portas que devem ser abertas ou fechadas no firewall depende
inicialmente de se ter em mente quais sero as principais atribuies do servidor. Por
exemplo, para um servidor web so necessrias pelo menos as portas TCP 80 e 443
(protocolos HTTP e HTTPS respectivamente), TCP 53 e UDP 53 (ambas para DNS,
responsvel pela resoluo de nomes de endereos).
Para o servidor desenvolvido neste trabalho, sero abertas no firewall as portas TCP
22, TCP 10000, UDP 137 e 138 e TCP 139 e 445, e fechada a porta 1863 utilizada pelo
programa de mensagens MSN/Windows Live Messenger (Figura 15).

Figura 15 Regras para portas no Iptables.
FONTE: Arquivo do autor.
O Quadro 2 apresenta a descrio dos comandos adicionados ao script do firewall:

Quadro 2 Regras para portas no Iptables.
Comando Funo
iptables -A INPUT -p tcp --dport 22 -j ACCEPT Condio para pacotes de entrada
destinados porta TCP 22, usada pelo
servidor OpenSSH.
iptables -A FORWARD -p tcp --dport 1863 -j
REJECT
Condio que bloqueia o acesso a
conexo proveniente do programa MSN.
iptables -A INPUT -p tcp --dport 10000 -j
ACCEPT
Condio para pacotes de entrada
destinados porta TCP 10000, usada
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 28
pelo software Webmin para acesso
remoto via web.
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
Condies para pacotes de entrada
destinados s portas UDP 137 e 138, e
TCP 139 e 445, usadas pelo servidor
Samba para navegao na rede e
resoluo de nomes das mquinas da
rede.

Estas portas so necessrias para os servios que posteriormente sero configurados
neste servidor.
2.2.3 Regras de Segurana
Muitos dos problemas relacionados segurana de uma rede de computadores podem
ser evitados (ou pelo menos minimizados) com um conjunto de regras definidas no firewall
Iptables. Quando combinadas com a atualizao dos servios instalados no servidor,
juntamente a uma poltica eficiente e clara sobre as condies de uso da rede e da Internet
pelos usurios, estas regras auxiliam o Administrador a ter um controle sobre praticamente
tudo o que deve ocorrer em relao ao acesso rede e a Internet.
No script configurado anteriormente, foram definidas regras relacionadas ao
compartilhamento e a determinadas portas que so usadas por programas previstos nas
funcionalidades do servidor. Mas, alm disso, tambm vlido adicionar mais algumas regras
visando justamente evitar possveis brechas de segurana no servidor e na rede (Figura 16).


Figura 16 Regras de segurana no Iptables.
FONTE: Arquivo do autor.

O Quadro 3 apresenta a descrio dos comandos usados no script :


Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 29
Quadro 3 Regras de segurana no Iptables.
Comando Funo
iptables A INPUT i $conexlocal j ACCEPT Condio que aceita os pacotes
provenientes da rede local.
iptables A INPUT p icmp icmp-type echo-
request j DROP
Condio que ignora ping, dificultando
ao invasor saber se o servidor est
online.
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables A INPUT m state state INVALID j
DROP
Regras para ignorar pacotes invlidos.
iptables A INPUT i lo j ACCEPT Pacotes vindos do prprio servidor so
aceitos.
2.3 Servidor DHCP
O servidor DHCP (Dynamic Host Configuration Protocol) o servio responsvel por
distribuir para as estaes as configuraes de endereamento IP que cada uma dever possuir
na rede de forma automtica. Isto especialmente til em redes com uma grande quantidade
de computadores, evitando a necessidade de se configurar manualmente cada uma das
mquinas pertencentes rede.
O funcionamento do DHCP baseado em pacotes de broadcast, onde uma estao
configurada para receber um endereo IP automaticamente, envia um pacote de broadcast
tentando encontrar um servidor DHCP na rede que fornea uma configurao vlida de IP
(VAN VUGT, 2008, p. 279). Alm do endereo IP a estao tambm recebe as configuraes
de mscara de rede, gateway e DNS utilizados na rede.
2.3.1 Instalao e configurao do servidor
A instalao do servidor DHCP no Ubuntu feita atravs do pacote dhcp3-server
usando o comando sudo apt-get install dhcp3-server.
Sua configurao definida no arquivo /etc/dhcp3/dhcpd.conf. Este arquivo um
modelo de configurao com comentrios, o que o deixa bastante extenso. Para simplificar o
procedimento de configurao do servidor, o arquivo original dhcpd.conf renomeado para
dhcpd.conf.old, e ento criado um novo arquivo dhcpd.conf com apenas as
configuraes necessrias para o servidor que est sendo implementado (Figura 17).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 30

Figura 17 Arquivo dhcpd.conf.
FONTE: Arquivo do autor.
O Quadro 4 apresenta a descrio das linhas utilizadas na configurao do arquivo
dhcpd.conf:
Quadro 4 Arquivo dhcpd.conf.
Linha Funo
ddns- update-style none; Define que o DHCP no tentar interagir com
um servidor de nomes (DNS).
default- lease-time 600; Controla o tempo (em segundos) de
renovao dos endereos IP disponibilizados.
max-lease-time 7200; Tempo mximo que uma estao pode ficar
com um endereo IP.
authoritative; Determina que este seja o principal servidor
DHCP da rede local.
subnet 192.168.0.0 netmask 255.255.255.0 { Define que faixa de endereos e mscara a
rede local utilizar.
range 192.168.0.1 192.168.0.100; Faixa de endereos que sero distribudos
automaticamente entre as estaes.
option routers 192.168.0.250; Roteador (Gateway) da rede.
option domain- name-servers
208.67.222.222,208.67.220.220;
Endereos dos servidores DNS (neste caso,
usando endereos dos servidores pblicos
OpenDNS)
option broadcast-address 192.168.0.255; Endereo para pacotes broadcast.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 31
host micro1 {
hardware ethernet
00:0C:29:A1:78:DA;
fixed-address 192.168.0.101;
}
host micro2 {
hardware ethernet
00:50:56:C0:00:01;
fixed-address 192.168.0.102;
}
Seo que possibilita relacionar um endereo
IP fixo ao endereo fsico (MAC Address) da
placa de rede de uma estao.
} Finaliza as configuraes do arquivo
dhcpd.conf.

Fora a configurao do dhcpd.conf, como o servidor possui duas placas de rede
tambm importante configurar o DHCP para escutar somente a placa da rede local, j que
somente s estaes conectadas a esta interface que o servidor DHCP dever responder. Esta
configurao feita no arquivo /etc/default/dhcp3-server, alterando a linha
INTERFACES= por INTERFACES=eth1 (MORIMOTO, 2008, p. 129).
Para que as alteraes entrem em funcionamento, o servio dhcp3-server reiniciado
com o comando sudo /etc/init.d/dhcp3-server restart.

3. SERVIDOR PROXY SQUID
Um servidor Proxy como o Squid tem como principal finalidade servir como um
intermedirio entre as mquinas da rede local e a Internet. atravs dele que podemos definir
restries baseadas em polticas de acesso (chamadas de ACLs) e um uso mais racional e
controlado da Internet; tendo tambm a vantagem de funcionar como um cache de pginas e
arquivos j acessados, economizando assim o uso da banda disponvel e melhorando a
velocidade de acesso. Neste captulo ser demonstrado como implementar um servidor Proxy
transparente com o Squid.
3.1 Tipos de Proxy
O Squid pode ser configurado para atuar de diferentes formas de acordo com a
necessidade de uso da Internet na rede local. possvel us- lo como um Proxy Tradicional,
configurando manualmente cada estao da rede; como um Proxy Transparente, com
redirecionamento automtico de pacotes para o Squid; como Proxy com Autenticao,
exigindo usurio e senha para acesso; como um Proxy com Configurao Automtica (PAC),
baseado em um script disponvel em um servidor Web; e como Proxy WPAD, possibilitando
que os clientes localizem o script de configurao automaticamente.
3.1.1 Tradicional
O Proxy dito como tradicional ou comum o tipo mais bsico de configurao de um
Proxy como o Squid. Neste tipo de uso h a necessidade obrigatria de se configurar
manualmente cada uma das mquinas da rede, alterando as configuraes dos navegadores
utilizados (como o Internet Explorer e Mozilla Firefox) para que acessem a Internet somente
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 33
pelo endereo do servidor Proxy. Sua principal desvantagem justamente a pouca praticidade
de implementao.
3.1.2 Transparente
O Proxy Transparente atua a partir de uma regra de firewall, onde configurado o
compartilhamento via NAT de modo que os acessos destinados porta 80 possam ser
interceptados e direcionados ao Squid. Desta forma tudo passa obrigatoriamente por suas
regras de controle. Uma grande vantagem no uso de um Proxy Transparente reside no fato de
que as estaes passam a receber esta configurao automaticamente a partir do gateway da
rede.
No entanto, esta soluo tambm possui algumas restries como, por exemplo, a
impossibilidade de se utilizar um sistema de autenticao juntamente com o Proxy
Transparente. Alm disso, somente os dados trafegados na porta 80 so controlados.
3.1.3 Com Autenticao
Nesta modalidade de configurao possvel utilizar um sistema de autenticao para
que o usurio possa acessar a Internet com base em alguns critrios. O Squid passa a utilizar
um mdulo de autenticao baseado em um arquivo de senhas para definio de quais
usurios podero acessar a Internet. Tambm possvel fazer com que o Squid se autentique
em um servidor configurado como PDC (como o Samba ou mesmo o Active Directory).
3.1.4 PAC
Neste tipo de aplicao utilizado um script PAC (Proxy Auto Configuration)
disponibilizado na rede local por meio de um servidor web como o Apache. Este arquivo
criado em /var/www/wpad.dat com um pequeno contedo escrito em Javascript :

Function FindProxyForUrl(url, host)
{
Return PROXY 192.168.0.250:3128;
}

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 34
Este mtodo ainda exige a configurao manual em cada estao para que o script seja
recebido e processado, fazendo com que utilizem o endereo do Proxy como forma de sada
para a Internet. No entanto, caso seja necessrio efetuar alguma mudana na configurao de
Proxy nas estaes, bastar mudar o script.
3.1.5 WPAD
O WPAD (Web Proxy Auto Discovery protocol) uma forma de implementao que
usa como base o Proxy com script PAC juntamente com configuraes nos servidores DHCP
e DNS da rede. Assim as estaes so orientadas a buscar de forma automtica o arquivo com
o script, bastando ativar nos navegadores das mquinas a opo que permita detectar
automaticamente as configuraes de Proxy e Rede.
3.2 Instalao do Squid
Definido o tipo de Proxy que ser utilizado na rede, hora de iniciar sua
implementao no servidor Ubuntu Server.
A instalao do Squid segue o padro comum a outros pacotes instalados no Ubuntu,
usando o comando sudo apt-get install squid (Figura 18).

Figura 18 Instalao do Squid.
FONTE: Arquivo do autor.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 35
Sua configurao feita no arquivo /etc/squid/squid.conf, que originalmente possui
uma srie de comentrios e exemplos para diversas configuraes e interpretado
sequencialmente pelo aplicativo.
3.3 Configurao bsica como Proxy Transparente
Para simplificar o procedimento de configurao do Squid, o arquivo original
squid.conf renomeado para squid.conf.old, e ento criado um novo arquivo
/etc/squid/squid.conf.
O novo arquivo ter inicialmente a configurao demonstrada na Figura 19:

Figura 19 Configurao inicial do squid.conf.
FONTE: Arquivo do autor.
O Quadro 5 apresenta a descrio das linhas utilizadas na configurao inicial do
arquivo squid.conf:
Quadro 5 Configurao inicial do squid.conf.
Linha Funo
http_port 3128 transparent Porta padro utilizada pelo Squid e
parmetro que define o Proxy como
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 36
transparente.
visible_hostname konoha Nome do servidor.
acl all src 0.0.0.0/0.0.0.0 ACL com todos os endereos de rede
possveis.
acl manager proto cache_object ACL para o protocolo cache_object
(protocolo pertencente ao Squid).
acl localhost src 127.0.0.1/255.255.255.255 ACL para o endereo localhost do
prprio servidor.
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59
777 901 1025-65535
ACLs para portas que podem ser
utilizadas pelo Proxy.
acl purge method PURGE ACL para o mtodo PURGE
(responsvel por limpar objetos do
cache).
acl CONNECT method CONNECT ACL para o mtodo CONNECT.
http_access allow manager localhost Regra que libera o acesso das ACLs
manager e localhost combinadas.
http_access deny manager Regra que nega a ACL manager.
http_access allow purge localhost Regra que libera o acesso das ACLs
purge e localhost combinadas.
http_access deny purge Regra que nega a ACL purge.
http_access deny !Safe_ports Regra que nega as portas no
especificadas na ACL Safe_ports.
http_access deny CONNECT !SSL_ports Regra que nega conectividade s
portas no especificadas na ACL
SSL_ports.
acl redelocal src 192.168.0.0/24 ACL para os endereos da rede local
http_access allow localhost Regra que libera o acesso vindo do
localhost (servidor).
http_access allow redelocal Regra que libera o acesso vindo da
rede local.
http_access deny all Regra geral que nega o acesso a tudo
que no foi especificado nas regras
anteriores.

Como o Proxy ser usado de forma transparente, tambm necessrio adicionar ao
firewall Iptables (logo aps a regra de compartilhamento NAT) uma regra que intercepte e
direcione o trfego da porta 80 para o Squid:

iptables -t nat -A PREROUTING -i $conexlocal -p tcp --dport 80 -j REDIRECT --to- \
port 3128

Aps estas configuraes, as regras do Iptables so limpas (sudo iptables -F) e o
script do firewall carregado novamente (sudo firewall). As novas configuraes do Squid
tambm precisam ser carregadas usando o comando sudo /etc/init.d/squid restart.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 37
Estas configuraes so suficientes para que o Proxy funcione com um conjunto
mnimo de restries de portas e de acesso local, permitindo que as estaes j tenham acesso
Internet.
3.4 Definindo o Cache do servidor Proxy
Depois de ativar o Squid com algumas funes bsicas, possvel definir suas
configuraes mais avanadas, como ajustes relacionados ao Cache.
O Squid utiliza as formas de cache em memria RAM (com pouco espao e
velocidade maior) e em disco (com grande espao de armazenamento, mas com acesso mais
lento).
A quantidade de espao reservado na memria RAM e no disco rgido depende
principalmente do quanto de capacidade estes dispositivos de hardware possuem no servidor.
Para Morimoto (2008, p. 140) como regra geral, voc pode reservar 32 ou 64 MB para o
cache em um servidor dedicado, que atende a apenas alguns micros, e at 1/3 da memria
RAM total em um servidor Proxy dedicado, que atende a um volume maior de usurios.
Em relao ao espao reservado em disco, pode-se usar um valor alto caso haja
bastante espao no disco rgido do servidor e se quiser que o Squid armazene os downloads
por um longo perodo (MORIMOTO, 2008, p. 141).
Considerando o servidor virtual implementado neste trabalho, uma mquina com 128
MB de memria RAM e HD de 7,5 GB, podem ser usados os seguintes ajustes para o Cache
do servidor:
Cache em memria RAM: 50 MB
Cache em disco (HD): 2 GB
Tamanho mximo de objeto na memria: 64 KB
Tamanho mximo de objeto no disco: 512 MB
Tamanho mnimo de objeto no disco: 0 KB
Tambm so especificados o arquivo que armazenar os logs de acesso do Squid e o
diretrio que contm as pginas de erro em Portugus. Posteriormente, o Sarg (utilitrio para
relatrios) utilizar o arquivo de log para gerar relatrios com informaes sobre as pginas
acessadas pelas estaes.
Depois de feitas as alteraes, destacadas na imagem, o arquivo squid.conf ter a
configurao demonstrada na Figura 20:
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 38

Figura 20 Configurao parcial do squid.conf.
FONTE: Arquivo do autor.
O Quadro 6 apresenta a descrio das linhas acrescentadas na configurao parcial do
arquivo squid.conf:
Quadro 6 Configurao parcial do squid.conf.
Linha Funo
cache_mem 50 MB Quantidade reservada para o cache na memria
RAM.
maximum_object_size_in_memory 64 KB Tamanho mximo dos arquivos armazenados
no cache em memria.
maximum_object_size 512 MB Tamanho mximo dos arquivos armazenados
no cache em disco.
minimum_object_size 0 KB Tamanho mnimo dos arquivos armazenados
no cache em disco.
cache_dir ufs /var/spool/squid 2048 16 256 Diretrio onde o Squid armazenar os
arquivos, espao reservado no disco rgido em
MB, quantidade de pastas e subpastas que
sero criadas dentro do diretrio.
cache_access_log /var/log/squid/access.log Diretrio e arquivo onde os logs do Squid
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 39
sero armazenados.
error_directory
/usr/share/squid/errors/Portuguese
Diretrio de pginas de erro (em portugus)
usadas pelo Squid.

3.5 Regras para Polticas de Acesso (ACLs)
Alm de funcionar como um cache para armazenar as pginas e arquivos j acessados,
o Squid tambm normalmente utilizado como um meio de organizar e restringir o uso da
Internet de acordo com determinar regras.
Estas regras so definidas atravs de um conjunto de ACLs (Access Control List),
onde por meio de regras e parmetros possvel criar configuraes que restrinjam ou liberem
o acesso a domnios, palavras e IPs; que impeam o download de arquivos com determinadas
extenses; dentre outras possibilidades.
Para este trabalho, sero criadas polticas de acesso baseadas em:
Bloqueio de sites (de acordo com domnios e palavras na URL);
Acesso livre para determinadas mquinas (de acordo com o MAC Address).
3.5.1 Bloqueio de sites
O bloqueio de sites no Squid feito usando ACLs com as seguintes regras:
dstdomain: verifica os domnios, necessitando que se especifique os endereos
com e sem www;
url_regex: verifica os domnios, mas no bloqueia endereos dinmicos passados
como parmetro da URL;
dstdom_regex: verifica todas as palavras existentes na URL.
Estas regras podem ser combinadas ao mesmo tempo nas ACLs para obter um melhor
resultado no controle de acesso.
Sendo assim, o bloqueio dos domnios restritos ser especificado com o auxlio de
uma lista de endereos num arquivo de texto comum, armazenado em um diretrio como, por
exemplo, /etc/squid/controle-de-acesso/sites-bloqueados. O contedo do arquivo segue um
modelo simples, com cada endereo em uma linha como demonstrado na Figura 21:
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 40

Figura 21 Arquivo com lista de endereos bloqueados.
FONTE: Arquivo do autor.

Com a lista definida, basta apenas escrever a ACL usando url_regex e a referncia
ao arquivo, alm da regra http_access deny para negar o acesso.

acl bloqueados url_regex -i /etc/squid/controle-de-acesso/sites-bloqueados
http_access deny bloqueados

De forma complementar, tambm possvel utilizar uma lista (/etc/squid/controle-de-
acesso/palavras) com palavras que sero verificadas pela regra dstdom_regex (Figura 22).

Figura 22 Arquivo com lista de palavras bloqueadas.
FONTE: Arquivo do autor.

Em seguida, definimos a ACL:

acl palavras dstdom_regex /etc/squid/controle-de-acesso/palavras
http_access deny palavras
3.5.2 Controle de acesso de mquinas
As ACLs podem ser usadas tambm para definir o controle de acesso de determinadas
estaes da rede local.
possvel definir uma lista dos MAC Addresses das mquinas que podero ter acesso
irrestrito (Figura 23):
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 41

Figura 23 Arquivo com lista de endereos MAC de mquinas.
FONTE: Arquivo do autor.

Com o parmetro arp e a regra http_access allow configuramos a ACL para
permitir o acesso destes endereos MAC:

acl diretoria arp /etc/squid/admin/diretoria
http_access allow diretoria

Como o squid.conf lido sequencialmente pelo Squid, as regras que abrem o acesso
devem vir antes de regras de restrio para que funcionem corretamente.
Depois de definir as ACLs, o arquivo squid.conf estar com as configuraes
mostradas na Figura 24:
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 42

Figura 24 Arquivo squid.conf configurado com ACLs.
FONTE: Arquivo do autor.

Para que as regras entrem em funcionamento, necessrio que o Squid recarregue as
novas configuraes, tarefa que pode ser feita com o comando sudo /etc/init.d/squid reload.
Feito isso, ao tentar acessar uma dos domnios bloqueados ou endereos com alguma
palavra proibida na URL, o usurio encontra uma pgina de erro informando que o acesso foi
negado (Figura 25).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 43

Figura 25 Acesso negado pelo Squid.
FONTE: Arquivo do autor.
3.6 SquidGuard
O SquidGuard um aplicativo que permite usar longas listas com milhes de URLs de
sites imprprios (pornogrficos, downloads ilegais, cracks, drogas etc), auxiliando o Squid na
tarefa de bloquear o acesso a estes endereos sem com isso prejudicar o desempenho do Proxy
(MORIMOTO, 2008, p. 168).
Regras como url_regex e dstdom_regex so teis na tarefa de bloquear endereos
ou termos especficos. No entanto, para bloquear a maior parte dos milhes de endereos de
sites imprprios existentes na Internet, h a necessidade de se utilizar uma grande lista de
URLs mantida por grupos como o MESD Blacklists e Shallas Blacklists. O uso de listas a
partir do SquidGuard torna as tarefas de restrio muito mais eficientes e prticas para o
Squid, j que a necessidade de ficar constantemente atualizando as listas originalmente usadas
pelo squid.conf acaba sendo drasticamente reduzida.
3.6.1 Instalao e Configurao
A instalao do SquidGuard feita usando o comando sudo apt-get install
squidguard.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 44
Tambm necessrio baixar pelo menos uma das listas que ser usada pelo programa.
No servidor implementado neste trabalho, ser utilizada a lista do MESD que pode ser
baixada usando o comando wget c http://squidguard.mesd.k12.or.us/blacklists.tgz.
Usando agora o usurio root do sistema, aps o download a lista copiada com o
comando cp blacklists.tgz /var/lib/squidguard/db para o diretrio /var/lib/squidguard/db e
em seguida descompactada usando o comando tar - zxvf blacklists.tgz.
Ao acessar o diretrio /var/lib/squidguard/db/blacklists possvel visualizar uma
lista de diretrios divididos por assuntos (Figura 26).

Figura 26 Diretrio blacklists.
FONTE: Arquivo do autor.
O contedo da lista inclui domnios e URLs relacionadas a sites de entretenimento
como o Youtube e MSN Web Messenger, passando por sites inerentes a redes sociais (como
Orkut), sites com endereos de servidores Proxy pblicos, rdios online, alm de sites
pornogrficos e muitos outros.
Com o SquidGuard instalado e a lista MESD disponvel, necessrio editar o arquivo
/etc/squid/squidGuard.conf para especificar as sees da lista que sero usadas.
Para o bloqueio de sites com contedo pornogrfico, drogas, violncia, softwares
piratas e servidores de Proxy pblico, o arquivo pode ser configurado da forma mostrada na
Figura 27:
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 45

Figura 27 Arquivo squidGuard.conf.
FONTE: Arquivo do autor.
As classes dest indicam o nome da seo e a localizao dos endereos de domnio
(domainlist) e das URLs (urllist) da blacklist. A ltima ACL, por meio do parmetro pass,
indica a forma como as classes dest sero tratadas, sendo que os itens com o sinal de
exclamao (!) antes do nome tero o acesso bloqueado com redirecionamento (redirect)
automtico para uma outra pgina ou site (no caso o site Google, na configurao
demonstrada na figura anterior).
Por fim, necessrio tambm converter a lista para o formato Berkeley DB usando o
comando squidGuard -C all. Esta converso possibilita que o acesso ao contedo da lista
seja feito de forma mais rpida do que como um arquivo de texto comum.
3.6.2 Ajustando as permisses de acesso e alterando o Squid
Aps a instalao e configurao inicial do SquidGuard, h ainda a necessidade de
ajustar as permisses de acesso aos arquivos do aplicativo para que o Squid possa acess- los.
O ajuste de permisses feito em trs etapas:
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 46
chown -R proxy:proxy /var/lib/squidguard/db/*: com este comando, o usurio e
grupo proxy (pertencentes ao Squid) passam a ter acesso aos arquivos do diretrio
do SquidGuard;
find /var/lib/squidguard/db type f | xargs chmod 644: usando o comando
find e o parmetro -type f, todos os arquivos do diretrio
/var/lib/squidguard/db so localizados. Logo em seguida so direcionados pelo
xargs como parmetros para o comando chmod 644.
find /var/lib/squidguard/db type d | xargs chmod 755: novamente usando o
find com o parmetro -type d, todos os diretrios do diretrio
/var/lib/squidguard/db so localizados e em seguida direcionados pelo xargs
como parmetros para o comando chmod 755.
Com todos os ajustes de permisses feitos, agora necessrio adicionar a linha
redirect_program /usr/bin/squidGuard antes das regras que liberam o acesso da rede local
(http_access allow localhost e http_access allow redelocal). Com esta linha o SquidGuard
passa a ser ativado fazendo com que as requisies passem por ele.
Para que todas as alteraes entrem em funcionamento, basta apenas reiniciar o Squid
com o comando /etc/init.d/squid restart.
3.7 Monitorando os acessos com o Sarg
O Sarg (Squid Analysis Report Generator) um aplicativo que interpreta os logs do
Squid e gera relatrios com informaes sobre as pginas acessadas a partir de qualquer
mquina da rede. Com esses relatrios possvel monitorar quais sites esto sendo acessados
pelos usurios e, gradativamente, ir adaptando os filtros do Squid.
A instalao do pacote feita usando o comando sudo apt-get install sarg, e sua
configurao principal definida no arquivo /etc/squid/sarg.conf. Usando o nano para edit-
lo, as seguintes configuraes sero feitas:
Idioma Language Portuguese
Formato de data (dd- mm- yy): date_format e
Para usar o Sarg basta cham-lo com o comando sudo sarg, e os relatrios sero
gerados e gravados automaticamente no diretrio /var/www/squid-reports. Caso seja
necessrio gerar um relatrio de algum perodo especfico, pode-se usar o comando sudo
sarg -d dd/mm/yyyy-dd/mm/yyyy. Exemplo: sudo sarg d 20/02/2009-28/02/2009.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 47
Com o tempo os relatrios vo ocupando muito espao em disco, sendo necessrio
eventualmente mov- los para outra mdia ou apag- los conforme ficam antigos.
Posteriormente, estes relatrios podero ser visualizados em qualquer navegador na
rede local com a utilizao de um gerenciador web, como Webmin, que ser abordado no
captulo 5 deste trabalho.

4. SERVIDOR DE ARQUIVOS SAMBA
Um servidor de arquivos (File Server) como o Samba possibilita aos usurios
armazenar seus arquivos em um local centralizado na rede, podendo compartilh- los
facilmente com outros usurios e acess- los a partir de outras mquinas da rede com
segurana e praticidade (VAN VUGT, 2008, p. 299).
Para Morimoto (2008, p. 245) hoje, alm de ser quase 100% compatvel com os
recursos de rede do Windows 98, NT, 2000 e XP, o Samba reconhecido por ser mais rpido
que o prprio Windows na tarefa de servidor de arquivos.
Neste captulo ser demonstrada a implementao do Samba como servidor de
arquivos, desde sua instalao, cadastro de usurios, configurao dos compartilhamentos de
diretrios editando o arquivo smb.conf, alm de ajustes de permisso para acesso.
4.1 Instalao do Samba
O Samba possui originalmente os mdulos de instalao como servidor e como cliente
(smbclient). O mdulo cliente tem somente a finalidade de permitir o acesso a
compartilhamentos em outras mquinas ou servidores. J o mdulo servidor, o necessrio
para configurao do Samba como um servidor de arquivos na rede.
O pacote do servidor Samba com mdulo servidor instalado no Ubuntu Server
utilizando o comando sudo apt-get install samba.
4.2 Usurios
Aps instalar o Samba, necessrio cadastrar os usurios (login e senha) que faro
acesso aos compartilhamentos do servidor. Como o Samba roda sobre o sistema operacional,
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 49
os usurios que iro acessar o servidor precisam estar necessariamente cadastrados no
sistema.
A quantidade de usurios que devem ser cadastrados no sistema e no Samba, alm das
caractersticas e privilgios que cada um deve ter, varia de acordo com o que foi planejado em
relao ao uso do Servidor na rede. Para o servidor virtual desenvolvido neste trabalho, sero
cadastrados no sistema (e depois no Samba) mais trs usurios: neil, geddy, e alex. O
usurio administrativo tiago j existe no sistema e posteriormente tambm ser adicionado
ao servidor Samba.
4.2.1 Cadastro de usurios no sistema
O cadastro de usurios no Ubuntu Server feito atravs do comando sudo adduser
nomedousuario, especificando obrigatoriamente pelo menos o nome de usurio (login) que
se deseja criar e uma senha (password).
Os usurios tiago, neil, geddy e alex tero acesso livre aos seus prprios
diretrios compartilhados, alm de acesso controlado outros que sero definidos em seguida
configurando as sees de compartilhamento do smb.conf.
Ao usar o comando sudo adduser neil o utilitrio solicita as informaes que sero
cadastradas para o novo usurio chamado neil, (Figura 28).

Figura 28 Adicionando usurios ao sistema.
FONTE: Arquivo do autor.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 50
Os usurios geddy e alex tambm devem ser adicionados ao sistema usando o
mesmo comando utilizado para adicionar o usurio neil.
Usando o comando sudo adduser nomedousuario sem nenhum parmetro criado
um usurio real no sistema, ou seja, um usurio que realmente pode acessar o servidor e
possui seu prprio diretrio de arquivos e configuraes, o que de certa forma pode dar
margem a alguma brecha de segurana.
Uma alternativa criar o usurio sem permisso de acesso ao servidor (com o login
desabilitado) e sem o diretrio /home (que possui seus arquivos e configuraes). Por
exemplo, para criar um usurio chamado teste, seria utilizado o comando sudo adduser --
disabled- login --no-create-home teste. Este usurio passaria a ter acesso somente ao
compartilhamento configurado no Samba pelo Administrador, sem qualquer possibilidade de
acessar o terminal do servidor.
4.2.2 Cadastro de usurios no Samba
Com os usurios cadastrados no sistema operacional, agora necessrio adicion- los
ao servidor Samba. Esta tarefa executada para cada usurio usando o comando sudo
smbpasswd -a nomedousuario, especificando em seguida uma senha (que no precisa ser
necessariamente a mesma senha usada no sistema) para acesso ao servidor Samba.
Desta forma, para adicionar o usurio tiago se utiliza o comando na forma mostrada
na Figura 29.

Figura 29 Adicionando usurios ao servidor Samba.
FONTE: Arquivo do autor.

Os usurios neil, geddy e alex usados no desenvolvimento deste trabalho
tambm so adicionados usando o mesmo comando utilizado para adicionar o usurio tiago.
O comando smbpasswd tambm pode ser utilizado com outros parmetros, como
smbpasswd -d nomedousuario para desativar um usurio cadastrado no Samba,
smbpasswd -e nomedousuario para habilitar um usurio inativo e smbpasswd -x
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 51
nomedousuario para remover um usurio do servidor Samba, sendo esta ltima opo
normalmente combinada posteriormente com o uso do comando deluser nomedousuario
para remov-lo tambm do sistema.
4.3 Configurao usando o smb.conf
A configurao do servidor Samba pode ser feita editando diretamente o arquivo
/etc/samba/smb.conf ou com o auxlio de aplicativos de administrao via web, como o
Swat e o Webmin. Para o servidor de Arquivos desenvolvido neste trabalho, ser demonstrada
a configurao feita manualmente no smb.conf usando um editor de texto como o nano.
O arquivo smb.conf disponvel aps a instalao do pacote samba bastante
extenso, possuindo dezenas de linhas comentadas com explicaes sobre seus parmetros.
Assim como feito em relao ao squid.conf (arquivo de configurao do Squid),
recomendvel renomear o arquivo original smb.conf para smb.conf.old usando o
comando sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old, e ento criar um novo
arquivo smb.conf usando o comando sudo nano /etc/samba/smb.conf e escrever sua
configurao desde o incio.
Desta forma, possvel configurar um arquivo mais simples contendo somente as
opes e parmetros necessrios para o funcionamento do servidor de Arquivos.
4.3.1 Configurao global
O arquivo smb.conf dividido em sees, sendo que a primeira seo de
configurao a [global]. Nesta seo definida a configurao geral do servidor, onde
podemos especificar diversas opes tais como nome do servidor, grupo de trabalho, nvel de
segurana, faixa de endereos que tero ou no acesso aos compartilhamentos, definio da
interface de rede que o servidor usar, dentre outras opes.
Para o desenvolvimento do servidor Samba deste trabalho, usando o comando sudo
nano /etc/samba/smb.conf, a seo [global] ser configurada com as opes e parmetros
mostrados na Figura 30:
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 52

Figura 30 Configurao da seo [global] no smb.conf.
FONTE: Arquivo do autor.

Muitas opes possveis no smb.conf so o padro nativo de configurao do
Samba. Por exemplo, a opo security = user, que define o nvel de segurana do Samba
como sendo baseado em usurio, no precisa ser colocada no arquivo, j que ela uma
configurao padro global para o servidor.
O Quadro 7 apresenta a descrio das linhas utilizadas na configurao da seo
[global] do arquivo smb.conf:
Quadro 7 Configurao da seo [global] do smb.conf.
Linha Funo
netbios name = Konoha Opo que define o nome do servidor Samba.
server string = Samba Server Opo que define uma descrio para o servidor.
workgroup = REDELOCAL Grupo de trabalho no qual o servidor aparecer.
username level = 2 Opo que verifica em at dois nveis as possveis
combinaes entre letras maisculas e minsculas digitadas
em nomes de logins.
preserve case = no
default case = lower
Opes que fazem com que o Samba salva todos os arquivos
em letras minsculas, evitando possveis problemas ao
localizar arquivos.
interfaces = eth1
bind interfaces only = yes
Opes que orientam o Samba a utilizar somente a interface
conectada rede local (no caso, a eth1).
local master = yes Opo que possibilita ao Samba convocar (quando
necessrio) uma eleio para manter-se como servidor
preferencial na rede.
os level = 100 Opo para credenciar o Samba como servidor preferencial
da rede, utilizando para isso um nvel (de 0 a 255). Usando
qualquer valor alto (acima de 32), o Samba vence a eleio
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 53
se utilizado em uma rede com outros servidores Windows.
preferred master = yes Com esta opo ativada, o servidor ter preferncia caso
exista outra mquina com o mesmo nvel (os level) na
rede.
wins support = yes Opo que faz o Samba atuar tambm como um servidor
WINS, auxiliando as estaes Windows em tarefas como
navegao na rede e listagem de compartilhamentos.

Com o servidor WINS ativado, necessrio que as estaes sejam configuradas para
utiliz- lo. Esta tarefa pode ser automatizada adicionando a linha option netbios- name-servers
192.168.0.250; s configuraes de rede do servidor DHCP atravs do arquivo
/etc/dhcp3/dhcpd.conf (Figura 31), e em seguida reiniciando-o.

Figura 31 Adicionando endereo do servidor WINS no DHCP.
FONTE: Arquivo do autor.
O Samba possui um utilitrio chamado testparm utilizado para analisar o arquivo
smb.conf. Digitando sudo testparm o programa iniciado e comea a analisar o arquivo,
verificando se h alguma configurao incorreta, informando ao Administrador os parmetros
a serem corrigidos (caso existam) no smb.conf (Figura 32).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 54

Figura 32 Verificao do smb.conf usando o testparm.
FONTE: Arquivo do autor.

A linha Loaded services file OK indica que a configurao no possui erros.
Aps verificar o smb.conf, necessrio reiniciar o Samba usando o comando sudo
/etc/init.d/samba restart para que as configuraes entrem em funcionamento. Ainda no h
compartilhamentos, mas esta configurao suficiente para que o Samba fique disponvel
atravs dos Meus locais de rede nas estaes Windows (Figura 33):

Figura 33 Visualizando o servidor nos Meus locais de rede da estao.
FONTE: Arquivo do autor.

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 55
4.3.2 Criao dos compartilhamentos
A criao dos compartilhamentos feita por meio de sees com o nome do
compartilhamento que se deseja criar configuradas logo aps a seo [global] do smb.conf.
Neste servidor, sero criadas sees de compartilhamento para o diretrio de cada
usurio cadastrado no sistema e no Samba (no caso, os usurios tiago, neil, geddy, e
alex), alm de compartilhamentos para acesso geral e restrito, chamados respectivamente de
publico e arquivos. Os diretrios para estes dois compartilhamentos so criados usando o
comando sudo mkdir /home/publico /home/arquivos (Figura 34).

Figura 34 Criao dos diretrios publico e arquivos.
FONTE: Arquivo do autor.
Antes de definir as sees de compartilhamento no smb.conf, possvel criar um
diretrio vazio dentro do /home de cada usurio e us- lo como diretrio de
compartilhamento. Esta prtica evita que, ao compartilhar o diretrio /home inteiro do
usurio, os arquivos e diretrios de configurao de programas fiquem expostos ao acessar o
compartilhamento na rede, o que pode dificultar a organizao e visualizao dos arquivos
realmente importantes daquele usurio.
Sendo assim, aps acessar o diretrio /home, criaremos um diretrio chamado share
dentro dos diretrios dos usurios tiago, neil, geddy, e alex, utilizando o comando
sudo mkdir tiago/share neil/share geddy/share alex/share. Para que o diretrio share seja
criado automaticamente caso outros usurios sejam cadastrados no sistema, basta adicion- lo
ao diretrio modelo /etc/skel com o comando sudo mkdir /etc/skel/share.
Aps a definio dos diretrios, as sees de compartilhamentos so configuradas no
smb.conf, como mostrado na Figura 35:
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 56

Figura 35 Sees de compartilhamento no smb.conf.
FONTE: Arquivo do autor.
O Quadro 8 apresenta a descrio das linhas acrescentadas para a configurao das
sees de compartilhamento no arquivo smb.conf:
Quadro 8 Configurao das sees de compartilhamento no smb.conf.
Linha Funo
[homes] Usando homes como nome de seo, o Samba faz o
compartilhamento de todos os usurios cadastrados no
sistema de forma automtica.
path = /home/%u/share Caminho para o diretrio que ser compartilhado.
valid users = %S Usurios vlidos. Configurado com a varivel %S, faz
com que a pasta fique disponvel somente para o prprio
usurio.
writable = yes Define que o compartilhamento possui permisso de
escrita.
create mask = 0700
directory mask = 0700
As duas opes definem o padro para criao e
remoo de arquivos e diretrios no compartilhamento,
neste caso, restringindo estas tarefas a somente o prprio
usurio.
browseable = no O compartilhamento no ser visvel por outros usurios.

[arquivos] Nome do compartilhamento.
path = /home/arquivos/ Caminho para o diretrio que ser compartilhado.
valid users = +arquivos, +publico Usurios vlidos, podendo ser especificado uma lista de
nomes de usurios e/ou um ou vrios nomes de grupos
de usurios do sistema precedidos do sinal +. Neste
caso, os grupos arquivos e publico podem acessar o
compartilhamento [arquivos].
writable = yes Define que o compartilhamento possui permisso de
escrita.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 57
read list = +publico Opo que define que os usurios participantes do grupo
publico podero somente ler o contedo do
compartilhamento [arquivos].

[publico] Nome do compartilhamento.
path = /home/publico/ Caminho para o diretrio que ser compartilhado.
valid users = +publico, +arquivos Usurios vlidos. Neste caso, todos os usurios dos
grupos publico e arquivos.
writable = yes Define que o compartilhamento possui permisso de
escrita.
read list = +arquivos Os usurios participantes do grupo arquivos podero
somente ler o contedo do compartilhamento [publico].

Com as configuraes feitas, o Samba deve ser reiniciado (sudo /etc/init.d/samba
restart) e em seguida j ser possvel visualizar os compartilhamentos nos Meus locais de
rede das estaes Windows (Figura 36):

Figura 36 Visualizando os compartilhamentos nas estaes Windows.
FONTE: Arquivo do autor.
4.4 Ajustes de permisses no sistema
A organizao dos privilgios de acesso aos compartilhamentos pode ser facilitada
com o uso de grupos de usurios no sistema e com a definio de permisses para estes
grupos. Utilizando este mtodo possvel fazer a administrao sobre quais usurios podero
acessar os compartilhamentos definidos no Samba de uma forma prtica e centralizada.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 58
4.4.1 Grupos de usurios
Para os usurios utilizados neste servidor sero criados dois grupos, chamados de
arquivos e publico. Os usurios pertencentes ao grupo arquivos tero acesso livre para
leitura e escrita ao compartilhamento arquivos, e acesso para somente leitura no
compartilhamento publico. J os usurios que pertencem ao grupo publico, tero acesso
livre a somente este compartilhamento, no entanto, podero visualizar o contedo do
compartilhamento arquivos. A criao dos grupos feita utilizando os comandos sudo
groupadd arquivos e sudo groupadd publico. A incluso dos usurios feita utilizando o
comando sudo adduser nomedousuario nomedogrupo.
A Figura 37 mostra a incluso dos usurios tiago e neil ao grupo arquivos; e dos
usurios geddy e alex ao grupo publico.

Figura 37 Incluso de usurios em grupos.
FONTE: Arquivo do autor.
4.4.2 Permisses de acesso
Depois de cadastrar os usurios no sistema e no Samba, configurar os
compartilhamentos no smb.conf e gerenciar os grupos de usurios, ainda h a necessidade
de ajustar as permisses de acesso dos diretrios utilizados pelos usurios cadastrados, alm
dos grupos arquivos e publico e de seus diretrios. Sem estes ajustes, os usurios podero
acessar os compartilhamentos, mas as permisses definidas somente pelo Samba no sero
suficientes para autorizar a escrita nos diretrios onde possuem acesso (Figura 38).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 59

Figura 38 Gravao negada no compartilhamento.
FONTE: Arquivo do autor.

Mesmo que nas configuraes do Samba exista a permisso de escrita nos
compartilhamentos, se os diretrios foram criados como root (usando o comando sudo) ento
o padro que apenas ele possa gravar arquivos no diretrio. (MORIMOTO, 2008, p. 267).
A Figura 39 mostra como alterar a propriedade dos diretrios share dos usurios
configurados no servidor utilizando o comando sudo chown -R, fazendo com que cada
usurio seja dono de seu respectivo diretrio.

Figura 39 Alterao da propriedade dos diretrios share.
FONTE: Arquivo do autor.

Aps as alteraes, os usurios j podem gravar em seus prprios compartilhamentos
(Figura 40).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 60

Figura 40 Gravao autorizada no compartilhamento.
FONTE: Arquivo do autor.

Quanto aos compartilhamentos arquivos e publico, tambm necessrio permitir
o acesso aos diretrios /home/arquivos e /home/publico a partir dos grupos arquivos e
publico, respectivamente, utilizando para isso os comandos sudo chgrp -R, responsvel
por trocar o grupo dono do diretrio e sudo chmod 775, que permite o acesso irrestrito do
dono do diretrio e do grupo (Figura 41).

Figura 41 Ajustes de permisses para os grupos e seus diretrios.
FONTE: Arquivo do autor.

Depois dos ajustes, os usurios j podem acessar corretamente os compartilhamentos
arquivos e publico, podendo ler e/ou escrever de acordo com suas permisses de acesso
controladas pelo servidor Samba (Figura 42).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 61

Figura 42 Acesso aos compartilhamentos arquivos e publico.
FONTE: Arquivo do autor.

5. ACESSO REMOTO
A implementao de um servidor de rede sempre envolve tambm a tarefa de
administr-lo, no s para alterar suas configuraes quando necessrio, mas tambm para
atualizar seus programas e monitorar seu funcionamento. Tarefas como estas poderiam exigir
a presena do Administrador frente da mquina, executando as aes necessrias
localmente. No entanto, com a utilizao de algumas ferramentas e aplicativos, possvel
acessar o servidor remotamente e executar estas mesmas tarefas a partir de qualquer outra
mquina da rede local ou mesmo da Internet.
Neste captulo sero demonstradas as tarefas de instalao de um servidor OpenSSH
combinado com a utilizao do servio de DNS dinmico no-ip, tornando possvel o acesso
remoto ao servidor de uma forma prtica e segura utilizando o software PuTTY, alm da
utilizao do gerenciador Webmin, responsvel por permitir a administrao remota do
servidor atravs de uma interface grfica acessvel pelo navegador de Internet de qualquer
computador.
5.1 Servidor OpenSSH
O SSH um servio que possibilita o acesso remoto seguro ao servidor utilizando
chaves de encriptao em toda a comunicao feita entre cliente/servidor (SILVA, 2007, p.
249).
Segundo Morimoto (2008, p. 512), o SSH utiliza um conjunto de tcnicas de
criptografia para assegurar que apenas as pessoas autorizadas tenham acesso ao servidor, que
todos os dados transmitidos sejam impossveis de decifrar e que a integridade da conexo seja
mantida.
Para Barret e Silverman (2001, p. 130) o OpenSSH uma implementao livre do
SSH.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 63
5.1.1 Instalao e configurao no servidor
O OpenSSH dividido em dois mdulos, chamados de openssh-server (para o
servidor) e openssh-client (para clientes Linux). Para clientes Windows utilizado um
software compatvel com o SSH, como o caso do PuTTY (que ser abordado mais adiante).
A instalao do OpenSSH no servidor segue o mesmo procedimento utilizado na
instalao de outros pacotes de software no Ubuntu Server, utilizando o comando sudo apt-
get install openssh-server. Sua configurao feita editando o arquivo /etc/ssh/sshd_config
(Figura 43).

Figura 43 Arquivo sshd_config original.
FONTE: Arquivo do autor.

O arquivo sshd_config possui diversas linhas com a configurao padro do SSH.
Como feito anteriormente em relao aos outros servios instalados, possvel renomear o
arquivo original sshd_config para sshd_config.old e criar um novo arquivo sshd_config
usando o comando sudo nano /etc/ssh/sshd_config, escrevendo em seguida sua
configurao de uma forma simplificada. Os parmetros que no forem especificados no
arquivo sero carregados pelo servidor com suas opes padro.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 64
A Figura 44 mostra a configurao adotada para o servidor desenvolvido neste
trabalho.

Figura 44 Arquivo sshd_config configurado.
FONTE: Arquivo do autor.
O Quadro 9 apresenta a descrio das linhas configuradas no arquivo sshd_config:

Quadro 9 Configurao do arquivo sshd_config.
Linha Funo
Port 22 Porta padro utilizada pelo servidor SSH, j aberta no
Firewall Iptables anteriormente.
Protocol 2 Verso do protocolo SSH, atualmente na verso 2.
PermitRootLogin no Opo que nega o acesso remoto ao servidor pelo
usurio root do sistema.
AllowUsers tiago Opo que restringe o acesso a somente os usurios
especificados. Neste caso, apenas ao usurio
administrativo tiago.
PermitEmptyPasswords no Opo que nega o acesso remoto aos usurios que no
possuam senha.
X11Forwarding no Quando ativada (yes), esta opo ativa o suporte a
execuo remota de aplicativos grficos.
Subsystem sftp /usr/lib/sftp-server Mdulo SFTP, responsvel pelo suporte a transferncia
de arquivos.

Com as configuraes feitas, o SSH deve ser reiniciado (sudo /etc/init.d/ssh restart)
para que as alteraes entrem em funcionamento.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 65
5.2 Administrao remota
Com o SSH em funcionamento, j possvel acessar o servidor a partir de qualquer
outra mquina da rede local ou mesmo a partir da Internet.
O acesso e a administrao remota apenas ficam condicionados ao usurio
administrativo saber o endereo IP do servidor, o nome de usurio (login) e a senha
(password) autorizados para acessar o servidor via SSH.
Para o acesso a partir de qualquer mquina dentro da rede local esta tarefa mais
simples, j que a informao sobre o nmero IP privado do servidor normalmente j
conhecida pelo usurio administrativo, ou facilmente descoberta consultando as propriedades
da conexo de rede de qualquer estao conectada rede local. Mas para o acesso externo via
Internet, onde se usa um endereo IP pblico e dinmico no caso deste servidor, existe a
necessidade de se descobrir qual o endereo IP que o servidor estar utilizando em
determinado momento. Ou, como alternativa mais prtica, utilizar um servio de DNS
dinmico como o no- ip.
5.2.1 Usando o no-ip como DNS dinmico
Um servio de DNS dinmico (DDNS) atua por meio de um software responsvel por
monitorar as informaes sobre o endereo IP que o servidor possui enquanto est conectado
Internet, enviando estas informaes para um servidor externo do servio. Assim, a partir
deste servio possvel utilizar um subdomnio ligado ao endereo IP atual do servidor.
Mesmo que o servidor seja reiniciado ou a conexo mude de endereo IP, o software instalado
no servidor continuar se comunicando com o servidor externo do servio DDNS e,
conseqentemente, atualizando o subdomnio para o endereo IP corrente do servidor.
Desta forma, para acessar o servidor remotamente bastar utilizar o endereo do
subdomnio referente ao servio DDNS, alm das informaes de login e senha autorizados
para acesso.
Existem diversos servios DDNS gratuitos, como o caso do no- ip (http://www.no-
ip.com/newUser.php), utilizado com o servidor desenvolvido neste trabalho a partir do
cadastro do subdomnio konoha-server.no-ip.info (Figura 45).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 66

Figura 45 Gerenciador de Hosts do servio DDNS no- ip.
FONTE: Arquivo do autor.

No servidor necessrio instalar e configurar o pacote no-ip utilizando o comando
sudo apt-get install no- ip. Depois de instalado no sistema, o software carrega
automaticamente um assistente de configurao que solicita os dados cadastrados no site do
servio, alm do domnio registrado para o DDNS, sendo para este servidor o endereo
konoha-server.no-ip.info (Figura 46).

Figura 46 Assistente de configurao do no- ip.
FONTE: Arquivo do autor.
5.2.2 PuTTY
Para Silva (2007, p. 255) O PuTTY um cliente SSH Win32 que possui suporte aos
protocolos verso 1 e 2 do SSH, aceita compactao alm de funcionar tambm como cliente
telnet. O PuTTY possui muitas funes e tem uma utilizao bastante simples no
precisando sequer ser instalado. Ele pode ser obtido no site http://www.putty.org/.
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 67
Ao executar o programa a partir de qualquer mquina na rede, necessrio definir o
endereo IP do servidor (ou o endereo no- ip criado anteriormente, no caso de acesso pela
Internet) no campo Host Name [or IP address] e a porta utilizada pelo SSH, por padro a
porta 22 (Figura 47), j aberta anteriormente no firewall Iptables (Captulo 2). No campo
Saved Sessions possvel tambm definir um nome para a sesso e salv- la, facilitando o
acesso nas prximas vezes.

Figura 47 Configurao do PuTTY.
FONTE: Arquivo do autor.

Ao abrir pela primeira vez uma sesso com o servidor, o PuTTY exibe uma janela de
alerta informando que a chave pblica do servidor ainda no est armazenada na mquina, e
pergunta se o usurio deseja adicionar esta chave ao cache do PuTTY para autorizar a
conexo (Figura 48).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 68

Figura 48 Alerta sobre a chave e autorizao de acesso ao servidor.
FONTE: Arquivo do autor.

Respondendo Sim o acesso liberado para esta e para outras vezes, e em seguida
apresentada uma tela solicitando login e senha para acesso. Aps digitar os dados do usurio
administrativo tiago, o terminal de comandos do servidor surge e o usurio j pode utiliz- lo
remotamente (Figura 49).

Figura 49 Acesso remoto ao servidor via SSH pelo PuTTY.
FONTE: Arquivo do autor.

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 69
5.2.3 Webmin
Para Cameron (2004, p. 1), Webmin um programa que simplifica o processo de
administrao de sistema Linux ou Unix.
O programa est disponvel no site http://www.webmin.com em verses para vrias
distribuies Linux.
No caso do Ubuntu, necessrio baixar o pacote em formato .deb, usando o
comando wget -c http://prdownloads.sourceforge.net/webadmin/webmin_1.470_all.deb.
Como mostrado na Figura 50, a instalao do pacote .deb do Webmim feita
utilizando o comando sudo dpkg - i.

Figura 50 Tentativa de instalao do pacote .deb do Webmin.
FONTE: Arquivo do autor.

No entanto, ao tentar fazer a instalao pela primeira vez surgem algumas mensagens
de erro relacionadas a dependncias de instalao, ou seja, o sistema no possui alguns dos
mdulos necessrios para instalao e execuo do Webmin. Este problema solucionado
utilizando o comando sudo apt-get install -f (Figura 51).
Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 70

Figura 51 Resoluo de dependncias e instalao usando o apt-get install - f.
FONTE: Arquivo do autor.

O comando resolve as dependncias e em seguida instala automaticamente o pacote
deb do Webmin. Logo depois o Webmin est pronto para ser utilizado em um navegador
usando o endereo https://konoha:10000 a partir de qualquer estao da rede. Para acesso
externo via Internet, bastaria usar o endereo https://konoha-server.no-ip.info:10000. O
nmero 10000 referente porta utilizada por padro para acesso ao Webmin. Esta porta j
foi aberta anteriormente no firewall Iptables (Captulo 2).
Ao acessar o Webmin pela primeira vez em um navegador como o Firefox, surge uma
mensagem informando que o certificado de segurana utilizado pelo aplicativo invlido
(Figura 52).

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 71

Figura 52 Primeiro acesso ao Webmin pelo Firefox.
FONTE: Arquivo do autor.

No entanto, o certificado de segurana do Webmin do tipo self-signed (auto-
assinado), e podemos adicionar uma exceo ao navegador para que seu acesso seja
autorizado. A Figura 53 mostra a janela que permite adicionar uma exceo de segurana no
Firefox.

Figura 53 Adicionando uma exceo de segurana no Firefox.
FONTE: Arquivo do autor.

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 72
Assim que a exceo criada, o acesso ao endereo do servidor e Webmin
autorizado e a tela de login do sistema exibida (Figura 54).

Figura 54 Tela de login do Webmin.
FONTE: Arquivo do autor.

Logo aps colocar o nome de usurio administrativo do sistema e a senha de acesso e
clicar em Login, a tela inicial do Webmin exibida com informaes sobre as
configuraes gerais do servidor, e do lado esquerdo os mdulos de acesso s suas funes
(Figura 55).

Figura 55 Tela inicial do gerenciador Webmin.
FONTE: Arquivo do autor.

Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 73
A utilizao do Webmin para tarefas de gerenciamento do servidor bem simples.
Todo o acesso aos diversos servios instalados na mquina feito pelos mdulos localizados
do lado esquerdo da tela do sistema.
Por exemplo, para utilizar o Sarg para gerar relatrios de acesso feitos a partir do log
do Proxy Squid, necessrio clicar em Servers e em Squid Report Generator. Em
seguida, no campo Generate report for date range, escolhemos All records in log file ou
Those from, especificando nos campos seguintes um perodo de dias a ser verificado. Por
fim, aps clicar no boto View Generated Report, o Webmin apresenta uma lista de
relatrios do Sarg (Figura 56).

Figura 56 Webmin listando relatrios do Sarg.
FONTE: Arquivo do autor.



Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 74

CONCLUSO

Com a implementao de um servidor com as funes de Firewall, Proxy e File
Server neste trabalho, foi possvel exercer na prtica as tarefas que muitos profissionais da
rea de Redes de Computadores e Sistemas Operacionais, em especial Linux, desempenham
no dia-a-dia, prestando servio em diversas organizaes ou mesmo como profissionais
autnomos no mercado. De fato, a utilizao do Linux como sistema base para um servidor
dedicado para diversas funes bastante vantajosa, levando em considerao suas
qualidades principalmente no que se refere segurana, versatilidade, estabilidade e
desempenho. Talvez com a cada vez maior popularizao da distribuio Ubuntu, os olhares
para sua verso Server tambm cresam e faam o sistema mais popular tambm entre os
Administradores de Rede, tornando-se assim mais uma boa opo para a implementao
como sistema operacional Linux de servidores.



Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 75

REFERNCIAS BIBLIOGRFICAS

BARRET, D. J.; SILVERMAN, R. E. SSH, the Secure Shell - The Definitive Guide.
Sebastopol: OReilly & Associates, 2001.

CAMERON, J. Managing Linux Systems with Webmin. New Jersey: Pearson Education, Inc.,
2004.

MAZIOLI DA SILVA, G. Guia Foca GNU/Linux Captulo 10 - Firewall iptables.
Disponvel em: <http://www.guiafoca.org/guia/avancado/ch- fw- iptables.html/>. Acesso em:
09 fev. 2009.

MAZIOLI DA SILVA, G. Guia Foca GNU/Linux Captulo 18 - Samba.
Disponvel em: <http://www.guiafoca.org/guia/avancado/ch-s-samba.html/>. Acesso em: 27
mar. 2009.

MAZIOLI DA SILVA, G. Guia Foca GNU/Linux Captulo 15 Servidor ssh.
Disponvel em: <http://focalinux.cipsga.org.br/guia/avancado/ch-s-ssh.htm/>. Acesso em: 29
mar. 2009.

MORIMOTO, C. E. Redes Guia Prtico. Porto Alegre: Sul Editores, 2008.

MORIMOTO, C. E. Servidores Linux Guia Prtico. Porto Alegre: Sul Editores, 2008.

PAULA JNIOR, M. F. de. Ubuntu Guia Prtico para Iniciantes. Rio de Janeiro: Editora
Cincia Moderna, 2007.

PEARSON, O. Squid Users Guide. Disponvel em: <http://old.squid-cache.org/Doc/Users-
Guide/detail/acl.html>. Acesso em: 23 mar. 2009.

RICHMOND, G. Webmin: substituindo o terminal na administrao do sistema. Disponvel
em: <http://www.guiadohardware.net/tutoriais/webmin/>. Acesso em: 30 mar. 2009.

VON HAGEN, W. Ubuntu Linux Bible. Indianapolis: Wiley Publishing, Inc., 2007.


Implementao de Servidor Linux Ubuntu Server: Firewall, Proxy e File Server - 76

BIBLIOGRAFIA

ARUMUGAM, B. Ubuntu Server Guide. Disponvel em:
<https://help.ubuntu.com/6.10/ubuntu/serverguide/C/index.html/>. Acesso em: 02 fev. 2009.

CARMONA, T. Treinamento Prtico em Linux. So Paulo: Digerati Books, 2005.

KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet Uma abordagem top-
down. So Paulo: Pearson / Addison-Wesley, 2007.

PERKINS, C.; STREBE, M. Firewalls. So Paulo: Makron Books, 2002.