Sei sulla pagina 1di 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 para servidores no Ubuntu.

Crditos e Licena
Os seguintes autores da Equipe de Documentao do Ubuntu mantm este documento: Bhuvaneswaran Arumugam O Ubuntu Server Guide baseado tambm nas contribuies de: Robert Stoffers Brian Shumate Rocco Stanzione Este documento feito disponvel sob uma estratgia dupla de licena que inclue a Licena Livre de Documentao GNU (GFDL) e a Licena Criativa Comum ShareAlike 2.0 (CC-BY-SA). Voc est livre para modificar, ampliar, e melhorar o cdigo de fonte da documentao do Ubuntu sob os termos destas licenas. Todos os trabalhos derivados devem ser liberados sob qualquer uma ou ambos estas licenas. Esta documentao distribuda na esperana que ser til, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implicada de MERCABILIDADE do ou a APTIDO PARA UMA FINALIDADE PARTICULAR COMO DESCRITA NA NEGAO. As cpias destas licenas esto disponveis na seo de apndices deste livro. As 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 .............................................................................................................. 1. Conventions ........................................................................................................... 2. Contributing and Feedback ..................................................................................... 1. Introduo ...................................................................................................................... 2. Instalao ....................................................................................................................... 1. Preparando para instalar ......................................................................................... 2. Instalando pelo CD ................................................................................................ 3. Gerenciador de Pacotes .................................................................................................. 1. Introduo .............................................................................................................. 2. Apt-Get ................................................................................................................. 3. Aptitude ................................................................................................................. 4. Configurao .......................................................................................................... 5. Repositrios Extras ................................................................................................. 4. Rede .............................................................................................................................. 1. Configurao de Rede ............................................................................................ 2. TCP/IP .................................................................................................................. 3. Configurao do Firewall ....................................................................................... 4. Servidor OpenSSH ................................................................................................. 5. Servidor FTP ......................................................................................................... 6. Network File System (NFS) .................................................................................... 7. Dynamic Host Configuration Protocol (DHCP) ........................................................ 8. Domain Name Service (DNS) ................................................................................. 9. CUPS - Servidor de Impressora .............................................................................. 10. HTTPD - Servidor Web Apache2 .......................................................................... 11. PHP5 - Linguagem de Scripts ............................................................................... 12. Squid - Sevidor Proxy .......................................................................................... 13. Version Control System ........................................................................................ 14. Bancos de Dados .................................................................................................. 15. Servios de Email ................................................................................................ 16. Sincronizao de Horrio com NTP ....................................................................... 5. Redes Windows ............................................................................................................. 1. Introduo .............................................................................................................. 2. Instalando o SAMBA ............................................................................................. 3. Configurando o SAMBA ........................................................................................ A. Creative Commons by Attribution-ShareAlike 2.0 ........................................................... B. GNU Free Documentation License ................................................................................. 1. PREAMBLE .......................................................................................................... 2. APPLICABILITY AND DEFINITIONS .................................................................. 3. VERBATIM COPYING ......................................................................................... 4. COPYING IN QUANTITY .................................................................................... vi vii viii 9 10 11 13 14 15 16 18 20 21 22 23 26 30 32 35 37 39 42 44 47 57 59 61 68 71 83 85 86 87 88 94 99 100 101 103 104

iii

Ubuntu Server Guide 5. MODIFICATIONS ................................................................................................. 6. COMBINING DOCUMENTS ................................................................................. 7. COLLECTIONS OF DOCUMENTS ....................................................................... 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 ................................... 105 107 108 109 110 111 112 113

iv

