Você está na página 1de 113

Ubuntu Server Guide

Ubuntu Documentation Project <ubuntu-doc@lists.ubuntu.com>

Ubuntu Server Guide


por Ubuntu Documentation Project <ubuntu-doc@lists.ubuntu.com> Copyright 2004, 2005, 2006 Canonical Ltd. and members of the Ubuntu Documentation Project

Resumo
Uma introduo instalao e configurao de aplicaes de servidor no Ubuntu.

Crditos e licena
A Equipa de Documentao do Ubuntu encarregue de manter este documento : Bhuvaneswaran Arumugam The Ubuntu Server Guide is also based on the contributions of: Robert Stoffers Brian Shumate Rocco Stanzione Este documento disponibilizado sob uma estratgia de licena dupla que inclui a GNU Free Documentation License (GFDL) e a licena Creative Commons ShareAlike 2.0 (CC-BY-SA). livre de modificar, extender e melhorar a fonte da documentao Ubuntu sobre os termos das seguintes licenas. Todo o trabalho que derive desta documentao ter de ser ser disponibilizado sobre os termos de uma destas licenas. Esta documentao distribuda com a esperana de que seja til, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implcita de MERCANTIBILIDADE ou ADAPTAO A UM PREPSITO ESPECFICO COMO DESCRITO NAS DISPOSIES LEGAIS. Cpias destas licenas esto disponveis na seco de apndices deste livro. Verses online podem ser encontradas nos seguintes URLs: GNU Free Documentation License [http://www.gnu.org/copyleft/fdl.html] Attribution-ShareAlike 2.0 [http://creativecommons.org/licenses/by-sa/2.0/]

Disclaimer
Every effort has been made to ensure that the information compiled in this publication is accurate and correct. However, this does not guarantee complete accuracy. Neither Canonical Ltd., the authors, nor translators shall be held liable for possible errors or the consequences thereof. Some of the software and hardware descriptions cited in this publication may be registered trademarks and may thus fall under copyright restrictions and trade protection laws. In no way do the authors make claim to any such names. THIS DOCUMENTATION IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ndice
About This Guide .............................................................................................................. vi 1. Conventions ........................................................................................................... vii 2. Contributing and Feedback ..................................................................................... viii 1. Introduo ...................................................................................................................... 9 2. Instalao ....................................................................................................................... 10 1. Preparar a Instalao .............................................................................................. 11 2. Instalar a partir do CD ........................................................................................... 12 3. Gesto de Pacotes .......................................................................................................... 13 1. Introduo .............................................................................................................. 14 2. Apt-Get ................................................................................................................. 15 3. Aptitude ................................................................................................................. 17 4. Configurao .......................................................................................................... 19 5. Repositrios Extra .................................................................................................. 20 4. Rede .............................................................................................................................. 21 1. Configurao de Rede ............................................................................................ 22 2. TCP/IP .................................................................................................................. 25 3. Configurao da Firewall ....................................................................................... 29 4. Servidor OpenSSH ................................................................................................. 32 5. Servidor FTP ......................................................................................................... 35 6. Sistema de Ficheiros de Rede - Network File System (NFS) ...................................... 37 7. Protocolo de Configurao Dinmica da Mquina Dynamic Host Configuration Protocol (DHCP) ..................................................................................................................... 39 8. Servio de Nomes de Domnios Domain Name Service DNS ..................................... 42 9. Servidor de Impresso - CUPS ................................................................................ 44 10. HTTPD - Servidor Web Apache2 .......................................................................... 47 11. PHP5 - Scripting Language ................................................................................... 57 12. Squid - Servidor Proxy ......................................................................................... 59 13. Sistema de Controlo de Verses ............................................................................ 61 14. Bases de Dados .................................................................................................... 68 15. Servios de Correio Electrnico ............................................................................ 71 16. Time Synchronisation with NTP ............................................................................ 83 5. Redes Windows ............................................................................................................. 85 1. Introduo .............................................................................................................. 86 2. Instalar o SAMBA ................................................................................................. 87 3. Configurar o SAMBA ............................................................................................ 88 A. Creative Commons by Attribution-ShareAlike 2.0 ........................................................... 94 B. GNU Free Documentation License ................................................................................. 99 1. PREAMBLE .......................................................................................................... 100 2. APPLICABILITY AND DEFINITIONS .................................................................. 101 3. VERBATIM COPYING ......................................................................................... 103

iii

Ubuntu Server Guide 4. 5. 6. 7. COPYING IN QUANTITY .................................................................................... MODIFICATIONS ................................................................................................. COMBINING DOCUMENTS ................................................................................. COLLECTIONS OF DOCUMENTS ....................................................................... 104 105 107 108 109 110 111 112 113

8. AGGREGATION WITH INDEPENDENT WORKS ................................................ 9. TRANSLATION .................................................................................................... 10. TERMINATION .................................................................................................. 11. FUTURE REVISIONS OF THIS LICENSE .......................................................... 12. ADDENDUM: How to use this License for your documents ...................................

iv

Lista de Tabelas
2.1. Requisitos Mnimos Recomendados .............................................................................. 11 4.1. Mtodos de Acesso ...................................................................................................... 62

About This Guide

vi

About This Guide

1. Conventions
The following notes will be used throughout the book: A note presents interesting, sometimes technical, pieces of information related to the surrounding discussion. A tip offers advice or an easier way of doing something.

A caution alerts the reader to potential problems and helps avoid them.

A warning advises the reader of a hazard that may arise in a given scenario.

Cross-reference conventions for print will be displayed as follows: Links to other documents or websites will look like this [http://www.ubuntu.com]. PDF, HTML, and XHTML versions of this document will use hyperlinks to handle cross-referencing. Type conventions will be displayed as follows: File names or paths to directories will be shown in monospace. Commands that you type at a Terminal command prompt will be shown as:
command to type

Options that you click, select, or choose in a user interface will look like this. Menu selections, mouse actions, and keyboard short-cuts: A sequence of menu selections will be displayed as follows: File Open Mouse actions shall assume a right-handed mouse configuration. The terms click and double-click refer to using the left mouse button. The term right-click refers to using the right mouse button. The term middle-click refers to using the middle mouse button, pressing down on the scroll wheel, or pressing both the left and right buttons simultaneously, based on the design of your mouse. Keyboard shortcut combinations will be displayed as follows: Ctrl-N .Where the conventions for Control, Shift, and Alternate keys will be Ctrl, Shift, and Alt, respectively, and shall mean the first key is to be held down while pressing the second key.

vii

About This Guide

2. Contributing and Feedback


This book is developed by the Ubuntu Documentation Team [https://wiki.ubuntu.com/DocumentationTeam]. You can contribute to this document by sending ideas or comments to the Ubuntu Documentation Team mailing list. Information about the team, its mailing lists, projects, etc. can be found on the Ubuntu Documentation Team Website [https://wiki.ubuntu.com/DocumentationTeam]. If you see a problem with this document, or would like to make a suggestion, you can simply file a bug report at the Ubuntu Bugtracker [https://launchpad.net/products/ubuntu-doc/+bugs]. Your help is vital to the success of our documentation! Many thanks, -Your Ubuntu Documentation Team

viii

Captulo 1. Introduo
Welcome to the Ubuntu Server Guide! The Ubuntu Server Guide contains information on how to install and configure various server applications on your Ubuntu system to fit your needs. It is a step-by-step, task-oriented guide for configuring and customizing your system. This manual discusses many intermediate topics such as the following: Configurao de Rede Configurao do Apache2 Bases de Dados Redes Windows Este manual est dividido nas seguinte categorias principais: Instalao Gesto de Pacotes Rede Redes Windows Este guia assume que tem conhecimentos bsicos do seu sistema Ubuntu. Se precisa de ajuda detalhada a instalar o Ubuntu, recorra ao Guia de Instalao do Ubuntu. HTML and PDF versions of the manual are available online at the Ubuntu Documentation website [http://help.ubuntu.com]. You can buy this guide in book form from our Lulu store [http://www.lulu.com/ubuntu-doc]. You will only pay for the price of printing and postage.

Captulo 2. Instalao
This chapter provides a quick overview of installing Ubuntu 6.10 Server Edition. For more detailed instructions, please refer to the Ubuntu Installation Guide.

10

Instalao

1. Preparar a Instalao
Esta seco explica vrios aspectos a considerar antes de comear a instalao.

1.1. Requisitos de Sistema


Ubuntu 6.10 Server Edition supports three (3) major architectures: Intel x86, AMD64, and PowerPC. The table below lists recommended hardware specifications. Depending on your needs, you might manage with less than this. However, most users risk being frustrated if they ignore these suggestions.

Tabela 2.1. Requisitos Mnimos Recomendados


Tipo de Instalao Servidor RAM 64 megabytes

Espao em Disc 500 megabytes

The default profile for the Ubuntu 6.10 Server Edition is shown below. Once again, the size of the installation will greatly depend on the services you install during setup. For most administrators, the default services are suitable for general server use. Servidor Correspondem ao perfil de um pequeno servidor, que fornece uma base comum para todos os tipos de aplicaes servidoras. uma instalao mnima desenhada para ter de incio todos os servios desejados, tais como servidor de ficheiros / impressora, alojamento de pginas web, alojamento de correio electrnico, etc.. Para estes servios pelo menos 500MB de espao em disco sero suficientes, mas considere a possibilidade de adicionar mais espao, dependendo dos servios que quiser alojar no seu servidor. Lembre-se que estes tamanhos no incluem todos os outros materiais que normalmente so encontrados no servidor, tais como: ficheiros dos utilizadores, mensagens de correio electrnico, registos e dados. sempre bom ser generoso ao considerar o espao para os seus ficheiros e dados.

1.2. Efectuando a Segurana


Antes de comear, assegure-se de copiar todos os ficheiros actualmente no seu sistema. Se esta a primeira vez que um sistema operativo no nativo instalado no seu computador, muito provvel que necessite reparticionar o seu disco para criar espao para o Ubuntu. Sempre que particiona um disco, deve estar preparado para a eventualidade de perder tudo o que tem nesse disco, devido a um engano, ou porque alguma coisa corre mal, por exemplo uma falha de energia. Os programas utilizados na instalao so fiveis, e muitos deles tm anos de utilizao, mas tembm realizam aces destrutivas, e um engano pode resultar na perda de dados valiosos. Se voc est a criar um sistema com vrias opes de arranque, certifique-se que tem mo os meios de instalao dos outros sistemas operativos instalados. Especialmente se reparticionar a sua unidade de arranque, voc pode descobrir que tem de reinstalar o gestor de arranque do seu sistema operativo, ou em muitos casos o sistema operativo em si e todos os ficheiros nas parties afectadas.

11

Instalao

2. Instalar a partir do CD
Insira o CD de instalao na sua unidade de CD-ROM e reinicie o computador. O sistema de instalao comea imediatamente aps o processo de arranque a partir do CD-ROM. Uma vez iniciado aparece um primeiro ecr. Neste ponto leia o texto que tem no ecr. Se quiser ler a ajuda fornecida pelo sistema de instalao pressione a tecla F1. Para efectuar uma instalao do servidor com os valorespr-definidos, seleccione Instalar para o disco rgido e prima Enter. O processo de instalao iniciar-se-. Siga simplesmente as instrues no ecr, e o seu sistema Ubuntu ser instalado. Em alternativa, para instalar um servidor LAMP (Linux, Apache, MySQL, PHP/Perl/Python), seleccione Instalar um servidor LAMP , e siga as instrues

12

Captulo 3. Gesto de Pacotes


O Ubuntu apresenta um sistema acessvel de gesto de pacotes para instalao, actualizao, configurao e remoo de software. Para alm de disponibilizar o acesso a uma base organizada de mais de 17000 pacotes de software para o seu computador Ubuntu, a gesto de pacotes tambm facilita a resoluo de dependncias e a verificao de existncia de actualizaes. Vrias ferramentas esto disponveis para interagir com o sistema de gesto de pacotes do Ubuntu, desde simples utilitrios de linhas de comandos que podem ser facilmente automatizados por administradores de sistemas, at um sistema com interface grfico que pode ser facilmente utilizado por utilizadores novatos no Ubuntu.

13

Gesto de Pacotes

1. Introduo
O sistema de gesto de pacotes do Ubuntu derivado do mesmo sistema utilizado pelo Debian GNU/Linux. Os ficheiros dos pacotes contm todos os ficheiros necessrios, meta-dados, e instrues para implementar uma funcionalidade ou aplicao de software em particular no seu computador Ubuntu. Os ficheiros de pacotes do Debian tm habitualmente a extenso '.deb', e tipicamente existem em repositrios que so coleces de pacotes disponveis em vrios suportes, tais como CD-ROM ou online. Os pacotes esto normalmente num formato binrio pr-compilado, pelo que a instalao rpida e no necessita de software de compilao. Muitos pacotes complexos utilizam o conceito de dependncias. Dependncias so pacotes adicionais necessrios ao pacote principal para que este possa funcionar correctamente. Por exemplo, o pacote de sintetizao de voz Festival depende do pacote festvox-kalpc16k, que o pacote que fornece uma das vozes utilizada pela aplicao. Para que a aplicao Festival funcione todas as dependncias tm que ser instaladas em conjunto com o pacote principal. As ferramentas de gesto de software no Ubuntu fazem isto automaticamente.

14

Gesto de Pacotes

2. Apt-Get
O comando apt-get uma ferramenta poderosa em linha de comandos utilizada para trabalhar com o APT Advanced Packaging Tool do Ubuntu efectuando funes tais como a instalao de novos pacotes de software, actualizao dos pacotes instalados, actualizao da lista de pacotes, e at a actualizao completa do sistema Ubuntu. Sendo uma simples ferramenta de linha de comandos, o apt-get tem inmeras vantagens sobre outras ferramentas de gesto de pacotes disponveis para os administradores de sistemas. Algumas dessa vantagens incluem uma fcil utilizao atravs de simples ligaes via terminal (SSH) e a possibilidade de ser utilizado em programas scripts de administrao, que podem podem ser activados pelo utilitrio de agendamento de tarefas cron. Alguns exemplos de utilizaes populares para o utilitrio apt-get: Instalar um Pacote: A instalao de pacotes utilizando a ferramenta apt-get muito simples. Por exemplo, para instalar a aplicao de anlise de redes nmap, digite o seguinte seguinte comando:
sudo apt-get install nmap

Remover um Pacote: A remoo de um ou mais pacotes tambm um processo simples. Para remover o pacote nmap instalado no exemplo anterior, digite o seguinte comando:
sudo apt-get remove nmap

Mltiplos Pacotes: Pode indicar vrios pacotes para serem instalados ou removidos simultaneamente separando os nomes por espaos. Actualizao da Lista de Pacotes: O ndice de pacotes do APT essencialmente uma base de dados dos pacotes diponveis nos repositrios definidos no ficheiro /etc/apt/sources.list. Para actualizar a lista local de pacotes com as ltimas alteraes efectuadas nos repositrios, escreva o seguinte comando:
sudo apt-get update

Upgrade de Pacotes: Upgrade das verses dos pacotes instalados no seu sistema podem estar disponveis nos repositrios (por exemplo actualizaes de segurana). Para efectuar o upgrade do seu sistema actualize em primeiro lugar a lista de pacotes como indicado acima, depois escreva:
sudo apt-get upgrade

Se um pacote necessita instalar ou remover novos pacotes dos quais depende quando pretendemos fazer o upgrade, o comando upgrade no o far. Para esta actualizao necessrio utilizar o comando dist-upgrade. Also, you may upgrade your entire Ubuntu system from one revision to another with dist-upgrade. For example, to upgrade from Ubuntu version 5.10 to version 6.10, you would first ensure

15

Gesto de Pacotes the version 6.10 repositories replace the existing 5.10 repositories in your computer's /etc/apt/sources.list, then simply issue the apt-get update command as detailed above, and finally, perform the actual upgrade by typing:

sudo apt-get dist-upgrade

Aps um tempo relativamente grande o seu computador estar actualizado para a nova reviso. Tipicamente, alguns passos ps actualizao sero requeridos tal como indicado nas notas de actualizao da reviso para a qual est a efectuar a actualizao. As aces do comando apt-get, tais como instalao e remoo de pacotes, esto registadas num ficheiro /var/log/dpkg.log . Para mais informaes sobre o uso do APT leia o extensivo Manual de utlizador Debian APT [http://www.debian.org/doc/user-manuals#apt-howto] ou escreva:
apt-get help

16

Gesto de Pacotes

3. Aptitude
Aptitude uma interface em modo de texto baseada em menus, para o sistema APT Advanced Packaging Tool. Muitas das funes comuns de gesto de pacotes, tais como a instalao, remoo e actualizao, so efectuadas no Aptitude com comandos de uma nica tecla, habitualmente letras minsculas. Aptitude indicada para um ambiente no grfico de terminal para assegurar um melhor funcionamento do teclado. Pode iniciar a aplicao Aptitude como um utilizador normal, escrevendo na linha de comandos o seguinte comando:

sudo aptitude

Quando o Aptitude inicia, ir ver uma barra de menu no topo do ecr e duas seces abaixo da barra de menu. A seco de cima contm as categorias de pacotes, tal como Novos Pacotes e Pacotes No Instalados. A seco de baixo contm informao relativa aos pacotes e suas categorias. Usar o Aptitude para gesto de pacotes relativamente simples, e a interface do utilizador torna simples tarefas comuns. Seguem-se exemplos de funes populares de gesto de pacotes atravs do Aptitude: Instalar Pacotes: Para instalar um pacote, localize-o via a categoria Pacotes No Instalados, por exemplo, usando as setas do teclado e a tecla ENTER, e escolha o pacote que deseja instalar. Aps escolher o pacote a instalar, pressione a tecla +, e a entrada do pacote ir tornar-se verde, indicando que foi marcado para instalao. De seguide pressione g para lhe ser apresentado o sumrio das aces do pacote. Pressione g novamente, e ser-lhe- pedido que se torne superutilizador para completar a instalao. Pressione ENTER o que ir resultar num pedido de palavra-chave. Insira a palavra-chave do utilizador para se tornar superutilizador. Finalmente, pressione g mais uma vez e ser-lhe- dito para fazer o download do pacote. Pressione ENTER na prompt Continuar, e ir comear o download e instalao do pacote. Remover Pacotes: Para remover um pacote, localize o mesmo via a categoria Pacotes Instalados, por exemplo usando as setas de direco no teclado e o ENTER, at o pacote desejado estar evidenciado. Depois deste passo, prima a tecla - e a entrada referente a este pacote assumir uma cor rosa, indicando que foi marcada para remoo. De seguida prima a tecla g para que lhe seja apresentado um sumrio das opes disponveis para o pacote. Volte a premir a tecla g e ser-lhe- solicitado que se assuma como o utilizador root para completar a tarefa. Prima ENTER mais uma vez obtendo assim uma caixa de dilogo solicitando a insero da password. Insira a password do administrador/root. Finalmente prima g mais uma vez e ser-lhe- indicada a aco a decorrer. Pressione ENTER na prompt Continuar e a remoo do pacote ter incio. Actualizar o ndice de pacotes: para actualizar o ndice dos pacotes, simplesmente prima a tecla u e ser-lhe- solicitado que assuma o papel de root para concluir a tarefa. Prima ENTER e insira a password do utilizador root. A actualizao ter incio aps carregar uma vez mais em ENTER na caixa de dilogo seguinte. 17

Gesto de Pacotes Actualizar Pacotes: Para actualizar pacotes, proceda actualizao do ndice de pacotes como explicado acima, e depois pressione a tecla U para marcar todos os pacotes actualizaveis. Agora pressione g aps o que lhe ser mostrado um sumrio de aces ds pacotes. Pressione g novamente, e ser-lhe- pedido que se torne administrador (root) para completar a instalao. Pressione ENTER o que resultar num pedido de palavra passe (Password:). Digite a sua palavra passe de administrador. Finalmente, pressione g mais uma vez, e ser-lhe- perguntado se quer fazer download do pacote. Pressione ENTER em Continue, e a actualizao de pacotes comear. A primeira coluna de informao apresentada na lista de pacotes no painel superior, quando se visualiza efectivamente a listagem do estado actual dos pacotes, e utiliza a seguinte chave para descrever o estado do pacote: i: Pacote instalado. c: Pacote no instalado, mas a respectiva configurao mantm-se no sistema. p: Eliminado do sistema v: Pacote virtual B: Pacote danificado (broken) u: Ficheiros descomprimidos (unpacked), mas o pacote no est ainda configurado C: Parcialmente configurado - Configurao falhada e requer reparao H: Parcialmente instalado - Remoo falhada e requer reparao Para sair do Aptitude, pressione simplesmente a tecla q e confirme que pretende sair. Muitas outras funes esto disponveis no menu do Aptitude pressionando a tecla F10.

18

Gesto de Pacotes

4. Configurao
A configurao dos repositrios do Utilitrio Avanado de Pacotes (APT) est armazenada no ficheiro de configurao /etc/apt/sources.list. Um exemplo deste ficheiro est referenciado aqui, em conjunto com informao para adicionar ou remover repositrios do ficheiro. Aqui [../sample/sources.list] um exemplo simples do contedo tpico do ficheiro /etc/apt/sources.list. Pode editar o ficheiro para activar ou desactivar repositrios. Por exemplo, para desactivar o pedido de insero do CD-ROM do Ubuntu sempre que ocorrem operaes referentes a pacotes, coloque um comentrio na linha apropriada que aparece no incio do ficheiro:

# No voltar a pedir o CD # deb cdrom:[Ubuntu 6.06 _Dapper Drake_ - Release i386 (20060329.1)]/ dapper main restricted

19

Gesto de Pacotes

5. Repositrios Extra
Em adio aos repositrios dos pacotes oficialmente suportados e disponveis para o Ubuntu, existem repositrios adicionais mantidos pela comunidade que acrescentam milhares de pacotes potenciais para instalao. Destes, dois so muito populares, os repositrios Universe e Multiverse. Estes repositrios no so oficialmente suportados pelo Ubuntu, razo pela qual no esto activados por omisso, mas geralmente fornecem pacotes que podem ser utilizados de forma segura no seu computador Ubuntu. Os pacotes do repositrio Multiverse tm frequentemente licenas que impedem a sua distribuio com um sistema operativo gratuito, e podem ser ilegais no seu pas ou regio. Tenha em ateno que os repositrios Universe ou Multiverse no contm pacotes suportados oficialmente. Em particular, podem no existir actualizaes de segurana para esses pacotes. Muitas outras fontes de pacotes esto disponveis, por vezes contendo apenas um pacote, como no caso de uma fonte fornecida pelo programador de apenas uma aplicao. No entanto deve ter sempre um extremo cuidado e precauo quando utiliza pacotes no padro. Pesquise a origem e os pacotes antes de os instalar, dado que algumas fontes e os respectivos pacotes podem tornar o seu sistema instvel ou impedi-lo de funcionar. Para activar os repositrios Universe e Multiverse, edite o ficheiro /etc/apt/sources.list e retire o carcter de comentrio "#" das linhas apropriadas.

# Queremos os repositrios Universe e Multiverse, por favor deb http://archive.ubuntu.com/ubuntu dapper universe multiverse deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse

5.1. Referncias
Como Adicionar Repositrios (Ubuntu Wiki) [https://wiki.ubuntu.com/AddingRepositoriesHowto]

20

Captulo 4. Rede
Uma rede consiste em dois ou mais dispositivos, tais como computadores, impressoras e equipamento relacionado ligados por cablagem ou sem fios com a finalidade de partilhar e distribuir informao entre os dispositivos ligados. Esta seco do Guia do Servidor Ubuntu fornece informao geral e especfica sobre redes, incluindo uma apresentao de conceitos de redes e uma discusso detalhada dos protocolos de rede e aplicaes de servidor mais populares.

21

Rede

1. Configurao de Rede
O Ubuntu vem com alguns utilitrios em ambiente grfico para configurao de dispositivos de rede. Este documento est orientado para administradores de servidores, e focar-se- na gesto da rede a partir da linha de comandos.

1.1. Ethernet
A maioria da configurao dos dispositivos ethernet est centralizada num nico ficheiro, /etc/network/interfaces. Se no tiver dispositivos ethernet, apenas a interface loopback aparecer neste ficheiro, de forma semelhante a esta:
# Este ficheiro descreve os interfaces de rede disponveis no seu sistema # e como os activar. Para mais informao veja o manual de interfaces(5). # A interface de rede loopback auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0

Se tiver apenas um dispositivo ethernet, eth0, que obtm a sua configurao de um servidor DHCP, e que deva ser activado automaticamente no arranque do sistema, so necessrias apenas duas linhas adicionais:
auto eth0 iface eth0 inet dhcp

A primeira linha especifica que que o dispositivo eth0 deve ser automaticamente activado no arranque. A segunda linha significa que a interface (iface) eth0 deve ter um endereo IPv4 (substitua inet por inet6 para um dispositivo IPv6) e que deve obter a sua configurao automaticamente a partir de DHCP. Assumindo que a sua rede e o servidor DHCP esto correctamente configurados, esta mquina no deve necessitar de configurao adicional para funcionar. O servidor DHCP fornecer a porta de ligao (gateway) por omisso (implementado atravs do comando route), o endereo IP do dispositivo (implementado atravs do comando ifconfig, e os servidores de DNS utilizados na rede (implementado no ficheiro /etc/resolv.conf). Para configurar o seu dispositivo ethernet com um endereo IP fixo e uma configurao personalizada, algumas informaes sero necessrias. Suponha que pretende atribuir o endereo IP 192.168.0.2 ao dispositivo eth1, com a mscara de rede habitual 255.255.255.0. A sua porta de ligao por omisso 192.168.0.1 . Dever introduzir o seguinte no ficheiro /etc/network/interfaces:
iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1

22

Rede Neste caso necessita especificar os servidores de DNS manualmente em /etc/resolv.conf, que dever ficar semelhante a isto:
search mydomain.com nameserver 192.168.0.1 nameserver 4.2.2.2

A directiva search acrescenta mydomain.com s pesquisas de nomes de computadores ao tentar resolver nomes na sua rede. Por exemplo, se o domnio da sua rede for mydomain.com e voc tentar efectuar um ping para o computador mybox, a pesquisa de DNS ser modificada para mybox.mydomain.com para resoluo de nomes. As directivas nameserver especificam os servidores de DNS a utilizar para converter os nomes dos computadores para endereos IP. Se voc utilizar os seus prprios servidores de nomes, coloque-os aqui. Caso contrrio, pergunte ao seu Fornecedor de Servios de Internet quais os servidores de DNS primrio e secundrio a utilizar, e coloque-os no /etc/resolv.conf como indicado acima. Muitas mais configuraes so possveis, incluindo interfaces de marcao telefnica PPP, redes IPv6, dispositivos VPN, etc.. Consulte man 5 interfaces para saber mais informaes e opes suportadas. Lembre-se que o ficheiro /etc/network/interfaces utilizado pelos scripts ifup/ifdown como a configurao de mais alto nvel que pode ser utilizada noutras distribuies de Linux, e que os tradicionais utilitrios de baixo nvel, tais como ifconfig, route, e dhclient ainda esto disponveis para configuraes ad hoc.

1.2. Gerindo Entradas de DNS


Esta seco explica como configurar o servidor de nomes a utilizar aquando da converso de endereos IP para nomes de mquinas e vice versa. No explica como configurar um sistema como servidor de nomes. Para gerir entradas de DNS, pode adicionar, editar ou remover nomes de DNS do ficheiro /etc/resolv.conf. Um ficheiro de exemplo sample file [../sample/resolv.conf] dado abaixo:

search com nameserver 204.11.126.131 nameserver 64.125.134.133 nameserver 64.125.134.132 nameserver 208.185.179.218

A palavra search indica a cadeia de carcteres a juntar no final de um nome de computador incompleto. Aqui, mencion-mo-lo como com. Assim, quando executamos o comando: ping ubuntu, ele ser interpretado como ping ubuntu.com. A palavra nameserver indica o endereo IP do servidor de nomes. Este ser utilizado para determinar um endereo IP ou um nome de computador. Este ficheiro pode ter entradas para vrios servidores de nomes. Os servidores de nomes sero utilizadores pela pesquisa de rede pela mesma ordem. 23

Rede Se os nomes dos servidores DNS so obtidos dinamicamente a partir de DHCP ou PPPOE (obtidos a partir do seu ISP), no adicione entradas de "nameserver" neste ficheiro. Eles sero actualizados automaticamente. As alteraes que fizer no /etc/resolv.conf sero apagadas quando reiniciar o sistema. Se deseja tornar estas alteraes permanentes deve instalar o pacote resolvconf e actualizar a informaao de DNS no ficheiro /etc/resolvconf/resolv.conf.d/base fornecido por este pacote.

1.3. Gerindo Computadores


Para gerir servidores, pode adicionar, editar, ou remover servidores do ficheiro /etc/hosts. Este ficheiro contm endereos IP e os correspondentes nomes associados. Quando o seu sistema tenta traduzir o nome de uma mquina para um endereo IP ou determinar o nome de uma mquina para um endereo IP, vai verificar o ficheiro /etc/hosts antes de recorrer aos servidores de nomes. Se o endereo IP est listado no ficheiro /etc/hosts, os servidores de nomes no so utilizados. Este comportamento pode ser alterado por edio do ficheiro /etc/nsswitch.conf. Se a sua rede contm computadores cujos endereos IP no esto listados em DNS, recomendado que os adicione ao ficheiro /etc/hosts.

24

Rede

2. TCP/IP
O Transmission Control Protocol e o Internet Protocol (TCP/IP) um conjunto padro de protocolos desenvolvido nos finais dos anos 70 pelo Defense Advanced Research Projects Agency (DARPA) como forma de comunicao entre diferentes tipos de computadores e redes de computadores. O TCP/IP a fora impulsionadora da Internet, e como tal este o conjunto de protocolos mais populares da Terra.

2.1. Introduo ao TCP/IP


Os dois componentes do protocolo TCP/IP lidam com diferentes aspectos das redes de computadores. O Internet Protocol, o "IP" do TCP/IP um protocolo independente da conexo que lida apenas com o encaminhamento de pacotes na rede utilizando o IP datagram como a unidade bsica de informao na rede. O datagrama IP consiste num cabealho seguido de uma mensagem. O Transmission Control Protocol o "TCP" do TCP/IP e permite aos computadores da rede estabelecer ligaes que podem ser utilizadas para intercmbio de sries de dados. O TCP tambm garante que os dados entre ligaes so entregues e chegam a um computador da rede pela mesma ordem em que foram enviados de outro computador da rede.

2.2. Configurao de TCP/IP


A configurao do protocolo TCP/IP consiste em vrios elementos que devem ser ajustados editando os ficheiros apropriados, ou aplicando solues tais como o servidor Dynamic Host Configuration Protocol (DHCP) que por sua vez pode ser configurado para fornecer as configuraes de TCP/IP correctas ao cliente, automaticamente. Os dados desta configurao devem ser ajustados correctamente por forma a facilitar o correcto funcionamento na rede do seu sistema Ubuntu. Os elementos da configurao comum do TCP/IP e as suas finalidades so as seguintes Endereo IP O endereo IP um identificador nico apresentado como quatro nmeros decimais limitados entre zero (0) e duzentos e cinquenta e cinco (255), separados por pontos (.), cada um dos quatro nmeros reprensenta oito (8) bits do endereo, para um comprimento total do endereo de trinta e dois (32) bits. Este formato chamado dotted quad notation. Netmask A Mscara de Sub-rede, (ou simplesmente netmask uma mscara de bits, ou um conjuntos de marcas que separam as partes do endereo IP significativas para a rede, das significativas para a sub-rede. Por exemplo, numa rede classe C, a mscara de rede padro 255.255.255.0 o que mascra os trs primeiros bytes do endereo IP e permite que o ltimo byte se mantenha disponvel para indicar os computadores na sub-rede. Endereo de Rede O Endereo de Rede representa os bytes correspondentes a poro relativa rede de um endereo IP. Por exemplo, a mquina 12.128.1.2 numa rede da Classe A que utilize o 12.0.0.0 como endereo de rede, utiliza o doze (12) para representar o primeiro byte do endereo IP, (parte relativa rede) e zeros (0) em todos os trs bytes restantes para representar potenciais endereos de mquinas. Mquinas numa rede utilizando os endereos IP privados como 25

Rede o 192.168.1.100, muito comuns, utilizariam por sua vez um Endereo de Rede 192.168.1.0, que especifica os primeiros trs bytes de uma rede da Classe C 192.168.1 e zero (0) para todos os possveis endereos de mquinas na rede. Endereo de Difuso O Endereo de difuso Broadcast Address um endereo que permite o envio de dados da rede para todos os computadores de uma sub-rede simultaneamente, em vez de especificar um computador em particular. O endereo de difuso padro para redes IP 255.255.255.255, mas este endereo de difuso no pode ser utilizado para enviar uma mensagem para todos os computadores na Internet porque os routers o bloqueiam. Por exemplo, para o popular IP de redes privadas Classe C 192.168.1.0, o endereo de difuso deve ser configurado como 192.168.1.255. Mensagens de Difuso Broadcast Messages so habitualmente produzidas por protocolos de rede tais como o Address Resolution Protocol (ARP) e o Routing Information Protocol (RIP). Porta de Ligao A Porta de Ligao Gateway, o endereo IP pelo qual uma rede em particular ou um computador na rede pode ser alcanado. Se um computador da rede deseja comunicar com outro, e esse outro no est localizado na mesma rede, ento uma porta de ligao tem que ser utilizada. Em muitos casos, o Endereo da Porta de Ligao ser o de um router da mesma rede, que por sua vez far a passagem do trfego para outras redes ou computadores, tais como Servidores de Internet. O valor do endereo da Porta de Ligao tem que ser correcto, caso contrrio o seu sistema no poder comunicar com outros computadores fora da mesma rede. Endereo dos Servidores de Nomes Os Endereos de Servidores de Nomes Nameserver Addresses representam os endereos IP dos sistemas dos Servios de Nomes de Domnios Domain Name Service (DNS) que convertem (resolvem) o nome dos computadores em endereos IP. Existem trs nveis de Endereos de Servidores de Nomes que podem ser especificados por ordem de precedncia: O Servidor de Nomes Primrio, o Servidor de Nomes Secundrio e o Servidor de Nomes Tercirio. Para que o seu sistema tenha capacidade de converter os nomes dos computadores nos respectivos endereos IP, tem que especificar Endereos de Servidores de Nomes vlidos, para os quais tenha permisses para utilizar na configurao TCP/IP do seu sistema. Em muitos casos estes endereos podem ser, e so, fornecidos pelo seu fornecedor de servios de rede, mas existem muitos servidores de nomes de acesso pblico e gratuito, tais como os servidores de nvel 3 (Verizon) com endereos IP desde 4.2.2.1 at 4.2.2.6 . O endereo IP, mscara de rede Netmask, endereo da rede Network Address, endereo de difuso Broadcast Addresse o endereo da porta de ligao Gateway Address so geralmente especificados atravs de directivas apropriadas no ficheiro /etc/network/interfaces . Os Endereos dos Servidores de Nomes Nameserver Addresses so geralmente especificados atravs das directivas nameserver no ficheiro /etc/resolv.conf . Para mais informao, consulte a pgina do manual do sistema para interfaces ou resolv.conf respectivamente, introduzindo os seguintes comandos na linha de comandos: Aceda pgina do manual de sistema para interfaces com o seguinte comando:

26

Rede
man interfaces

Aceda pgina do manual de sistema para resolv.conf com o seguinte comando:


man resolv.conf

2.3. Encaminhamento IP
O encaminhamento de IP IP Routing a forma de especificar e descobrir caminhos numa rede TPC/IP pelos quais os dados da rede podem ser enviados. O encaminhamento utiliza um conjunto de tabelas de encaminhamento routing tables para dirigir o envio de pacotes de dados da rede desde a sua origem at ao seu destino, frequentemente atravs de muitos ns de rede intermedirios conhecidos como routers. O Encaminhamento de IP a principal forma de descobrir caminhos na Internet. Existem duas formas principais de Encaminhamento de IP: Encaminhamento Esttico Static Routing e Encaminhamento Dinmico Dynamic Routing. Static routing involves manually adding IP routes to the system's routing table, and this is usually done by manipulating the routing table with the route command. Static routing enjoys many advantages over dynamic routing, such as simplicity of implementation on smaller networks, predictability (the routing table is always computed in advance, and thus the route is precisely the same each time it is used), and low overhead on other routers and network links due to the lack of a dynamic routing protocol. However, static routing does present some disadvantages as well. For example, static routing is limited to small networks and does not scale well. Static routing also fails completely to adapt to network outages and failures along the route due to the fixed nature of the route. O Encaminhamento Dinmico depende de redes grandes, com mltiplas rotas IP possveis desde a origem at ao destino, e utiliza protocolos de encaminhamento especiais, tais como o Protocolo de Informao de Rotas Router Information Protocol (RIP), que maneja os ajustes automticos das tabelas de encaminhamento que tornam o encaminhamento dinmico possvel. O encaminhamento dinmico tem vrias vantajens sobre o encaminhamento esttico, tais como uma maior escalabilidade e a capacidade para se adaptar a falhas e quebras ao longo dos caminhos da rede. Adicionalmente, so necessrias menos configuraes manuais das tabelas de encaminhamento, dado que os routers aprendem uns com os outros acerca da sua existncia e dos caminhos (rotas) possveis. Isto tambm elimina a possibilidade de introduzir erros nas tabelas de encaminhamento por erro humano. No entanto o encaminhamento dinmico no perfeito, e apresenta desvantagens como sejam, maior complexidade e sobrecarga adicional nas comunicaes dos routers, o que no beneficia os utilizadores finais, e ainda consome largura de banda.

2.4. TCP e UDP


O TCP um protocolo baseado na ligao, e oferece correco de erros e a garantia de entrega de dados atravs daquilo que conhecido como controlo de fluxo flow control. O controlo de fluxo determina quando necessrio parar o envio de dados, e reenviar dados j enviados devido a problemas, como por exemplo colises, isto assegura a completa e correcta entrega dos dados. O TCP 27

Rede tipicamente utilizado para troca de informaes importantes como sejam as transaces de bases de dados. O Protocolo de Datagrama do Utilizador User Datagram Protocol (UDP), por outro lado, um protocolo independente da ligao connectionless que raramente lida com a transmisso de dados importantes, dado que no possui controlo de fluxo ou qualquer outro mtodo que assegure uma entrega fivel dos dados. O UDP habitualmente utilizado em aplicaes como a transmisso de udio e vdeo, visto ser consideravelmente mais rpido que o TCP, exactamente por no ter a correco de erros e o controlo de fluxo, e em que a perda de alguns pacotes no catrastfica.

2.5. ICMP
O Protocolo de Controlo de Mensagens da Internet Internet Control Messaging Protocol (ICMP) uma extenso do Internet Protocol (IP) tal como definido no Request For Comments (RFC) #792 e suporta pacotes de rede que contenham informao de controlo, de erros e de mensagens. O ICMP utilizado por aplicaes de rede como o utilitrio ping, que pode determinar a disponibilidade de um computador ou dispositivo de rede. Exemplos de algumas mensagens de erro devolvidas pelo ICMP que so teis para computadores da rede ou dispositivos como os routers, incluem Destination Unreachable and Time Exceeded.

2.6. Servios
Servios Daemons so aplicaes especiais do sistema que funcionam de forma contnua na rectaguarda e que aguardam pedidos para as funes que fornecem vindos das outras aplicaes. Muitos servios so centrados na rede; isto , um grande nmero de servios executados na rectaguarda de um sistema Ubuntu pode fornecer funcionalidades relacionadas com a rede. Alguns exemplos desses servios de rede incluem o Hyper Text Transport Protocol Daemon (httpd), que fornece a funcionalidade de um servidor web; o Secure SHell Daemon (sshd), que fornece acesso remoto seguro e a capacidade de transferncia de ficheiros; e o Internet Message Access Protocol Daemon (imapd), que fornece servios de correio electrnico.

28

Rede

3. Configurao da Firewall
O kernel (ncleo) do Linux inclui o sub-sistema Netfilter que utilizado para manipular ou decidir o destino do trfego de encaminhado para ou de passagem pelo servidor. Todas as modernas solues de firewall utilizam este sistema para filtragem de pacotes.

3.1. Introduo Firewall


O sistema de filtragem de pacotes do kernel seria de pouca utilidade sem um interface de utilizador para o gerir. Esta a finalidade das tabelas de ip iptables. Quando um pacote chega ao servidor, ser encaminhado para o sub-sistema Netfilter, para aceitao, manipulao ou rejeio baseado nas regras que lhe so fornecidas rea do utilizador atravs das iptables. Assim, as iptables so tudo o que necessrio para gerir a sua firewall se estiver familiarizado com elas, mas existem muitos interfaces disponveis para simplificar a tarefa.

3.2. Mascaramento de IP
A finalidade do Mascaramento de IP IP Masquerading permitir que mquinas com um endereo IP privado e no encaminhvel na sua rede, acedam Internet atravs da mquina que est a fazer o mascaramento. O trfego da sua rede privada destinado Internet tem que ser manipulado para que as respostas possam ser encaminhadas de volta mquina que efectuou o pedido. Para fazer isto o kernel deve alterar o endereo IP de origem de cada pacote para que a resposta possa ser encaminhada de volta a si, em vez de ser encaminhada para o endereo IP privado que originou o pedido, o que impossvel atravs da Internet. O Linux utiliza o Registo do Caminho de Ligao Connection Tracking (conntrack) para manter o registo das ligaes e a que mquinas pertencem e reencaminha os pacotes de acordo com essa informao. O trfego que sai da sua rede privada assim "mascarado" como tendo sido originado na mquina Ubuntu que funcione como porta de ligao. Este processo referido na documentao da Microsoft como Partilha de Ligao Internet. Isso pode ser conseguido com uma nica regra de iptables, que pode diferir ligeiramente na sua configurao de rede:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE

O comando anterior assume que o espao do seu endereo privado 192.168.0.0/16 e que o seu interface com a internet o ppp0. A sintaxe explica-se da seguinte forma: -t nat -- a regra deve ser adicionada na tabela de nat -A POSTROUTING -- a regra deve ser adicionada (-A) cadeia de POSTROUTING -s 192.168.0.0/16 -- a regra aplica-se a trfego originrio do grupo de endereos indicado -o ppp0 -- a regra aplica-se a trfego definido para ser encaminhado atravs do dispositivo de rede especificado -j MASQUERADE -- O trfego coberto por esta regra ser "encaminhado - jump" (-j) para o alvo MASCARADO para ser manipulado conforme acima descrito 29

Rede Cada entrada da tabela de filtragem (a tabela por omisso, e onde a maioria ou mesmo toda a filtragem de pacotes ocorre) tem uma poltica de ACCEPT por defeito, mas se est a criar uma firewall em adio a um equipamento de gateway, poder ter alterado esta poltica para DROP ou REJECT, o que em qualquer dos casos exigir que o seu trfego mascarado seja autorizado atravs do comando FORWARD para que a regra funcione:
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT sudo iptables -A FORWARD -d 192.168.0.0/16 -m state --state ESTABLISHED,RELATED -i ppp0 -j ACCEPT

Este comando permitir o estabelecimento das ligaes a partir da sua rede local para a internet e que todo o trfego relacionado regresse mquina que o iniciou.

3.3. Ferramentas
Existem muitas ferramentas disponveis que o ajudam a construir uma firewall completa sem ter um conhecimento aprofundado do iptables. Para quem prefere uma interface grfica, a aplicao Firestarter bastante popular e fcil de usar, e a fwbuilder muito poderosa e possui um aspecto bastante semelhante a aplicaes comerciais como por exemplo a Checkpoint Firewall-1. Se prefere uma ferramenta de linha de comandos assente em ficheiros de configurao de texto puro, a Shorewall uma soluo muito poderosa que o vai ajudar a configurar uma firewall avanada para qualquer rede. Se a sua rede relativamente simples, ou se no possui uma rede, a ipkungfu dever oferecer-lhe uma firewall pronta a funcionar "out-of-the-box" sem necessidade de configurao, e permitir a criao de uma firewall mais avanada atravs da edio de ficheiros de configurao simples mas bem documentados. Outra aplicao interessante a fireflier, desenhada para ser uma aplicao de firewall para o desktop. constituda por um servidor (fireflier-server) e uma escolha de clientes de interface grfico (GTK ou QT), comportando-se como as populares aplicaes de firewall interactivas para windows.

3.4. Registos
Os registos da Firewall so essenciais para o reconhecimento de ataques, compreender os problemas de funcionamento das regras criadas, ou mesmo detectar actividade no habitual na sua rede. Dever incluir regras de registo na sua firewall para que estes sejam criados, e estas devero ser colocadas antes de qualquer regra de terminao (uma regra com um alvo que decide o destino do pacote como por exemplo ACCEPT, DROP ou REJECT). Por exemplo:
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

Um pedido na porta 80 solicitado a partir da mquina local, gerar um registo no dmesg com este aspecto:

[4304885.870000] NEW_HTTP_CONN: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0

Este registo aparecer tambm no /var/log/messages, /var/log/syslog, e /var/log/kern.log. Este comportamento pode ser modificado editando o /etc/syslog.conf apropriadamente ou instalando e configurando o ulogd e usando-o em vez do LOG. O servio ulogd um servidor que 30

Rede escuta ordens de criao de registo originadas no kernel, especificamente de firewalls, e pode criar o registo em qualquer ficheiro, ou mesmo numa base de dados application>PostgreSQL

31

Rede

4. Servidor OpenSSH
4.1. Introduo
This section of the Ubuntu Server Guide introduces a powerful collection of tools for the remote control of networked computers and transfer of data between networked computers, called OpenSSH. You will also learn about some of the configuration settings possible with the OpenSSH server application and how to change them on your Ubuntu system. OpenSSH uma verso livre do protocolo Secure Shell (SSH) e da famlia de ferramentas para controlar remotamente um computador ou transferir ficheiros entre computadores. Ferramentas tradicionais para executar essas funes, tais como telnet ou rcp, so inseguras e transmitem as palavras passe dos utilizadores em texto simples quando utilizadas. O OpenSSH fornece um servio para o servidor e ferramentas cliente para facilitar um controlo remoto seguro, codificado e operaes de transferncia de ficheiros, substituindo efectivamente as ferramentas padro. O componente sshd do servidor OpenSSH, aguarda continuamente ligaes de qualquer das ferramentas dos clientes. Quando um pedido de ligao ocorre, o sshd configura a ligao correcta dependendo do tipo de ferramenta do cliente que se est a ligar. Por exemplo, se o computador remoto se est a ligar com a aplicao cliente ssh, o processo do servidor OpenSSH inicia uma ligao de controlo remoto aps a autenticao. Se o utilizador remoto usa uma aplicao scp o processo do servidor OpenSSH inicia uma cpia segura dos ficheiros entre o servidor e o cliente aps a autenticao. O OpenSSH pode utilizar vrios mtodos de autenticao, incluindo palavras passe simples, chaves pblicas e senhas Kerberos.

4.2. Instalao
A instalao das aplicaes cliente e servidor do OpenSSH simples. Para instalar a aplicao cliente OpenSSH no seu sistema Ubuntu, utilize este comando num terminal:

sudo apt-get install openssh-client

Para instalar a aplicao servidor OpenSSH, e ficheiros de suporte associados, utilize este comando num terminal:

sudo apt-get install openssh-server

4.3. Configurao
Pode alterar o comportamento predefinido da aplicao servidor OpenSSH, sshd, editando o ficheiro /etc/ssh/sshd_config. Para informaes sobre as directivas de configurao usadas neste ficheiro, pode consultar a pgina de manual apropriada com o seguinte comando, executado num terminal:

32

Rede
man sshd_config

Existem muitas directivas no ficheiro de configurao do sshd controlando coisas como as configuraes das comunicaes e os modos de autenticao. De seguida apresentam-se exemplos de directivas de configurao que podem ser alteradas ao editar o ficheiro /etc/ssh/ssh_config. Antes de editar o ficheiro de configurao, dever fazer uma cpia do original e proteg-lo contra escrita por forma a ter sempre as configuraes originais como referncia ou para o reutilizar se necessrio. Copie o ficheiro /etc/ssh/sshd_config e proteja-o contra escrita com os seguintes comandos, executados num terminal:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod a-w /etc/ssh/sshd_config.original

A seguir apresentam-se exemplos de directivas que pode alterar: Para ajustar o OpenSSH para aceitar pedidos (escutar) o protocolo TCP na porta 2222, em vez da porta por omisso TPC porta 22, altere a directiva Port como se segue: Port 2222 Para fazer com que o sshd permita credenciais de login baseadas em chaves pblicas, adicione simplesmente a linha seguinte: PubkeyAuthentication yes no ficheiro /etc/ssh/sshd_config, ou se a linha j estiver presente assegure-se de que no est comentada. Para fazer com que o seu servidor OpenSSH mostre o contedo do ficheiro /etc/issue.net como uma mensagem de pr-login, adicione simplesmente ou modifique a seguinte linha: Banner /etc/issue.net no ficheiro /etc/ssh/sshd_config. Aps a marcao de alteraes no ficheiro /etc/ssh/sshd_config, grave o ficheiro e reinicie a aplicao servidor sshd para tornar efectivas as alteraes utilizando o comando seguinte num terminal:

sudo /etc/init.d/ssh restart

Muitas outras directivas de configurao para o sshd esto disponveis para alterar o comportamento do servidor de forma a satisfazer as suas necessidades pessoais. Tenha em ateno que, se o seu nico mtodo de acesso ao servidor for via ssh, e se ocorrer um erro na configurao do sshd ao alterar o ficheiro /etc/ssh/sshd_config, poder ficar bloqueado 33

Rede do lado de fora aps reiniciar o servidor, ou que a aplicao de servidor sshd se recuse a iniciar em virtude de uma directiva de configurao incorrecta. Assim, tenha especial ateno quando edita este ficheiro remotamente.

4.4. Referncias
Stio web do OpenSSH [http://www.openssh.org/] Pgina wiki do OpenSSH avanado [https://wiki.ubuntu.com/AdvancedOpenSSH]

34

Rede

5. Servidor FTP
File Transfer Protocol (FTP) is a TCP protocol for uploading and downloading files between computers. FTP works on a client/server model. The server component is called an FTP daemon. It continuously listens for FTP requests from remote clients. When a request is received, it manages the login and sets up the connection. For the duration of the session it executes any of commands sent by the FTP client. O acesso a um servidor FTP pode ser conseguido de duas formas: Annimo Autenticado Em modo annimo, clientes remotos podem aceder ao servidor FTP utilizando a conta de utilizador por omisso chamada "anonymous" ou "ftp" e enviando um endereo de correio electrnico como palavra passe. Em modo autenticado o utilizador necessita de uma conta de utilizador e uma palavra passe. O acesso do utilizador aos directrios e ficheiros de um servidor FTP depende das permisses definidas para a conta de utilizador utilizada para aceder ao servidor. Como regra geral, o gestor FTP esconde o directrio raiz do servidor FTP e muda-o para o directrio "Home". Isto esconde de sesses remotas o resto do sistema de ficheiros.

5.1. vstpd - Instalao do Servidor FTP


vsftpd um servio disponvel no Ubuntu. fcil de instalar, configurar e manter. Para instalar o vsftpd pode executar o seguinte comando:
sudo apt-get install vsftpd

5.2. vsftpd - Configurao do Servidor FTP


Pode editar o ficheiro de configurao do vsftpd /etc/vsftpd.conf para alterar os valores padro. Por omisso apenas o acesso FTP annimo permitido. Se pretender desactivar esta opo, deve alterar a linha:

anonymous_enable=YES

para

anonymous_enable=NO

. Por omisso, os utilizadores locais do sistema no podem iniciar sesso no servidor FTP. Para alterar esta configurao deve retirar o comentrio linha:

#local_enable=YES

35

Rede . Por omisso, os utilizadores locais tm permisso para transferir ficheiros do servidor FTP (download). No tm permisso para transferir ficheiros para o servidor FTP (upload). Para alterar esta configurao, deve retirar o comentrio da linha:

#write_enable=YES

. Similarmente, por omisso, os utilizadores annimos no tm permisso para transferir ficheiros para o servidor FTP. Para alterar esta configurao, deve retirar o comentrio da linha:

#anon_upload_enable=YES

. O ficheiro de configurao consttuido por muitos parmetros. A informao acerca de cada parmetro est disponvel no prprio ficheiro de configurao. Em alternativa, pode consultar a pgina do manual, man 5 vsftpd.conf para detalhes de cada parmetro. Uma vez configurado o vsftpd pode-se dar incio ao servidor. O seguinte comando pode ser utilizado para correr o servidor vsftpd:
sudo /etc/init.d/vsftpd start

Note-se que os valores por omisso no ficheiro de configurao so definidos como esto por razes de segurana. Cada uma das alteraes anteriores torna o sistema um pouco menos seguro, pelo que s devem ser feitas se necessrio.

36

Rede

6. Sistema de Ficheiros de Rede - Network File System (NFS)


O NFS permite a um sistema partilhar directrios e ficheiros com outras pessoas atravs de uma rede. Utilizando o NFS, utilizadores e programas podem aceder a ficheiros num sistema remoto quase como se fossem ficheiros locais. Alguns dos benefcios mais notveis que o NFS providencia so: Estaes de trabalho locais utilizam menos espao em disco porque os dados frequentemente utilizados podem ser guardados num mquina nica e permanecer, mesmo assim, acessveis a outros atravs da rede. No existe necessidade de os utilizadores terem directrios pessoais em cada mquina da rede. Os directrios pessoais podem ser configurados no servidor NFS e disponibilizados atravs da rede. Dispositivos de armazenamento como as disquetes, unidades de CDROM e unidades de memria USB podem ser utilizados por outras mquinas na rede. Isto pode reduzir o nmero de dispositivos deste tipo dentro da rede.

6.1. Instalao
Num terminal insira o seguinte comando para instalar o servidor NFS:

sudo apt-get install nfs-kernel-server

6.2. Configurao
Pode configurar os directrios a ser exportados adicionando-os ao ficheiro /etc/exports. Por exemplo:

/ubuntu *(ro,sync,no_root_squash) /home *(rw,sync,no_root_squash)

Pode substituir * com um dos formatos de nome de mquina. Faa a declarao do nome de mquina to especifica quanto possvel para que sistemas no desejados no possam aceder montagem NFS. Para iniciar o servidor NFS, pode correr o seguinte comando num terminal:

sudo /etc/init.d/nfs-kernel-server start

6.3. Configurao do Cliente NFS


Utilize o comando mount para montar um directrio NFS partilhado por outra mquina, digitando uma linha de comando similar seguinte num terminal:

sudo mount example.hostname.com:/ubuntu /local/ubuntu

37

Rede O directrio a utilizar como ponto de montagem /local/ubuntu tem que existir. No devem existir ficheiros ou sub-directrios no directrio /local/ubuntu . Uma forma alternativa de montar uma partilha NFS de outra mquina adicionar uma linha ao ficheiro /etc/fstab. A linha deve declarar o nome do servidor NFS, o directrio exportado por esse servidor, e o directrio da mquina local onde essa partilha deve ser montada. A sintaxe geral da linha no ficheiro /etc/fstab a que se segue:

nome_de_maquina.exemplo.com:/ubuntu /local/ubuntu nfs rsize=8192,wsize=8192,timeo=14,intr

6.4. Referncias
Perguntas frequentes sobre NFS em Linux [http://nfs.sourceforge.net/]

38

Rede

7. Protocolo de Configurao Dinmica da Mquina Dynamic Host Configuration Protocol (DHCP)


O Protocolo de Configurao Dinmica da Mquina Dynamic Host Configuration Protocol (DHCP) um servio de rede que permite que as mquinas recebam as configuraes de rede a partir de um servidor, em vez de ser necessrio configurar cada uma individualmente. Os computadores configurados como clientes do DHCP no tm controlo sobre as configuraes que recebem desse servidor, e a configurao transparente para o utilizador do computador. As configuraes mais comuns fornecidas por um servidor DHCP a clientes DHCP incluem: Endereo-IP e Mscara de Rede DNS WINS Contudo, um servidor DHCP pode tambm disponibilizar propriedades como: Nome do Anfitrio Nome de Domnio Porta de Ligao por Omisso Default Gateway Servidor horrio Servidor de Impresso

A vantagem de usar o DHCP a de automatizar alteraes na rede, por exemplo a alterao do nome do servidor de domnios (DNS), s necessita de ser realizada no servidor de DHCP, e todas as mquinas da rede sero reconfiguradas automaticamente da prxima vez que os seus clientes DHCP sondarem por informaes. Adicionalmente mais fcil adicionar computadores rede, j que no necessrio verificar a disponibilidade de um endereo IP. Da mesma forma conflitos na atribuio de endereos IP so tambm reduzidos. Um servidor de DHCP pode fornecer configuraes usando dois mtodos: Endereo MAC Este mtodo implica usar o DHCP para identificar endereos nicos de hardware de cada dispositivo de rede ligado na rede, e indicar continuamente uma configurao nica e constante cada vez que um cliente DHCP realiza uma solicitao ao servidor DHCP usando esse dispositivo de rede. Gama de endereos Address Pool Este mtodo implica definir uma gama (pool) de endereos IP a partir da qual os clientes DHCP so fornecidos, com propriedades e configuraes dinmicas, e numa lgica de servir primeiro o primeiro a chegar (first come first serve). Quando um cliente DHCP abandona a rede por um determinado perodo de tempo, a configurao expira, e o endereo devolvido gama dos disponveis para ser utilizado por outro cliente DHCP. O Ubuntu fornecido com o servidor e o cliente DHCP. O servidor o dhcpd (dynamic host configuration protocol daemon). O cliente fornecido com o Ubuntu o dhclient e deve ser instalado 39

Rede em todas as mquinas que requeiram uma configurao automtica. Ambos os programas so fceis de instalar e configurar, e so iniciados automticamente no arranque do sistema.

7.1. Instalao
Num terminal, digite o seguinte comando para instalar o dhcpd:

sudo apt-get install dhcpd

Vai obter a resposta seguinte, que explica o que fazer de seguida:

Por favor note que se est a instalar o servidor DHCP pela primeira vez necessita configur-lo. Por favor pare (/etc/init.d/dhcp stop) o servio de DHCP, edite o /etc/dhcpd.conf para corresponder s suas configuraes e necessidades, e reinicie o servio DHCP (/etc/init.d/dhcp start). Tambm necessita editar o /etc/default/dhcp para especificar os interfaces de rede que o dhcpd deve escutar. Por omisso escuta o eth0. NOTA: As mensagens do dhcpd so enviadas para o syslog. Procure a por mensagens de disgnstico. A iniciar o servidor DHCP: dhcpd falhou ao iniciar - verifique o syslog para diagnsticos.

7.2. Configurao
A mensagem de erro com que a instalao termina pode ser um pouco confusa, mas os passos seguintes vo ajud-lo a configurar o servio: De forma mais comum, o que pretende fazer designar um endereo IP aleatrio. Isto pode ser feito com configuraes como as seguintes:

# Exemplo de

/etc/dhcpd.conf

# (adicione comentrios aqui) default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.254; option domain-name-servers 192.168.1.1, 192.168.1.2; option domain-name "mydomain.org"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; range 192.168.1.150 192.168.1.200; }

40

Rede Isto resulta num servidor DHCP atribuindo um endereo IP da gama 192.168.1.10-192.168.1.100 ou 192.168.1.150-192.168.1.200 . Esse endereo ser atribudo por um perodo de 600 segundos, se o cliente no especificar outro intervalo de tempo. Caso contrrio, o tempo mximo (permitido) de atribuio ser de 7200 segundos. O servidor tambm "aconselhar" o cliente a utilizar a mscara de rede 255.255.255.0 , 192.168.1.255 como endereo de difuso, 192.168.1.254 como router/gateway e 192.168.1.1 e 192.168.1.2 clomo os seus servidores de DNS. Se necessitar de especificar um servidor WINS para os seus clientes Windows, vai ter de incluir a opo netbios-name-servers, por exemplo:

option netbios-name-servers 192.168.1.1;

As configuraes dhcpd foram retiradas do DHCP mini-HOWTO, que pode ser encontrado em here [http://www.tldp.org/HOWTO/DHCP/index.html].

7.3. Referncias
Perguntas frequentes sobre o DHCP [http://www.dhcp-handbook.com/dhcp_faq.html]

41

Rede

8. Servio de Nomes de Domnios Domain Name Service DNS


Domain Name Service (DNS) is an Internet service that maps IP addresses and fully qualified domain names (FQDN) to one another. In this way, DNS alleviates the need to remember IP addresses. Computers that run DNS are called name servers. Ubuntu ships with BIND (Berkley Internet Naming Daemon), the most common program used for maintaining a name server on Linux.

8.1. Instalao
Na linha de comandos, digite o comando seguinte para instalar o dns:

sudo apt-get install bind

8.2. Configurao
Os ficheiros de configurao DNS so guardados no directrio /etc/bind. O ficheiro de configurao principal o /etc/bind/named.conf. O contedo do ficheiro de configurao por omisso mostrado de seguida:

// Este o ficheiro principal de configurao do servidor BIND DNS. // // Por favor leia // e posteriores, // /usr/share/doc/bind/README.Debian para informaes sobre *ANTES* de alterar este ficheiro de configurao

// a estrutura dos ficheiros de configurao do BIND na Debian para o BIND 8.2.1

include "/etc/bind/named.conf.options"; // reduzir pormenor do registo em assuntos fora do nosso controlo logging { category lame-servers { null; }; category cname { null; }; };

// inicializar o servidor com conhecimento dos servidores de raiz zone "." { type hint; file "/etc/bind/db.root"; }; // Ser autoritrio para as zonas de encaminhamento e retorno do localhost, e para // zonas de broadcast seguindo a RFC 1912 zone "localhost" { type master; file "/etc/bind/db.local"; };

42

Rede

zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; }; zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; }; // Adicionar aqui definies de local include "/etc/bind/named.conf.local";

A linha include especifica o ficheiro que contm as opes de DNS. A linha directory no ficheiro de opes indica ao DNS onde procurar os ficheiros. Todos os ficheiros que o BIND usa sero relativos a este directrio. The file named /etc/bind/db.root describes the root name servers in the world. The servers change over time, so the /etc/bind/db.root file must be maintained now and then. A seco zone define um servidor mestre, e est colocada num ficheiro mencionado com a etiqueta file. Cada ficheiro de zona contm trs registos de recurso (RRs): um SOA RR, um NS RR e um PTR RR. O SOA o diminutivo de Start of Authority - Incio de Autoridade. O "@" uma anotao especial indicando a origem. NS o RR de Servidor de Nome. O PTR o apontador do nome de domnio. Para iniciar o servidor DNS, digite o seguinte comando num terminal ou linha de comandos:

sudo /etc/init.d/bind start

Pode recorrer documentao mencionada na seco de referncias para detalhes.

8.3. Referncias
DNS Como Fazer (HOWTO) [http://www.tldp.org/HOWTO/DNS-HOWTO.html]

43

Rede

9. Servidor de Impresso - CUPS


The primary mechanism for Ubuntu printing and print services is the Common UNIX Printing System (CUPS). This printing system is a freely available, portable printing layer which has become the new standard for printing in most Linux distributions. O CUPS gere os trabalhos de impresso e filas de espera e oferece capacidade de impresso em rede usando o standard Internet Printing Protocol (IPP), oferecendo simultaneamente suporte para uma enorme diversidade de impressoras, desde agulhas a laser, e muitas outras. O CUPS suporta ainda o PostScript Printer Description (PPD) e a auto deteco de impressoras de rede, e possui um ambiente de configurao e administrao muito simples e assente em tecnologia web.

9.1. Instalao
To install CUPS on your Ubuntu computer, simply use sudo with the apt-get command and give the packages to install as the first parameter. A complete CUPS install has many package dependencies, but they may all be specified on the same command line. Enter the following at a terminal prompt to install CUPS:

sudo apt-get install cupsys cupsys-client

Aps autenticao com a sua palavra passe (com privilgios de administrador), os pacotes devem ser descarregados e instalados sem erros. Ao concluir a instalao, o servidor CUPS ser iniciado automaticamente. Para resoluo de problemas pode aceder aos erros do servidor CUPS atravs do ficheiro de registo de eventos /var/log/cups/error_log. Se o registo de erros no apresentar informao suficiente para ajudar a resolver os problemas que encontrou, o detalhe dos registos do CUPS pode ser aumentado alterando a directiva LogLevel no ficheiro de configurao, mencionado acima, de "info" para "debug" ou at "debug2" que registar todos os eventos. Se efectuar esta alterao, lembre-se de repor a directiva original ap+os resolver o problema, para impedir que o ficheiro de registo atinga um tamanho excessivo.

9.2. Configurao
O comportamento do Common UNIX Printing System configurado atravs de directivas includas no ficheiro /etc/cups/cupsd.conf. O ficheiro de configurao do CUPS utiliza a mesma sintaxe que o ficheiro de configurao primrio do servidor HTTP Apache, por isso, os utilizadores familiarizados com a edio desse ficheiro devem sentir-se vontade ao editar o ficheiro de configurao do CUPS. Alguns exemplos de configuraes que pode pretender alterar inicialmente so mostrados aqui. Antes de editar o ficheiro de configurao, deve fazer uma cpia do ficheiro original e proteg-la contra a escrita, desta forma vai ter as configuraes originais como referncia, e para reutilizar se necessrio. Copie o ficheiro /etc/cups/cupsd.conf e proteja-o contra a escrita introduzindo os seguintes comandos num terminal:

44

Rede

sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original sudo chmod a-w /etc/cups/cupsd.conf.original

ServerAdmin: Para configurar o endereo de correio electrnico do administrador do servidor CUPS, edite simplesmente o ficheiro /etc/cups/cupsd.conf com o seu editor de texto favorito, e modifique a linha ServerAdmin colocando a o respectivo endereo. Por exemplo, se voc for o administrador do servidor CUPS e o seu endereo de correio electrnico for 'bjoy@somebigco.com', deve alterar a linha ServerAdmin para o seguinte:

ServerAdmin bjoy@somebigco.com

Para mais exemplos de directivas de configurao do ficheiro de configurao do servidor CUPS, consulte a pgina de manual de sistema associada digitando o seguinte comando num terminal:

man cupsd.conf

Sempre que faa alteraes ao ficheiro de configurao /etc/cups/cupsd.conf, precisa de reiniciar o servidor CUPS executando o comando seguinte num terminal:

sudo /etc/init.d/cupsys restart

Algumas configuraes extra do servidor CUPS so feitas no ficheiro /etc/cups/cups.d/ports.conf: Listen: Por omisso no Ubuntu, o servidor CUPS apenas escuta o interface loopback no endereo IP 127.0.0.1. Para instruir o servidor CUPS para escutar o endereo do endereo IP do interface de rede real, deve especificar o nome do computador ou o endereo IP, ou ainda opcionalmente, um par Endereo IP/Porta atravs da directiva Listen. Por exemplo, se o seu servidor CUPS estiver instalado numa rede local no endereo IP 192.168.10.250 e quer torn-lo acessvel a outros sistemas nesta sub-rede, deve editar o ficheiro /etc/cups/cups.d/ports.conf e adicionar uma directiva Listen da seguinte forma:

Listen 127.0.0.1:631 # escuta no interface loopback Listen /var/run/cups/cups.sock # socket Listen actual Listen 192.168.10.250:631 # Escutar o interface de rede local, na Porta, 631 (IPP)

No exemplo acima, pode comentar ou remover a referncia ao endereo de Loopback (127.0.0.1) se no pretender que o cupsd espere ligaes nessa interface, mas espere ligaes somente nas interfaces Ethernet da Rede de rea Local (LAN). Para activar a recepo de ligaes em todas as interfaces de rede s quais um determinado nome de mquina est associado, incluindo o Loopback, pode criar uma entrada Listen para o nome de mquina socrates como a seguinte:

Listen socrates:631 # Vigiar em todas as interfaces para o nome de mquina 'socrates'

45

Rede ou omitindo a directiva Listen e usando Port em seu lugar, como em:

Port 631 # Vigiar a porta 631 em todas as interfaces

9.3. Referncias
Pgina Web do CUPS [http://www.cups.org/]

46

Rede

10. HTTPD - Servidor Web Apache2


Apache is the most commonly used Web Server on Linux systems. Web Servers are used to serve Web Pages requested by client computers. Clients typically request and view Web Pages using Web Browser applications such as Firefox, Opera, or Mozilla. Users enter a Uniform Resource Locator (URL) to point to a Web server by means of its Fully Qualified Domain Name (FQDN) and a path to the required resource. For example, to view the home page of the Ubuntu Web site [http://www.ubuntu.com] a user will enter only the FQDN. To request specific information about paid support [http://www.ubuntu.com/support/paid], a user will enter the FQDN followed by a path. O protocolo mais utilizado para transferir pginas Web o Protocolo de Transferncia de Hiper Texto Hyper Text Transfer Protocol (HTTP). Protocolos tais como o Protocolo de Transferncia de Hiper Texto sobre Camadas de Ligao Segura Hyper Text Transfer Protocol over Secure Sockets Layer (HTTPS), ou o Protocolo de transferncia de Ficheiros File Transfer Protocol (FTP), que um protocolo utilizado para enviar e receber ficheiros entre computadores, so tambm suportados. Os servidores de Web Apache so frequentemente utilizados conjuntamente com o motor de base de dados MySQL, a linguagem HyperText Preprocessor (PHP), e outras linguagens populares como Python e Perl. Esta configurao designada por LAMP (Linux, Apache, MySQL and Perl/Python/PHP) e constitui uma plataforma poderosa e robusta para o desenvolvimento e distribuio de aplicaes baseadas na Web.

10.1. Instalao
O servidor web Apache2 est disponvel no Ubuntu Linux. Para instalar o Apache2: Num terminal escreva o seguinte comando:

sudo apt-get install apache2

10.2. Configurao
O Apache configurado adicionando directivas em ficheiros de configurao de texto simples. O ficheiro de configurao principal o apache2.conf. Adicionalmente, outros ficheiros de configurao podem ser adicionados utilizando a directiva Include, podendo ser utilizados carcteres de escape para adicionar muitos ficheiros de configurao. Qualquer directiva pode ser colocada em qualquer destes ficheiros de configurao. Alteraes nos ficheiros de configurao principais s so reconhecidas pelo Apache2 quando ele for iniciado ou reiniciado. O servidor l tambm um ficheiro contendo tipos de documentos mime; este ficheiro definido pela directiva TypesConfig, e tem o nome mime.types por omisso.

47

Rede O ficheiro de configurao do Apache2, por omisso, o /etc/apache2/apache2.conf . Este ficheiro pode ser editado para configurar o servidor Apache2. Podem ser configurados o nmero da porta, a pasta de documentos de raiz, mdulos, ficheiros de registo, mquinas virtuais, etc.. 10.2.1. Configuraes Bsicas Esta seco explica os parmetros de configurao essenciais do servidor Apache2. Utilize Documentao Apache2 [http://httpd.apache.org/docs/2.0/] para mais detalhes. O Apache2 acompanhado de uma configurao padro de um servidor virtual, (utilizando a directiva VirtualHost), que pode ser modificada, ou utilizada tal como est se tiver apenas um site, ou ainda utilizada como modelo para criar servidores adicionais se tiver vrios sites. Se for o nico, o servidor pr-configurado ser o seu stio padro, ou seja o stio web que os utilizadores vero se o URL que escreverem no corresponder a nenuma das directivas ServerName. Para alterar a o servidor virtual padro edite o ficheiro /etc/apache2/sites-available/default. Se pretender configurar um novo servidor virtual ou um novo site copie este ficheiro para o directrio com um nome igual ao que escolher. Por exemplo, sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite Edite o novo ficheiro para configurar o novo stio utilizando algumas das directivas referidas abaixo. A directiva ServerAdmin especifica o endereo de correio electrnico a ser apresentado como sendo o do administrador do servidor. O valor por omisso webmaster@localhost. Este deve ser alterado para um endereo de correio electrnico voc receba (se voc for o administrador do servidor). Se o seu site web tiver um problema, o Apache2 apresentar uma mensagem de erro contendo este endereo de correio electrnico para que o erro possa ser reportado. Encontra esta directiva no ficheiro de configurao dos seus sites /etc/apache2/sites-available. A directiva Listen especifica a porta, e opcionalmente o endereo IP que o Apache2 escutar e onde receber os pedidos. Se o IP no for especificado, o Apache2 escutar todos os endereos atribudos mquina onde estiver a correr. O valor por omisso para a directiva Listen 80. Alter-la para 127.0.0.1:80 provocar que o Apache2 escutar apenas o interface 'loopback' portanto no ser acessvel a partir da Internet, para (por exemplo) 81 para alterar a porta que ser escutada, ou deixe a ditectiva tal como est para um funcionamento normal. Esta directiva pode ser encontrada e alterada no ficheiro /etc/apache2/ports.conf. A directiva ServerName opcional e especifca o FQDN o seu stio deve responder. O servidor virtual por omisso no tem definida a directiva ServerName, por isso responder a todos os pedidos que no correspondam directiva ServerName de outro servidor virtual. Se apenas adquiriu o nome de domnio ubunturocks.com e pretende aloj-lo no seu servidor Ubuntu, o valor da directiva ServerName no ficheiro de configurao do seu servidor virtual dever ser ubunturocks.com . Adicione esta directiva ao ficheiro de servidores virtuais criado antes (/etc/apache2/sites-available/mynewsite). Tambm pode alterar o seu site para responder como www.ubunturocks.com, dado que muitos utilizadores assumem a utilizao do prefixo www. Utilize para isto a directiva ServerAlias. Tambm pode utilizar carcteres de substituio na directiva ServerAlias. 48

Rede Por exemplo, ServerAlias *.ubunturocks.com far com que o seu stio responda a qualquer pedido de um domnio terminado em .ubunturocks.com . A directiva DocumentRoot especifca onde que o Apache deve procurar os ficheiros que constituem o seu stio web. O valor por omisso /var/www . No existe nenhum stio configurado nesta pasta, mas se descomentar a directiva RedirectMatch do ficheiro /etc/apache2/apache2.conf os pedidos sero redireccionados para /var/www/apache2-default onde existe um stio pr-definido pelo Apache2. Altere este valor no seu ficheiro de servidores virtuais, e lembre-se de criar o directrio se necessrio! O directrio /etc/apache2/sites-available not processado pelo Apache2. A ligao simblica symbolic link /etc/apache2/sites-enabled aponta para stios "disponveis". Utilize o utilitrio a2ensite (Apache2 Enable Site) para criar estas ligaes simblicas, desta forma: sudo a2ensite omeunovositio em que o ficheiro de configurao do seu stio /etc/apache2/sites-available/omeunovositio. De forma semelhante o utilitrio a2dissite deve ser utilizado para desabilitar estes stios. 10.2.2. Configuraes Pr-definidas Esta seco explica as configuraes pr-definidas do servidor Apache2. Por exemplo, se adicionar um servidor virtual, os parmetros que configurar sero utilizados por esse servidor virtual. Caso uma determinada directiva no esteja configurada para o servidor virtual, sero utilizados os parmetros pr-definidos do Apache2. A directiva DirectoryIndex a pgina por omisso apresentada pelo servidor quando um utilizador solicitar o contedo de um directrio, colocando uma barra (/) aps o nome do directrio. Por exemplo, quando um utilizador solicita a pgina http://www.exemplo.pt/este_directorio/, ele/a obter a pgina DirectoryIndex se esta existir, a listagem dos ficheiros do directrio, gerada pelo servidor, se a pgina no existir, ou a pgina Permisso Negada Permission Denied caso as anteriores hipteses no sejam verdadeiras. O servidor tentar encontrar um dos ficheiros existentes na directiva DirectoryIndex e devolver o primeiro que encontrar. Se no encontrar nenhum desses ficheiros e se a directiva Options Indexes apontar para esse directrio, o servidor gerar e devolver uma lista, em formato HTML, das sub-directrios e ficheiros existentes no directrio. O valor por omisso, existente no ficheiro /etc/apache2/apache2.conf " index.html index.cgi index.pl index.php index.xhtml". Assim, se o Apache2 encontrar um ficheiro no directrio pedido que corresponda a um destes nomes, o primeiro deles ser apresentado. A directiva ErrorDocument permite-lhe especificar um ficheiro que o Apache utilizar para erros especficos. Por exemplo, se um utilizador solicitar um recurso que no exista ocorrer um erro 404, e na configurao pr-definida do Apache2, o ficheiro /usr/share/apache2/error/HTTP_NOT_FOUND.html.var ser apresentado. Este ficheiro no est no servidor em DocumentRoot, mas existe uma directiva Alias no ficheiro /etc/apache2/apache2.conf que redirecciona os pedidos para o directrio de erros /usr/share/apache2/error/ . Para ver a lista das directivas de erro ErrorDocument pr-definidas, utilize o comando: grep ErrorDocument /etc/apache2/apache2.conf . 49

Rede Por omisso, o servidor escreve as transferncias executadas para o ficheiro de registos /var/log/apache2/access.log . Pode alterar isto para uma configurao baseada stio a stio na ficheiro de configurao dos seus stios virtuais com a directiva CustomLog, ou omiti-la para aceitar o valor pr-definido, indicado no ficheiro /etc/apache2/apache2.conf. Tambm pode indicar o ficheiro no qual sero feitos os registos de erros, atravs da directiva ErrorLog, que por omisso /var/log/apache2/error.log. Estes registos so mantidos separados dos das transferncias para ajudar na resoluo de problemas com o seu servidor Apache2. Tambm pode especificar o nvel de registo LogLevel (o valor pr-definido aviso "warn") e o Formato de Registo LogFormat (veja o ficheiro /etc/apache2/apache2.conf para o valor pr-definido). Algumas opes so indicadas directrio a directrio em vez de serem para o servidor. Option uma destas directivas. Um declarao Directory includa entre etiquetas de formato semelhante ao XML, desta forma:
<Directory /var/www/omeunovositio> ... </Directory>

A directiva Options dentro da declarao Directory aceita um ou mais dos seguintes valores (entre outros), separados por espaos: ExecCGI - Permitir execuo de scripts CGI. Os scripts CGI no so executados se esta opo no for escolhida. Grande parte dos ficheiros no devem ser executados como scripts CGI. Isso seria muito perigoso. Scripts CGI devem ser mantidos num directrio separado e fora do directrio de raiz DocumentRoot, e apenas esse directrio deve ter a opo ExecCGI definida. Isto o predefinido, e a localizao por omisso dos scripts CGI /usr/lib/cgi-bin. Includes - Permite incluses no servidor, isto , permite que um ficheiro HTML incluir include outros ficheiros. Esta opo no frequente. Consulte Apache2 SSI - Como fazer [http://httpd.apache.org/docs/2.0/howto/ssi.html] para obter mais informao. IncludesNOEXEC - Permite a incluso de ficheiros do servidor, mas desabilita os comandos #exec e #include nos programas GCI. Indexes - Apresenta uma lista formatada do contedo do directrio, se um dos ficheiros indicados na directiva DirectoryIndex (como por exemplo o index.html) no existir no directrio pedido. Por razes de segurana, esta opo no deve ser utilizada, e no deve ser certamente utilizada no Directrio de Raiz. Habilite esta opo cuidadosamente, directrio a directrio e apenas se tiver a certeza que os utilizadores vejam o contedo completo do directrio. Multiview - Suporta a apresentao mltipla de contedos "negociados"; esta opo est desabilitada por omisso por motivos de segurana. Consulte ulink url="http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews">A documentao do Apache2 sobre esta opo 50

Rede SymLinksIfOwnerMatch - Apenas segue as ligaes sinmblicas se o ficheiro ou directrio indicado pela ligao pertencer ao proprietrio da ligao. 10.2.3. Configurao de Stios Virtuais Virtual Hosts A opco Servidores Virtuais permite correr vrios servidores em diferentes endereos IP, diferentes nomes de Stios Web, ou diferentes portas na mesma mquina. Por exemplo, pode ter os stio web http://www.exemplo.pt e http://www.outroexemplo.pt no mesmo servidor web utilizando servidores virtuais. Esta opo corresponde directiva <VirtualHost> para o servidor virtual por omisso e para os servidores virtuais baseados em endereos IP. Corresponde directiva <NameVirtualHost> para servidores virtuais baseados no nome. As directivas configuradas para um determina servidor virtual, aplicam-se apenas a ele. Se uma determinada directiva for configurada para o servidor global, e no for definida para o servidor virtual, utilizada a configurao pr-definida para essa directiva. Por exemplo, pode definir um endereo de correio electrnico para o servidor principal, e no definir um endereo especfico para cada servidor virtual. Ajuste a directiva DocumentRoot para o directrio que contm o documento de raiz do stio web (por exemplo index.html). O valor por omisso de DocumentRoot /var/www. The ServerAdmin directive within the VirtualHost stanza is the email address used in the footer of error pages if you choose to show a footer with an email address on the error pages. 10.2.4. Configuraes do Servidor Esta seco explica como efectuar as configuraes bsicas do servidor. LockFile - A directiva LockFile indica qual o caminho para o ficheiro de bloqueios que o servidor utiliza quando compilado seja com USE_FCNTL_SERIALIZED_ACCEPT ou USE_FLOCK_SERIALIZED_ACCEPT. Deve ser guardado num disco local. Deve ser deixado no valor por omisso a no ser que o directrio de registos esteja localizado numa partilha NFS. Neste caso, o valor por omisso deve ser alterado para um directrio no disco local que tenha permisses de leitura apenas para o root. PidFile - A directiva PidFile indica qual o ficheiro em que o servidor deve gravar os seus identificadores de processos Process ID (pid). Este ficheiro deve ter acesso de leitura apenas pelo root. Na maioria dos casos deve ser deixado com o valor por omisso. User - A directiva User indica a identificao de utilizador utilizada pelo servidor para responder aos pedidos. Esta configurao determina o acesso ao servidor. Quaisquer ficheiros inacessveis a este utilizador sero tambm inacessveis aos visitantes do stio web. O valor por omisso para User www-data. A no ser que saiba exactamente o que est a fazer, no coloque na directiva User root. Utilizar o root como User criar grandes falhas de segurana no seu servidor Web. 51

Rede A directiva Group semelhante directiva User. Group indica qual o grupo para o qual o servidor responder aos pedidos. O grupo por omisso tambm www-data. 10.2.5. Mdulos Apache O Apache um servidor modular. Isto implica que apenas as funcionalidades mais bsicas esto includas no ncleo do servidor. Funes adicionais esto disponveis sob a forma de mdulos que podem ser carregados para o Apache. Por omisso, um conjunto base de mdulos includo no servidor na altura da compilao. Se o servidor estiver configurado para utilizar mdulos de carregamento dinmico, ento os mdulos podem ser compilados separadamente e adicionados em qualquer altura utilizando a directiva LoadModule. Caso contrrio, o Apache tem de ser recompilado para adicionar ou remover mdulos. O Ubuntu compila o Apache2 para permitir o carregamento dinmico de mdulos. As directivas de configurao podem ser includas condicionalmente para a presena de um mdulo em particular colocando-o na seco <IfModule> . Pode instalar mdulos adicionais para o Apache2 e inclu-los no seu servidor Web. Pode instalar mdulos para o apache utilizando o comando apt-get . Por exemplo, para instalar o mdulo do Apache2 para autenticao com o MYSQL, pode utilizar o seguinte comando num terminal:

sudo apt-get install libapache2-mod-auth-mysql

Uma vez instalado o mdulo, ele estar disponvel no directrio /etc/apache2/mods-available. Pode utilizar o comando a2enmod para habilitar um mdulo. Para desabilit-lo utilize o comando a2dismod. Uma vez habilitado um mdulo este estar disponvel no directrio /etc/apache2/mods-enabled.

10.3. Configurao HTTPS


O mdulo mod_ssl adiciona uma importante funcionalidade ao servidor Apache2 - a capacidade de codificar comunicaes. Assim, quando o seu navegador comunicar utilizando codificao SSL, o prefixo https:// utilizado no incio do Uniform Resource Locator (URL) na barra de endereos. O mdulo mod_ssl est disponvel no pacote apache2-common. Se instalou este pacote, pode executar o seguinte comando num terminal para habilitar o mdulo mod_ssl.

sudo a2enmod ssl

10.3.1. Certificados e Segurana Para configurar o seu servidor seguro, utilize a encriptao pblica de chaves para criar um par chave pblica e chave privada. Na maioria dos casos, voc envao p seu pedido de certificado (incluindo a sua chave pblica), comprova a identidade da sua empresa, e um pagamento para uma Autoridade de Certificao (AC) Certificate Authority (CA) . A AC verifica o pedido de certificado e a sua identidade, e seguidamente envia um certificado para o seu servidor seguro. 52

Rede Alternativamente, voc pode criar o seu prprio certificado auto-autenticado. Note, no entanto, que o certificados auto-autenticados no devem ser utilizados na maioria dos ambientes de trabalho. Os certificados auto-autenticados no so automaticamente aceites pelos navegadores dos utilizadores, sendo solicitado a esses solicitado a esses utilizadores que aceitem o certificado e criem a ligao segura. Uma vez que tenha criado um certificado auto-autenticado ou um certificado assinado por uma AC, necessita instal-la no seu servidor seguro. 10.3.2. Tipos de Certificados Voc necessita uma chave e um certificado para o funcionamento do seu servidor seguro, o que significa que pode gerar um certificado auto-autenticado ou adquirir um certificado autenticado por uma Autoridade de Certificao. O certificado adquirido fornece duas importantes capacidades ao seu servidor. Os navegadores (habitualmente) reconhecem o certificado e permitem o estabelecimento de uma ligao segura sem perguntar ao utilizador. Quando uma Autoridade de Certificao emite um certificado assinado, est garantida a identidade da organizao que fornece as pginas web ao navegador. A maioria dos navegadores Web que suportam SSL tm uma lista de ACs cujos certificados so automaticamente aceites. Se um navegador encontra um certificado cuja AC no est na lista, o navegador pergunda ao utilizador se aceita ou no a ligao. Pode gerar um certificado auto assinado para o seu servidor seguro, mas tenha concincia de que esse certificado no oferece as mesmas funcionalidades que o certificado assinado por uma AC. Um certificado auto assinado no automaticamente reconhecido pela maioria dos navegadores e no garante a identidade da organizao que fornece o stio web. Um certificado assinado por uma AC oferece estas duas importantes funcionalidades para um servidor seguro. O processo de obteno de um certificado de uma AC bastante simples. Numa rpida viso como se segue: 1. Criar um par chave privada e chave pblica de codificao. 2. Criar um pedido de certificado baseado numa chave pblica. O pedido de certificado contm informao acerca do seu servidor e da empresa que o hospeda. 3. Envie o pedido de certificado junto com documentos comprovando a sua identidade para a Autoridade de Certificao. No podemos dizer-lhe qual autoridade de certificao a escolher. A sua deciso pode ser baseada em experincias anteriores, experincias de amigos ou colegas ou at em factores econmicos. Uma vez se tenha decidido sobre uma AC, necessita seguir as instrues que eles lhe tenham fornecido sobre a obteno do certificado. 4. Quando a AC se considerar que voc ou a sua empresa so quem afirmam ser, enviar-lhe-o o certificado digital. 5. Instale esse certificado no seu servidor seguro, e comece a utilizar transaces seguras. 53

Rede Quer obtenha um certificado de uma AC quer gere o seu prprio certificado, o primeiro passo gerar uma chave. 10.3.3. Gerao de Pedido de Assinatura de Certificado (CSR) Para gerar o Pedido de Assinatura de Certificado (CSR), deve criar a sua prpria chave. Pode executar o seguinte comando num terminal para criar a chave:

openssl genrsa -des3 -out server.key 1024

Generating RSA private key, 1024 bit long modulus .....................++++++ .................++++++ unable to write 'random state' e is 65537 (0x10001) Enter pass phrase for server.key:

Pode agora digitar a sua palavra passe. Para melhor segurana, ela deve conter pelo menos oito carcteres. O comprimento mnimo quando se especifica -des3 quatro carcteres. Deve conter algarismos e/ou pontuao e no ser uma palavra de dicionrio. Lembre-se ainda que a sua palavra passe sensvel a carcteres maisculos ou minsculos. Volte a inserir a palavra passe para verificao. Uma vez que a tenha reinserido correctamente, a chave do servidor gerada e guardada no ficheiro server.key. Pode ainda correr o seu servidor web seguro sem palavra passe. Isso conveniente porque assim no vai precisar de inserir a palavra passe sempre que inicie o seu servidor web seguro. No entanto isso altamente inseguro e uma chave comprometida significa tambm o comprometimento do servidor. Em qualquer dos casos, pode optar por correr o seu servidor web seguro sem a palavra passe deixando de fora a opo -des3 aquando da fase de gerao ou utilizando o seguinte comando num terminal:

openssl rsa -in server.key -out server.key.insecure

Uma vez que tenha executado o comando anterior, a chave insegura vai ser guardada no ficheiro server.key.insecure. Pode usar este ficheiro para gerar o CSR sem palavra passe. Para criar o CSR, execute o seguinte comando no terminal:

openssl req -new -key server.key -out server.csr

Ele vai pedir-lhe que insira a frase passe. Se inserir a frase correcta , vai pedir-lhe que indique o nome da empresa (Company Name), o endereo do servidor Web (Site Name), correio electrnico (Email ld), etc.. Aps o fornecimento de todos estes dados, o seu CSR ser gerado e guardado no ficheiro 54

Rede
server.csr.

Pode submeter este ficheiro CSR a um AC para processamento. O CAN utilizar este CSR e emitir o certificado. Por outro lado, pode criar um certificado auto assinado utilizando este CSR. 10.3.4. Criar um Certificado Auto Assinado Para criar um certificado auto assinado, execute o seguinte comando num terminal:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

O comando anterior vai solicitar-lhe a frase passe. Uma vez introduzida a frase correcta, o seu certificado ser gerado e guardado no ficheiro server.crt. Se o seu servidor seguro se destina a ser usado num ambiente de produo, provavelmente vai necessitar de um certificado AC assinado. No recomendado o uso de certificados auto assinados. 10.3.5. Instalao do Certificado Pode instalar o ficheiro chave server.key e o ficheiro de certificado server.crt ou ainda o ficheiro certificado enviado pelo seu AC executando os seguintes comandos no terminal:

sudo cp server.crt /etc/ssl/certs sudo cp server.key /etc/ssl/private

Dever adicionar as quatro linhas seguintes ao ficheiro /etc/apache2/sites-available/default ou ao ficheiro de configurao da sua mquina virtual segura. Deve colocar as linhas na seco VirtualHost. Devem ser colocadas depois da linha DocumentRoot:

SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key

HTTPS dever escutar no nmero de porto 443. Dever adicionar a linha seguinte ao ficheiro /etc/apache2/ports.conf:

Listen 443

10.3.6. Aceder ao Servidor Uma vez instalado o certificado, dever reiniciar o seu servidor web. Para o reiniciar pode executar o comando seguinte num terminal:
sudo /etc/init.d/apache2 restart

55

Rede Deve relembrar e inserir a frase passe de cada vez que inicia o seu servidor web seguro.

A frase passe ser-lhe- pedida. Uma vez que tenha introduzido a frase correcta, o servidor web seguro ser iniciado. Para aceder s pginas do servidor seguro digite https://nome_seu_servidor/url/ na barra de endereos do seu navegador.

10.4. Referncias
Documentao Apache2 [http://httpd.apache.org/docs/2.0/] Documentao Mod SSL [http://www.modssl.org/docs/]

56

Rede

11. PHP5 - Scripting Language


PHP is a general-purpose scripting language suited for Web development. The PHP script can be embedded into HTML. This section explains how to install and configure PHP5 in Ubuntu System with Apache2 and MySQL. This section assumes you have installed and configured Apache 2 Web Server and MySQL Database Server. You can refer to Apache 2 section and MySQL sections in this document to install and configure Apache 2 and MySQL respectively.

11.1. Instalao
The PHP5 is available in Ubuntu Linux. To install PHP5 you can enter the following command in the terminal prompt:

sudo apt-get install php5-common php5 libapache2-mod-php5

You can run PHP5 scripts from command line. to run PHP5 scripts from command line you should install php5-cgi package. To install php5-cgi you can enter the following command in the terminal prompt:

sudo apt-get install php5-cgi

To use MySQL with PHP5 you should install php5-mysql package. To install php5-mysql you can enter the following command in the terminal prompt:

sudo apt-get install php5-mysql

Similarly, to use PostgreSQL with PHP5 you should install php5-pgsql package. To install php5-pgsql you can enter the following command in the terminal prompt:

sudo apt-get install php5-pgsql

11.2. Configurao
Once you install PHP5, you can run PHP5 scripts from your web browser. If you have installed php5-cgi package, you can run PHP5 scripts from your command prompt. By default, the Apache 2 Web server is configured to run PHP5 scripts. In other words, the PHP5 module is enabled in Apache2 Web server automatically when you install the module. Please verify if the files /etc/apache2/mods-enabled/php5.conf and /etc/apache2/mods-enabled/php5.load exist. If they do not exists, you can enable the module using a2enmod command. 57

Rede Once you install PHP5 related packages and enabled PHP5 Apache 2 module, you should restart Apache2 Web server to run PHP5 scripts. You can run the following command at a terminal prompt to restart your web server:
sudo /etc/init.d/apache2 restart

11.3. Testar
To verify your installation, you can run following PHP5 phpinfo script:

<?php print_r (phpinfo()); ?>

You can save the content in a file phpinfo.php and place it under DocumentRoot directory of Apache2 Web server. When point your browser to http://hostname/phpinfo.php, it would display values of various PHP5 configuration parameters.

58

Rede

12. Squid - Servidor Proxy


O Squid uma aplicao servidora de armazenamento web completa que fornece servios de proxy e de armazenamento para Protocolo de Transporte de HiperTexto (HTTP), Protocolo de Transporte de Ficheiros (FTP), e outros protocolos de rede populares. O Squid pode implementar armazenamento e execuo de proxy de pedidos de Camadas de Sockets Seguros (SSL) e armazenamento de pesquisas a Servidor de Nomes de Domnio (DNS), e executar armazenamento transparente. O Squid suporta ainda uma ampla variedade de protocolos de armazenamento, como o Protocolo de Armazenamento da Internet, (ICP) o Protocolo de Armazenamento de HiperTexto, (HTCP) o Protocolo de Direccionamento de Tabelas de Armazenamento (CARP), e o Protocolo Coordenao de Armazenamento Web (WCCP). O servidor de armazenamento proxy Squi8d uma excelente soluo para vrias necessidades de armazenamento e proxy do servidor, e cresce desde uma rede de um pequeno escritrio at uma rede de nvel empresarial, enquanto oferece mecanismos de acesso individualizado o monitorizao de parmetros crticos via Protocolo de Gesto de Redes Simples Simple Network Management Protocol (SNMP). Ao seleccionar um sistema para utilizar como servidor Squid dedicado, ou servidor de armazenamento temporrio, assegure-se que esse sistema possui bastante memria RAM, dado que o Squid utiliza bastante para assegurar um desempenho melhorado.

12.1. Instalao
Num terminal, insira o seguinte comando para instalar o servidor Squid:

sudo apt-get install squid squid-common

12.2. Configurao
O Squid configurado editando as directivas contidas no ficheiro de configurao /etc/squid/squid.conf. Os exemplos seguintes ilustram algumas das directivas que podem ser modificadas para alterar o comportamento do servidor Squid. Para uma configurao mais aprofundada do Squid, consulte a seco de referncias. Antes de editar o ficheiro de configurao, deve fazer uma cpia do mesmo e proteg-lo contra escrita de forma a que possa usar as configuraes originais como referncia, ou reutilizar o ficheiro conforme necessrio. Copie o ficheiro /etc/squid/squid.conf e proteja-o contra a escrita com os comandos seguintes utilizando o terminal:

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original sudo chmod a-w /etc/squid/squid.conf.original

Para configurar o servidor Squid para escutar no porto TCP 8888 em vez do porto pr-definido 3128, altere a directiva http_port da seguinte forma:

59

Rede http_port 8888 Altere a directiva visible_hostname por forma a dar ao servidor Squid um nome de mquina especfico. Este nome de mquina no precisa necessriamente de ser o nome de mquina do computador. Neste exemplo ele configurado como weezie visible_hostname weezie Mais uma vez, utilizando o controlo de acesso do Squid, pode configurar a utilizao de servios da Internet alvo de proxy pelo Squid por forma a que somente estejam acessiveis a utilizadores com determinados Endereos Internet (IP) . Por exemplo, vamos ilustrar o acesso apenas por utilizadores da subrede 192.168.42.0/24: Adicione o seguinte no fim da seco ACL do seu ficheiro /etc/squid/squid.conf: acl fortytwo_network src 192.168.42.0/24 Depois, adicione o seguinte no incio da seco http_access do seu ficheiro /etc/squid/squid.conf: http_access allow fortytwo_network Utilizando as excelentes caracteristicas de controlo de acesso do Squid, pode configurar a utilizao de servios da Internet alvo de proxy pelo Squid para que estejem acessiveis somente durante as horas de expediente. Por exemplo, vamos ilustrar o acesso dos empregados de um negcio que funciona das 9:00 as 17:00, de Segunda-feira a Sexta-feira, e que utiliza a subrede 10.1.42.0/42: Adicione o seguinte no fim da seco ACL do seu ficheiro /etc/squid/squid.conf: acl rede_trabalho src 10.1.42.0/24 acl horas_trabalho time M T W T F 9:00-17:00 Depois, adicione o seguinte no incio da seco http_access do seu ficheiro /etc/squid/squid.conf: http_access allow rede_trabalho horas_trabalho Aps alterar o ficheiro /etc/squid/squid.conf, grave-o e reinicie o servidor squid para efectivar as alteraes utilizando o seguinte comando num terminal:

sudo /etc/init.d/squid restart

12.3. Referncias
Stio web Squid [http://www.squid-cache.org/]

60

Rede

13. Sistema de Controlo de Verses


O controlo de Verses a arte de gerir alteraes informao. Tem sido desde h muito uma ferramenta crtica para programadores, que tipicamente gastam o seu tempo a executar pequenas alteraes a software e depois desfazendo essas alteraes no dia seguinte. No entanto a utilidade do software de controlo de verses extende-se bastante mais para alm das fronteiras do mundo do desenvolvimento de software. Em qualquer lado onde encontre pessoas a utilizar computadores para gerir informao que muda frequentemente, existe espao para o controlo de verses.

13.1. Subversion
O Subversion um sistema de controlo de verses 'open source'. Utilizando o Subversion pode gravar a histria de ficheiros de cdigo fonte e documentos. Eles gere ficheiros e directrios ao longo do tempo. Uma 'rvore' de ficheiros colocada num repositrio central. Este repositrio muito semelhante a um vulgar servidor de ficheiros, excepto que se lembra de todas as alteraes efectuadas nos ficheiros e directrios. 13.1.1. Instalao Para aceder ao repositrio do Subversion utilizando o protocolo HTTP deve instalar e configurar um servidor web com certificado digital. Est provado que o Apache2 funciona com o Subversion. Por favor consulte a sub-seco HTTP da seco Apache2 para o instalar e configurar. Consulte a sub-seco HTTPS da seco Apache2 para o instalar e configurar um certificado digital. Para instalar o Subversion, execute o seguinte comando num terminal:

sudo apt-get install subversion libapache2-svn

13.1.2. Configurao de Servidor Este passo assume que instalou os pacotes acima referidos no seu sistema. Esta seco explica como criar um repositrio Subversion e aceder ao projecto. 13.1.2.1. Criar um Repsitrio Subversion O repositrio Subversion pode ser criado usando o comando seguinte num terminal:

svnadmin create /path/to/repos/project

13.1.3. Mtodos de Acesso Os repositrios Subversion podem ser acedidos (verificados) atravs de vrios mtodos -- num disco local, ou utilizando vrios protocolos de rede. No entanto a localizao de um repositrio sempre um URL. A tabela refere como diferentes esquemas URL indicam deferentes mtodos de acesso. 61

Rede

Tabela 4.1. Mtodos de Acesso


Esquema file:// http:// Mtodo de Acesso acesso directo ao repositrio (no disco local) Acesso via protocolo WebDAV a um servidor web Apache2 com Subversion O mesmo que http://, mas com codificao SSL Acesso via protocolo personalizado a um servidor svnserve O mesmo que svn://, mas atravs de tnel SSH

https:// svn://

svn+ssh://

Nesta seco, veremos como configurar o Subversion para todos estes mtodos de acesso. Aqui, cobrimos o bsico. Para mais detalhes em utilizaes avanadas, consulte o livro svn [http://svnbook.red-bean.com/]. 13.1.3.1. Acesso directo ao repositrio (file://) Este o mais simples de todos os mtodos de acesso. No requere nenhum processo do Subversion a funcionar no servidor. Este mtodo utilizado para aceder ao Subversion na mesma mquina. A sintaxe do comando, executado num terminal, a seguinte:

svn co file:///caminho/para/repositorio/projecto

ou

svn co file://nome_da_maquina/para/repositorio/projecto

Se no especificar o nome da mquina existem trs barras (///) - duas para o protocolo (neste caso file) mais uma para o caminho. Se indicar o nome da mquina deve utilizar duas barras (//). As permisses do repositrio dependem das permisses do sistema de ficheiros. Se o utilizador tem permisso leitura/escrita, possvel efectuar as operaes sida e envio (checkout e commit) no repositrio. 13.1.3.2. Acesso via protocolo WebDav (http://) Para aceder ao repositrio Subversion via protocolo WebDAV, deve configurar o seu servidor web Apache2. Ter de adicionar o seguinte no ficheiro /etc/apache2/apache2.conf:
<Location /svn> DAV svn SVNPath /caminho/para/repositorio AuthType Basic AuthName "O nome do seu repositrio"

62

Rede
AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>

A seguir, deve criar o ficheiro /etc/subversion/passwd. Este ficheiro contm as informaes de autenticao dos utilizadores. Para adicionar uma entrada, isto , adicionar um utilizador, deve executar o seguinte comando num terminal:

htpasswd2 /etc/subversion/passwd nome_do_utilizador

Este comando pedir-lhe- para indicar uma palavra passe. Quando o fizer o utilizador ser adicionado. Agora, para aceder ao repositrio pode executar o seguinte comando:
svn co http://nome_do_servidor/svn

A palavra passe transmitida como texto simples. Se estiver preocupado com a pesquisa indevida de palavras passe, aconselhamos a utilizalo de codificao SSL. Para detalhes consulte a seco seguinte: 13.1.3.3. Acesso via protocolo webDAV com codificao SSL (https://) Aceder ao repositrio Subversion atravs do protocolo WebDAT com codificao SSL (https://) semelhante ao http://, excepto que deve instalar e configurar um certificado difital no seu servidor web Apache2. Pode instalar um certificado digital emitido por uma companhia creditada como a Verisign. Alternativamente, pode instalar o seu prprio certificado auto assinado. Este passo assume que instalou e configurou um certificado digital no seu servidor web Apache2. Agora, para aceder ao repositrio Subversion, consulte a seco acima! Os mtodos de acesso so exactamente os mesmos, excepto o protocolo. Agora deve utilizar o https:// para aceder ao repositrio Subversion. 13.1.3.4. Acesso via protocolo personalizado (svn://) Uma vez criado o repositrio Subversion, pode configurar o controlo de acessos. Edite o ficheiro /path/to/repos/project/conf/svnserve.conf para configurar o controlo de acessos. Por exemplo, para configurar a autenticao, pode retirar os comentrios nas linhas seguintes do ficheiro de configurao:
# [general] # password-db = passwd

Depois de retirar os comentrios nas linhas acima, pode gerir a lista de utilizadores no ficheiro passwd. Assim, edite o ficheiro passwd no mesmo directrio e adicione um novo utilizador. A sintaxe a seguinte: 63

Rede
username = password

Para mais detalhes, consulte o ficheiro por favor. Agora, para aceder ao Subversion via protocolo svn://, quer da mesma mquina ou de uma mquina diferente, pode executar o svnserver usando o comando svnserve. A sintaxe a seguinte:
$ svnserve -d --foreground -r /caminho/para/repositorio # -d -- modo servio # --foreground -- correr visvel (til para correco de erros) # -r -- raiz do directrio a disponibilizar Para mais detalhes sobre a utilizao, por favor consulte: $ svnserve --help

Uma vez executado este comando, o Subversion comea a escutar no porto pr-definido (3690). Para aceder ao repositrio do projecto, deve executar o comando seguinte num terminal:

svn co svn://nome_da_maquina/projecto projecto --username nome_do_utilizador

Dependendo da configurao, ele pede a palavra passe. Uma vez autenticado, ele verifica o cdigo no repositrio Subversion. Para sincronizar o repositrio do projecto com a cpia local, pode executar num terminal o sub-comando update. A sintaxe a seguinte:

cd project_dir ; svn update

Para mais detalhes acerca de cada subcomando do Subversion, pode consultar o manual. Por exemplo, para aprender mais sobre o comando co (do ingls checkout, verificar), por favor execute o comando seguinte num terminal:
svn co help

13.1.3.5. Acesso via protocolo personalizado com codificao SSL (svn+ssh://) A configurao e o processamento do servidor so os mesmos que o do mtodo svn:// . Para mais detalhes consulte a seco acima. Este passo assume que seguiu os passos acima e iniciou o servidor Subversion utilizando o comando svnserve. Tambm assumido que o servidor ssh est funcionar nessa mquina e que aceita ligaes de entrada. Para confirmar, por favor tente entrar na mquina utilizando o ssh. Se conseguir entrar, est tudo bem. Se no conseguir, por favor verifique o servidor antes de continuar. O protocolo svn+ssh:// utilizado para aceder ao repositrio Subversion utilizando codificao SSL. Os dados transferidos so codificados utilizando este mtodo. Para aceder ao repositrio do projecto (para efectuar, por exemplo, uma verificao), deve utilizar a seguinte sintaxe no comando:

svn co svn+ssh://nome_da_maquina/var/svn/repos/projecto

64

Rede Tem que indicar o caminho completo (/path/to/repos/project) para aceder ao repositrio do Subversion utilizando este mtodo. Dependendo da configurao, ele pede uma palavra passe. Tem que digitar a palavra passe que utiliza para iniciar a sesso via ssh. Uma vez autenticado, ele verifica o cdigo no repositrio Subversion.

13.2. Servidor CVS


CVS um sistema de controlo de versoes. Pode utiliz-lo para registar o histrico dos ficheiros fonte. 13.2.1. Instalao Num terminal execute o seguinte comando para instalar o cvs:

sudo apt-get install cvs

Aps instalar o cvs, deve instalar o xinetd para iniciar ou parar o servidor cvs. No terminal digite o seguinte comando para instalar a aplicao xinetd:

sudo apt-get install xinetd

13.2.2. Configurao Once you install cvs, the repository will be automatically initialized. By default, the repository resides under the /var/lib/cvs directory. You can change this path by running following command:

cvs -d /your/new/cvs/repo init

Once the initial repository is set up, you can configure xinetd to start the CVS server. You can copy the following lines to the /etc/xinetd/cvspserver file.

service cvspserver { port = 2401 socket_type = stream protocol = tcp user = root wait = no type = UNLISTED server = /usr/bin/cvs server_args = -f --allow-root /var/lib/cvs pserver disable = no }

Assegure-se que edita o repositrio se alterou o directrio do repositrio pr-definido (/var/lib/cvs). 65

Rede Once you have configured xinetd you can start the cvs server by running following command:

sudo /etc/init.d/xinetd start

Pode confirmar que o servidor CVS est em funcionamento executando o seguinte comando:

sudo netstat -tap | grep cvs

Quando executa este comando, dever ver a linha seguinte ou algo similar:

tcp 0 0 *:cvspserver *:* LISTEN

A partir daqui pode continuar a adicionar utilizadores, adicionar novos projectos, e a gerir o servidor CVS. O CVS permite ao utilizador adicionar utilizadores independentemente da instalao do Sistema Operativo subjacente. Provavelmente a maneira mais fcil a de usar Linux Users for CVS, embora tenha alguns problemas potenciais de segurana. Queira consultar o manual do CVS para mais detalhes. 13.2.3. Adicionar Projectos This section explains how to add new project to the CVS repository. Create the directory and add necessary document and source files to the directory. Now, run the following command to add this project to CVS repository:

cd your/project cvs import -d :pserver:username@hostname.com:/var/lib/cvs -m "Importing my project to CVS repository

Pode usar a varivel ambiente CVSROOT para guardar o directrio de raiz do CVS. Uma vez exportada a varivel de ambiente CVSROOT, pode evitar usar a opo -d no comando cvs acima. The string new_project is a vendor tag, and start is a release tag. They serve no purpose in this context, but since CVS requires them, they must be present. Quando adiciona um novo projecto, o utilizador CVS que estiver a utilizar tem de ter permisses de escrita no repositrio CVS (/var/lib/cvs). Por omisso, o grupo src tem permisso de escrita no repositrio CVS. Assim, pode adicionar o utilizador a este grupo, podendo este ento adicionar e gerir projectos no repositrio CVS.

13.3. Referncias
Pgina do Subversion [http://subversion.tigris.org/] Livro do Subversion [http://svnbook.red-bean.com/] 66

Rede Manual do CVS [http://ximbiot.com/cvs/manual/cvs-1.11.21/cvs_toc.html]

67

Rede

14. Bases de Dados


O Ubuntu fornece dois servidores de Bases de Dados. Eles so: MySQL PostgreSQL Ambos disponveis no repositrio main. Esta seco explica como instalar e configurar estes servidores de bases de dados.

14.1. MySQL
O MySQL um servidor robusto de base de dados SQL, rpido, multi-tarefa, multi-utilizador. orientado para actividades crticas, de produo com grandes cargas, e tambm para ser embebido em software distribudo em massa. 14.1.1. Instalao Para instalar o MySQL, execute o comando seguinte a partir de um terminal:

sudo apt-get install mysql-server mysql-client

Uma vez completada a instalao, o servidor MySQL dever iniciar automaticamente. Pode executar o comando seguinte num terminal para verificar se o servidor MySQL est em execuo:

sudo netstat -tap | grep mysql

Quando executa este comando, dever ver a linha seguinte ou algo similar:

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

Se o servidor no estiver a executar correctamente, pode digitar o seguinte comando para o iniciar:

sudo /etc/init.d/mysql restart

14.1.2. Configurao Por omisso, a palavra passe do administrador no est definida. Uma vez instalado o MySQL, a primeira coisa que deve fazer configurar a palavra passe do administrador. Para fazer isso, execute os seguintes comandos:

sudo mysqladmin -u root password novapalavrapassedorootsql

sudo mysqladmin -p -u root -h localhost password newrootsqlpassword

68

Rede Pode editar o ficheiro /etc/mysql/my.cnf para configurar definies bsicas -- ficheiro de registos, nmero de porto, etc. Consulte o ficheiro /etc/mysql/my.cnf para mais detalhes.

14.2. PostgreSQL
PostgreSQL um sistema de base de dados, relacional e orientada para objectos, que tem as funcionalidades tradicionais dos sistemas comerciais e com melhorias que podem ser encontradas na prxima gerao de sistemas DBMS. 14.2.1. Instalao Para instalar PostgreSQL, execute o comando seguinte numa linha de comandos:

sudo apt-get install postgresql

Uma vez completada a instalao, dever configurar o servidor PostgreSQL de acordo com as suas necessidades, embora a configurao por omisso seja vivel. 14.2.2. Configurao Por omisso, a ligao TCP/IP est desactivada. PostgreSQL suporta mtodos mltiplos de autenticao. Por omisso, o mtodo de autenticao IDENT usado. Por favor consulte o guia do Administrador PostgreSQL [http://www.postgresql.org/docs/8.1/static/admin.html]. A discusso seguinte assume que deseja activar ligaes TCP/IP e usar o mtodo MD5 para autenticao de clientes. Os ficheiros de configurao PostgreSQL so guardados no directrio /etc/postgresql/<verso>/main. Por exemplo, se instalar o PostgreSQL 7.4, os ficheiros de configurao sero guardados no directrio /etc/postgresql/7.4/main. Para configurar autenticao ident, adicione entradas ao ficheiro /etc/postgresql/7.4/main/pg_ident.conf. Para activar ligaes TCP/IP, edite o ficheiro /etc/postgresql/7.4/main/postgresql.conf Localize a linha #tcpip_socket = false e altere-a para tcpip_socket = true. Pode tambm editar outros parmetros, se sabe exactamente aquilo que est a fazer! Para detalhes, consulte o ficheiro de configurao ou a documentao do PostgreSQL. Por omisso, as credenciais de utilizador no so definidas para autenticao de clientes MD5. Assim, necessrio em primeiro lugar configurar o servidor PostgreSQL para usar autenticao de clientes trust, ligar-se base de dados, configurar a palavra passe, e reverter a configurao de volta para autenticao de clientes MD5. Para activar autenticao de clientes trust, edite o ficheiro
/etc/postgresql/7.4/main/pg_hba.conf

Retire o comentrio de todas as linhas existentes que usam autenticao de clientes ident e MD5 e adicione a linha seguinte: 69

Rede

local all postgres trust sameuser

Em seguida, execute o comando seguinte para iniciar o servidor PostgreSQL:

sudo /etc/init.d/postgresql start

Uma vez que o servidor PostgreSQL tenha iniciado com sucesso, execute o comando seguinte num terminal para se ligar base de dados modelo por defeito do PostgreSQL

psql -U postgres -d template1

O comando acima liga-se ao template1 da base de dados PostgreSQL como utilizador postgres. Uma vez que se ligue ao servidor PostgreSQL, vai estar numa linha de comando do SQL. Pode executar o seguinte comando SQL na linha de comando psql para configurar a palavra passe do utilizador postgres.

template1=# ALTER USER postgres with encrypted password 'a_sua_palavra_passe';

Depois de configurar a senha, edite o ficheiro /etc/postgresql/7.4/main/pg_hba.conf para usar autenticao MD5: Comente (#) a linha recm adicionada trust e adicione a seguinte:

local all postgres md5 sameuser

A configurao acima no deve ser entendida de forma alguma como completa. Consulte O Guia do Administrador PostgreSQL [http://www.postgresql.org/docs/8.1/static/admin.html] para configurar mais parametros.

70

Rede

15. Servios de Correio Electrnico


O processo de obteno de uma mensagem de coreeio electrnico de uma pessoa para outra atravs de uma rede ou da internet envolve muitos sistemas a trabalhar em conjunto. Cada um destes sistemas tem de estar correctamente configurado para que o processo funcione. O remetente utiliza um Agente de Utilizador de Correio Mail User Agent (MUA), ou cliente de email, para enviar a mensagem atravs de um ou mais Agente de Transferncia de Correio Mail Transfer Agent (MTA), o ltimo dos quais a vai entregar a um Agente de Entrega de Correio Mail Delivery Agent (MDA) para entrega nas caixas de correio de destino, das quais ser obtida pelos clientes de email dessas caixas, normalmente via um servidor POP3 ou IMAP.

15.1. Postfix
O Postfix o Agente de Transporte de Correio (MTA) pr-definido no Ubuntu. Este tenta ser rpido e fcil de administrar e seguro. compativel com o MTA sendmail. Esta seco explica como instalar e configurar o postfix. Tambm explica como configur-lo como servidor SMTP utilizando uma ligao segura (para envio de email de forma segura). 15.1.1. Instalao Para instalar postfix com SMTP-AUTH e Transport Layer Security (TLS), execute o comando seguinte:

sudo apt-get install postfix

Pressione enter quando o processo de instalao lhe colocar questes, a configurao ser feita com mais detalhe posteriormente. 15.1.2. Configurao Bsica Para configurar o postfix, execute o seguinte comando:

sudo dpkg-reconfigure postfix

A interface do utilizador ser mostrada. Em cada ecr, seleccione os valores seguintes: Ok Internet Site NONE mail.example.com mail.example.com, localhost.localdomain, localhost No 127.0.0.0/8 Yes 0 + 71

Rede all Substitua mail.example.com com o nome do seu servidor de correio electrnico.

15.1.3. Autenticao SMTP Os passos seguintes so para configurar o postfix para utilizar o SASL para SMTP AUTH. Em vez de editar o ficheiro de configurao directamente, pode utilizar o comando postconf para configurar todos os parmetros do postfix. Os parmetros de configurao sero armazenados no ficheiro /etc/postfix/main.cf. Mais tarde, se desejar reconfigurar um parmetro em particular, pode executar o comando ou alter-lo manualmente o ficheiro. 1. Configure Postfix to do SMTP AUTH using SASL (saslauthd):

postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes'

postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_ postconf -e 'inet_interfaces = all'

Open the /etc/postfix/sasl/smtpd.conf file and add the following lines to end of the file:

pwcheck_method: saslauthd mech_list: plain login

2.

Next, configure the digital certificate for TLS. When asked questions, follow the instructions and answer appropriately.

openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/

Pode obter o certificado digital de uma autoridade certificada. Alternativamente, pode voc mesmo gerar o certificado. Consulte Seco 10.3.4, Criar um Certificado Auto Assinado [55] para mais detalhes. 3. Configurar Postfix para efectuar encriptao TSL para correio electrnico de entrada e de sada:

postconf -e 'smtpd_tls_auth_only = no'

72

Rede
postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtp_tls_note_starttls_offer = yes' postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' postconf -e 'smtpd_tls_loglevel = 1' postconf -e 'smtpd_tls_received_header = yes' postconf -e 'smtpd_tls_session_cache_timeout = 3600s' postconf -e 'tls_random_source = dev:/dev/urandom' postconf -e 'myhostname = mail.example.com'

Aps ter executado todos os comandos, o SMTP AUTH est configurado no postfix. O certificado auto-assinado criado para TLS e configurado no postfix. Agora, o ficheiro /etc/postfix/main.cf dever ser semelhante a este [../sample/postfix_configuration]. A configurao inicial do postfix est completa. Execute o comando seguinte para iniciar o controlador postfix:
sudo /etc/init.d/postfix start

Agora o controlador postfix est instalado, configurado e executado com sucesso. Postfix suporta SMTP AUTH como definido em RFC2554 [ftp://ftp.isi.edu/in-notes/rfc2554.txt]. baseado em SASL [ftp://ftp.isi.edu/in-notes/rfc2222.txt]. Contudo ainda necessrio configurar autenticao SASL antes de poder utilizar SMTP. 15.1.4. Configurar SASL The libsasl2, sasl2-bin and libsasl2-modules are necessary to enable SMTP AUTH using SASL. You can install these applications if you have not installed them already.
sudo apt-get install libsasl2 sasl2-bin

So necessrias algumas alteraes para funcionar devidamente. Porque o Postfix executado chrooted em /var/spool/postfix, SASL necessita de ser configurado para correr no root falso (/var/run/saslauthd torna-se /var/spool/postfix/var/run/saslauthd):
mkdir -p /var/spool/postfix/var/run/saslauthd rm -rf /var/run/saslauthd

Para activar saslauthd, edite o ficheiro /etc/default/saslauthd, e altere ou adicione a varivel START. De forma a configurar saslauthd para correr em root falso, adicione as variveis PWDIR, PIDFILE e PARAMS. Finalmente, configure a varivel MECHANISMS conforme pretender. O ficheiro dever parecer-se com:
# Isto necessita reconfigurado antes que o saslauthd funcione # automaticamente

73

Rede
START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # Necessita especificar o mecanismo de autenticao que deseja utilizar # O pr-definido o "pam" para suportar o PAM, mas tambm pode incluir # "shadow" ou "sasldb", assim: # MECHANISMS="pam shadow" MECHANISMS="pam"

Se preferir, pode usar shadow em vez de pam. Isto usar a transferncia de senha MD5 hashed e perfeitamente segura. O nome de utilizador e senha que precisam de autenticao sero os mesmos que os utilizadores do sistema onde executa o servidor. Em seguida, actualize o estado dpkg de /var/spool/portfix/var/run/saslauthd. O script de inicializao saslauthd usa esta definio para criar o directrio em falta com as permisses e proprietrio adequados.

dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

15.1.5. Testar A configurao de SMTP AUTH est completa. Agora est na hora de iniciar e testar a configurao. Pode executar o seguinte comando para iniciar o servio SASL:
sudo /etc/init.d/saslauthd start

Para verificar se o SMTP-AUTH e o TLS trabalham correctamente, execute o comando seguinte:


telnet mail.example.com 25

Aps ter estabelecido a ligao ao servidor de correio postfix, escreva:


ehlo mail.example.com

Se obtiver as linhas seguintes entre outras, ento tudo estar a funcionar perfeitamente. Escreva quit para sair.

250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME

15.2. Exim4
Exim4 is another Message Transfer Agent (MTA) developed at the University of Cambridge for use on Unix systems connected to the internet. Exim can be installed in place of sendmail, although the configuration of exim is quite different to that of sendmail. 74

Rede 15.2.1. Instalao Para instalar o exim4, execute o seguinte comando:

sudo apt-get install exim4 exim4-base exim4-config

15.2.2. Configurao Para configurar o exim4, execute o comando seguinte:

sudo dpkg-reconfigure exim4-config

A interface de utilizador ser apresentada. A interface do utilizador permite-lhe configurar muitos parmetros. Por exemplo, no exim4 os ficheiros de configurao so divididos entre ficheiros mltiplos. Se desejar ter esses ficheiros num s ficheiro pode configurar essa forma na interface de utilizador. All the parameters you configure in the user interface are stored in /etc/exim4/update-exim4.conf.conf file. If you wish to re-configure, either you re-run the configuration wizard or manually edit this file using your favourite editor. Once you configure, you can run the following command to generate the master configuration file:

sudo update-exim4.conf

The master configuration file, is generated and it is stored in /var/lib/exim4/config.autogenerated. Em momento algum, deve editar o ficheiro de configurao principal, /var/lib/exim4/config.autogenerated manualmente. Este actualizado automaticamente sempre que executar o comando update-exim4.conf You can run the following command to start exim4 daemon.

sudo /etc/init.d/exim4 start

TODO: This section should cover configuring SMTP AUTH with exim4.

15.3. Servidor Dovecot


Dovecot um Agente de Entrega de Correio Electrnico, escrito principalmente com a preocupao da segurana em mente. Suporta os principais formatos de caixas de correio: mbox ou Maildir. Esta seco exemplifica como configur-lo como servidor imap ou pop3. 15.3.1. Instalao Para instalar dovecot, execute o comando seguinte numa linha de comandos: 75

Rede

sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d

15.3.2. Configurao Para configurar dovecot, edite o ficheiro /etc/dovecot/dovecot.conf. Pode escolher o protocolo a utilizar. Nomeadamente, pop3, pop3s (pop3 seguro), imap e imaps (imap seguro). Uma descrio destes protocolos est para alm dos objectivos deste guia. Para mais informao, consulte os artigos wikipedia em POP3 [http://en.wikipedia.org/wiki/POP3] e IMAP [http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol]. IMAPS and POP3S are more secure that the simple IMAP and POP3 because they use SSL encryption to connect. Once you have chosen the protocol, amend the following line in the file /etc/dovecot/dovecot.conf:

protocols = pop3 pop3s imap imaps

It enables the protocols when dovecot is started. Next, add the following line in the pop3 section of the file /etc/dovecot/dovecot.conf:

pop3_uidl_format = %08Xu%08Xv

Next, choose the mailbox you use. Dovecot supports maildir and mbox formats. These are the most commonly used mailbox formats. They both have their own benefits and they are discussed on the dovecot website [http://dovecot.org/doc/configuration.txt]. Uma vez escolhido o tipo de caixa de correio, edite o ficheiro /etc/dovecot/dovecot.conf e altere a linha seguinte:

default_mail_env = maildir:~/Maildir # (para o maildir) or default_mail_env = mbox:~/mail:INBOX=/var/spool/mail/%u # (para mbox)

You should configure your Mail Transport Agent (MTA) to transfer the incoming mail to this type of mailbox if it is different from the one you have configured. Once you have configured dovecot, start the dovecot daemon in order to test your setup:
sudo /etc/init.d/dovecot start

If you have enabled imap, or pop3, you can also try to log in with the commands telnet localhost pop3 or telnet localhost imap2. If you see something like the following, the installation has been successful:

bhuvan@rainbow:~$ telnet localhost pop3 Trying 127.0.0.1...

76

Rede
Connected to localhost.localdomain. Escape character is '^]'. +OK Dovecot ready.

15.3.3. Configurao SSL do Dovecot Para configurar o dovecot para utilizar SSL, pode editar o ficheiro /etc/dovecot/dovecot.conf e corrija as seguintes linhas:

ssl_cert_file = /etc/ssl/certs/dovecot.pem ssl_key_file = /etc/ssl/private/dovecot.pem ssl_disable = no disable_plaintext_auth = no

Os ficheiros cert e key so gerados automaticamente pelo dovecot quando o instala. Por favor note que estas chaves no so assinadas e daro erros "bad signature" quando se ligar de um cliente. Para evitar isso, pode utilizar certificados comerciais, ou ainda melhor, pode utilizar os seus prprios certificados SSL. 15.3.4. Configurao da Firewall para um Servidor de Email Para aceder ao seu servidor de correio electrnico a partir de outro computador, deve configurar a sua firewall para permitir ligaes ao servidor nos portos necessrios. IMAP - 143 IMAPS - 993 POP3 - 110 POP3S - 995

15.4. Mailman
Mailman um programa de cdigo fonte aberto para gerir discusses de correio electrnico e listas de notcias. Muitas listas de correio electrnico de software livre usam como software principal o Mailman (inclundo as listas de correio electrnico do Ubuntu [http://lists.ubuntu.com].) poderoso e fcil de instalar e manter. 15.4.1. Instalao Mailman fornece um interface web para administradores e utilizadores. Por isso, requer apache com suporte mod_perl. Mailman usa um servidor de correio electrnico externo para enviar e receber correio electrnico. Funciona perfeitamente com os servidores de email seguintes: Postfix Exim Sendmail Qmail 77

Rede Veremos como instalar mailman, o servidor web apache e o servidor de email Exim. Se deseja instalar mailman com um servidor de email diferente, consulte a seco de referncias. 15.4.1.1. Apache2 Para instalar apache2 consulte Seco 10.1, Instalao [47]. 15.4.1.2. Exim4 To install Exim4 you run the following commands at a terminal prompt:

sudo apt-get install exim4 sudo apt-get install exim4-base sudo apt-get install exim4-config

Once exim4 is installed, the configuration files are stored in the /etc/exim4 directory. In Ubuntu, by default, the exim4 configuration files are split across different files. You can change this behavior by changing the following variable in the /etc/exim4/update-exim4.conf file: dc_use_split_config='true' 15.4.1.3. Mailman Para instalar Mailman, execute o comando seguinte num terminal:

sudo apt-get install mailman

Copia os ficheiros de instalao no directrio /var/lib/mailman. Instala os scripts CGI no directrio /usr/lib/cgi-bin/mailman. Cria o utilizador linux list. Cria o grupo linux list. Este utilizador ser o proprietrio do processo mailman. 15.4.2. Configurao Esta seco assume que instalou com sucesso mailman, apache2, e exim4. Agora apenas precisa de os configurar. 15.4.2.1. Apache2 Uma vez instalado o apache2, pode adicionar as linhas seguintes no ficheiro /etc/apache2/apache2.conf:

Alias /images/mailman/ "/usr/share/images/mailman/" Alias /pipermail/ "/var/lib/mailman/archives/public/"

O Mailman utiliza o apache2 para executar os seus scripts CGI. Os scripts CGI do mailman so instalados no directrio /usr/lib/cgi-bin/mailman. Assim, o url do mailman ser http://hostname/cgi-bin/mailman/. Pode fazer alteraes ao ficheiro /etc/apache2/apache2.conf se desejar alterar este comportamento. 78

Rede 15.4.2.2. Exim4 Uma vez instalado o Exim4, pode iniciar o servidor Exim utilizando o seguinte comando num terminal:

sudo apt-get /etc/init.d/exim4 start

Por forma a fazer o mailman utilizar o exim4, precisa de configurar o exim4. Como mencionado anteriormente, por omisso, o exim4 utiliza ficheiros de configurao mltiplos e de tipos diferentes. Para detalhes, consulte a pgina Exim [http://www.exim.org]. Para executar o mailman, devemos adicionar um novo ficheiro de configurao aos seguintes tipos de configurao: Principal Transporte Encaminhador (Router) O Exim gera o ficheiro de configurao principal ordenando todos estes mini-ficheiros de configurao. Assim, a ordem destes ficheiros de configurao bastante importante. 15.4.2.3. Principal Todos os ficheiros de configurao pertencentes ao tipo main so guardados no directrio /etc/exim4/conf.d/main/. Pode adicionar o contedo seguinte ao novo ficheiro, denominado 04_exim4-config_mailman:

# inicio # directrio Home para a sua instalao do Mailman -- tambm referido # como prefixo do directrio do Mailman # No Ubuntu dever ser "/var/lib/mailman" # Normalmente tem o mesmo significado que ~mailman MM_HOME=/var/lib/mailman # # Utilizador e Grupo para o Mailman, devem coincidir com a # opo --with-mail-gid do script de configurao do Mailman. # O valor normalmente "mailman" MM_UID=list MM_GID=list # # Os domnios a listar esto numa - lista separada por vrgulas # deve querer adiciona-los tambm ao local_domains tambm domainlist mm_domains=hostname.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# # # Estes valores derivam daqueles acima e no devem necessitar # de ser editados a no ser que tenha alterado a dua instalao mailman # # Caminho do script mscara do correio Mailman MM_WRAP=MM_HOME/mail/mailman # # Caminho do ficheiro da lista de configurao (utilizado como ficheiro

79

Rede
# necessrio quando so verificadas moradas de listas) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck # fim

15.4.2.4. Transporte Todos os ficheiros de configurao pertencentes ao tipo de transporte so guardados no directrio /etc/exim4/conf.d/transport/. Pode adicionar o contedo seguinte a um novo ficheiro chamado 40_exim4-config_mailman:

mailman_transport: driver = pipe command = MM_WRAP \ '${if def:local_part_suffix \ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ {post}}' \ $local_part current_directory = MM_HOME home_directory = MM_HOME user = MM_UID group = MM_GID

15.4.2.5. Encaminhador (Router) Todos os ficheiros de configurao pertencentes ao tipo encaminhador so guardados no directrio /etc/exim4/conf.d/router/. Pode adicionar o contedo seguinte a ficheiro novo chamado 101_exim4-config_mailman:

mailman_router: driver = accept require_files = MM_HOME/lists/$local_part/config.pck local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -owner : -request : -admin transport = mailman_transport

Os ficheiros de configurao principal e de transporte podem estar em qualquer ordem. Mas, a ordem dos ficheiros de configurao do encaminhador (router) deve ser a mesma. Este ficheiro em particular deve aparecer antes do ficheiro 200_exim4-config_primary. Estes dois ficheiros de configurao contem o mesmo tipo de informao. O primeiro ficheiro tem a precedncia. Para mais detalhes, consulte as seces de referncia por favor. 15.4.2.6. Mailman Once mailman is installed, you can run it using the following command:

sudo /etc/init.d/mailman start

80

Rede Once mailman is installed, you should create the default mailing list. Run the following command to create the mailing list:

sudo /usr/sbin/newlist mailman

Inroduza o endereo de correio electrnico da pessoa que gere a lista: bhuvan at ubuntu.com Palavra passe inicial do mailman: Para terminar a sua lista de correio electrnico, deve editar o seu ficheiro (ou equivalente) adicionando as seguintes linhas, e posivelmente executar o programa `newaliases': ## mailman lista de correio mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" Pressione enter para notificar o proprietrio do mailman ... #
/etc/aliases

We have configured exim to recognize all emails from mailman. So, it is not mandatory to make any new entries in /etc/aliases. If you have made any changes to the configuration files, please ensure that you restart those services before continuing to next section. 15.4.3. Administrao We assume you have a default installation. The mailman cgi scripts are still in the /usr/lib/cgi-bin/mailman/ directory. Mailman provides a web based administration facility. To access this page, point your browser to the following url: http://hostname/cgi-bin/mailman/admin The default mailing list, mailman, will appear in this screen. If you click the mailing list name, it will ask for your authentication password. If you enter the correct password, you will be able to change administrative settings of this mailing list. You can create a new mailing list using the command line utility (/usr/sbin/newlist). Alternatively, you can create a new mailing list using the web interface. 15.4.4. Utilizadores O Mailman providencia uma interface baseada na web para os utilizadores. Para aceder a esta pgina, aponte o seu navegador para o seguinte url: 81

Rede http://nomedoanfitriao/cgi-bin/mailman/listinfo A lista de correio electrnico pr-definida, mailman, aparecer neste ecr. Se clicar no nome da lista, ser-lhe- apresentado um formulrio de subscrio. Pode preencher o seu endereo de correio electrnicp, nome (opcional), e senha de subscrio. Ser-lhe- enviado um convite via correio electrnico. Pode seguir as instrues dessa mensagem para subscrever a lista. 15.4.5. Referncias GNU Mailman - Manual de Instalao [http://www.list.org/mailman-install/index.html] COMO FAZER - Utilizar o Exim 4 e o Mailman 2.1 em conjunto [http://www.exim.org/howto/mailman21.html]

82

Rede

16. Time Synchronisation with NTP


This page describes methods for keeping your computer's time accurate. This is useful for servers, but is not necessary (or desirable) for desktop machines. NTP is a TCP/IP protocol for synchronising time over a network. Basically a client requests the current time from a server, and uses it to set its own clock. Behind this simple description, there is a lot of complexity - there are tiers of NTP servers, with the tier one NTP servers connected to atomic clocks (often via GPS), and tier two and three servers spreading the load of actually handling requests across the internet. Also the client software is a lot more complex than you might think - it has to factor out communication delays, and adjust the time in a way that does not upset all the other processes that run on the server. But luckily all that complexity is hidden from you! Ubuntu has two ways of automatically setting your time: ntpdate and ntpd.

16.1. ntpdate
Ubuntu comes with ntpdate as standard, and will run it once at boot time to set up your time according to Ubuntu's NTP server. However, a server's clock is likely to drift considerably between reboots, so it makes sense to correct the time ocassionally. The easiest way to do this is to get cron to run it every day. With your favourite editor, create a file /etc/cron.daily/ntpdate containing:
ntpdate ntp.ubuntu.com

16.2. ntpd
ntpdate is a bit of a blunt instrument - it can only adjust the time once a day, in one big correction. The ntp daemon ntpd is far more subtle. It calculates the drift of your system clock and continuously adjusts it, so there are no large corrections that could lead to inconsistent logs for instance. The cost is a little processing power and memory, but for a modern server this is negligible. To set up ntpd:
sudo apt-get install ntp-simple

16.3. Changing Time Servers


In both cases above, your system will use Ubuntu's NTP server at ntp.ubuntu.com by default. This is OK, but you might want to use several servers to increase accuracy and resilience, and you may want to use time servers that are geographically closer to you. to do this for ntpdate, change the contents of /etc/cron.daily/ntpdate to:
ntpdate ntp.ubuntu.com pool.ntp.org

83

Rede And for ntpd edit /etc/ntp.conf to include additional server lines:
ntp.ubuntu.com server pool.ntp.org

You may notice pool.ntp.org in the examples above. This is a really good idea which uses round-robin DNS to return an NTP server from a pool, spreading the load between several different servers. Even better, they have pools for different regions - for instance, if you are in New Zealand, so you could use nz.pool.ntp.org instead of pool.ntp.org . Look at http://www.pool.ntp.org/ for more details. You can also Google for NTP servers in your region, and add these to your configuration. To test that a server works, just type sudo ntpdate ntp.server.name and see what happens.

16.4. Related Pages


NTP Support [http://ntp.isc.org/bin/view/Support/WebHome] The NTP FAQ and HOWTO [http://www.ntp.org/ntpfaq/NTP-a-faq.htm]

84

Captulo 5. Redes Windows


As redes de computadores so frequentemente compostas por sistemas diversos e, enquanto trabalhar numa rede composta apenas por computadores e servidores Ubuntu seria certamente divertido, alguns ambientes de rede so constituidos por sistemas Ubuntu e Microsoft Windows trabalhando em conjunto em harmonia. Esta seco do Ubuntu Server Guide introduz os princpios e ferramentas usados na configurao do seu Servidor Ubuntu para partilhar recursos de rede com computadores Windows.

85

Redes Windows

1. Introduo
Ligar em rede o seu sistema Ubuntu a clientes Windows com sucesso envolve providenciar e integrar com servios comuns aos ambientes Windows. Tais servios assistem na partilha de dados e informao acerca dos computadores e utilizadores envolvidos na rede, e podem ser classificados em trs principais categorias de funcionalidade: Servios de Partilha de Ficheiros e Impressoras . Usando o protocolo Server Message Block (SMB) para facilitar a partilha de ficheiros, pastas, volumes e a partilha de impressoras pela rede. Servios de Directrio. Partilha informao vital acerca dos computadores e utilizadores da rede com tecnologias tais como Lightweight Directory Access Protocol (LDAP) e Microsoft Active Directory. Acesso e Autenticao. Estabelecendo a identidade de um computador ou utilizador da rede e determinando a informao do computador ou utilizador autorizado a aceder usando princpios e tecnologias tais como permisses de ficheiros, polticas de grupo, e o servio de autenticao Kerberos. Fortunately, your Ubuntu system may provide all such facilities to Windows clients and share network resources among them. One of the principle pieces of software your Ubuntu system includes for Windows networking is the SAMBA suite of SMB server applications and tools. This section of the Ubuntu Server Guide will briefly introduce the installation and limited configuration of the SAMBA suite of server applications and utilities. Additional, detailed documentation and information on SAMBA is beyond the scope of this documentation, but exists on the SAMBA website [http://www.samba.org].

86

Redes Windows

2. Instalar o SAMBA
Na linha de comandos prompt introduza o comando seguinte para instalar as aplicaes do servidor SAMBA:

sudo apt-get install samba

87

Redes Windows

3. Configurar o SAMBA
Pode configurar o servidor SAMBA editando o ficheiro /etc/samba/smb.conf para alterar as definies padro ou adicionar novas definies. Informao extra sobre cada definio est disponvel nos comentrios do ficheiro /etc/samba/smb.conf ou vendo o manual do /etc/samba/smb.conf a partir da linha de comandos prompt com o seguinte comando escrito no terminal:

man smb.conf

Antes de editar o ficheiro de configurao, deve criar uma cpia do ficheiro original e proteg-lo de escrita de modo a ter as definies originais como referncia e reus-las se necessrio. Cria cpia de segurana do ficheiro /etc/samba/smb.conf:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

Agora, edite o ficheiro /etc/samba/smb.conf e faa as suas alteraes.

3.1. Servidor
Para alm do pacote SAMBA para partilha de ficheiros e impressoras no servidor, Ubuntu tambm inclui outras potentes aplicaes de servidor desenhadas para fornecer funcionalidades adicionais para clientes Windows, semelhantes s funcionalidades actualmente disponibilizadas pelos servidores Windows. Por exemplo: Ubuntu oferece gesto centralizada de recursos de rede, tais como computadores e utilizadores atravs de Servios de Directrio, e facilita a identificao e autorizao de computadores e utilizadores atravs de Servios de Autenticao. As seces seguintes discutem com mais detalhe o SAMBA e as tecnologias de suporte, tais como o servidor Lightweight Directory Access Protocol (LDAP), e o servidor de autenticao Kerberos. Tambm conhecer algumas directivas disponveis no ficheiros de configurao do SAMBA que facilitam a integrao com clientes e servidores Windows. 3.1.1. Directrio Activo Active Directory (Directrio Activo) uma implementao proprietria da Microsoft dos Servios de Directrio, e utilizada para fornecer meios de partilhar informao acerca dos recursos e utilizadores de rede. Para alm de fornecer uma fonte centralizada destas informaes, Active Directory tambm funciona como central de autenticao e segurana para a rede. Active Directory combina funcionalidades tradicionalmente separadas em sistemas de directrio especializados, para simplificar a integrao, gesto e segurana dos recursos da rede. O pacote SAMBA pode ser configurado para utilizar os servios de Active Directory de um Controlador de Domnio Windows. 88

Redes Windows 3.1.1.1. LDAP A aplicao de servidor LDAP oferece funcionalidades de Servios de Directrio a computadores Windows de forma muito semelhante aos servios Active Directory da Microsoft. Tais servios incluem a gesto de identidades e relao de computadores, utilizadores e grupos de computadores ou utilizadores que fazem parte da rede, e fornece uma forma consistente para descrever, localizar e gerir esses recursos. A implementao gratuita do LDAP disponvel para o seu sistema Ubuntu chama-se OpenLDAP. Os processos do servidor responsveis por manipular os pedidos OpenLDAP de directrios e de propagao dos dados de directrios de um servidor LDAP para outro em Ubuntu so, slapd e slurpd. OpenLDAP pode ser utilizado em conjunto com o SAMBA para fornecer servios de Ficheiros, Impresso e de Directrios da mesma forma que um Controlador de Domnios Windows, desde que o SAMBA seja compilado com suporte LDAP. 3.1.1.2. Kerberos O sistema de autenticao segura Kerberos um servio padro para fornecer autenticao a computadores e utilizadores atravs de um servidor central que garante, senhas de autorizao codificadas aceites por qualquer outros computador que utilize o Kerberos. As vantagens do Kerberos incluem autenticao mtua, autenticao por delegao, interoperabilidade e gesto simplificada de domnios de confiana. Os processos do servidor principal para gesto da autenticao Kerberos, e da administrao da base de dados do Kerberos no Ubuntu so krb5kdc e kadmin. O SAMBA pode utilizar o Kerberos como mecanismo de autenticao de computadores e utilizadores num Controlador de Domnio Windows. Para isso o Ubuntu deve ter o Kerberos instalado e o ficheiro /etc/samba/smb.conf deve ser modificado para seleccionar o modo adequado de realm e security. Por exemplo: edite o ficheiro /etc/samba/smb.conf e acrescente os valores: realm = NOME_DOMNIO security = ADS para o ficheiro, e grave o ficheiro. Assegure-se de que substitui NOME_DOMNIO no exemplo acima pelo nome real do seu Domnio Windows especfico. Deve reiniciar os servios SAMBA para as alteraes terem efeito. Reinicie os servios SAMBA com o seguinte comando escrito no terminal:

sudo /etc/init.d/samba restart

3.1.2. Contas de Computador Contas de Computador so usadas nos Servios de Directrio para a identificao nica de sistemas de computador participando em rede, e so mesmo tratadas da mesma maneira que utilizadores em termos de segurana. Contas de Computador podem ter palavras passe tal como tm as contas 89

Redes Windows de utilizador, e so sujeitas a autorizao a recursos de rede na mesma maneira que as contas de utilizador. Por exemplo, se um utilizador de rede, com uma conta vlida para uma rede especfica se tentar autenticar com um recurso de rede de um computador que no possui conta de computador vlida, dependendo de polticas impostas na rede, pode ser negado ao utilizador acesso ao recurso se o computador a partir do qual o utilizador se tenta autenticar considerado um computador no autorizado. Uma conta para um computador pode ser adicionado ao ficheiro de palavras passe do SAMBA desde que o computador j exista como um utilizador vlido na base de dados local de palavras passe. Para adicionar um computador ou mquina ao ficheiro de palavras passe do SAMBA utilize o comando smbpasswd na linha de comandos, com a sintaxe seguinte:

sudo smbpasswd -a -m NOME_COMPUTADOR

Tenha em conta que deve substituir o NOME_DE_COMPUTADOR no exemplo acima com o verdadeiro nome do computador especfico para o qual deseja adicionar uma conta de mquina. 3.1.3. Permisses de Ficheiros Permisses de Ficheiros definem explicitamente os privilgios que um computador ou utilizador tm para um directrio, ficheiro ou conjunto de ficheiros. Tais privilgios podem ser definidos editando o ficheiro /etc/samba/smb.conf e indicando explicitamente as permisses de uma partilha. Por exemplo, se tiver definida uma partilha chamada sourcedocs e pretende dar permisses "s de leitura" read-only ao grupo de utilizadores definido como planning, mas pretende atribuir privilgios de escrita ao grupo de utilizadores authors e ao utilizador richard, ento pode editar o ficheiro /etc/samba/smb.conf e acrescentar as seguintes linhas dentro da seco [sourcedocs] : read list = @planning write list = @authors, richard Grave o /etc/samba/smb.conf para as alteraes terem efeito. Outro privilgio possvel declarar permisses administrativas administrative para uma partilha em particular. Os utilizadores com permisses administrativas podem ler, escrever ou modificar qualquer informao dentro do recurso para o qual o utilizador deu explicitamente permisses administrativas. Por exemplo, se quiser dar ao utilizador melissa permisses administrativas para a partilha sourcedocs, edite o ficheiro /etc/samba/smb.conf e adicione a seguinte linha dentro da seco [sourcedocs] : admin users = melissa Grave o /etc/samba/smb.conf para as alteraes terem efeito. 90

Redes Windows

3.2. Clientes
O Ubuntu inclui aplicaes cliente e capacidades para aceder a recursos de rede partilhados com o protocolo SMB. Por exemplo, o utilitrio smbclient permite o acesso remoto a sistemas de ficheiros partilhados, de forma semelhante a uma aplicao cliente de FTP File Transfer Protocol. Para aceder a uma pasta partilhada designada documents oferecida por uma mquina remota Windows com o nome bill, utilizando o smbclient, poderia-se introduzir por exemplo, um comando similar ao seguinte na linha de comandos:

smbclient //bill/documents -U <utilizador>

Ser-lhe- pedida a palavra passe do utilizador cujo nome foi indicado aps o parmetro -U , e aps autenticao vlida, aparecer uma linha de comandos onde pode digitar comandos para manipulao e transferncia de ficheiros utilizando uma sintaxe semelhante utilizada por clientes de FTP em modo de texto. Para mais informao acerca do utilitrio smbclient leia a pgina do respectivo manual com o comando:

man smbclient

A montagem local de um recurso remoto utilizando o protocolo SMB tambm possvel utilizando o comando mount. Por exemplo, para montar uma pasta partilhada com o nome project-code num servidor Windows chamado development como o utilizador dlightman no ponto de montagem local da mquina Ubuntu /mnt/pcode, deve utilizar o seguinte comando na linha de comandos:

mount -t smbfs -o username=dlightman //cevelopment/project-code /mnt/pcode

Ser-lhe- pedida a palavra passe, e aps autenticao validada os contedos do recurso partilhado estaro disponveis atravs do ponto de montagem especificado como ltimo argumento do comando mount. Para desligar o recurso partilhado, utilize o comando umount como com qualquer outro sistema de ficheiros montado. Por exemplo:

umount /mnt/pcode

3.2.1. Contas de Utilizadores Contas de Utilizador definem pessoas com algum tipo de permisses para utilizarem determinadps computadores e recursos de rede. Tipicamente, num ambiente de rede, fornecida a cada pessoa uma conta com a qual pode aceder a um computador ou rede, onde polticas e permisses definem quais os privilgios especficos desse utilizador. Para definir utilizadores de rede SAMBA para o seu sistema Ubuntu pode utilizar o comando smbpasswd. Por exemplo, para adicionar um utilizador SAMBA ao seu sistema Ubuntu com o nome de utilizador jseinfeld, digite este comando na linha de comandos: 91

Redes Windows

smbpasswd -a jseinfeld

A aplicao smbpasswd ir ento pedir-lhe que introduza a palavra passe para o utilizador:
Nova palavra passe SMB:

Insira a palavra passe que deseja para este utilizador, e a aplicao smbpasswd ir pedir-lhe que confirme a palavra passe:
Insira novamente a nova palavra passe SMB:

Confirme a palavra passe e o smbpasswd adicionar a entrada do novo utilizador no ficheiro de palavras passe do SAMBA. 3.2.2. Grupos Os Grupos definem um conjunto de computadores ou de utilizadores com um nvel de acesso comum a um recurso particular da rede e oferece um nvel de granularidade no controlo de acesso a esses recursos. Por exemplo, se um grupo qa estiver definido e contiver os utilizadores freda, danika, e rob, e um segundo grupo support estiver definido e contiver os utilizadores danika, jeremy e vincent, ento alguns recursos de rede configurados para permitirem o acesso pelo grupo qa permitiro o acesso de freda, danika, e rob, mas no de jeremy ou vincent. Dado que a utilizadora danika pertence a ambos os grupos, qa e supportrole="italic">support Ao definir grupos no ficheiro de configurao do SAMBA /etc/samba/smb.conf a sintaxe reconhecida acrescentar o smbolo @ como prefixo ao nome do grupo. Por exemplo, se pretende definir um grupo chamado sysadmin numa determinada seco do ficheiro /etc/samba/smb.conf, f-lo- indicando nessa seco o grupo como @sysadmin . 3.2.3. Poltica de Grupo Poltica de Grupo define determinadas configuraes do SAMBA respeitantes ao Domnio ou Grupo de Trabalho ao qual o computador pertence, e outras configuraes globais do servidor SAMBA. Por exemplo, se o servidor SAMBA pertence a um Grupo de Trabalho de computadores em Windows chamado LEVELONE, o ficheiro /etc/samba/smb.conf pode ser editado e o valor seguinte alterado em conformidade: workgroup = LEVELONE Grave o ficheiros e reinicie os servios (daemons) do SAMBA para aplicar as alteraes. Outra configurao importante de poltica global inclui a server string que define o nome NETBIOS do servidor comunicado pelo seu sistema Ubuntu a outras mquinas da rede baseada em Windows. por este nome que o seu sistema Ubuntu ser reconhecido pelos clientes Windows e outros computadores capazes de pesquisar na rede utilizando o protocolo SMB. Adicionalmente, pode especificar o nome e a localizao do ficheiro de registos log do servidor SAMBA utilizando a directiva log file no ficheiro /etc/samba/smb.conf. 92

Redes Windows Algumas das directivas adicionais que comandam a poltica de grupo global incluem a especificao da natureza global de todos os recursos partilhados. Por exemplo, ao colocar determinadas directivas dentro da seco [global] no incio de ficheiro /etc/samba/smb.conf afectaro todos os recursos partilhados a no ser que uma directiva que se sobreponha seja colocada na seco de um recurso em particular. Pode especificar que todas as partilhas so pesquisveis por todos os clientes da rede colocando a directiva browseable, que aceita um valor Lgico, dentro da seco [global] no incio de /etc/samba/smb.conf. Isto , se editar o ficheiro e adicionar a linha: browseable = true dentro da seco [global] do ficheiro /etc/samba/smb.conf, todas as partilhas disponibilizadas pelo seu sistema Ubuntu atravs do SAMBA ficaro pesquisavis por todos os clientes autorizados, a no ser que uma partilha especfica contenha a directiva browseable = false que se sobrepe directiva global. Outros exemplos que funcionam de forma similar so as directivas public e writeable . A directiva public aceita um valor lgico e determina que um recurso partilhado em particular visvel para todos os clientes, autorizados ou no. A directiva writeable tambm aceita um valor lgico e define se um recurso partilhado em particular tem acesso de escrita para todo e qualquer cliente de rede.

93

Apndice A. Creative Commons by Attribution-ShareAlike 2.0


CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 1. Definitions. a. "Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. b. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License. c. "Licensor" means the individual or entity that offers the Work under the terms of this License. d. "Original Author" means the individual or entity who created the Work. e. "Work" means the copyrightable work of authorship offered under the terms of this License. f. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received

94

Creative Commons by Attribution-ShareAlike 2.0 express permission from the Licensor to exercise rights under this License despite a previous violation. g. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. 2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: a. to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works; b. to create and reproduce Derivative Works; c. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works; d. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works. e. For the avoidance of doubt, where the work is a musical composition: i. "Performance Royalties Under Blanket Licenses." Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work. ii. "Mechanical Rights and Statutory Royalties." Licensor waives the exclusive right to collect, whether individually or via a music rights society or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions). f. "Webcasting Rights and Statutory Royalties." For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions). The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved. 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: 95

Creative Commons by Attribution-ShareAlike 2.0 a. You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any reference to such Licensor or the Original Author, as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any reference to such Licensor or the Original Author, as requested. b. You may distribute, publicly display, publicly perform, or publicly digitally perform a Derivative Work only under the terms of this License, a later version of this License with the same License Elements as this License, or a Creative Commons iCommons license that contains the same License Elements as this License (e.g. Attribution-ShareAlike 2.0 Japan). You must include a copy of, or the Uniform Resource Identifier for, this License or other license specified in the previous sentence with every copy or phonorecord of each Derivative Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Derivative Works that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder, and You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Derivative Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Derivative Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Derivative Work itself to be made subject to the terms of this License. c. If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and give the Original Author credit reasonable to the medium or means You are utilizing by conveying the name (or pseudonym if applicable) of the Original Author if supplied; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case

96

Creative Commons by Attribution-ShareAlike 2.0 of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit. 5. Representations, Warranties and Disclaimer UNLESS OTHERWISE AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. Termination a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous a. Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. b. Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without 97

Creative Commons by Attribution-ShareAlike 2.0 further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, neither party will use the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. Creative Commons may be contacted at http://creativecommons.org/.

98

Apndice B. GNU Free Documentation License


Version 1.2, November 2002 Copyright 2000,2001,2002 Free Software Foundation, Inc. Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Version 1.2, November 2002

99

GNU Free Documentation License

1. PREAMBLE
The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

100

GNU Free Documentation License

2. APPLICABILITY AND DEFINITIONS


This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary 101

GNU Free Documentation License formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

102

GNU Free Documentation License

3. VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

103

GNU Free Documentation License

4. COPYING IN QUANTITY
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

104

GNU Free Documentation License

5. MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

GNU FDL Modification Conditions


A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. 105

GNU Free Documentation License L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M.Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

106

GNU Free Documentation License

6. COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".

107

GNU Free Documentation License

7. COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

108

GNU Free Documentation License

8. AGGREGATION WITH INDEPENDENT WORKS


A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

109

GNU Free Documentation License

9. TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

110

GNU Free Documentation License

10. TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

111

GNU Free Documentation License

11. FUTURE REVISIONS OF THIS LICENSE


The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.

112

GNU Free Documentation License

12. ADDENDUM: How to use this License for your documents


To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

Sample Invariant Sections list


Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this:

Sample Invariant Sections list


with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

113