Lista de Tabelas
2.1. Requerimentos 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
Bem-vindo ao Ubuntu Server Guide! O Ubuntu Server Guide contm informaes sobre como instalar e configurar vrias aplicaes em seu sistema Ubuntu para atender as suas necessidades. um passo-a-passo, orientado s tarefas para configurar e personalizar seu sistema. Este manual discute muitos tpicos intermedirios tais como os seguintes: Configurao de Rede Configurao do Apache2 Bancos de Dados Redes Windows Este manual dividido nas seguintes categorias principais: Instalao Gerenciador de Pacotes Rede Redes Windows Este guia assume que voc possua uma compreenso bsica de seu sistema Ubuntu. Caso voc necessite de ajuda detalhada sobre a instalao do Ubuntu, consulte o Guia de Instalao do Ubuntu. As verses em HTML e PDF deste manual esto disponveis online no site de Documentao do Ubuntu [http://help.ubuntu.com]. Voc pode comprar este guia em formato de livro de nossa loja Lulu [http://www.lulu.com/ubuntu-doc]. Voc apenas pagar despesas de impresso e envio.

Captulo 2. Instalao
Este captulo fornece uma viso rpida sobre a instalao do Ubuntu 6.10 Server Edition. Para maiores detalhes, por favor veja o Guia de Instalao do Ubuntu.

10

Instalao

1. Preparando para instalar


Esta seo explica vrios aspectos a serem considerados antes de comear a instalao.

1.1. Requisitos de Sistema


O Ubuntu 6.10 Server Edition suporta as trs maiores arquiteturas: Intel x86, AMD64 e PowerPC. A tabela abaixo lista as especificaes de hardware recomendadas. Dependendo das suas necessidades, voc pode conseguir com menos do que isso. No entanto, a maioria dos usurios arriscam se frustrar caso ignorem essas sugestes.

Tabela 2.1. Requerimentos Mnimos Recomendados


Tipo de Instalao Servidor RAM 64 megabytes

Espao do Disc 500 megabytes

O perfil padro para o Ubuntu 6.10 Server Edition exibido abaixo. Mais uma vez, o tamanho da instalao depender em grande parte dos servios que voc instalar durante a configurao. Para a maioria dos administradores, os servios padro so apropriados para o uso geral do servidor. Servidor Este um perfil pequeno de servidor, que fornece uma base comum para todos os tipos de aplicaes para servidores. mnimo e projetado para ter os servios desejados adicionados no topo, tais como servios de arquivos/impresso, servios web, servios de e-mail, etc. Para tais servios bastaria ao menos 500MB de espao em disco, mas considere adicionar mais espao dependendo dos servios que voc gostaria de hospedar em seu servidor. Lembre-se que estes tamanhos no incluem todos os materiais restantes que devem geralmente ser encontrados, tais como arquivos de usurio, e-mail, logs, e dados. melhor ser sempre generoso ao considerar o espao para os seus prprios arquivos e dados.

1.2. Fazendo Backup


Antes de comear, certifique-se de fazer backup de cada arquivo que est agora em seu sistema. Se for a primeira vez que um sistema operacional no-nativo est sendo instalado em seu computador, ser bem provvel que voc necessite reparticionar seu disco para garantir espao ao Ubuntu. Sempre que voc vier a particionar seu disco, esteja preparado para perder tudo nele caso voc cometa um erro ou algo ocorra de errado durante o particionamento, tal como a falta de energia para o sistema. Os programas utilizados na instalao so consideravelmente de confiana, e a maioria tem sido utilizada h vrios anos, mas eles tambm executam aes destrutivas, e um erro na sua utilizao pode resultar na perda de seus valiosos dados. Se voc estiver criando um sistema multi-boot, certifique-se de que voc tenha em mos a mdia de distribuio de todos os outros sistemas operacionais sendo utilizados atualmente. Especialmente se voc reparticionar seu drive de boot, voc pode vir a descobrir que tem que reinstalar o carregador 11

Instalao de boot de seu sistema operacional, ou em muitos casos todo o sistema operacional e todos os arquivos nas parties afetadas.

12

Instalao

2. Instalando pelo CD
Insira seu CD de instalao no seu drive de CD-ROM e reinicie seu computador. O sistema de instalao inicializado imediatamente ao ser feito boot pelo CD-ROM. Uma vez inicializado, sua primeira tela aparecer. Neste momento, leia o texto na tela. Voc pode querer ler a tela de ajuda fornecida pelo sistema de instalao. Para fazer isto, pressione F1. Para executar uma instalao padro de servidor, selecione Instalar no disco rgido e pressione Enter. O processo de instalao ser inicializado. Simplesmente siga as instrues apresentadas na tela, e seu sistema Ubuntu ser instalado Alternativamente, para instalar um servidor LAMP (Linux, Apache, MySQL, PHP/Perl/Python), selecione Instalar um Servidor LAMP , e siga as instrues.

13

Captulo 3. Gerenciador de Pacotes


Uma caracterstica do Ubuntu um sistema que facilita o gerenciamento de pacotes, sua instalao, atualizao, configurao e remoo de software. Alm de fornecer acesso a uma base organizada de mais de 17.000 pacotes de software para seu computador Ubuntu, o Gerenciador de Pacotes tambm inclue a capacidade de resoluo de dependncia e procura por atualizaes de software. Vrias ferramentas esto disponveis para interagir com o sistema de gerncia de pacotes do Ubuntu, de utilitrios simples em linha de comando que facilmente pode ser automatizado por administradores de sistema, a uma interface grfica simples que fcil de usar por novos usurios Ubuntu.

14

Gerenciador de Pacotes

1. Introduo
O sistema de gerenciamento de pacotes do Ubuntu derivado do mesmo sistema usado na distribuio Debian GNU/Linux. Os pacotes contm todos os arquivos necessrio, meta-dados, e instrues para implementar funcionalidades particulares ou softwares em seu computador Ubuntu. Os pacotes Debian, tipicamente possuem a extenso ".deb" e como de se esperar, possuem repositorios que tm colees de pacotes que podem ser encontrados na forma de midias, tais como CD-ROM ou on-lines. Pacotes so, normalmente, binrios pr-compilados; assim a instalao rpida, sem a necessidade de compilar o software. Grande nmero de aplicativos (pacotes) requerem uma complexa rvore de dependncias. Estas dependncias so informaes adicionais necessrias para a correta execuo de determinado pacote. Por exemplo, o pacote sintetizador de fala Festival depende do pacote festvox-kalpc16k, que supre com uma das vozes utilizada pelo programa. Para que Festival funcione, todas as dependncias devem ser instaladas em conjunto com o pacote principal, Festival. O gerenciador de pacotes do Ubuntu o faz automaticamete.

15

Gerenciador de Pacotes

2. Apt-Get
O comando apt-get uma poderosa ferramenta de trabalho presente no Ubuntu. Advanced Packaging Tool (APT) ou Avanada Ferramenta de Pacotes, possui funcionalidades tais como instalao de novos pacotes de software, atualizao de pacotes existentes, atualizao da lista de pacotes e atualizao do sistema Ubuntu como um todo. Essencialmente uma ferramenta em linha de comando, apt-get possui numerosas vantagens, para administradores de servidor, sobre outras ferramentas de gerenciamento de pacotes existentes no Ubuntu. Algumas dessas vantagens a facilidade de uso em um simples terminal de coneco (SSH) e a capacidade de ser usado por scripts de administrao de sistema que, por sua vez, podem ser automatizados pela ferramenta de aes agendadas cron. Outros exemplos populares de uso do apt-get: Instalando um Pacote: A instalao de um pacote utilizando a ferramenta apt-get muito simples. Por exemplo, para instalar o scanner de rede nmap, digite:
sudo apt-get install nmap

Removendo um Pacote: Para remover um pacote ou pacotes no tem rodeios, o processo simples. Para remover o pacote nmap instalado no exemplo anterior, digite:
sudo apt-get remove nmap

Multiplos Pacotes: Para especificar multiplos pacotes a serem instalados ou removidos, separe-os por espaos. Atualizando a Lista de Pacotes: A lista de pacotes do APT essencialmente um bando de dados com os pacotes disponveis em repositrios definidos no arquivo /etc/apt/sources.list. Para atualizar a lista local de pacotes com as ultimas alteraes feitas no(s) repositorio(s), digite:
sudo apt-get update

Atualizando Todos os Pacotes do Sistema: Com o tempo, verses atualizadas de pacotes atualmente instalado em seu computador podem tornar-se disponveis nos repositrios de pacotes (atualizaes de segurana, por exemplo). Para atualizar seu sistema, primeiro atualize a base de dados de pacotes e ento digite:
sudo apt-get upgrade

Se um pacote necessitar que seja instalada ou removida uma nova dependncia quando realizar a atualizao, ele no ser atualizado pelo comando upgrade. Para tal ao ser necessrio o uso do 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

16

Gerenciador 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 passado um tempo considervel, seu computador estar atualizado para a nova reviso. Tipicamente, alguns passos de ps-melhora so exigidos como detalhado nas notas para atualizao de revises. As aes do comando apt-get, tais como isntalao e remoo de pacotes, so registradas no arquivo de log /var/log/dpkg.log. Para mais informaes sobre o uso do APT, leia o detalhado Manual APT do Usurio Debian [http://www.debian.org/doc/user-manuals#apt-howto] ou digite:
apt-get help

17

Gerenciador de Pacotes

3. Aptitude
Aptitude uma interface a base de texto controlada por menus, do sistema Advanced Packaging Tool (APT). Muitas funes comuns de um gerenciador de pacotes, tais como instalao, remoo e atualizao so executadas pelo Aptitude por simples comandos, os quais so tipicamente grafados em letras minsculas. Aptitude a melhor sute para uso em ambiente no grfico ou modo-texto, assegurando o funcionamento adequado das teclas de comando. Caso queira utilizar o Aptitude a partir de seu usurio padro, faa uso do seguinte comando:
sudo aptitude

Quando o Aptitude iniciar, voc poder ver um menu no topo da janela e dois paineis abaixo do menu. O painel de cima contm as categorias dos pacotes, tais como Novos Pacotes e Pacotes No Instalados. No painel inferior aparecer informaes relacionadas a categoria selecionada ou pacote selecionado no painel acima. Usando o Aptitude para gerenciar pacotes relativamente rpido e sua interface torna tarefas comuns algo simples. O seguir, so exemplos de funes populares no gerenciamento de pacotes realizadas pelo Aptitude: Instalando Pacotes: Para instalar um pacote, localize o pacote em Pacotes No Instalados, por exemplo, use as teclas setas e pressione ENTER, selecione o pacote que deseja instalar. Aps selecionar o pacote que deseja instalar, pressione a tecla +, assim o pacote ficar verde, isto indica que foi marcado para instalao. Agora pressione g e uma lista das aes lhe ser apresentada. Pressione g novamente e voc ser solicitado a torna-se "root" para que o processo tenha continuidade. Pressione ENTER e fornea a senha de "root" solicitada no prompt Password:. Finalmente, pressione g mais uma vez para que o processo de baixar pacote tenha incio. Pressione ENTER para a opo Continue e o processo de baixar e instalar do pacote ter incio. Removendo Pacotes: Para remover um pacote, localize-o em Pacotes Instalados, utilizando as setas do teclado e pressione ENTER e selecione o pacote que deseja remover. Aps seleciona-lo, pressione - e o pacote mudar para a cor rosa, indicando assim que foi marcado para remoo. Agora pressione g e uma lista das aes lhe ser apresentada. Pressione g novamente e voc ser solicitado a torna-se "root" para que o processo tenha continuidade. Pressione ENTER e fornea a senha de "root" solicitada no prompt Password:. Finalmente, pressione g mais uma vez para que o processo de remoo do pacote tenha incio. Pressione ENTER para a opo Continue e o processo de remoo do pacote ter incio. Atualizando Lista de Pacotes: Para atualizar a base de dados de pacotes, pressione u e, logo em seguida, lhe ser solicitado privilgios de "root". Pressione ENTER e fornea a senha de "root" no pronpt Password:. Pressione ENTER e o processo de baixar as atulizaes e renovao da base de dados ter incio. Atualizando Pacotes: Para atualizar pacotes, atualize primeiro a lista de pacotes como descrito anteriormente e pressione a tecla U (shift + u) e todos os pacotes passveis de atualizao sero 18

Gerenciador de Pacotes selecionados. Agora pressione g e lhe ser apresentado um resumo das aes exigidas para o pacote. Pressione g novamente e voc ser solicitado a torna-se "root" para que o processo tenha continuidade. Pressione ENTER e fornea a senha de "root" solicitada no prompt Password:. Finalmente, pressione g mais uma vez para que o processo de baixar os pacotes tenha incio. Pressione ENTER para a opo Continue e o processo de atualizao dos pacotes ter incio. A primeira coluna de informao exibida na lista de pacote no painel superior, quando realmente vendo os pacotes, lista o estado atual do pacote, e usa a seguinte tecla para descrever o estado do pacote: i: Pacote instalado. c: Pacote no instalado, mas o pacotem possui configuraes residuais no sistema p: Remover do sistema v: Pacote Virtual B: Pacote quebrado u: Arquivos desempacotados, mas o pacote no foi configurado C: Parcialmente configurado - Configurao fracassou e exige reparo H: Parcialmente instalado - A remoo fracassou e exige reparo Para sair do Aptitude, basta pressionar a tecla q e confirmar que deseja sair. Outras opes esto disponveis no menu pressionando a tecla F10.

19

Gerenciador de Pacotes

4. Configurao
A configurao dos repositrios do sistema Advanced Packaging Tool (APT) est localizada no arquivo de configurao /etc/apt/sources.list. Um exemplo deste arquivo est referido aqui, junto com informao sobre como adicionar ou retirar referncias de repositrio do arquivo. Aqui [../sample/sources.list] h um exemplo de um tpico arquivo /etc/apt/sources.list. Voc pode editar o arquivo e habilitar repositrios ou desabilitar. Por exemplo, para desativar a opo de inserir o Ubuntu CD-ROM toda vez que for instalar um pacote, basta comentar a linha que descreve a mdia CD-ROM com um cifro (#) no incio da linha, como se segue:

# por favor, no requisitar pelo CD-ROM # deb cdrom:[Ubuntu 6.06 _Dapper Drake_ - Release i386 (20060329.1)]/ dapper main restricted

20

Gerenciador de Pacotes

5. Repositrios Extras
Alm dos repositrios de pacotes oficialmente apoiados e disponibilizados para Ubuntu, ainda existem repositrios mantidos pela comunidade que adicionam milhares de pacotes extras, mas potenciais a instalao. Dois destes repositrios so bem populares, o Universe (mantidos pela comunidade) e o Multiverse (no-livre). Estes repositrios no so oficialmente suportados por Ubuntu, por isso no so habilitados por padro, mas eles geralmente fornecem pacotes que so seguros para uso em seu computador Ubuntu. Os pacotes no repositrio Multiverse freqentemente possuem licenas que os previnem quanto a distribuio em sistemas operacionais livres, podendo ser ilegais em seu localidade. Esteja ciente que nem o repositrio Universe ou o Multiverse contm pacotes oficialmente suportados. Em particular, talvez no seja seguro atualizar para estes pacotes Vrias fontes de pacotes esto disponveis, s vezes, oferecendo apenas um pacote, como no caso de fontes de pacotes fornecido pelo mantenedor de uma nica aplicao. Voc deve ser sempre cuidadoso e cauteloso quando usar fontes no padro de pacotes. Pesquise a fonte e pacotes cuidadosamente antes de executar qualquer instalao, como algumas fontes de pacotes e seus respectivos pacotes podem deixar seu sistema instvel ou mesmo inabilitlo de fazer alguma operao. Para habilitar os repositrios Universe e Multiverse, edite o arquivo /etc/apt/sources.list descomentando (removendo o smbolo de sustenido #) das seguintes linhas:

# Quero os repositrios Multiverse e Universe disponveis 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]

21

Captulo 4. Rede
As redes consistem em dois ou mais dispositivos, tal como sistemas de computador, impressoras e equipamentos relacionados que so ligados por qualquer meio fsico, como equipamentos de rede via sinal de rdio (wireless), com o propsito de compartilhar informaes e ou distribuir informaes entre os dispositivos conectados. Esta seo do Guia para Servidores Ubuntu fornece informao gerais e especficas sobre redes, incluindo uma vista geral de conceitos de rede e detalhes sobre protocolos populares de rede e aplicaes de servidor.

22

Rede

1. Configurao de Rede
O Ubuntu distribui um nmero de utilidades grficas para configurar seus equipamentos de rede. Este documento tem como foco administradores de servidores e focalizar em como administrar sua rede usando a linha de comando.

1.1. Ethernet
A maior parte da configurao de rede est centralizada em um nico arquivo, /etc/network/interfaces. Se voc no possui dispositvos de rede, somente a interface loopback aparecer neste arquivo, e ser parecido com isto:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0

Se voc tiver apenas um dispositivo de rede, eth0, e este estiver obtendo a configurao via servidor DHCP, ele pode ser carregado automaticamente durante o boot, para isso, bastam apenas duas linhas adicionais:
auto eth0 iface eth0 inet dhcp

A primeira linha especifica que o dispositivo eth0 deve ser habilitado automaticamente durante o boot. A segunda linha diz que a interface (iface) eth0 deve ter um espao IPv4 (subistitua inet por inet6 para dispositivos IPv6) e isto dever obter automaticamente a configurao via DHCP. Assumindo que sua rede e servido DHCP j esteja devidamente configurado, esta mquina no precisar de nenhuma configurao adicional para funcionar corretamente. O servidor DHCP ir prover o gateway padro (implementado atravs do comando route), os endereos de IP (implementados com o comando ifconfig), e os servidores DNS usados na rede (implementados no arquivo /etc/resolv.conf.) Para configurar sua interface de rede ethernet com um IP esttico e uma configurao personalizada, ser necessrio algumas informaes. Suponhamos que voc queira definir o IP 192.168.0.2 para a interface eth1, com a mscara de rede tpica 255.255.255.0. Seu gateway (rota de sada) padro 192.168.0.1. Voc dever inserir algo como isto no arquivo /etc/network/interfaces:
iface eth1 inet static address 192.168.0.2 netmask 255.255.255.0 gateway 192.168.0.1

Neste caso, vo precisar especificar o endereo dos servidores de DNS manualmente no arquivo /etc/resolv.conf, que dever parecer com algo do tipo: 23

Rede
search mydomain.com nameserver 192.168.0.1 nameserver 4.2.2.2

A diretiva search vai anexar mydomain.com para a procura de hostnames, tentando resolver nomes para sua rede. Por exemplo, se o domnio de sua rede meudominio.com e voc tentar fazer um ping no host meucomputador, a procura pelo DNS ser modificada para meucomputador.meudominio.com. A diretiva nameserver especifica os servidores DNS a serem usados para resolver os hostnames para o IP. Se voc usa um nameserver (servidor DNS) prprio, insira-o aqui. Seno, pergunte ao seu provedor de internet os servidores DNS primrio e secundrio, e depois insira-os em /etc/resolv.conf, como mostrado abaixo. Diversas outras configuraes so possveis, incluindo interfaces PPP, rede em IPv6, interfaces VPN, entre outras. Execute o comando man 5 interfaces para mais informaes e para as opes suportadas. Lembre-se que /etc/network/interfaces utilizado pelos scripts ifup/ifdown como um esquema de configurao de mais alto nvel, que pode ser utilizado por outras distribuies, e que os utilitrios de baixo nvel, como ifconfig, route e dhclient continuam disponveis para configuraes ad hoc.

1.2. Administrando entradas DNS


Esta seo explica como configurar o servidor de nomes (DNS) para gerar endereos IP a hostnames e vice versa. No explica como configurar o sistema como um servidor de nome. Para gerenciar entradas de DNS, voc pode adicionar, alterar ou remover nomes de DNS do arquivo /etc/resolv.conf. Um arquivo de exemplo [../sample/resolv.conf] pode ser visto abaixo:

search com nameserver 204.11.126.131 nameserver 64.125.134.133 nameserver 64.125.134.132 nameserver 208.185.179.218

A chave search especifica a string que dever aparecer para um hostname imcompleto. Aqui, nos a temos mencionada como com. Ento, quando nos executamos: ping ubuntu ela interpretar como ping ubuntu.com. A chave nameserver especifica o endereo IP do servidor de nomes. Ele ser usado para resolver os endereos IP ou hostnames. Este arquivo pode possuir multiplas entradas de DNS. Os DNS's sero usados pela rede de mesma classe. Se o DNS estiver obtendo dinmicamente por DHCP ou PPPoE (obtido do seu provedor), no adicione entrada neste arquivo. Isto ser atualizado automaticamente. The changes you do in /etc/resolv.conf will be erased when you reboot your machine. If you want to make this change permanent, you should install resolvconf package and update the DNS information in /etc/resolvconf/resolv.conf.d/base file provided by that package. 24

Rede

1.3. Gerenciando Hosts


Para gerenciar hosts, voc pode adicionar, alterar ou remover hosts do arquivo /etc/hosts. O arquivo contm endereos IP e seus nomes de host correspondentes. Quando seu sistema tenta resolver um nome de host para um endereo IP ou determinar um nome de host para um endereo IP, ele procura para o arquivo /etc/hosts antes de usar os servidores de nome. Se o endereo IP est listado no arquivo /etc/hosts, os servidores de nome no sero utilizados. Este comportamento pode ser alterado, bastando para isso editar o arquivo /etc/nsswitch.conf como quiser. Se sua rede possui computadores cujos endereos IP no esto listadas no DNS, recomendado que voc os adicione ao arquivo /etc/hosts.

25

Rede

2. TCP/IP
O Transmission Control Protocol e o Internet Protocol (TCP/IP) so um conjunto podro de protocolos desenvolvidos no final dos anos 1970 pela Defense Advanced Research Projects Agency (DARPA) como uma forma de comunicao entre diferente tipos de computadores e redes de computadores. TCP/IP a fora motora da Internet, e portanto o mais popular conjunto de protocolos da Terra.

2.1. Introduo ao TCP/IP


Os dois protocolos componentes do TCP/IP lidam com diferentes aspectos da computao em rede. Internet Protocol, o "IP" do TCP/IP um protocolo de sem conexo que lida somente com o roteamento de pacotes da rede utilizando o datagrama de IPs como unidade bsica das informaes de rede. O datagrama do IP consiste de um cabeaho seguido de uma mensagem. O TCP (Transmission Control Protocol - Protocolo de Controle de Transmisso)

2.2. Configurando TCP/IP


A configurao do protocolo TCP/IP consiste em diversos elementos, que podem ser editados nos arquivos de configurao apropriados, ou optando-se por solues como o servidor de DHCP (Protocolo de Configurao Dinmica de Hosts), que por sua vez pode ser configurado para prover as configuraes TCP/IP necessrias para cada cliente de rede automaticamente. Esses valores da configurao precisam ser definidos corretamente, de maneira que que facilite o funcionamento em rede do seu sistema Ubuntu. Os elementos bsicos de configurao do TCP/IP e seus objetivos so os seguintes: Endereo IP O Endereo de IP uma string de identificao nica, expressa em quatro nmeros decimais, que vo de zero (0) duzentos e cinquenta e cinco (255), separada por pontos, com cada um dos quatros nmeros representado oito (8) bits do endereo, para um tamanho total de trinta e dois (32) bits para todo o endereo. Este formato chamado de notao decimal com pontos. Netmask A Mscara de Subrede (ou simplesmente netmask) uma mscara de bits locais, ou alguns marcadores que separam pores de endereos IPs relacionados uma rede de uma subrede. Por exemplo, na Classe C, a mscara padro 255.255.255.0, que mascara os primeiros trs bytes do endereo IP e permite somente o ltimo byte do endereos disponvel para a alocao e especificao de hosts ou subredes. Endereo de Rede O Endereo de rede representa os bytes compreendidos na poro de rede referente a um IP. Por exemplo, o host 12.128.1.2 da rede de Classe A, pode usar 12.0.0.0 como o Endereo de Rede, que usa o doze (12) para representar o primeiro byte de um endereo IP, (a parte de rede) e zeros (0s) em todos os outros trs bytes restantes para representar os valores para hosts em potencial. Redes de hosts usando endereos IPs comuns como os privados e no distribudos, como 192.168.1.100 pode ento usar um endereo de rede como 192.168.1.0, que especifica os trs primeiros bytes para a Classe C de rede 192.168.1 e zero (0) para todos os outros possveis hosts da rede. 26

Rede Endereo de Transmisso O Endereo de Transmisso um endereo IP que possibilita dados de rede serem enviados simultaneamente para todos os hosts numa subrede, preferivelmente do que especificar um host particular da rede. O padro genrico de endereo de transmisso para redes IP 255.255.255.255, mas este endereo de transmisso no pode ser usado para enviar uma mensagem a cada host na Internet porque roteadores bloqueiam-no. Por exemplo, em um popular IP privado Classe C de rede, 192.168.1.0, o endereo de transmisso precisa ser configurado como 192.168.1.255. Transmisso de mensagens so tipicamente fruto de rede de protocolos tais como Address Resolution Protocol (ARP) e Routing Information Protocol (RIP). Gateway AddressUm Gateway Address o endereo IP direto de uma rede particular, ou host em uma rede, podendo se estender. Se uma rede de host no define-se ao comunicar com outra rede de host, e aquele host no localizado em uma mesma rede, ento um gateway deve ser usado. Em muitos casos, o Gateway Anddress ser de um roteador na mesma rede, que vai habilitar o trafico de passagem em outras redes ou hosts, tais como Internet hosts. O valor definido a um Gateway Address deve ser correto, ou seu sistema no ser capaz de alcanar nenhum host ligado na mesma rede. Endereo do Servidor de Nomes Endereos de servidores de nome representam o endereo IP do sistema de Servio de Nomes de Domnio (Domain Name Service - DNS), que resolve nomes de hosts de rede para endereos IP. H trs nveis de endereos de servidor de nomes, que podem ser especificados em ordem de precedncia: O servidor de nomes Primrio, o servidor de nomes Secundrio e o servidor de nomes Tercirio. Para que seu sistema possa resolver nome de hosts da rede para seus endereos IP correspondentes, voc deve especificar um endereo de servidor de nomes vlido o qual voc esteja autorizado a utilizar na configurao de TCP/IP do seu sistema. Em muitos casos esses endereos podem e devem ser fornecidos pelo seu provedor de servios de rede, mas h muitos servidores de nomes gratuitos e acessveis publicamente, como os servidores Level3 (Verizon) com endereos de IP de 4.2.2.1 a 4.2.2.6. O Endereo de IP, a Mscara de rede (netmask), o Endereo de rede, Endereo de broadcast, e o Endereo de Gateway so, em geral, especificados com as diretivas apropriadas no arquivo /etc/network/interfaces. O endereo do Servidor de Nomes (DNS) em geral especificado pela diretiva nameserver no arquivo /etc/resolv.conf. Para maiores informaes, veja a pgina de manual para interfaces ou resolv.conf respectivamente, com os seguintes comandos a serem digitados no terminal: Acesse o sistema de pginas de manual para interfaces com o seguinte comando:

man interfaces

Acesse o sistema de pginas de manual para resolv.conf com o seguinte comando:


man resolv.conf

27

Rede

2.3. Roteamento IP
O roteamento IP uma forma de especificar e descobrir caminhos em uma rede TCP/IP na qual as informaes da rede sero enviadas.O roteamento usa um conjunto de tabelas de roteamento para direcionar o encaminhamento de pacotes de dados de rede da fonte para o destino, geralmente por meio de diversos ns de rede intermedirios, conhecidos como roteadores. O Roteamento IP o principal modo de descoberta de caminhos na Internet. H duas formas primrias de roteamento, Esttico e Dinmico. 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. Roteamento Dinmico depende de grandes redes com mltiplas possibilidade de rotas IP de uma fonte a um destino e faz uso de protocolos especiais de roteamento, tal como o Router Information Protocol (RIP), que manipula o ajuste automtico para os protocolos da tabela de roteamento, e assim, fazer o roteamento dinmico possvel. Roteamento dinmico tem srias vantagens sobre roteamento esttico, como escalabilidade superior e a capacidade de adaptao a falhas ou ocilaes ao longo das rotas na rede. Adicionalmente, essa posio inferior a configurao manual para a tabela de roteamento, desde que os roteadores aprendam sobre outro roteador, sua existencia e rotas possveis. Esta peculiaridade tambm elimina a possibilidade de introduzir um erro em tabelas de roteamento por erro humano. Roteamento dinmico no perfeito, de qualquer modo, ele apresente desvantagens como alta complexidade e despesas gerais adicionais para a rede, que no beneficiam imediatamente os usurios finais, e ainda consome banda da rede.

2.4. TCP e UDP


TCP um protocolo de conexo, oferecendo correo de erro e entrega garantida de dados via o que conecido como controle de fluxo. O controle de fluxo determina quando o fluxo de certos dados devem ser parados, e previamente quais pacotes de dados devem ser re-enviados devido a problemas como colises, por exemplo, deste modo assegurando a entrega exata e completa dos dados. TCP tipicamente usado em trocas de informaes importantes tal como transaes de banco de dados. O User Datagram Protocol (UDP), por outro lado, um protocolo de conectividade que raramente lida com a transmisso de dados importantes porque falta controle de fluxo ou qualquer outro mtodo para assegurar a entrega confivel dos dados. UDP comumente usado em aplicaes como udio e vdeo, onde consideravelmente mais rpido que TCP devido falta de correo de erro e controle de fluxo, e onde a perda de alguns pacotes no catastrfico, geralmente. 28

Rede

2.5. ICMP
O Internet Control Messaging Protocol (ICMP) uma extenso do Internet Protocol (IP) como definido na Petio Para Comentrios (RFC) #792 e apoia pacotes de rede contendo controle, erro, e mensagens de informao. ICMP usado por aplicaes de rede como a utilidade de ping, que pode determinar a disponibilidade de um host de rede ou dispositivo. Exemplos de mensagens de erro retornadas por ICMP que so til a ambos hosts de rede e para dispositivos tal como roteadores, incluem Destino Inacessvel e Tempo de Esperera Excedido.

2.6. Servios
Daemons (servios) so aplicaes especiais do sistema que tipicamente executam continuamente em segundo plano e esperam requisies para as funes que eles fornecem a outras aplicaes. Muitos daemons so rede-cntrico; isso , um grande nmero de daemons executando em segundo plano em um sistema Ubuntu podem fornecer funcionalidades a redes relacionadas. Alguns exemplos de daemons de rede incluem o Hyper Text Transport Protocol Daemon (httpd), que fornece funcionalidade de servidor de Internet; o Secure SHell Daemon (sshd), que fornece identificao (login) remota segura e capacidade de transferncia de arquivo; e o Internet Message Access Protocol Daemon (imapd), que fornece servios de correio eletrnico (e-Mail).

29

Rede

3. Configurao do Firewall
O kernel Linux inclui o subsistema Netfilter, o qual usado para manipular ou decidir o destino do trfego de rede dirigido para ou atravs de seu servidor. Todas as solues de firewall Linux modernas utilizam esse sistema para filtragem de pacotes.

3.1. Instroduo ao Firewall


O sistema de filtragem de pacotes do kernel tem pouca utilidade para os administradores sem uma interface para gerenci-la. Este o propsito do iptables. Quando um pacote chega ao servidor, ele ser encaminhado ao subsistema Netfilter para aceitao, manipulao ou rejeio, baseado numa das regras supridas pela interface via iptables. Ento, o iptables tudo que voc precisa para gerenciar o seu firewall, caso voc tenha familiaridade com ele, mas existem diversos front ends (interfaces de frente) para simplificar a tarefa.

3.2. Mascaramento de IP
O propsito da Mscara de IP permitir mquinas com IP privado, endereo no-rotevel em sua rede para acessar a Internet por meio da mquina "mascarada". O trfico destinado de sua rede privada para a Internet deve ser manipulado para obter respostas da mquina que fez a petio, como em uma rota invertida. Para fazer isto, o kernel deve modificar o endereo IP da fonte de cada pacote e retornar respostas a ele, antes que o endereo privado IP fao o pedido de resposta, que impossvel atravs da Internet. O Linux usa Connection Tracking (conntrack) para acompanhar que conexes pertence a que mquinas e desviar cada pacote de retorno correspondente. O trfico originado em sua rede privada assim "mascarado" como tendo originado de seu gateway Ubuntu. Este processo possui refncia na documentao da Microsoft como Conexo de Internet Compartilha. Isto pode ser realizado com uma nica regra no iptables, que pode diferir levemente baseado em sua configurao de rede:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE

O comando acima supe que seu endereo privado est no intervalo 192.168.0.0/16 e sua interface de Internet, ou dispositivo, ppp0. A sintaxe errada como se segue: -t nat -- a regra para ir na tabela nat -A POSTROUTING -- a regra para ser adicionada (-A) corrente POSTROUTING -s 192.168.0.0/16 -- a regra aplicada a trafego originando do endereo especificado -o ppp0 -- a regra aplicada a trafego agendado para ser roteado pelo dispositivo de rede especificado -j MASQUERADE -- trafego combinando com esta regra "pular" (-j) para o alvo MASQUERADE para ser manipulado como descrito acima Cada srie na tabela de filtro (a tabela padro, onde a maioria ou todos os processos e filtragem de pacotes ocorre) tem uma diretriz padro para ACEITAR, mas se voc estiver criando um 30

Rede firewall adicional para o dispositivo de gateway, voc ter que definir polticas de DESCARTE ou REJEIO, em que caso seu trfico "mascarado" necessitar de permio pra ENVIAR para a srie de regras de trabalho acima:
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

Os comandos acima permitem todas conexes de sua rede local Internet e todo trnsito relacionado a essas conexes retornar mquina que os iniciou.

3.3. Ferramentas
H muitas ferramentas disponveis para ajud-lo a construir um firewall completo sem conhecimento ntimo da ferramenta iptables. Para os que preferem GUI (interfaces grficas), sugere-se o Firestarter bem popular e de fcil utilizao, e o fwbuilder, uma aplicao poderosa com visual familiar para administradores que usam ferramentas comerciais de firewall, como o Checkpoint FireWall-1. Se voc preferir uma ferramenta em linha de comando para configurar arquivos em "texto puro", o Shorewall uma soluo poderosa que o ajudar em configuraes avanadas de firewall em sua rede. Se sua rede for relativamente simples ou voc no possuir uma rede o ipkungfu deve proporcionar-lhe um firewall til com configurao inicial zero, e o permitir facilmente armar um firewall mais avanado editando arquivos de configurao simples e bem documentados. Outra ferramenta interessante o fireflier, que orientado para desktop. composto de um servidor (fireflier-server) e sua escolha de clientes GUI (GTK ou QT), e comporta-se como muitas aplicaes interativas populares de firewall para Windows.

3.4. Logs
O registro (log) das aes do firewall essencial para reconhecer ataques, investigar e reparar erros em suas regras do firewall e notar atividades inesperadas na rede. Voc deve incluir regras de registro em seu firewall para que registros sejam gerado, alis, e regras de registro devem vir antes de qualquer regra aplicvel (uma regra com um alvo que decida o destino do pacote, tal como ACEPT, DISCARD ou REJECT). Por exemplo:
sudo iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

As requisies pela porta 80 para a mquina local, ento, geraria um registro dmesg parecido com este:

[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

O registro acima publicado em /var/log/messages, /var/log/syslog, e /var/log/kern.log. Estes procedimentos podem ser alterado modificando o /etc/syslog.conf ou instalando e configurando o ulogd e, assim, usar o ULOG como alvo ao invs do LOG (registro). O daemon ulogd um servidor userspace que observa o sistema para registrar instrues especficas do kernel para firewalls e registrar qualquer arquivo que voc queira, igual aos bancos de dados PostgreSQL e MySQL. O registro das aes do firewall pode ser simplificada usando uma ferramenta para anlise de registros, como o fwanalog, fwlogwatch, ou lire. 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 disponvel livremente da famlia de ferramentas do protocolo Secure Shell (SSH) para controlar um computador remotamente ou transferir arquivos entre computadores. Ferramentas tradicionais utilizadas para cumprir essas funes, como telnet ou rcp so inseguras e transmitem a senha de um usurio em texto puro quando utilizadas. O OpenSSH prov um servidor daemon e ferramentas de cliente para facilitar controle remoto e operaes de transmisso de arquivo com segurana e criptografia, efetivamente substituindo ferramentas de legado. O componete de servidor OpenSSH, sshd, observa constantemente conexes de clientes para qualquer das ferramentas do cliente. Quando uma requisio de conexo ocorre, sshd inicia a conexo correta dependendo do tipo de ferramenta de conexo do cliente. Por exemplo, se um computador remoto conecta-se por um cliente ssh, o servidor OpenSSH iniciar o controle remoto da sesso aps autenticar. OpenSSH utiliza vrios mtodos de autentificao, incluindo senha simples, chave pblica e tiquetes Kerberos.

4.2. Instalao
A instalao do servidor e cliente OpenSSH simples, Para instalar o OpenSSH cliente no seu Ubuntu, use este comando no terminal:

sudo apt-get install openssh-client

Para instalar o OpenSSH servidor no seu Ubuntu, use este comando no terminal:

sudo apt-get install openssh-server

4.3. Configurao
Voc pode configurar o comportamento padro do servidor OpenSSH, sshd, editando o arquivo /etc/ssh/sshd_config. Para mais informao sobre as diretrizes de configurao usadas neste arquivo, voc pode ver o manual apropriado com o seguinte comando, executado pela linha de comando:

man sshd_config

32

Rede Existem muitas diretrizes no arquivo de configurao do sshd que controlam coisas como configuraes de comunicao e modos de autenticao. Os seguintes so exemplos de diretrizes de configurao que podem ser modificados editando o arquivo /etc/ssh/ssh_config. Antes de editar o arquivo de configurao, voc deve fazer uma cpia do arquivo original e proteg-lo de escrita, para que voc assim tenha os ajustes originais como uma referncia e para reusar como necessrio. Copie o arquivo /etc/ssh/sshd_config e proteja-o contra sobrescrio com com seguinte comando, executado na linha de comando:

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

Os seguintes so exemplos de diretrizes de configurao que voc pode modificar: Para ajustar seu OpenSSH para escutar na porta de TCP 2222 invs da porta de TCP padro 22, modifique a diretriz Port da seguinte forma: Porta 2222 Para fazer o sshd aceitar acesso pblico base de chaves credenciais, simplesmente adicione ou modifique a linha: PubkeyAuthentication yes no arquivo /etc/ssh/sshd_config, ou se j estiver presente, certifique-se que a linha no est comentada. Para fazer o seu servidor OpenSSH exibir o contedo do arquivo /etc/issue.net como um aviso antes de conectar, simplesmente adicione ou modifique a linha: Banner /etc/issue.net no arquivo /etc/ssh/sshd_config. Aps realizar as auteraes no arquivo /etc/ssh/sshd_config, salve o arquivo e reinicie o servidor de aplicaes sshd para que as auteraes tenham efeito. Para isto utilize o seguinte comando em um terminal:

sudo /etc/init.d/ssh restart

Vrias configuraes adicionais de diretrizes do sshd esto disponveis para auterar o comportamento do servidor de acordo com suas necessidades. Esteja ciente, no entanto, que se seu nico mtodo de acesso a um servidor ssh e voc comete um erro ao configurar o sshd via arquivo de configurao /etc/ssh/sshd_config, voc pode torna-lo indisponvel aps reiniciar o servidor, ou esse servidor sshd pode recusar iniciar, devido a uma diretriz 33

Rede incorreta na configurao, ento seja extremamente cuidadoso quando editar este arquivo num servidor remoto.

4.4. Referncias
Web site OpenSSH [http://www.openssh.org/] Pgina Wiki 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. Acesso um servidor FTP pode ser controlado em 2 maneiras: Annimo Autenticado No modo Annimo, clientes remotos podem acessar o servidor FTP usando a conta de usurio padro chamada 'anonymous' ou 'ftp' e informando um endereo de e-mail como senha. No modo Autenticado um usurio precisa ter uma conta e uma senha. O acesso do usurio aos diretrios e arquivos do servidor de FTP depende das permisses definidas para a conta usada no login. Como uma regra geral, o servio de FTP ir esconder o diretrio root do servidor de FTP e alter-lo para o diretrio Home do FTP. Isso ocultar o restante do sistema de arquivos nas sesses remotas.

5.1. vsftpd - Instalao de Servidor FTP


O vsftpd um daemon FTP disponvel no Ubuntu. Ele fcil de instalar, configurar e manter. Para instalar o vsftpd voc pode rodar o seguinte comando:
sudo apt-get install vsftpd

5.2. vsftpd - Configurao Servidor FTP


Voc pode editar o arquivo de configurao do vsftpd, /etc/vsftpd.conf, para modificar as configuraes padres. Por padro apenas FTP annimo permitido. Se voc deseja desabilitar essa opo, voc deve modificar a seguinte linha:
anonymous_enable=YES

para
anonymous_enable=NO

Por padro, os usurios locais do sistema no tem permisso para fazer login no servidor FTP. Para modificar essa configurao, voc deve descomentar a seguinte linha:
#local_enable=YES

Por padro, usurios tem permisso para descarregar arquivos do servidor FTP. Eles no tem permisso para enviar arquivos para o servidor FTP. Para modificar essa configurao, voc deve descomentar a seguinte linha: 35

Rede

#write_enable=YES

Similarmente, por padro, os usurios annimos no tem permisso para enviar arquivos para o servidor FTP. Para modificar essa configurao, voc deve descomentar a seguinte linha:

#anon_upload_enable=YES

O arquivo de configurao formado por vrios parmetros de configurao. As informaes sobre cada parmetro esto disponveis no arquivo de configurao. Alternativamente, voc pode consultar a pgina do manual, man 5 vsftpd.conf para um melhor detalhamento de cada parmetro. Uma vez configurado o vsftpd voc pode iniciar o servio usando o seguinte comando:
sudo /etc/init.d/vsftpd start

Note que os valores padronizados no arquivo de configurao esto ajustados da forma que esto por motivos de segurana. Cada uma das modificaes feitas acima deixa o sistema cada vez menos seguro, portanto use-as somente se forem realmente necessrias.

36

Rede

6. Network File System (NFS)


NFS permite um sistema a compartilhar diretrios e arquivos com outros sistemas em uma rede. Ao usar NFS, usurios e programas podem acessar arquivos em sistemas remotos quase que como se os mesmos fossem arquivos locais. Alguns dos mais notveis benefcios que NFS oferece so: Mquinas de trabalho locais usam menos espao de disco porque dados comumente usados podem ser armazenados em uma nica mquina e ainda assim permanecer acessvel outros na rede. No necessrio criar diretrios pessoais de usurios separados em cada mquina na rede. Diretrios pessoais podem ser criados em um servidor NFS de forma acessvel por toda a rede. Dispositivos de armazenamento como disquetes, CD-ROM, e chaveiros USB podem ser usados por outras mquinas na rede. Isto pode reduzir o nmero de dispositivos de mdia removveis por toda a rede.

6.1. Instalao
Em um prompt de terminal entre o seguinte comando para instalar o servidor NFS:

sudo apt-get install nfs-kernel-server

6.2. Configurao
Voc pode configurar os diretrios a serem exportados adicionando-os ao arquivo /etc/exports. Por exemplo:

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

Voc pode substituir o * com um dos formatos de nome de host. Faa a declarao de nome de host o mais especfica possvel para que sistemas indesejados no acessem a montagem NFS. Para inicar o servidor NFS, voc pode executar o seguinte comando em um terminal:

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

6.3. Configurao do Cliente NFS


Use o comando mount para montar um diretrio compartilhado NFS de outra mquina, digitando num prompt de terminal um comando similar ao seguinte:

sudo mount exemplo.nomedamquina.com:/ubuntu /local/ubuntu

37

Rede O diretrio ponto de montagem /local/ubuntu deve existir. No devem existir arquivos ou subdiretrios dentro do diretrio /local/ubuntu. Uma forma alternativa para montar uma partio compartilhada NFS remota adicionar uma linha ao arquivo /etc/fstab. A linha deve conter o nome do servidor NFS host, o diretrio no servidor sendo exportado, e o diretrio local onde a partio NFS deve ser montado. A sintaxe normal para a linha no arquivo /etc/fstab a seguinte:

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

6.4. Referncias
Linux NFS faq [http://nfs.sourceforge.net/]

38

Rede

7. Dynamic Host Configuration Protocol (DHCP)


O Protocolo de Configurao Dinmica de Hosts (DHCP) um servio de rede que permite que os computadores sejam configurados automticamente apartir de configuraes feitas em um servidor ao invs de serem configurados individualmente de forma manual. Computadores configurados para serem clientes de DHCP no tem controle sobre as configuraes que eles recebem do servidor DHCP, e a configurao transparente para o usurio do computador. As configuraes mais comuns providenciadas por um servidor DHCP para um cliente DHCP so: Endereo IP e Netmask DNS WINS Entretanto, um servidor DHCP pode tambm providenciar propriedades de configurao como: Noma da Mquina Nome do Domnio Gateway Padro Servidor de Tempo Servidor de Impresso

A vantagem de usar DHCP que as alteraes em uma rede, por exemplo a alterao do endereo de um servidor DNS, precisam apenas ser modificadas no servidor DHCP, e todos os equipamentos da rede iro ser reconfigurados da prxima vez que seu cliente de DHCP consultar o servidor. Como vantagem adicional, ele tambm torna mais fcil a integrao de novos computadores rede, j que no necessrio confirmar a disponibilidade de um endereo IP. Conflitos na alocao de endereos IP tambm so reduzidos. Um servidor DHCP pode fornecer parmetros de configurao usando dois mtodos: Endereo MAC Esse mtodo consiste na utilizao do DHCP por meio da identificao do endereo de hardware nico de cada placa de rede conectada rede e ento fornecendo uma configurao constante cada vez que o cliente de DHCP faz uma requisio para o servidor DHCP usando o mesmo dispositivo de rede. Pool de Endereos Esse mtodo consiste na definio de um pool (algumas vezes chamado de faixa ou escopo) de endereos IP apartir do qual os clientes DHCP tero suas propriedades e configuraes supridas dinmicamente baseado num mtodo de "o primeiro que chega o primeiro que leva". Quando um cliente DHCP no mais est em rede por perodo de tempo especificado, a configurao expira e disponibilizada novamente no pool de endereos para uso por outros clientes DHCP. O Ubuntu fornecido com ambos, o cliente e o servidor DHCP. O servidor o dhcpd (dynamic host configuration protocol daemon). O cliente fornecido com o Ubuntu o dhclient e dever ser instalado em todos os computadores que pretendem ser automticamente configurados. Ambos os programas 39

Rede so fceis de instalar e configurar e sero automticamente iniciados durante a inicializao do sistema.

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

sudo apt-get install dhcpd

Voc ver a seguinte sada, a qual explica o que fazer em seguinda:

Por favor note que se voc estiver instalando o servidor DHCP pela primeira vez voc ir precisar configur-lo. Por favor pare (/etc/init.d/dhcp stop) o servio do servidor DHCP, edite o /etc/dhcpd.conf para ajust-lo s suas necessidades e configuraes particulares, e reinicie o servio do servidor DHCP (/etc/init.d/dhcp start). Voc tambm precisar editar o /etc/default/dhcp para especificar as interfaces que o dhcpd dever ouvir. Por padro ele ouve na eth0. NOTA: as mensagens do dhcpd so enviadas para o syslog. Procure l por mensagens de diagnstico.

Iniciando o servidor DHCP: o dhcpd falhou ao iniciar - verifique o syslog para diagnosticar o proble

7.2. Configurao
A mensagem de erro encontrada no final da instalao pode ser um pouco confusa, mas os seguintes passos vo te ajudar a configurar o servidor: Geralmente, o que voc quer fazer associar um endereo IP de forma aleatoria. Isto pode ser feito com as seguintes configuraes:

# Exemplo /etc/dhcpd.conf # (adicione seus 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 Isso ir fazer com que o servidor DHCP atribua ao cliente um endereo IP a partir da faixa 192.168.1.10-192.168.1.100 ou 192.168.1.150-192.168.1.200. Ele ir emprestar um endereo por 600 segundos se o cliente no perguntar por um determinado perodo de tempo. O servidor tambm ir "avisar" o cliente que ele deve usar 255.255.255.0 como sua mscara de sub-rede, 192.168.1.255 como seu endereo de broadcast, 192.168.1.254 como roteador/gateway e 192.168.1.1 e 192.168.1.2 como seus servidores DNS. Se for preciso especificar um servidor WINS para os seus clientes de Windows, voc dever incluir a opo netbios-nome-servidor.

option netbios-name-servers 192.168.1.1;

Configuraes do dhcpd foram adiquiridas do mini-HOWTO do DHCP, que pode ser encontrado aqui [http://www.tldp.org/HOWTO/DHCP/index.html].

7.3. Referncias
DHCP FAQ [http://www.dhcp-handbook.com/dhcp_faq.html]

41

Rede

8. Domain Name Service (DNS)


Servio de Nome de Domnio ( Domain Name Service - DNS) um servio de internet que mapeia endereos IP para nomes de domnio completamente qualificados (FQDN) e vice-versa. Dessa forma, o DNS faz com que no seja necessrio decorar endereos IP. Os computadores que rodam o DNS so chamados de servidores de nomes. O Ubuntu vem com o BIND Berkley Internet Naming Daemon), o programa mais utilizado para manter um servidor de nomes no Linux.

8.1. Instalao
Em um terminal, digite o seguinte comando para instalar dns:

sudo apt-get install bind

8.2. Configurao
Os arquivos de configurao do DNS so armazenados no diretrio /etc/bind. O arquivo de configurao principal o /etc/bind/named.conf. O contedo da configurao padro est disposto abaixo:

// Este o arquivo de configurao primria para o servidor de DNS BIND named. // // Por favor, leia /usr/share/doc/bind/README.Debian para informaes sobre a // estrutura dos arquivos de configurao do BIND no Debian para verso 8.2.1 do BIND // ou superior, *ANTES* de voc customizar este arquivo de configurao. // include "/etc/bind/named.conf.options"; // reduz a sada de log em erros fora do nosso controle logging { category lame-servers { null; }; category cname { null; }; }; // servidor primrio, que conhece os servidores raiz zone "." { type hint; file "/etc/bind/db.root"; }; // seja a autoridade para repasses locais, zonas reversas e para a // zona de broadcast, como definido no 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"; }; // adicione definies locais aqui include "/etc/bind/named.conf.local";

A linha include especifica o nome do arquivo que contm as opes do DNS. A linha directory no arquivo de opes diz ao DNS onde procupar por arquivos. Todos os arquivos utilizados pelo BIND esto contidos nesse diretrio. 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 seo zone define um servidor mestre, e ela armazenado em um arquivo mencionado atravs da tag file. Cada zona contm 3 registros de recursos (RRs): um RR SOA, um RR NS, e um RR PTR. SOA a abreviatura para Start of Authority, ou seja, Incio da Autoridade. A "@" uma notao especial que denota a origem. NS a RR para Servidor de Nomes. PTR Ponteiro para Servidor de Nomes. Para iniciar o servidor DNS, rode o seguinte comando apartir do prompt de um terminal:

sudo /etc/init.d/bind start

Voc pode se referir documentao mencionada na seo de referncias para detalhes.

8.3. Referncias
TUTORIAL DNS [http://www.tldp.org/HOWTO/DNS-HOWTO.html]

43

Rede

9. CUPS - Servidor de Impressora


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 gerencia servios de impresso e filas, alm de fornecer impresso em rede usando o Protocolo padro de Impresso da Internet (IPP), alm de oferecer suporte a uma grande variedade de impressoras, de matriciais a lasers dentre muitas outras. O CUPS tambm suporta Descries de Impressoras PostScript (PPD) e auto-deteco de impressoras de rede, e aprensenta tambm uma ferramenta de administrao simples baseada na 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

Uma vez autenticado com a senha do seu usurio, dever ocorrer o download e instalao dos pacotes sem erros. Aps a instalao, o servidor CUPS ser inicializado automaticamente. Para resoluo de problemas, voc pode acessar os erros do servidor CUPS atravs do arquivo de log de erros em: /var/log/cups/error_log. Se os logs de erros no mostrar informaes necessrias para resoluo dos seus problemas que voc encontrar, a qualidade de sada de log do CUPS pode ser incrementada, alterando a diretiva LogLevel no arquivo de configurao (discutido logo abaixo) para "debug" ou ainda "debug2", o que causar o registro em log de tudo, do padro ao "info". Se voc fizer esta mudana, lembre-se de desfaz-la assim que voc resolver seu problema, para prevenir que o arquivo fique muito grande.

9.2. Configurao
O comportamento do servidor CUPS (The Common UNIX Printing System) configurado atravs das diretivas contidas no arquivo /etc/cups/cupsd.conf. O arquivo de configurao do CUPS segue a mesma sintaxe que o arquivo de configurao primrio para o servidor de HTTP Apache, portanto os usurios familiares com a edio do arquivo de configurao do Apache devero ter uma maior facilidade ao editar a configurao do CUPS. Alguns exemplos de configurao que voc queira inicialmente alterar sero apresentados aqui. Antes de editar o arquivo de configurao, voc deve fazer uma cpia do arquivo original e proteg-lo contra sobrescrio, porque assim voc ter os ajustes originais como uma referncia, e para reusar como necessrio. 44

Rede Copiar o arquivo /etc/cups/cupsd.conf e proteg-lo contra sobrescrio com o seguinte comando, executado na linha de comando:

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 email designado para o administrador do servidor CUPS, simplesmente edite o arquivo de configurao /etc/cups/cupsd.conf com seu editor de textos predileto, e altere a diretiva ServerAdmin de acordo. Por exemplo, se voc o administrador do servidor CUPS, e seu email bjoy@somebigco.com, Ento voc dever alterar a diretiva ServerAdmin para ficar como:

ServerAdmin bjoy@somebigco.com

Para mais exemplos de diretivas de configurao no arquivo de configurao do servidor CUPS, veja a pgina de manual do sistema relacionada atravs da utilizao do seguinte comando no prompt de um terminal:

man cupsd.conf

Cada vez que voc fizer alteraes no arquivo de configurao /etc/cups/cupsd.conf, voc precisar re-iniciar o servidor CUPS digitando o seguinte comando no prompt de um temrinal:

sudo /etc/init.d/cupsys restart

Algumas das outras configuraes do servidor CUPS so feitas no arquivo /etc/cups/cups.d/ports.conf: Listen: Por padro no Ubuntu, o servidor CUPS escuta somente na interface de loopback no endereo de IP 127.0.0.1. Para instruir o CUPS a escutar num endereo IP de uma rede, voc deve especificar um hostname, um endereo de IP, ou opcionalmente, um endereo/porta de acordo com as diretivas Listen. Por exemplo, se seu servidor CUPS fica numa rede local com o endereo de IP 192.168.10.250 e voc gostaria de torn-lo acessvel para outros sistemas em sua sub-rede, voc dever editar o arquivo /etc/cups/cups.d/ports.conf e adicionar uma diretiva Listen, como:

Listen 127.0.0.1:631 # Loopback existente Listen /var/run/cups/cups.sock # Escuta de socket existente Listen 192.168.10.250:631 # Escutando na interface LAN, porta 631 (IPP)

No exemplo acima, voc deve comentar ou remover a referncia ao endereo Loopback (127.0.0.1) se voc no desejar que o cupsd escute naquela interface, mas sim preferir que ele escute somente na interface Ethernet da sua Rede Local (LAN). Para habilitar a escuta para todas as interfaces

45

Rede de rede em que um hostname esteja ligado, inclundo a loopback, voc pode criar uma entrada de Listen para o hostname socrates como:

Listen socrates:631 # Escute em todas as interfaces pelo hostname 'socrates'

ou omitindo a diretriz Listen e usando Port invs, como:

Port 631 # Escute na porta 631 em todas as interfaces

9.3. Referncias
Website 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 protoloco mais comum usado para transferir pginas de internet o Hyper Text Transfer Protocol (HTTP - Protocolo de transferncia de hipertexto). Protocolos como Hyper Text Transfer Protocol over Secure Sockets Layer (HTTPS - Protocolo seguro de transferncia de hipertexto) e File Transfer Protocol (FTP - Protocolo de transferncia de arquivo), um protocolo para enviar e receber arquivos, so tambm suportados. Servidores Web Apache so geralmente utilizados em conjunto com o motor de banco de dados MySQL, a linguagem de de construo de scripts pr-processadora de hiper-texto (PHP), e outras linguagens de construo de scripts populares como o Python e o Perl. Essa configurao denominada LAMP (Linux, Apache, MySQL e Perl/Python/PHP) e d forma a uma poderosa e robusta plataforma de desenvolvimento e hospedagem de aplicaes basedas na web.

10.1. Instalao
O servidor web Apache2 est disponvel no Ubuntu Linux. Para instalar o Apache2: No prompt de um terminal informe o seguinte comando:
# sudo apt-get install apache2#

10.2. Configurao
O Apache configurado colocando-se diretivas em arquivos de configurao de texto puro. O arquivo de configurao principal chamado apache2.conf. Alm disso, outros arquivos de configurao podem ser adicionados utilizando-se a diretiva Include, e caracteres coringa (wildcards) podem ser utilizados para incluir vrios arquivos de configurao. Qualquer diretiva pode ser colocada em qualquer desses arquivos de configurao. Mudanas no arquivo de configurao apenas so reconhecidas pelo Apache2 quando este for iniciado ou reiniciado. O servidor tambm ir ler um arquivo contendo os tipos mime de documentos; o nome do arquivo definido pela diretiva TypesConfig, e mime.types por padro.

47

Rede O arquivo de configurao padro do Apache2 o /etc/apache2/apache2.conf. Voc pode editar esse arquivo para configurar o servidor Apache2. Voc pode configurar o nmero da porta, raiz dos documentos, mdulos, arquivos de log, hosts virtuais, etc. 10.2.1. Configuraes Bsicas Essa seo explica os parmetros de configurao essenciais do servidor Apache2. Procure pela Documentao do Apache2 [http://httpd.apache.org/docs/2.0/] para mais detalhes. O Apache2 vem com uma configurao padro amigvel para hosts virtuais. Isto , ele configurado com um host virtual nico padro (utilizando a diretiva VirtualHost) o qual pode ser modificado ou utilizado como est se voc tiver apenas um site, ou ainda usado como modelo para hosts virtuais adicionais caso voc tenha mltiplos sites. Se no for alterado, o host virtual padro servir como seu site padro, ou o site que os usurios utilizaro caso a URL que eles especifiquem no bata com a diretiva ServerName de nenhum de seus sites customizados. Para modificar o virtual host padro, edite o arquivo /etc/apache2/sites-available/default. Caso voc deseje configurar um novo host virtual ou site, copie esse arquivo para o mesmo diretrio com um nome de sua escolha. Por exemplo, sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/meunovosite. Edite o novo arquivo para configurar o novo site utilizando algumas das diretivas descritas abaixo. A diretiva ServerAdmin especifica o endereo de email a ser anunciado como do administrador do servidor. O valor padro webmaster@localhost. Ele deve ser alterado para um endereo de email que seja entregue para voc (caso voc seja o administrador do servidor). Se seu website possuir um problema, o Apache2 mostrar uma mensagem de erro contendo este endereo de email para qual o problema poder ser relatado. Encontre esta diretiva no arquivo de configurao do site site em /etc/apache2/sites-available. A diretiva Listen especifica a porta, e opcionalmente o endereo IP, na qual o Apache2 ir escutar. Se o endereo IP no for especificado, o Apache2 ir escutar em todos os endereos IP designados para a mquina no qual ele esteja rodando. O valor padro para a diretiva Listen 80. Altere isso para 127.0.0.1:80 para fazer com que o Apache apenas escute apenas na sua interface de loopback, de forma que ele esteja disponvel para a Internet, para (por exemplo) 81 para mudar a porta no qual ele escuta, ou deixe o valor como est para operao normal. Esta diretiva pode ser encontrada e alterada em seu prprio arquivo, /etc/apache2/ports.conf A diretiva ServerName opcional e especifica qual a FQDN seu site dever responder. O host virtual padro no possui diretiva ServerName especificada, portanto ele ir responder a todas as requisies que no combinem com uma diretiva ServerName em outro host virtual. Se voc acabou de adquirir o nome de domnio ubunturocks.com e gostaria de hosped-lo no seu servidor Ubuntu, o valor da diretiva ServerName no arquivo de configurao do seu host virtual dever ser ubunturocks.com. Adicione esta diretiva ao novo arquivo de site virtual que voc criou antes (/etc/apache2/sites-available/meunovosite). VocServerAlias para isso.
VocServerAlias *.ubunturocks.com ir

A diretiva DocumentRoot especifica onde o Apache deve procurar pelos arquivos que formam o site. O valor padro /var/www. Nenhum site est configurado l, mas voc pode descomentar a 48

Rede diretiva RedirectMatch em /etc/apache2/apache2.conf as requisies sero redirecionadas para /var/www/apache2-default onde o site padro do Apache2 aguarda. Altere este valor no arquivo de host virtual do seu site e lembre-se de criar aquele diretrio se necessrio! O diretrio /etc/apache2/sites-available no decodificado pelo Apache2. Links simblicos em /etc/apache2/sites-enabled apontam para sites "disponveis" (available). Utilize o utilitrio a2ensite (Apache2 Enable Site) para criar esses links simblicos, como neste exemplo: sudo a2ensite meunovosite onde o arquivo de configurao do seu site /etc/apache2/sites-available/meunovosite. Semelhantemente, o utilitrio a2dissite deve ser usado para desabilitar sites. 10.2.2. Configurao Padro Esta seo explica a configurao das definies padro do servidor Apache2. Por exemplo, se voc adicionar um host virtual, as definies que voc configurar para o host virtual tm precedncia para aquele host virtual. Para uma diretiva no definida dentro da definio de host virtual, o valor padro utilizado. O DirectoryIndex a pgina padro servida pelo servidor quando o usurio requisita um ndice de um diretrio especificando uma barra (/) no final do nome do diretrio. Por exemplo, quando um usurio solicita a pgina http://www.examplo.com/este_diretrio/, ele ou ela vai ver: o DirectoryIndex (Diretriondice) se ele existir; uma lista do diretrio gerado pelo servidor caso no exista e as opes de ndices estiverem especificadas; ou uma pgina de Permisso Negada se nenhuma das duas opes forem verdadeiras. O servidor ir tentar encontrar um dos arquivos listados no DirectoryIndex e ir retornar o primeiro que for encontrado. Se ele no encontrar nenhum destes arquivos e se as Opes de ndices estiver ajustadas para aquele diretrio, o servidor ir gerar e retornar uma lista, no formato HTML, dos subdiretrios e arquivos no diretrio. O valor pado, encontrado em /etc/apache2/apache2.conf "index.html index.cgi index.pl index.php index.xhtml". Portanto, se o Apache2 encontras um arquivo no diretrio solicitado que bate com um destes nomes, o primeiro ser mostrado. A diretiva ErrorDocument permite que voc especifique um arquivo para o Apache usar para um evento especfico de erro. Por exemplo, se um usurio solicitar um recurso que no existe, um erro 404 ocorrer, e por padro de configurao do Apache2, o arquivo /usr/share/apache2/error/HTTP_NOT_FOUND.html.var ser mostrado. Este arquivo no est na Raiz de Documentos do servidor, mais existe uma diretiva de apelido no /etc/apache2/apache2.conf que redireciona as requisies do diretrio /error para /usr/share/apache2/error/. Para ver a listagem de directivas padro de Documentos de Erro, use o comando: grep ErrorDocument /etc/apache2/apache2.conf Por padro, o servidor registra o arquivo de transferncias no arquivo /var/log/apache2/access.log. Voc pode mudar isto site por site em seu arquivo de configurao de host virtual atravz da diretriz CustomLog, ou omiti-la para aceitar o padro, especificado no arquivo /etc/apache2/apache2.conf. Voc pode tambm especificar o arquivo onde os erros sero registrados, atravs da diretriz ErrorLog, que por padro /var/log/apache2/error.log. Estes 49

Rede so mantidos separados do log de transferncia para permitir eliminao de problemas com seu servidor Apache2. Voc pode tambm especificar o LogLevel (o valor padro "alertar") e o LogFormat (veja o /etc/apache2/apache2.conf para o valor padro). Algumas opes so especificadas num esquema por diretrios ao invz de um esquema por servidor. A diretiva Option uma dessas diretivas. Uma instncia de Directory encapsulada entre tags semelhantes ao XML, como em:
<Directory /var/www/mynewsite> ... </Directory>

A diretiva Options com um instncia de Directory aceita um ou mais dos seguintes valores (entre outros), separados por espaos: ExecCGI - Permite execuo de scripts CGI. Scripts CGI no so executados se esta opo no estiver abilitada. A maioria dos arquivos no devem ser executados como scripts CGI. Isto pode ser muito perigoso. Scripts CGI devem ser mantidos em diretrios separados fora do DocumentRoot, e somente este diretrio deve ter a opo ExecCGI habilitada. Isto o padro, e o local padro para os scripts CGI /usr/lib/cgi-bin. Includes - Permite incluses no lado do servidor. Incluses no lado do servidor permitem que um arquivo HTML inclua outros arquivos. Essa no uma opo comum. Veja o Apache2 SSI Howto [http://httpd.apache.org/docs/2.0/howto/ssi.html] para maiores informaes. IncludesNOEXEC - Permite server-side includes, mais desabilita uso dos comandos #exec e #include nos scripts CGI Indexes - Mostra uma lista formatada dos contedos dos diretrios, caso no exista um DirectoryIndex (tal como index.html) no diretrio requisitado . Por motivos de segurana, isto geralmente no deveria estar hablilitado, e certamente no deveria estar habilitado no seu diretrio DocumentRoot. Habilite esta opo com cuidado, diretrio por diretrio somente se voc tem certeza de que quer que os usurios vejam o contedo inteiro do diretrio. Multiview - Suporta multi-vises negociadas pelo contedo; esta opo est desabilitada por padro por motivos de segurana. Veja a Documentao do Apache2 para esta opo [http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews]. SymLinksIfOwnerMatch - Somente segue os links simblicos caso o arquivo alvo ou diretrio seja do mesmo dono que o link. 10.2.3. Configuraes de Hosts Virtuais Hosts virtuais permitem que voc rode diferentes servidores para diferentes endereos IP, diferentes nomes, ou diferentes portas da mesma mquina. Por exemplo, voc pode rodar o website por http://www.exemplo.com.br e http://www.outroexemplo.com.br no mesmo servidor Web usando hosts virtuais. Esta opo corresponde diretiva <VirtualHost> para o virtual host padro e virtual 50

Rede hosts baseados em IP. E corresponde diretiva <NameVirtualHost> para um virtual host baseado em nomes. As diretivas para um host virtual somente so aplicadas para um host virtual em particular. Se a diretiva setada para escopo de servidor e no definida dentro das configuraes de um virtual host, as configuraes padro sero usadas. Por exemp#o, voc pode definir o email do Webmaster e no definir um email individual para cada virtual host. Ajuste a diretiva DocumentRoot para o diretrio que contm o documento raz (como o index.html) para o host virtual. O DocumentRoot padro /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 seo explica como configurar as opes bsicas de um servidor. LockFile - A diretiva LockFile define o caminho do arquivo de trava usado quando o servidor compilado tanto com USE_FCNTL_SERIALIZED_ACCEPT quanto com USE_FLOCK_SERIALIZED_ACCEPT. obrigatrio armazen-lo no disco local. Deixe o valor padro a menos que o diretrio de logs esteja localizando em um compartilhamento NFS. Se este for o caso, o valor padro dever ser alterado para um caminho no disco local e para um diretrio no qual apenas o root tem permisses de leitura. PidFile - A diretiva PidFile define o arquivo em que o servidor gravar o seu ID de processo (pid). Este arquivo deve ser permisses de leitura somente para o root. Na maioria dos casos, o valor padro deve ser deixado. User - A diretiva User seta o UserID usado pelo servidor para responder as solicitaes. Esta opo determina o acesso ao servidor. Qualquer arquivo inacessvel a este usurio ser tambm inacessvel aos visitantes do seu website. O valor padro para o User www-data A no ser que voc saiba exatamente o que est fazendo, no defina a diretiva User para root. Usando o root como User (usurio) voc ir criar largas brechas de sergurana para seu ser servidor Web. A diretiva Group similar a diretiva User. Group define o grupo que o servidor ir responder as solicitaes. O grupo padro www-data. 10.2.5. Mdulos do Apache O Apache um servidor modular. Isso significa que somente as funcionalidades bsicas so inclusas no ncleo do servidor. A extenso das funcionalidades so disponibilizadas atravs de mdulos, que podem ser carregados no Apache. Por padro, alguns mdulos bsicos j esto inclusos na hora da 51

Rede compilao. Se o servidor for compilado para usar o carregamento dinmico de mdulos, ento os mdulos podem ser compilados separadamente, e adicionados qualquer hora usando a diretiva LoadModule. Caso contrrio, o Apache2 precisa ser recompilado para adicionar ou remover mdulos. O Ubuntu compila o Apache2 de maneira que permita o carregamento dinmico de mdulos. As diretivas de configurao podem ser includas condicionalmente, com a presena de um mdulo em particular includo num bloco <IfModule>. Voc pode instalar mdulos adicionais do Apache2 e us-los com o seu servidor WEB. Voc pode instalar mdulos do Apache2 usando o comando apt-get. Por exemplo, para instalar o mdulo do Apache2 para autenticao por MYSQL, voc pode executar o seguinte comando de um prompt de terminal (linha de comando)

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

Quando voc instala um mdulo, ele estar disponvel no diretrio /etc/apache2/mods-available. Voc pode usar o comando a2enmod para habilitar um mdulo. Voc pode usar o comando a2dismod para desabilitar um mdulo. Quando voc desabilita um mdulo, ele estar disponvel no diretrio /etc/apache2/mods-enabled.

10.3. Configuraes HTTPS


O mdulo mod_ssl adiciona uma funcionalidade importante no servidor Apache2 - a habilidade de encriptar comunicaes. Portanto, quando o seu navegador se comunica utilizando encriptao SSL, o prefixo https:// usado no comeo do Localizador de Recurso Uniforme (URL) na barra de navegao do navegador. O mdulo mod_ssl est disponvel no pacote apache2-common. Se voc possuir este pacote instalado, voc pode executar o comando a seguir de um prompt de terminal para ativar o mdulo mod_ssl:

sudo a2enmod ssl

10.3.1. Certificados e Segurana Para configurar um servidor seguro, use a criptografia de chave pblica para criar um par de chaves pblica e privada. Na maioria dos casos, voc manda o seu pedido de certificao (incluindo a sua chave pblica), uma prova da identidade da sua companhia e o pagamento para uma Autoridade de Certificados (CA). A CA verifica o pedido de certificao e sua identidade, e depois manda de volta um certificado para o seu servidor seguro. Alternativamente, voc pode criar o seu certificado auto-assinado. Note que, entretando, o certificado auto-assinado no deve ser usando na maioria dos ambientes de produo. Certificados auto-assinados no so automaticamente aceitos pelo navegador dos usurios. Os usurios so questionados pelo navegador para aceitar o certificado e criar uma conexo segura. Assim que voc tiver um certificado auto-assinado ou um certificado assinado por um CA de sua escolha, voc precisa instal-lo no seu servidor seguro. 52

Rede 10.3.2. Tipos de Certificados Voc precisa de uma chave e um certificado para operar o seu servidor seguro, o que significa que voc tanto pode gerar uma certificado auto-assinado como comprar um certificado assinado por um CA. Um certificado assinado por um CA prov duas capacidades importantes para o seu servidor: Navegadores (em geral) automaticamente reconhecem o certificado e permitem uma conexo segura sem questionamentos ao usurio. Quando um CA emite um certificado assinado, est garantindo a identidade da organizao que est provendo as pginas da web para o navegador. A maioria dos navegadores que suportam SSL possuem uma lista dos CAs cujo certificados so automaticamente aceitos. Se o navegador encontrar um certificado cujo CA autorizador no esteja na lista, o navegador ir perguntar para o usurio se ele deve aceitar ou rejeitar a conexo. Voc pode gerar um certificado auto-assinado para o seu servidor seguro, mas fique atento para o fato de que certificados auto-assinados no fornecem a mesma funcionalidade que certificados assinados por um CA. Um certificado auto-assinado no automaticamente reconhecido pela maioria dos navegadores, e um certificado auto-assinado tambm no fornece nenhuma garantia quanto identidade da organizao que est disponibilizando o website. Um certificado assinado por um CA fornece essas duas importantes capacidades para um servidor seguro. O processo de receber um certificado assinado por um CA bastante fcil. Segue um resumo rpido: 1. Cria um par de chaves criptogrficas privada e pblica. 2. Cria uma requisio de certificado baseada na chave pblica. A requisio de certificado contm informao a respeito do seu servidor e da empresa que o hospeda. 3. Envie o pedido de certificado, juntamente com documentos provando sua identidade, para o CA. No podemos lhe dizer qual Autoridade em Certificados (CA) escolher. Sua deciso deve ser baseada nas suas experincias anteriores, na experincia de amigos ou colegas, ou puramente por fatores financeiros. Uma vez decido qual CA usar, voc precisa seguir as instrues que eles disponibilizam em como obter um certificado deles. 4. Quando o CA est satisfeito de que voc de fato quem diz ser, eles lhe enviam um certificado digital. 5. Instale este certificado em seu servidor seguro, e comece a realizar transaes seguras. No importa se est recebendo um certificado de um CA ou gerando o seu certificado auto-assinado, o primeiro passo criar uma chave. 10.3.3. Gerando uma Assinatura de Requisio de Certificado (CSR) Para gerar o Pedido de Assinatura de Certificado (CSR - Certificate Signing Request) voc deve criar sua prpria chave. Voc pode rodar o seguinte comando no prompt do terminal (linha de comando) para criar a chave: 53

Rede

openssl genrsa -des3 -out server.key 1024

Gerando chave privada RSA, 1024 bit mdulos longos .....................++++++ .................++++++ impossvel escrever 'estado aletario' e 65537 (0x10001) Informe a chave senha para o server.key:

Agora, voc pode inserir a sua senha. Para uma segurana melhor, ela deve conter no mnimo oito caracteres. O tamanho mnimo quando -des3 especificado de quatro caracteres. bom incluir nmeros e/ou pontuao e no ser uma palavra de dicionrio. Tambm, lembre-se que a sua senha sensvel caixa alta e/ ou baixa. Redigite a sua senha para verificao. Uma vez redigitado corretamente, a chave do servidor gerada e armazenada no arquivo server.key. Voc pode rodar um servidor seguro sem uma senha. Isso conveniente porque voc no precisa entrar com a senha todas as vezes que incializa o seu servidor seguro, mas muito inseguro e uma compromisso da chave significar a compromisso do servidor tambm. Em qualquer caso, voc pode escoher em rodar o seu servidor sem a frase, deixar de lado a alterao -des3 na gerao da frase ou lanando um novo comando no prompt do terminal (linha de comando):

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

Uma vez executado o comando abaixo, a chave insegura ser armazenada no arquivo server.key.insecure. Voc pode usar esse arquivo para gerar o CSR sem senha. Para criar um CSR, execute o seguinte comando no prompt do terminal:

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

Ele ir solicitar que voc informe a senha. Se voc informar a senha correta ele ir pedir para que voc informe o Nome da Empresa, Nome do Site, Email, etc. Assim que voc informar todos esses detalhes, seu CSR ser criado e armazenado no arquivo server.csr. Voc pode enviar esse arquivo CSR para uma CA para processamento. A CAN ir usar esse arquivo CSR para emitir o certificado. Por outro lado, voc pode criar certificados auto-assinados usando esse CSR. 10.3.4. Criando um certificado Auto-Assinado Para criar um certificado auto-assinado, execute o seguinte comando no prompt de terminal:

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

54

Rede O comando abaixo ir lhe pedir uma senha. Assim que voc informar a senha correta, seu certificado ser criado e ele ser armazenado no arquivo server.crt. Se o seu servidor seguro deve ser utilizado em um ambiente de produo, voc provavelmente precisa de um certificado assinado por uma CA. No recomentado usar certificados auto-assinados. 10.3.5. Instalando o Certificado Voc pode instalar o arquivo chave server.key, o arquivo de certificado server.crt ou o arquivo de certificado fornecido pela sua CA rodando os seguintes comandos num prompt de terminal:

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

Voc deve adicionar as quatro linhas abaixo no arquivo /etc/apache2/sites-available/default ou no arquivo de configurao do seu host virtual seguro. Voc deve coloc-las na seo VirtualHost. Elas devem ser colocadas abaixo da linha DocumentRoot:
SSLEngine on SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key

O HTTPS deve escutar na porta nmero 443. Voc deve adicionar a seguinte linha ao arquivo /etc/apache2/ports.conf.
Listen 443

10.3.6. Acessando o Servidor Assim que seu certificado estiver instalado, voc deve re-iniciar seu servidor web. Voc pode executar o seguinte comando em um prompt de terminal para re-iniciar seu servidor web:
sudo /etc/init.d/apache2 restart

Voc deve lembrar e informar a senha toda vez que iniciar o seu servidor web seguro.

Voc ser perguntado sobre sua senha. Assim que voc informar a senha correta, o servidor web seguro ir ser iniciado. Voc pode acessar pginas seguras no servidor digitando https://seu_hostname/url/ na barra de endereos do seu navegador.

10.4. Referncias
Documentao do Apache2 [http://httpd.apache.org/docs/2.0/] 55

Rede Documentao do Mod SSL [http://www.modssl.org/docs/]

56

Rede

11. PHP5 - Linguagem de Scripts


PHP uma linguagem de scripts de propsito geral adequada para desenvolvimento Web. Os scripts PHP podem ser embutidos em HTML. Esta seo explica como instalar e configurar PHP5 num Sistema Ubuntu com Apache2 e MySQL. Esta seo assume que voc j instalou e configurou o Servidor Web Apache 2 e o Servidor de Banco de Dados MySQL. Voc pode consultar a seo do Apache 2 e as sees do MySQL neste documento para instalar e configurar o Apache 2 e o MySQL, respectivamente.

11.1. Instalao
O PHP5 est disponvel no Ubuntu Linux. Para instalar o PHP5 voc pode pode digitar o seguinte comando em um terminal:

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

Voc pode executar os scripts do PHP5 a partir da linha de comando. Para executar os scripts do PHP5 a partir da linha de comando voc deve instalar o pacote php5-cgi. Para instalar o pacote php5-cgi, digite o seguinte comando em um terminal:

sudo apt-get install php5-cgi

Para usar o MySQL com o PHP5, voc deve instalar o pacote php5-mysql. Para instalar o pacote php5-mysql, digite o seguinte comando em um terminal:

sudo apt-get install php5-mysql

Da mesma maneira para usar o PostgreSQL com o PHP5, voc deve instalar o pacote php5-pgsql. Para instalar o pacote application>php5-pgsql

11.2. Configurao
Uma vez instalado o PHP5, voc pode executar os scripts do PHP5 a partir do seu navegador. Se voc instalou o pacote php5-cgi, voc pode executar os scripts do PHP5 a partir da linha de comando. 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. 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: 57

Rede
sudo /etc/init.d/apache2 restart

11.3. Testando
Para verificar a sua instalao, voc pode executar o seguinte script phpinfo do PHP5:

<?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 - Sevidor Proxy


Squid um servidor proxy cache completo que fornece servi O servidor proxy cache Squid uma excelente soluo para uma vasta gama de necessidades de servidores de cache e proxy, ele atende desde pequenos escritrios at redes de grandes empresas fornecendo mecanismos de controle de acesso granulares e monitoramento de parmetros crticos via Protocolo Simples de Gerenciamento de Redes (SNMP). Quando escolher um computador para uso dedicado funo de servidor proxy Squid, ou servidores de cache, certifique-se de que seu sistema estar configurado com uma grande quantidade de memria fsica, j que o Squid mantm um cache em memria para melhor performance.

12.1. Instalao
No prompt de terminal, digite os seguintes comandos para instalar o servidor Squid:

sudo apt-get install squid squid-common

12.2. Configurao
O Squid configurado atravs da edio de diretivas presentes no arquivo de configurao /etc/squid/squid.conf. Os exemplos a seguir ilustram algumas das diretivas que podem ser modificadas para afetar o coportamente do servidor Squid. Para uma configurao mais especializada do Squid, veja a seo de referncias. Antes de editar o arquivo de configurao voc deve fazer uma cpia do arquivo original e proteg-lo contra gravao, assim voc ter as configuraes originais para referncia e re-utilizao quando necessrio. Copie o arquivo /etc/squid/squid.conf e proteja-o contra gravao informando os seguintes comandos no prompt de comando de um 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 ouvir na porta TCP 8888 ao invs da porta padro TCP 3128, modifique a diretiva http_port da seguinte maneira: http_port 8888 Modifique a diretiva visible_hostname de forma a dar ao servidor Squid um nome de host especfico. Esse nome de host no precisa ser necessriamente o nome de host do computador. Nesse exemplo ele configurado como sendo weezie visible_hostname weezie 59

Rede Novamente, Usando o controle de acesso do Squid, voc pode configurar o uso de servios de Internet filtrados pelo squid para estar disponvel somente para usurios de certos endereos de IP. Por exemplo, iremos ilustrar o acesso somente de usurios da sub-rede 192.168.42.0/24: Adicione as seguintes informaes no final da seo ACL do seu arquivo /etc/squid/squid.conf: acl fortytwo_network src 192.168.42.0/24 Ento, adicione as seguintes informaes no topo da seo http_access do seu arquivo /etc/squid/squid.conf: http_access allow fortytwo_network Usando os excelentes recursos de controle de acesso do Squid, voc pode configurar o uso de servios da Internet atravs de proxy para estarem disponveis apenas durante o horrio normal de trabalho. Por exemplo, ns iremos ilustrar o acesso de empregados de uma empresa que opera entre as 9:00AM e 5:00PM, de Segunda Sexta e que usa a sub-rede 10.1.42.0/24: Adicione as seguintes informaes no final da seo ACL do seu arquivo /etc/squid/squid.conf: acl biz_network src 10.1.42.0/24 acl biz_hours time M T W T F 9:00-17:00 Ento, adicione as seguintes informaes no topo da seo http_access do seu arquivo /etc/squid/squid.conf: http_access allow biz_network biz_hours Depois de fazer alteraes no arquivo /etc/squid/squid.conf, salve-o e reinicie o servidor squid para que as alteraes tenham efeito usando o seguinte comando em um prompt de terminal:

sudo /etc/init.d/squid restart

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

60

Rede

13. Version Control System


O controle de verses a arte de gerenciar mudanas na informao. Ele tem sido h muito tempo uma ferramenta crucial para programadores, que tipicamente passam seu tempo fazendo pequenas mudanas em um software e ento desfazendo essas mudanas no outro dia. Mas a utilidade de softwares de controle de verses vo muito alm do mundo dos desenvolvedores de software. Em qualquer lugar que voc possa encontrar pessoas usando computadores para gerenciar informaes que mudam constantemente, existe espao para o controle de verses.

13.1. Subversion
O Subversion um sistema de controle de verses de cdigo aberto. Ele gerencia arquivos e diretrios atravs do tempo. Uma rvore de arquivos colocada em um repositrio central. Esse repositrio muito parecido com um servidor de arquivos comum, exceto pelo fato de que ele se lembra de todas as alteraes feitas nos arquivos e diretrios. 13.1.1. Instalao Para acessar o repositrio Subversion usando o protocolo HTTP voc precisa instalar e configurar um servidor web. O Apache2 recomendado para trabalhar com o Subversion. Por favor consulte a sub-seo HTTP na seo do Apache2 para instalar e configurar o Apache2. Para acessar o repositrio Subversion usando o protocolo HTTPS voc precisa instalar e configurar um certificado digital no seu servidor web Apache2. Por favor consulte a sub-seo HTTPS na seo do Apache2 para instalar e configurar um certificado digital. Para instalar o Subversion, execute o seguinte comando no prompt de terminal:

sudo apt-get install subversion libapache2-svn

13.1.2. Configurao do Servidor Este passo assume que voc possui instalado os pacotes acima mencionados em seu sistema. Esta sesso explica como criar um repositrio Subversion e acessar o projeto. 13.1.2.1. Cria um Repositrio Subversion O repositrio Subversion pode ser criado usando o seguinte comando de um prompt de terminal:

svnadmin create /path/to/repos/project

13.1.3. Mtodos de Acesso Os repositrios do Subversion podem ser acessados (retirados) atravs de diversos mtodos -- no disco local, atravs de vrios protocolos de rede. Uma localizao de repositrio, entretanto, sempre 61

Rede uma URL. A tabela descreve como diferentes esquemas de URL apontam para os mtodos de acesso disponveis.

Tabela 4.1. Mtodos de Acesso


Esquema file:// http:// Mtodo de Acesso acesso direto ao repositrio (no disco local) Acesso via protocolo WebDAV aos servidores web Apache2 dotados de Subversion https:// svn:// O mesmo que http://, mais com criptografia SSL Acesso via protocolo customizado para um servidor svnserve Mesmo que svn://, mais atravs de um tnel SSH

svn+ssh://

Nessa seo, ns iremos ver como configurar o Subversion para todos esses mtodos de acesso. Aqui, ns iremos cobrir o bsico. Para detalhes avanados de utilizao consulte o livro do svn [http://svnbook.red-bean.com/]. 13.1.3.1. Acesso direto ao repositrio (file://) Esse o mais simples de todos os mtodos de acesso. Ele no requer que nenhum processo do servidor Subversion esteja rodando. Esse mtodo de acesso usado para acessar o Subversion a partir da mesma mquina. A sintaxe do comando, informado no prompt de um terminal, a seguinte:

svn co file:///path/to/repos/project

ou

svn co file://localhost/caminho/para/o/repositorio/do/projeto

Se voc no especificar o nome do host, havero trs barras (///) -- duas para o protocolo (arquivo, nesse caso) mais a barra inicial do caminho. Se voc especificar o nome do host, voc dever usar duas barras (//). As permisses do repositrio dependem das permisses do sistema de arquivos. Se o usurio tem permisso de leitura/gravao, ele pode fazer checkout e fazer commit para o repositrio. 13.1.3.2. Acesso via protocolo WebDAV (http://) Para acessar o repositrio atravs do protocolo WebDAV, voc precisa configurar seu servidor web Apache 2. Voc precisa adicionar o seguinte trecho ao seu arquivo /etc/apache2/apache2.conf:
<Location /svn> DAV svn SVNPath /caminho/para/o/repositorio

62

Rede
AuthType Basic AuthName "Nome do seu repositorio" AuthUserFile /etc/subversion/passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location

Em seguida, voc precisa criar o arquivo /etc/subversion/passwd. Esse arquivo contm detalhes de autenticao de usurios. Para adicionar uma entrada, ex.: para adicionar um usurio, voc pode rodar o seguinte comando a partir do prompt de um terminal:

htpasswd2 /etc/subversion/passwd user_name

Esse comando ir lhe solicitar a entrada de uma senha. Assim que voc informar a senha, o usurio ser adicionado. Agora, para acessar o repositrio voc precisa rodar o seguinte comando:
svn co http://servername/svn

As senhas so transmitidas em texto simples. Se voc estiver preocupado com roubo de senhas, voc est convidado a usar criptografia SSL. Para detalhes, por favor consulte a prxima seo. 13.1.3.3. Acesso via protocolo WebDAV com criptografia SSL (https://) Acessar o repositrio Subversion via protocolo WebDAV com criptografia SSL (https://) semelhante a acessar via http:// exceto pelo fato de que voc precisa instalar e configurar um certificado digital no seu servidor web Apache2. Voc pode instalar um certificado digital fornecido por uma autoridade de certificao como a Verisign. Alternativamente, voc pode instalar seus prprios certificados auto-assinados. Esse passo assume que voc tenha instalado e configurado um certificado digital no seu servidor web Apache 2. Agora, para acessar o repositrio do Subversion, por favor consulte a seo acima! Os mtodos de acesso so exatamente os mesmos, exceto pelo protocolo. Voc precisa usar https:// para acessar o repositrio do Subversion. 13.1.3.4. Acessar via protocolo especfico (svn://) Assim que o repositrio do Subversion criado, voc pode configurar o protocolo de acesso. Voc pode editar o arquivo /path/to/repos/project/conf/svnserve.conf para configurar o controle de acesso. Por exemplo, para configurar a autenticao voc pode descomentar as seguintes linhas no arquivo de configurao:
# [comum] # password-db = passwd

Depois de descomentar as linhas acima voc pode manter a lista de usurios no arquivo passwd. Ento, edite o arquivo passwd no mesmo diretrio e adicione o novo usurio. A sintaxe a seguinte: 63

Rede
nomedousurio = senha

Para mais detalhes, por favor referir ao arquivo. Agora, para acessar o Subversion via protocolo especfico svn://, estando na mesma maquina ou no, voc pode rodar o svnserver usando o comando svnserve. A sintaxe a seguinte:
$ svnserve -d --foreground -r /caminho/para/o/repositorio # -d -- modo daemon # --foreground -- roda em primeiro plano (til para deteco de erros) # -r -- raiz do diretrio a ser servido Para maiores detalhes de utilizao, por favor consulte: $ svnserve --help

Assim que voc rodar esse comando, o Subversion iniciar ouvindo na porta padro (3690). Para acessar o repositrio do projeto, voc precisa rodar o seguinte comando a partir de um prompt de terminal:

svn co svn://hostname/project project --username nome_do_usurio

Baseado na configurao do servidor, ele perguntar por uma senha. Assim que voc estiver autenticado, ele ir fazer a retirada do cdigo do repositrio do Subversion. Para sincronizar o repositrio do projeto com a cpia local, voc pode rodar o sub-comando update. A sintaxe do comando, informado em um prompt de terminal, a seguinte:

cd diretorio_do_projeto ; svn update

Para maiores detalhes sobre a utilizao de cada sub-comando do Subversion, voc pode consultar o manual. Por exemplo, para aprender mais sobre o comando co (checkout), por favor rode o seguinte comando em um prompt de terminal:
svn co help

13.1.3.5. Acessar via protocolo especfico com criptografia SSL (svn+ssh://) A configurao e o processo do servidor o mesmo do mtodo svn://. Para detalhes, por favor consulte a seo acima. Esse passo assume que voc tenha seguido o passo acima e iniciado o servidor Subversion usando o comando svnserve. Tambm assume-se que o servidor ssh esteja rodando na maquina e que ele permita conexes entrantes. Para confirmar, por favor tente fazer login na maquina usando ssh. Se voc puder fazer login, tudo est perfeito. Se voc no puder fazer login, por favor resolva isso antes de continuar. O protoclo svn+ssh:// usado para acessar o repositrio do Subversion usando criptografia SSL. Os dados transferidos so criptografados usando esse mtodo. Para acessar o repositrio do projeto (por exemplo com um checkout), voc precisa usar a seguinte sintaxe de comando: 64

Rede

svn co svn+ssh://hostname/var/svn/repos/project

Voc precisa usar o caminho completo (/caminho/para/o/repositorio/do/projeto) para acessar o repositrio do Subversion usando esse mtodo de acesso. Baseado na configurao do servidor ele perguntar por uma senha. Voc precisa informar a senha que voc usa para fazer login via ssh. Uma vez que esteja autenticado, ele retirar o cdigo do repositrio do Subversion.

13.2. Servidor CVS


O CVS um sistema de controle de verses. Voc pode us-lo para gravar o histrico de arquivos fonte. 13.2.1. Instalao Em um prompt de terminal, informe o seguinte comando para instalar o cvs:

sudo apt-get install cvs

Depois que voc instalar o cvs, voc dever instalar o xinetd para iniciar/parar o servidor cvs. No prompt, informe o seguinte comando para instalar o 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

65

Rede
}

Certifique-se de ter editado o repositrio se voc modificar o repositrio padro localizado em (/var/lib/cvs). Once you have configured xinetd you can start the cvs server by running following command:

sudo /etc/init.d/xinetd start

Voc pode confirmar que o servidor CVS est executando digitando o seguinte comando:

sudo netstat -tap | grep cvs

Quando voc executa esse comando, voc deve visualizar a seguinte linha ou algo similar:

tcp 0 0 *:cvspserver *:* LISTEN

Daqui em diante, voc pode continuar a adicionar usurios, criar novos projetos e administrar o servidor CVS. O CVS permite que o usurio adicione usurios independentemente da instalao do SO hospedeiro. Provavelmente a maneira mais fcil usar os Usurios do Linux para o CVS, entretanto isso oferece problemas potenciais de segurana. Por favor consulte o manual para mais detalhes. 13.2.3. Adicionar Projetos 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

Voc pode usar a varivel ambiental CVSROOT para armazenar o diretrio raiz do CVS. Uma vez que tenha exportado a varivel ambiental CVSROOT, voc pode evit-la usando a opo -d em conjunto com o 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 voc adicionar um novo projeto, o usurio CVS tem permissso de escrita no repositrio CVS (/var/lib/cvs). Por padro, o grupo src tem permisso de escrita no repositrio CVS. Ento, voc pode adicionar um usurio neste grupo, e ele poder ento adicionar e gerenciar projetos no respositrio CVS. 66

Rede

13.3. Referncias
Pgina do Subversion [http://subversion.tigris.org/] Livro do Subversion [http://svnbook.red-bean.com/] Manual do CVS [http://ximbiot.com/cvs/manual/cvs-1.11.21/cvs_toc.html]

67

Rede

14. Bancos de Dados


O Ubuntu prov dois servidores de banco de dados. So eles: MySQL PostgreSQL . Eles esto disponveis no repositrio principal. Esta seo explica como instalar e configurar esses servidores de bancos de dados.

14.1. MySQL
MySQL um servidor de dados SQL rpido, multi-thread, multi-usurio e robusto. Ele adequado para misses crticas, sistema de alto carregamento assim como para embutir em software instalado em massa. 14.1.1. Instalao Para instalar MySQL, execute o seguinte comando a partir do prompt de terminal:

sudo apt-get install mysql-server mysql-client

Quando a instalao estiver completa, o servidor MySQL dever ser iniciado automaticamente. Voc poder executar o seguinte comando em um terminal para checar se o servidor MySQL est rodando.

sudo netstat -tap | grep mysql

Quando voc executa esse comando, voc deve visualizar a seguinte linha ou algo similar:

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

Se o servidor no est executando corretamente, voc pode digitar o seguinte comando para inicializ-lo.

sudo /etc/init.d/mysql restart

14.1.2. Configurao Por padro, a senha de administrador no vem definida. Assim que instalar o MySQL, a primeira coisa que precisa fazer configurar a senha de administrador do MySQL. Para fazer isso, execute os seguintes comandos:

sudo mysqladmin -u root senha novasenhadoroot

sudo mysqladmin -p -u root -h localhost senha novasenhaderootsql

68

Rede Voc pode editar o arquivo /etc/mysql/my.cnf para configurar as opes bsicas -- arquivo de log, nmero da porta, etc. Veja o arquivo /etc/mysql/my.cnf para maiores detalhes.

14.2. PostgreSQL
O PostgreSQL um sistema de banco de dados objeto-relacional que possui os recursos de sistemas de banco de dados comerciais tradicionais com melhorias que sero encontradas na prxima gerao de sistemas DBMS. 14.2.1. Instalao Para instalar PostgreSQL, execute o comando seguinte a partir do prompt de comando:

sudo apt-get install postgresql

Assim que a instalao estiver completa, voc deve configurar o servidor PostgreSQL de acordo com suas necessidades, ainda que a configurao padro seja vivel. 14.2.2. Configurao Por padro, a conexo via TCP/IP est desabilitada. O PostgreSQL suporta mltiplos mtodos de autenticao. Por padro, o mtodo de autenticao IDENT usado. Por favor consulte O Guia de Administrador do PostgreSQL [http://www.postgresql.org/docs/8.1/static/admin.html]. A seguinte discusso assume que voc deseja habilitar conexes TCP/IP e usar o metdo MD5 para autenticaes de clientes. Os arquivos de configurao do PostgreSQL esto armazenados no diretrio /etc/postgresql/<version>/main. Por exemplo, se voc instalar o PostgreSQL 7.4, os arquivos de configurao esto armazenados no diretrio /etc/postgresql/7.4/main. Para configurar a autenticao ident, adicione as entradas no arquivo /etc/postgresql/7.4/main/pg_ident.conf. Para habilitar conexes TCP/IP, edite o arquivo /etc/postgresql/7.4/main/postgresql.conf Localize a linha #tcpip_socket = false e altere-a para tcpip_socket = true. Voc poder editar outros parmetros, se voc souber o que est fazendo! Para detalhes, consulte o arquivo de configurao ou a documentao do PostgreSQL. Por padro, as credenciais de usurio no so definidas para autenticao de cliente por MD5. Ento, primeiro necessrio configurar o servidor PostgreSQL para usar a autenticao de clientes por confiana, conecte a base de dados, configure a senha e reverta a configurao para a autenticao de clientes por MD5 usar. Para habilitar a autenticao de clientes por confiana, edite o arquivo
/etc/postgresql/7.4/main/pg_hba.conf

Comente todas as linhas existentes que usem a autenticao de clientes por ident e MD5 e adicione a seguinte linha: 69

Rede

local all postgres trust sameuser

Ento, executa o seguinte comando para inicializar o servidor PostgreSQL:

sudo /etc/init.d/postgresql start

Assim que o servidor PostgreSQL for iniciado com sucesso, rode o seguinte comando em um prompt de terminal para se conectar ao banco de dados padro de exemplo do PostgreSQL

psql -U postgres -d template1

O comando acima conecta ao banco de dados template1 do PostgreSQL como usurio postgres. Assim que voc se conectar ao servidor PostgreSQL, voc estar no prompt SQL. Voc pode rodar os seguintes comandos SQL no prompt do psql para configurar a senha para o usurio postgres.

template1=# ALTERA USURIO postgres com senha criptografada 'sua_senha';

Depois de configurar a senha, edite o arquivo /etc/postgresql/7.4/main/pg_hba.conf para usar a autenticao MD5: Comente a linha confiana adicionada recentemente e adicione a seguinte linha:

local all postgres md5 sameuser

A configurao abaixo no est de nenhuma forma completa. Por favor consulte o Guia do Administrador do PostgreSQL [http://www.postgresql.org/docs/8.1/static/admin.html] para configurar mais parmetros.

70

Rede

15. Servios de Email


O processo de entrega de um e-mail de um pessoa para outra atravs da rede ou da Internet demanda o trabalho conjunto de muitos sistemas. Cada um desses sistemas precisa estar corretamente configurado para que o processo funcione. O remetente usa um Agente Usurio de Correio (MUA) ou cliente de e-mail, para enviar a mensagem atravs de um ou mais Agentes de Transferncia de Correio (MTA), o qual ir entreg-la para um Agente de Entrega de Correio (MDA) para entreg-la na caixa postal do destinatrio, apartir da qual ser retirada pelo cliente de e-mail do destinatrio, normalmente atravs de um servidor POP3 ou IMAP.

15.1. Postfix
Postfix o Mail Transfer Agent (MTA) padro do Ubuntu. Ele tenta ser rpido, fcil de administrar e seguro. compatvel com o MTA sendmail. Esta seo explica como instalar e configurar o postfix. Tambm explica como configur-lo como um servidor SMTP usando uma conexo segura (para enviar emails de forma segura). 15.1.1. Instalao Para instalar o postfix com SMTP-AUTH e Transport Layer Security (TLS), execute o seguinte comando:

sudo apt-get install postfix

Simplesmente pressione enter para a perguntas durante o processo de instalao, a configurao ser feita em detalhes no prximo passo. 15.1.2. Configurao Bsica Para configurar o postfix, execute o seguinte comando:

sudo dpkg-reconfigure postfix

A interface do usurio ser mostrada. Em cada tela, selecione os seguintes valores: Ok Site de Internet NENHUM email.exemplo.com email.exemplo.com, localhost,localdomain, localhost No 127.0.0.0/8 Sim 0 + all 71

Rede Substitua mail.example.com pelo nome do seu servidor de email.

15.1.3. Autenticao SMTP Os prximos passos so configurar o postfix para usar SASL para SMTP AUTH. Ao invs de editar o arquivo de configurao diretamente, voc pode usar o comando postconf para configurar todos os parmetros do postfix. Os parmetros de configurao sero armanzenados no arquivo
/etc/postfix/main.cf.

Depois se voc desejar reconfigurar um parmetro em particular, voc pode executar o comando ou mud-lo manualmente no arquivo. 1. Configure Postfix to do SMTP AUTH using SASL (saslauthd):

postconf postconf postconf postconf

-e -e -e -e

'smtpd_sasl_local_domain =' 'smtpd_sasl_auth_enable = yes' 'smtpd_sasl_security_options = noanonymous' '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/

Voc pode adquirir o certificado digital de uma autoridade certificadora. Alternativamente , voc pode criar o certificado voc mesmo. Consulte o Seo 10.3.4, Criando um certificado Auto-Assinado [54] para mais detalhes. 3. Configure o Postfix para fazer encriptao TLS para entrada e saida de email:

postconf -e 'smtpd_tls_auth_only = no' postconf -e 'smtp_use_tls = yes' postconf -e 'smtpd_use_tls = yes'

72

Rede
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'

Depois que voc executar todos os comandos, o SMTP AUTH configurado com o postfix. O cerficado auto-assinado criado para o TLS e configurado com o postfix. Agora, o arquivo /etc/postfix/main.cf parecer com este [../sample/postfix_configuration]. A configurao inicial do postfix est completa. Execute o seguinte comando para iniciar o daemon do postfix:
sudo /etc/init.d/postfix start

Agora o postfix daemon est instalado, configurado e executando com sucesso. O Postfix suporta o SMTP AUTH como definido na RFC2554 [ftp://ftp.isi.edu/in-notes/rfc2554.txt]. baseado no SASL [ftp://ftp.isi.edu/in-notes/rfc2222.txt]. Entretanto necessrio configurar a autenticao SASL antes de usar o SMTP. 15.1.4. Configurando 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

Algumas modificaes so necessrias para faz-lo funcionar corretamente. Devido ao Postfix rodar sob chroot em /var/spool/postfix, a SASL precisa ser configurada para rodar na falsa raz (/var/run/saslauthd se torna /var/spool/postfix/var/run/saslauthd):
mkdir -p /var/spool/postfix/var/run/saslauthd rm -rf /var/run/saslauthd

Para ativar o saslauthd, edite o arquivo /etc/default/saslauthd e modifique ou adicione a varivel START. Para configurar o saslauthd para rodar na raz falsa, adicione as variveis PWDIR, PIDFILE e PARAMS. Finalmente, configure a varivel MECHANISMS sua maneira. O arquivo deve se parecer com isso:
# Isso deve ser descomentado antes que o saslauthd rode # automaticamente # automatically START=yes

73

Rede
PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # Voc deve especificar os mecanismos de autenticao que voc # deseja usar. O valor padro "pam" para suporte PAM, mas voc # pode tambm incluir "shadow" ou "sasldb", assim: # MECHANISMS="pam shadow" MECHANISMS="pam"

Se preferir, voc pode utilizar shadow ao invs de pam. Ele ir usar transferncia encriptada de senha MD5 e isso perfeitamente seguro. O nome do usurio e a senha necessrios para a autenticao sero aqueles mesmos dos usurios do sistema que voc est usando no servidor. Em seguida, atualize o "estado" do dpkg do /var/spool/portfix/var/run/saslauthd. Os scripts de inicializao do saslauthd usam essa configurao para criar o diretrio que falta com as permisses e posses necessrias:

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

15.1.5. Testando A configurao da Autenticao do SMTP est completa. Agora hora de iniciar e testar a configurao. Voc pode rodar o seguinte comando para iniciar o daemon SASL:
sudo /etc/init.d/saslauthd start

Para ver se o SMTP-AUTH e o TLS esto funcionando normalmente, rode o seguinte comando:
telnet mail.example.com 25

Depois que tiver estabelecido uma conexo com o servidor de e-mail postfix, digite:
ehlo mail.example.com

Se voc vir as seguintes linhas entre outras, ento tudo estar funcionando perfeitamente. Digite quit para sair.

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

15.2. Exim4
O Exim4 outro Agente de Transferncia de Mensagens (MTA) desenvolvido na Universidade de Cambridge para uso em sistemas Unix conectados Internet. O Exim pode ser instalado no lugar do sendmail, entretanto a configurao do exim bem diferente daquela feita para o sendmail. 74

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

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

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

sudo dpkg-reconfigure exim4-config

A interface de usurio ser mostrada. A interface de usurio permite a voc configurar vrios parmetros. Por exemplo, no exim4 os arquivos de configurao esto divididos em mltiplos arquivos. Se voc quiser t-los em um nico arquivo voc pode configurar isso atravs da interface de usurio. 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 nenhum momento voc deve editar o arquivo de configurao principal /var/lib/exim4/config.autogenerated manualmente. Ele atualizado automaticamente toda vez que voc roda o 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


O Dovecot um Agente de Entrega de Correio, escrito tendo em mente a segurana em primeiro lugar. Ele suporta os principais formatos de caixas postais: mbox ou Maildir. Essa seo explica como configur-lo como um servidor imap ou pop3. 15.3.1. Instalao Para instalar o dovecot, rode o seguinte comando em um prompt de comando:

75

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

15.3.2. Configurao Para configurar o dovecot, voc pode editar o arquivo /etc/dovecot/dovecot.conf. Voc pode escolher o protocolo que voc usa. Ele pode ser pop3, pop3s (pop3 seguro), imap e imaps (imap seguro). Uma descrio desses protocolos est alm do escopo desse guia. Para maiores informaes, consulte os artigos da wikipedia em POP3 [http://pt.wikipedia.org/wiki/POP3] e IMAP [http://pt.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]. Aps escolhido o seu tipo de caixa de e-mail, edite o arquivo /etc/dovecot/dovecot.conf e modifique a seguinte linha:

default_mail_env = maildir:~/Maildir # (para maildir) ou 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... Connected to localhost.localdomain. Escape character is '^]'. +OK Dovecot ready.

76

Rede 15.3.3. Configurao de SSL do Dovecot Para configurar o dovecot para que utilize SSL, voc pode editar o arquivo /etc/dovecot/dovecot.conf e adicionar 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 arquivos cert e key so criados automaticamente pelo dovecot quando voc o instala. Por favor note que essas chaves no so assinadas e daro erros de "assinatura ruim" (bad signature) quando se conectar de um cliente. Para evitar isso, voc pode utilizar certificados comerciais, ou ainda melhor, voc pode utilizar seus prprios certificados SSL. 15.3.4. Configurao de Firewall para um Servidor de Email Para acessar seu servidor de e-mail atravs de outro computador, voc deve configurar seu firewall para permitir conexes ao servidor nas portas necessrias. IMAP - 143 IMAPS - 993 POP3 - 110 POP3S - 995

15.4. Mailman
O Mailman um programa open source para administrao de discusses por listas de e-mail e newsletter. Muitas das listas de e-mail open source (incluindo todas as listas de e-mail Ubuntu [http://lists.ubuntu.com]) utilizam o Mailman. Ele poderoso e fcil de instalar e manter. 15.4.1. Instalao O Mailman prov uma interface web para administradores e usurios. Logo, ele requer apache com suporte mod_perl. O Mailman utiliza um servidor de e-mail externo para enviar e receber mensagens. Ele funciona perfeitamente com os seguintes servidores: Postfix Exim Sendmail Qmail

Ns veremos como instalar o mailman, o servidor web apache e o servidor de e-mail Exim. Caso voc queira instalar o mailman com um servidor de e-mail diferente, favor consultar a seo de referncias. 15.4.1.1. Apache2 Para instalar o apache2 voc deve consultar Seo 10.1, Instalao [47]. 77

Rede 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 o Mailman, execute o seguinte comando em um prompt de terminal:

sudo apt-get install mailman

Ele copia os arquivos de instalao para o diretrio /var/lib/mailman, instala os scripts CGI no diretrio /usr/lib/cgi-bin/mailman. cria o usurio de linux list, cria o grupo de linux list. O processo mailman ser controlado por este usurio. 15.4.2. Configurao Esta seo assume que voc j tenha instalado com sucesso o mailman, o apache2, e o exim4. Agora voc s precisa configur-los. 15.4.2.1. Apache2 Uma vez que o apache2 esteja instalado, voc pode adicionar as seguintes linhas no arquivo /etc/apache2/apache2.conf:

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

O Mailman utiliza o apache2 para renderizar seus scripts CGI. Os scripts CGI do mailman so instalados no diretrio /usr/lib/cgi-bin/mailman. Logo, a URL do mailman ser http://hostname/cgi-bin/mailman/. Voc pode fazer alteraes no arquivo /etc/apache2/apache2.conf caso queira alterar este comportamento. 15.4.2.2. Exim4 Uma vez que o Exim4 esteja instalado, voc pode inicializar o servidor Exim utilizando o seguinte comando a partir de um prompt de terminal:

78

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

Com o sentido de fazer o mailman trabalhar com o exim4, voc deve configurar o exim4. Como mencionado anteriormente, por padro, exim4 utiliza mltiplos arquivos de configurao de diferentes tipos. Para maiores detalhes, acesse, por favor, o seguinte website Exim [http://www.exim.org]. Para executar o mailman, voc deveria adicionar um novo arquivo de configurao aos seguintes tipos de configurao: Principal Transporte Roteador O Exim cria um arquivo mestre de configurao classificando todos estes pequenos arquivos de configurao. Logo, a ordem de tais arquivos de configurao muito importante. 15.4.2.3. Principal Todos os arquivos que pertenam ao tipo principal so armazenados no diretrio /etc/exim4/conf.d/main/. Voc pode adicionar o seguinte contedo a um novo arquivo, chamado 04_exim4-config_mailman:

# incio # Diretrio inicial para sua instalao do mailman -- tambem conhecido # como diretrio prefixo do Mailman directory. # No Ubuntu isso deve ser "/var/lib/mailman" # geralmente o mesmo que ~mailman MM_HOME=/var/lib/mailman # # Usurio e grupo para o Mailman, deve equivaler ao seu parmetro # --with-mail-gid ao script "configura" do Mailman. O valor normalmente # "mailman" MM_UID=list MM_GID=list # # Domnios onde esto suas listas - lista separada por vrgulas # voc pode querer adicion-los tambm ao local_domains domainlist mm_domains=hostname.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# # # Estes valores so derivados daqueles acima and voc no dever # precisar edit-los a no ser que voc tenha bagunado a sua instalao # do mailman # # O caminho do script wrapper de email do Mailman MM_WRAP=MM_HOME/mail/mailman # # O arquivo do arquivo de configurao da lista (usado como um arquivo # requerido quando se verifica endereos de listas) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck # fim

79

Rede 15.4.2.4. Transporte Todos os arquivos que pertenam ao tipo de transporte so armazenados no diretrio /etc/exim4/conf.d/transport/. Voc pode adicionar o seguinte contedo a um novo arquivo 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. Roteador Todos os arquivos de configurao pertencentes ao tipo de roteamento so armazenados no diretrio /etc/exim4/conf.d/router/. Voc pode adicionar o seguinte contudo em um novo arquivo 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

A ordem dos arquivos de configurao principais e de transporte podem estar em qualquer ordem. Mas, a ordem dos arquivos de configurao de roteamento deve a mesma. Este arquivo particular deve aparecer antes do arquivo 200_exim4-config_primary. Estes dois arquivos de configurao contm o mesmo tipo de informao. O primeiro arquivo toma a precedncia. Para mais detalhes, consulte, por favor, a seo das referncias. 15.4.2.6. Mailman Once mailman is installed, you can run it using the following command:

sudo /etc/init.d/mailman start

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

80

Rede
sudo /usr/sbin/newlist mailman

Informe o endereo de e-mail da pessoa que administra a lista: bhuvan at ubuntu.com Senha inicial do mailman: Para finalizar a criao de sua lista de e-mail, voc deve editar o arquivo equivalente) adicionando as seguintes linhas, e possivelmente executando o programa `newaliases': ## lista de e-mail mailman 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" Aperte enter para notificar o proprietrio mailman... #
/etc/aliases

(ou

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. Usurios O Mailman fornece uma interface web aos usurios. Para acessar essa pgina, aponte seu browser para a seguinte URL: http://hostname/cgi-bin/mailman/listinfo A lista de e-mail padro, mailman, aparecer nesta tela. Se voc clicar no nome da lista, ser apresentado o formulrio para inscrio. Voc pode informar se endereo de e-mail, nome (opcional), 81

Rede e senha para se inscrever. Um convite ser enviado a voc por e-mail. Voc pode seguir as instrues no email para se inscrever. 15.4.5. Referncias GNU Mailman - Manual de Instalao [http://www.list.org/mailman-install/index.html] HOWTO - Usando o Exim 4 e oMailman 2.1 juntos [http://www.exim.org/howto/mailman21.html]

82

Rede

16. Sincronizao de Horrio com 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 um protocolo TCP/IP para sincronizao de horrio sobre a rede. Basicamente um cliente solicita o horrio atual ao servidor, e o utiliza para ajustar seu prprio relgio. 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. Pginas Relacionadas


Suporte do NTP [http://ntp.isc.org/bin/view/Support/WebHome] O FAQ e TUTORIAL do NTP [http://www.ntp.org/ntpfaq/NTP-a-faq.htm]

84

Captulo 5. Redes Windows


Redes de computadores geralmente so compostas por sistemas diversos, e enquanto operar uma rede feita inteiramente de desktops e servidores Ubuntu certamente seria divertido, alguns ambientes de rede devem consistir tanto de sistemas Ubuntu e Microsoft Windows trabalhando juntos em harmonia. Esta seo do Ubuntu Server Guide introduz princpios e ferramentas usadas na configurao de seu Servidor Ubuntu para compartilhar recursos de rede com computadores Windows.

85

Redes Windows

1. Introduo
Ligar em rede seu sistema Ubuntu com clientes Windows envolve que se disponibilize e integre servios comuns a ambientes Windows. Tais servios ajudam no compartilhamento de dados e informaes sobre os computadores e usurios envolvidos na rede e pode ser classificado sob trs grandes categorias de funcionalidades: Servios de Compartilhamento de Arquivos e Impresso. Utilizando o protocolo Server Message Block (SMB) para facilitar o compartilhamento de arquivos, pastas, volumes, e o compartilhamento de impressoras da rede. Servios de Diretrios. Compartilhando informaes vitais sobre os computadores e usurios da rede atravs de tecnologias como o Lightweight Directory Access Protocol (LDAP) e o Microsoft Active Directory. Autenticao e Acesso. Estabelecendo a identidade de um computador ou usurio da rede e determinando a informao a qual o computador ou usurio est autorizado a acessar utilizando tais princpios e tecnologias como permisses de arquivo, diretivas 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. Instalando o SAMBA
No prompt digite o seguinte comando para instalar as aplicaes do servidor SAMBA:

sudo apt-get install samba

87

Redes Windows

3. Configurando o SAMBA
Voc pode configurar o servidor SAMBA editando o arquivo /etc/samba/smb.conf para mudar as opes padro ou adicionar novas configuraes. Mais informaes sobre cada configurao esto disponveis nos comentrios do /etc/samba/smb.conf ou lendo a pgina de manual do /etc/samba/smb.conf atravs do seguinte comando digitado no prompt do terminal:

man smb.conf

Antes de editar o arquivo de configurao, voc deve fazer uma cpia do arquivo original e proteg-lo contra escrita para que voc tenha as configuraes originais como uma referncia e re-utiliz-las quando necessrio. Faa backup do arquivo /etc/samba/smb.conf:

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

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

3.1. Servidor
Alm do conjunto SAMBA, que compartilha arquivos e impressoras, o Ubuntu inclui outras aplicaes poderosas que fornecem funcionalidades adicionais, como servidor de rede para clientes Windows, semelhante as funcionalidades fornecidas pelos atuais servidores Windows. Por exemplo, Ubuntu oferece gerncia centralizada de recursos de rede tal como computadores e operadores via Servio de Diretrios, o que facilita a identificao, autorizao de computadores e usurios por meio de Servio de Autentificao. As seguintes sees discutiro SAMBA e as tecnologias de suporte, tal como servidor Lightweight Directory Access Protocol - LDAP, e servidor de autentificao Kerberos com mais detalhe. Voc tambm aprender sobre algumas diretrizes disponveis de configurao do SAMBA que facilita integrao da rede com clientes e servidores Windows. 3.1.1. Active Directory Active Directory uma implementao proprietrio do Servio de Diretrio da Microsoft, e usada para fornecer um meio de compartilhar informaes sobre recursos de rede e usurios. Alm de fornecer uma fonte centralizada de tal informao, Active Directory tambm age como uma autoridade centralizada de segurana e autentificao para a rede. Active Directory combina capacidades tradicionalmente achadas separademente em sistemas especializados simplificando integrao, gerncia, e segurana de recursos de rede. O pacote SAMBA pode ser configurado para usar servios de Active Directory para Controle de Domnios Windows.

88

Redes Windows 3.1.1.1. LDAP O servidor LDAP fornece funcionalidade de Servio de Diretrio a computadores Windows numa maneira muito semelhante ao servio Active Directory da Microsoft. Tais servios incluem administrao de identidades, conexes de computadores, usurios, grupos de computadores ou usurios que participam da rede, alm de possibilitar um meio coerente de descrever, localizar e administrar estes recursos. A implementao livre do LDAP disponvel para seu sistema Ubuntu chamada de OpenLDAP. Os servidor de "daemons" responsvel por manipular requisies do OpenLDAP e propagar dados doe servidor de diretrio LDAP a outro no Ubuntu slapd e slurpd. O OpenLDAP pode ser usado em conjunto com o SAMBA para fornecer Arquivo, Impresso, servios de Diretrio praticamente igual ao Controle de Domnios do Windows contanto que, o SAMBA seja compilado com suporte a LDAP. 3.1.1.2. Kerberos O sistema de segurana e autentificao Kerberos um servio padro que fornecer autentificao entre computadores e usurios por meio de um servidor centralizado que concede autentificaes criptografas a qualquer computador que esteja utilizando o Kerberos. Os benefcios do sistema de autentificao do Kerberos incluem autentificao mtua, autentificao delegada, interoperabilidade e gerncia simplificada confivel. O servidor primrio de "daemons" que manipula a autentificao do Kerberos e o servidor que administra a base de dados do Kerberos no Ubuntu so krb5kdc e kadmin. O SAMBA pode usar Kerberos como um mecanismo para autentificao de computadores e usurios em contraste com o Controle de Domnios do Windows. Uma vez instalado o Kerberos no Ubuntu, o /etc/samba/smb.confdeve ser selecionado e modificado de modo adequado o realm e security. Exemplo: edita o arquivo /etc/samba/smb.conf e adiciona os valores: realm = NOME_DO_DOMINIO security = ADS no arquivo, e salve-o. Assegure-se de substituir o smbolo DOMAIN_NAME no exemplo acima pelo nome verdadeiro do seu Domnio Windows especfico. Voc precisar reiniciar os daemons SAMBA para efetivar essas alteraes. Reinicie os daemons SAMBA com o seguinte comando inserido no prompt do terminal:

sudo /etc/init.d/samba restart

3.1.2. Contas de Computador Contas de Computador so utilizadas em Servios de Diretrio para identificar unicamente sistemas de computador que participam de uma rede e so tambm tratados da mesma maneira que usurios em termos de segurana. Contas de computador podem ter senha assim como usurios tm e esto 89

Redes Windows sujeitas a autorizao para acessar recursos de rede da mesma forma que contas de usurios. Por exemplo, se um usurio de rede com uma conta vlida para uma rede em particular tenta se autenticar a um recurso de rede de um computador que no tem uma conta de computador vlida, dependendo das diretivas aplicadas na rede, o acesso ao recurso pode ser negado ao usurio se o computador do qual ele tenta se autenticar considerado um computador no autorizado. Uma conta de computador pode ser adicionada ao arquivo de senha do SAMBA, estipulando um nome de computador antes de adicionar, e este deve ser uma conta vlida de usurio na base de dados local. Para adicionar uma conta de computador ou mquina ao arquivo de senhas do SAMBA use o comando smbpasswd em um terminal como se segue:

sudo smbpasswd -a -m NOME_DO_COMPUTADOR

Certifique-se de substituir o smbolo NOME_DO_COMPUTADOR no exemplo acima com o nome real do computador especfico que voc deseja adicionar. 3.1.3. Permisses de Arquivo As Permisses de Arquivo definem de forma clara os direitos que um computador ou usurio tem a um diretrio particular, arquivo ou grupo de arquivos. Tais permisses podem ser definidas editando /etc/samba/smb.conf e especificando de forma clara as permisses para o arquivo compartilhado. Por exemplo, se voc tem definido no compartilhamento do SAMBA a pastasourcedocse deseja oferece-la com permissoread-only (somente leitura) ao grupo conhecido de usurios planning, mas necessita permitir que o grupo authors e o usurio chamado richard tenham permisso de escrita, edite o arquivo /etc/samba/smb.conf e adicione as seguintes entradas logo abaixo de [sourcedocs]: read list = @planning write list = @authors, richard Salve o arquivo /etc/samba/smb.conf para que as auteraes tenham efeito. Outra possvel permisso declarar permissesadministrativas a um particular e compartilhar recurso. Usurios com permisses administrativas podem ler, gravar ou modificar qualquer informao contida pois lhe foi dada de forma explcita esta autonomia. Por exemplo, se voc precisa conceder ao usurio melissa permisses administrativas para a pasta compartilhadasourcedocs, voc deve editar o arquivo /etc/samba/smb.conf e adicionar loga abaixo a entrada [sourcedocs] as seguintes linhas: admin users = melissa Salve o arquivo /etc/samba/smb.conf para que as auteraes tenham efeito.

3.2. Clientes
O Ubuntu inclui aplicaes cliente e capacidades para acessar recursos de rede compartilhados com o protocolo SMB. Por exemplo, o utilitrio smbclient permite acesso remoto a arquivo/sistemas 90

Redes Windows compartilhados, de maneira semelhante ao File Transfer Protocol (Protocolo de Transferncia de Arquivo - FTP). Para acessar uma pasta compartilhada cujo nome documentosem um computador Windows identificado na rede como bill utilizando smbclient por exemplo, utilize o comando a seguir em um Terminal:

smbclient //bill/documents -U <nomeusurio>

Voc ento ser solicitado a fornecer a senha para o nome do usurios especificado depois da opo -U, uma vez que a autentificao foi bem sucedida, ser apresentado um lembrete onde comandos podem ser utilizados para manipular e transferir arquivos numa sintaxe semelhante a usada por clientes no-grficos de FTP. Para mais informaes sobre o utilitrio smbclient, leia o manual atravs do comando:

man smbclient

O suporte a recursos remotos na rede usatilizando o protocolo SMB tambm possvel, utilizando o comando mount. Por exemplo, para montar o contedo compartilhada cujo nome project-code, localizada em um servidor Windows identificado na rede como development, como o usurio local dlightman, no ponto de montagem /mnt/pcode em seu sistema Ubuntu, utilize o seguinte comando :

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

Automaticamente lhe ser solicitado a senha do usurio, e uma vez que a autentificao foi bem sucedida, o contedo compartilhado estar disponvel localmente no ponto de motagem especificado como o ltimo argumento ao comando mount. Para desconectar o contedo compartilhado, basta usar o comando umount para qualquer sistema de arquivos montado. Exemplo:

umount /mnt/pcode

3.2.1. Contas de Usurios Contas de Usurios definem pessoas com algum nvel de autorizao para usar certo computador e contedo de rede. Tipicamente, num ambiente de rede, uma conta de usurio fornecida a cada pessoa permitido acessar um computador ou rede, onde diretrizes e permisses definem que direitos explcitos essa conta de usurio tem acesso. Para definir usurios da rede SAMBA em seu sistema Ubuntu, voc pode utilizar o comando smbpasswd. Por exemplo, para adicionar o usurio pedro a rede SAMBA de seu sistema Ubuntu, utilize o comando:

smbpasswd -a pedro

O aplicativo smbpasswd solicitar que voc entre com uma senha para o usurio: 91

Redes Windows

Nova senha SMB:

Entre com a nova senha para o usurio e, em seguida, o aplicativo smbpasswd solicitar que voc confirme a senha:
Repita a nova senha SMB:

Confirme a senha e o aplicativo smbpasswd adicionar o usurio ao arquivo de senhas do SAMBA. 3.2.2. Grupos Os grupos definem uma relao de computadores ou usurios que tm um nvel comum de acesso a recursos particulares da rede e oferece um nvel detalhado para controlador o acesso a tais recursos. Por exemplo, se o grupo qa contem os usurios freda, danika e rob e um segundo grupos support contem os seguintes usurios danika, jeremy e vincent em seguida, certos recursos da rede podem ser configurados para que o grupo qa seja acessvel por freda, danika e rob, mas no por jeremy ou vincent. Desde que o usurio danika pertena a ambos os grupos qa e support, ela ser capaz de acessar recursos de ambos os grupos, ao passo que todos os outros usurios tero acesso a recursos explicitamente permitindos ao grupo de que fazem parte. Quando for definir grupos no arquivo de configurao do SAMBA, /etc/samba/smb.conf a sintaxe para identificar o nome do grupo deve iniciar com o smbolo "@". Por exemplo, se deseja definir um grupo chamado sysadmin v at a seo referente em /etc/samba/smb.conf e adicione o nome do grupo da seguinte maneira: @sysadmin. 3.2.3. Polticas do Grupo Polticas de Grupo define certos ajustes de configurao do SAMBA pertencentes ao Domnio ou contas de computador do Grupo de Trabalho (workgroup), alm de outros ajustes globais para o servidor SAMBA. Por exemplo, se o servidor SAMBA pertencer ao Grupo de Trabalho do Windows chamado NVELUM, ento o arquivo /etc/samba/smb.conf deve ser editado, alterando os valores da seguinte maneira: workgroup = NVELUM Salve o arquivo e reinicie os "daemons" do SAMBA para que as mudanas tenham efeito. Outros ajustes importantes da poltica global incluem a sequncia servidor que define o nome do servidor NETBIOS informado por seu sistema Ubuntu a outras mquinas fundamentadas na rede Windows. Iste o nome ao qual seu sistema Ubuntu ser reconhecido na rede por clientes Windows e demais computadores capazes de navegar com o protocolo do SMB. Adicionalmente, voc pode especificar o nome e a localizao do arquivo de registro (log file) do servidor SAMBA manuseando a diretiva log file no arquivo de configurao /etc/samba/smb.conf. Algumas diretrizes adicionais que governam as polticas globais de um grupo, incluem a descrio detalhada da natureza global de todos recursos compartilhados. Por exemplo, colocar certas diretrizes 92

Redes Windows na seo [global] do arquivo /etc/samba/smb.conf afetar todos os recursos compartilhados a menos que uma diretriz primordial seja colocada sob um particular cabealho de compartilhamento de recurso. Voc pode especificar tudo que for passvel de compartilhamento a qualquer cliente que participe da rede alterando a diretriz browseable, o qual toma uma lgica Booleana, que deve ser adicionada/modificada na seo [global] do arquivo /etc/samba/smb.conf. Ou seja, altere o arquivo adicionando a linha: browseable = true abaixo da seo [global] em /etc/samba/smb.conf, ento todo o contedo fornecidas por seu sistema Ubuntu via SAMBA sero browseable (navegveis) por todos os clientes autorizados, a menos que uma parte especfica contenha uma diretriz browseable = false, a qual sobrescrever a diretriz global. Outros exemplos de comando que trabalham de maneira semelhante, so as diretrizes public e writeable. A diretriz public fornece um valor Booleano (sistema combinatrio lgico) que define se um usurio qualquer e/ou todos os clientes da rede compartilham recurso de gravao (writable) .

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

Potrebbero piacerti anche