SlideShare uma empresa Scribd logo
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 introdução à instalação e configuração de aplicações para servidores no Ubuntu.


Créditos e Licença
Os seguintes autores da Equipe de Documentação do Ubuntu mantêm este documento:
• Bhuvaneswaran Arumugam

O Ubuntu Server Guide é baseado também nas contribuições de:
• Robert Stoffers
• Brian Shumate
• Rocco Stanzione

Este documento é feito disponível sob uma estratégia dupla de licença que inclue a Licença Livre de Documentação GNU (GFDL) e a
Licença Criativa Comum ShareAlike 2.0 (CC-BY-SA).

Você está livre para modificar, ampliar, e melhorar o código de fonte da documentação do Ubuntu sob os termos destas licenças. Todos os
trabalhos derivados devem ser liberados sob qualquer uma ou ambos estas licenças.

Esta documentação é distribuída na esperança que será útil, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implicada de
MERCABILIDADE do ou a APTIDÃO PARA UMA FINALIDADE PARTICULAR COMO DESCRITA NA NEGAÇÃO.

As cópias destas licenças estão disponíveis na seção de apêndices deste livro. As versões online podem ser encontradas nos seguintes URLs:
• GNU Free Documentation License [http://www.gnu.org/copyleft/fdl.html]
• Attribution-ShareAlike 2.0 [http://creativecommons.org/licenses/by-sa/2.0/]


Disclaimer
Every effort has been made to ensure that the information compiled in this publication is accurate and correct. However, this does not
guarantee complete accuracy. Neither Canonical Ltd., the authors, nor translators shall be held liable for possible errors or the consequences
thereof.

Some of the software and hardware descriptions cited in this publication may be registered trademarks and may thus fall under copyright
restrictions and trade protection laws. In no way do the authors make claim to any such names.

THIS DOCUMENTATION IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Índice
About This Guide ..............................................................................................................          vi
      1. Conventions ...........................................................................................................         vii
      2. Contributing and Feedback .....................................................................................                 viii
1. Introdução ......................................................................................................................     9
2. Instalação .......................................................................................................................    10
      1. Preparando para instalar .........................................................................................              11
      2. Instalando pelo CD ................................................................................................             13
3. Gerenciador de Pacotes ..................................................................................................             14
      1. Introdução ..............................................................................................................       15
      2. Apt-Get .................................................................................................................       16
      3. Aptitude .................................................................................................................      18
      4. Configuração ..........................................................................................................         20
      5. Repositórios Extras .................................................................................................           21
4. Rede ..............................................................................................................................   22
      1. Configuração de Rede ............................................................................................               23
      2. TCP/IP ..................................................................................................................       26
      3. Configuração do Firewall .......................................................................................                30
      4. Servidor OpenSSH .................................................................................................              32
      5. Servidor FTP .........................................................................................................          35
      6. Network File System (NFS) ....................................................................................                  37
      7. Dynamic Host Configuration Protocol (DHCP) ........................................................                             39
      8. Domain Name Service (DNS) .................................................................................                     42
      9. CUPS - Servidor de Impressora ..............................................................................                    44
      10. HTTPD - Servidor Web Apache2 ..........................................................................                        47
      11. PHP5 - Linguagem de Scripts ...............................................................................                    57
      12. Squid - Sevidor Proxy ..........................................................................................               59
      13. Version Control System ........................................................................................                61
      14. Bancos de Dados ..................................................................................................             68
      15. Serviços de Email ................................................................................................             71
      16. Sincronização de Horário com NTP .......................................................................                       83
5. Redes Windows .............................................................................................................           85
      1. Introdução ..............................................................................................................       86
      2. Instalando o SAMBA .............................................................................................                87
      3. Configurando o SAMBA ........................................................................................                   88
A. Creative Commons by Attribution-ShareAlike 2.0 ...........................................................                            94
B. GNU Free Documentation License .................................................................................                      99
      1. PREAMBLE ..........................................................................................................             100
      2. APPLICABILITY AND DEFINITIONS ..................................................................                                101
      3. VERBATIM COPYING .........................................................................................                      103
      4. COPYING IN QUANTITY ....................................................................................                        104


                                                                      iii
Ubuntu Server Guide


5. MODIFICATIONS .................................................................................................    105
6. COMBINING DOCUMENTS .................................................................................              107
7. COLLECTIONS OF DOCUMENTS .......................................................................                   108
8. AGGREGATION WITH INDEPENDENT WORKS ................................................                                109
9. TRANSLATION ....................................................................................................   110
10. TERMINATION ..................................................................................................    111
11. FUTURE REVISIONS OF THIS LICENSE ..........................................................                       112
12. ADDENDUM: How to use this License for your documents ...................................                          113




                                                         iv
Lista de Tabelas
2.1. Requerimentos Mínimos Recomendados ....................................................................... 11
4.1. Métodos de Acesso ...................................................................................................... 62




                                                                 v
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
Capítulo 1. Introdução
Bem-vindo ao Ubuntu Server Guide!

O Ubuntu Server Guide contém informações sobre como instalar e configurar várias aplicações 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 tópicos intermediários tais como os
seguintes:
• Configuração de Rede
• Configuração do Apache2
• Bancos de Dados
• Redes Windows

Este manual é dividido nas seguintes categorias principais:
• Instalação
• Gerenciador de Pacotes
• Rede
• Redes Windows

Este guia assume que você possua uma compreensão básica de seu sistema Ubuntu. Caso você
necessite de ajuda detalhada sobre a instalação do Ubuntu, consulte o Guia de Instalação do Ubuntu.

As versões em HTML e PDF deste manual estão disponíveis online no site de Documentação 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 impressão e envio.




                                                  9
Capítulo 2. Instalação
Este capítulo fornece uma visão rápida sobre a instalação do Ubuntu 6.10 Server Edition. Para
maiores detalhes, por favor veja o Guia de Instalação do Ubuntu.




                                                 10
Instalação


1. Preparando para instalar
Esta seção explica vários aspectos a serem considerados antes de começar a instalação.

1.1. Requisitos de Sistema

O Ubuntu 6.10 Server Edition suporta as três maiores arquiteturas: Intel x86, AMD64 e PowerPC. A
tabela abaixo lista as especificações de hardware recomendadas. Dependendo das suas necessidades,
você pode conseguir com menos do que isso. No entanto, a maioria dos usuários arriscam se frustrar
caso ignorem essas sugestões.

Tabela 2.1. Requerimentos Mínimos Recomendados

Tipo de Instalação                                 RAM                                                  Espaço do Disc
Servidor                                           64 megabytes                                         500 megabytes

O perfil padrão para o Ubuntu 6.10 Server Edition é exibido abaixo. Mais uma vez, o tamanho da
instalação dependerá em grande parte dos serviços que você instalar durante a configuração. Para a
maioria dos administradores, os serviços padrão são apropriados para o uso geral do servidor.
Servidor
   Este é um perfil pequeno de servidor, que fornece uma base comum para todos os tipos de
   aplicações para servidores. É mínimo e projetado para ter os serviços desejados adicionados no
   topo, tais como serviços de arquivos/impressão, serviços web, serviços de e-mail, etc. Para tais
   serviços bastaria ao menos 500MB de espaço em disco, mas considere adicionar mais espaço
   dependendo dos serviços que você gostaria de hospedar em seu servidor.

Lembre-se que estes tamanhos não incluem todos os materiais restantes que devem geralmente ser
encontrados, tais como arquivos de usuário, e-mail, logs, e dados. É melhor ser sempre generoso ao
considerar o espaço para os seus próprios arquivos e dados.

1.2. Fazendo Backup
• Antes de começar, certifique-se de fazer backup de cada arquivo que está agora em seu sistema. Se
  for a primeira vez que um sistema operacional não-nativo está sendo instalado em seu computador,
  será bem provável que você necessite reparticionar seu disco para garantir espaço 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 instalação são consideravelmente de confiança, e a
  maioria tem sido utilizada há vários anos, mas eles também executam ações destrutivas, e um erro
  na sua utilização pode resultar na perda de seus valiosos dados.

  Se você estiver criando um sistema multi-boot, certifique-se de que você tenha em mãos a mídia de
  distribuição 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
Instalação


de boot de seu sistema operacional, ou em muitos casos todo o sistema operacional e todos os
arquivos nas partições afetadas.




                                              12
Instalação


2. Instalando pelo CD
Insira seu CD de instalação no seu drive de CD-ROM e reinicie seu computador. O sistema de
instalação é 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
instalação. Para fazer isto, pressione F1.

Para executar uma instalação padrão de servidor, selecione “Instalar no disco rígido” e pressione
Enter. O processo de instalação será inicializado. Simplesmente siga as instruções 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 instruções.




                                                  13
Capítulo 3. Gerenciador de Pacotes
Uma característica do Ubuntu é um sistema que facilita o gerenciamento de pacotes, sua instalação,
atualização, configuração e remoção de software. Além de fornecer acesso a uma base organizada de
mais de 17.000 pacotes de software para seu computador Ubuntu, o Gerenciador de Pacotes também
inclue a capacidade de resolução de dependência e procura por atualizações de software.

Várias ferramentas estão disponíveis para interagir com o sistema de gerência de pacotes do Ubuntu,
de utilitários simples em linha de comando que facilmente pode ser automatizado por administradores
de sistema, a uma interface gráfica simples que é fácil de usar por novos usuários Ubuntu.




                                                14
Gerenciador de Pacotes


1. Introdução
O sistema de gerenciamento de pacotes do Ubuntu é derivado do mesmo sistema usado na
distribuição Debian GNU/Linux. Os pacotes contém todos os arquivos necessário, meta-dados, e
instruções para implementar funcionalidades particulares ou softwares em seu computador Ubuntu.

Os pacotes Debian, tipicamente possuem a extensão ".deb" e como é de se esperar, possuem
repositorios que têm coleções de pacotes que podem ser encontrados na forma de midias, tais como
CD-ROM ou on-lines. Pacotes são, normalmente, binários pré-compilados; assim a instalação é
rápida, sem a necessidade de compilar o software.

Grande número de aplicativos (pacotes) requerem uma complexa árvore de dependências. Estas
dependências são informações adicionais necessárias para a correta execução 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 dependências 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 Avançada Ferramenta de Pacotes, possui funcionalidades tais como instalação
de novos pacotes de software, atualização de pacotes existentes, atualização da lista de pacotes e
atualização 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 conecção (SSH)
e a capacidade de ser usado por scripts de administração de sistema que, por sua vez, podem ser
automatizados pela ferramenta de ações agendadas cron.

Outros exemplos populares de uso do apt-get:
• Instalando um Pacote: A instalação 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 não 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 espaços.
• Atualizando a Lista de Pacotes: A lista de pacotes do APT é essencialmente um bando de dados
  com os pacotes disponíveis em repositórios definidos no arquivo /etc/apt/sources.list. Para
  atualizar a lista local de pacotes com as ultimas alterações feitas no(s) repositorio(s), digite:


  sudo apt-get update

• Atualizando Todos os Pacotes do Sistema: Com o tempo, versões atualizadas de pacotes
  atualmente instalado em seu computador podem tornar-se disponíveis nos repositórios de pacotes
  (atualizações de segurança, por exemplo). Para atualizar seu sistema, primeiro atualize a base de
  dados de pacotes e então digite:


  sudo apt-get upgrade

  Se um pacote necessitar que seja instalada ou removida uma nova dependência quando realizar a
  atualização, ele não será atualizado pelo comando upgrade. Para tal ação será necessário 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

  Após passado um tempo considerável, seu computador estará atualizado para a nova revisão.
  Tipicamente, alguns passos de pós-melhora são exigidos como detalhado nas notas para atualização
  de revisões.

  As ações do comando apt-get, tais como isntalação e remoção de pacotes, são registradas no
  arquivo de log /var/log/dpkg.log.

Para mais informações sobre o uso do APT, leia o detalhado Manual APT do Usuário 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 funções comuns de um gerenciador de pacotes, tais como instalação, remoção e
atualização são executadas pelo Aptitude por simples comandos, os quais são tipicamente grafados
em letras minúsculas.

Aptitude é a melhor suíte para uso em ambiente não gráfico ou modo-texto, assegurando o
funcionamento adequado das teclas de comando. Caso queira utilizar o Aptitude a partir de seu
usuário padrão, faça 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 contém as categorias dos pacotes, tais como Novos Pacotes e Pacotes Não
Instalados. No painel inferior aparecerá informações relacionadas a categoria selecionada ou pacote
selecionado no painel acima.

Usando o Aptitude para gerenciar pacotes é relativamente rápido e sua interface torna tarefas comuns
algo simples. O seguir, são exemplos de funções populares no gerenciamento de pacotes realizadas
pelo Aptitude:
• Instalando Pacotes: Para instalar um pacote, localize o pacote em Pacotes Não Instalados,
  por exemplo, use as teclas setas e pressione ENTER, selecione o pacote que deseja instalar.
  Após selecionar o pacote que deseja instalar, pressione a tecla +, assim o pacote ficará verde,
  isto indica que foi marcado para instalação. Agora pressione g e uma lista das ações lhe será
  apresentada. Pressione g novamente e você será solicitado a torna-se "root" para que o processo
  tenha continuidade. Pressione ENTER e forneça a senha de "root" solicitada no prompt Password:.
  Finalmente, pressione g mais uma vez para que o processo de baixar pacote tenha início. Pressione
  ENTER para a opção Continue e o processo de baixar e instalar do pacote terá início.
• 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. Após seleciona-lo,
  pressione - e o pacote mudará para a cor rosa, indicando assim que foi marcado para remoção.
  Agora pressione g e uma lista das ações lhe será apresentada. Pressione g novamente e você será
  solicitado a torna-se "root" para que o processo tenha continuidade. Pressione ENTER e forneça a
  senha de "root" solicitada no prompt Password:. Finalmente, pressione g mais uma vez para que o
  processo de remoção do pacote tenha início. Pressione ENTER para a opção Continue e o processo
  de remoção do pacote terá início.
• Atualizando Lista de Pacotes: Para atualizar a base de dados de pacotes, pressione u e, logo em
  seguida, lhe será solicitado privilégios de "root". Pressione ENTER e forneça a senha de "root" no
  pronpt Password:. Pressione ENTER e o processo de baixar as atulizações e renovação da base de
  dados terá início.
• 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 passíveis de atualização serão


                                                  18
Gerenciador de Pacotes


  selecionados. Agora pressione g e lhe será apresentado um resumo das ações exigidas para o
  pacote. Pressione g novamente e você será solicitado a torna-se "root" para que o processo tenha
  continuidade. Pressione ENTER e forneça a senha de "root" solicitada no prompt Password:.
  Finalmente, pressione g mais uma vez para que o processo de baixar os pacotes tenha início.
  Pressione ENTER para a opção Continue e o processo de atualização dos pacotes terá início.

A primeira coluna de informação 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 não instalado, mas o pacotem possui configurações residuais no sistema
• p: Remover do sistema
• v: Pacote Virtual
• B: Pacote quebrado
• u: Arquivos desempacotados, mas o pacote não foi configurado
• C: Parcialmente configurado - Configuração fracassou e exige reparo
• H: Parcialmente instalado - A remoção fracassou e exige reparo

Para sair do Aptitude, basta pressionar a tecla q e confirmar que deseja sair. Outras opções estão
disponíveis no menu pressionando a tecla F10.




                                                   19
Gerenciador de Pacotes


4. Configuração
A configuração dos repositórios do sistema Advanced Packaging Tool (APT) está localizada no
arquivo de configuração /etc/apt/sources.list. Um exemplo deste arquivo está referido aqui, junto com
informação sobre como adicionar ou retirar referências de repositório do arquivo.

Aqui [../sample/sources.list] há um exemplo de um típico arquivo /etc/apt/sources.list.

Você pode editar o arquivo e habilitar repositórios ou desabilitar. Por exemplo, para desativar a
opção de inserir o Ubuntu CD-ROM toda vez que for instalar um pacote, basta comentar a linha que
descreve a mídia CD-ROM com um cifrão (#) no início da linha, como se segue:


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




                                                 20
Gerenciador de Pacotes


5. Repositórios Extras
Além dos repositórios de pacotes oficialmente apoiados e disponibilizados para Ubuntu, ainda
existem repositórios mantidos pela comunidade que adicionam milhares de pacotes extras, mas
potenciais a instalação. Dois destes repositórios são bem populares, o Universe (mantidos pela
comunidade) e o Multiverse (não-livre). Estes repositórios não são oficialmente suportados por
Ubuntu, por isso não são habilitados por padrão, mas eles geralmente fornecem pacotes que são
seguros para uso em seu computador Ubuntu.

         Os pacotes no repositório Multiverse freqüentemente possuem licenças que os previnem
         quanto a distribuição em sistemas operacionais livres, podendo ser ilegais em seu localidade.

         Esteja ciente que nem o repositório Universe ou o Multiverse contém pacotes oficialmente
         suportados. Em particular, talvez não seja seguro atualizar para estes pacotes

Várias fontes de pacotes estão disponíveis, às vezes, oferecendo apenas um pacote, como no caso
de fontes de pacotes fornecido pelo mantenedor de uma única aplicação. Você deve ser sempre
cuidadoso e cauteloso quando usar fontes não padrão de pacotes. Pesquise a fonte e pacotes
cuidadosamente antes de executar qualquer instalação, como algumas fontes de pacotes e seus
respectivos pacotes podem deixar seu sistema instável ou mesmo inabilitálo de fazer alguma
operação.

Para habilitar os repositórios Universe e Multiverse, edite o arquivo /etc/apt/sources.list
descomentando (removendo o símbolo de sustenido #) das seguintes linhas:


# Quero os repositórios Multiverse e Universe disponíveis

deb http://archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse


5.1. Referências

Como Adicionar Repositórios (Ubuntu Wiki) [https://wiki.ubuntu.com/AddingRepositoriesHowto]




                                                 21
Capítulo 4. Rede
As redes consistem em dois ou mais dispositivos, tal como sistemas de computador, impressoras e
equipamentos relacionados que são ligados por qualquer meio físico, como equipamentos de rede via
sinal de rádio (wireless), com o propósito de compartilhar informações e ou distribuir informações
entre os dispositivos conectados.

Esta seção do Guia para Servidores Ubuntu fornece informação gerais e específicas sobre redes,
incluindo uma vista geral de conceitos de rede e detalhes sobre protocolos populares de rede e
aplicações de servidor.




                                                22
Rede


1. Configuração de Rede
O Ubuntu distribui um número de utilidades gráficas 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 configuração de rede está centralizada em um único arquivo,
/etc/network/interfaces. Se você não possui dispositívos 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 configuração 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 espaço IPv4 (subistitua
“inet” por “inet6” para dispositivos IPv6) e isto deverá obter automaticamente a configuração
via DHCP. Assumindo que sua rede e servido DHCP já esteja devidamente configurado, esta
máquina não precisará de nenhuma configuração adicional para funcionar corretamente. O servidor
DHCP irá prover o gateway padrão (implementado através do comando route), os endereços 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 estático e uma configuração personalizada,
será necessário algumas informações. Suponhamos que você queira definir o IP 192.168.0.2 para
a interface eth1, com a máscara de rede típica 255.255.255.0. Seu gateway (rota de saída) padrão é
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 endereço 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 domínio 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) próprio,
insira-o aqui. Senão, pergunte ao seu provedor de internet os servidores DNS primário e secundário, e
depois insira-os em /etc/resolv.conf, como mostrado abaixo.

Diversas outras configurações são possíveis, incluindo interfaces PPP, rede em IPv6, interfaces VPN,
entre outras. Execute o comando man 5 interfaces para mais informações e para as opções suportadas.
Lembre-se que /etc/network/interfaces é utilizado pelos scripts ifup/ifdown como um esquema de
configuração de mais alto nível, que pode ser utilizado por outras distribuições, e que os utilitários de
baixo nível, como ifconfig, route e dhclient continuam disponíveis para configurações ad hoc.

1.2. Administrando entradas DNS
Esta seção explica como configurar o servidor de nomes (DNS) para gerar endereços IP a hostnames e
vice versa. Não 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. Então, quando nos executamos: ping ubuntu ela interpretará como
ping ubuntu.com.

A chave nameserver especifica o endereço IP do servidor de nomes. Ele será usado para resolver os
endereços IP ou hostnames. Este arquivo pode possuir multiplas entradas de DNS. Os DNS's serão
usados pela rede de mesma classe.

         Se o DNS estiver obtendo dinâmicamente por DHCP ou PPPoE (obtido do seu provedor),
         não 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
contêm endereços IP e seus nomes de host correspondentes. Quando seu sistema tenta resolver um
nome de host para um endereço IP ou determinar um nome de host para um endereço IP, ele procura
para o arquivo /etc/hosts antes de usar os servidores de nome. Se o endereço IP está listado no
arquivo /etc/hosts, os servidores de nome não serão utilizados. Este comportamento pode ser
alterado, bastando para isso editar o arquivo /etc/nsswitch.conf como quiser.

Se sua rede possui computadores cujos endereços IP não estão 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) são um conjunto podrão de
protocolos desenvolvidos no final dos anos 1970 pela Defense Advanced Research Projects Agency
(DARPA) como uma forma de comunicação entre diferente tipos de computadores e redes de
computadores. TCP/IP é a força motora da Internet, e é portanto o mais popular conjunto de
protocolos da Terra.

2.1. Introdução ao TCP/IP
Os dois protocolos componentes do TCP/IP lidam com diferentes aspectos da computação em
rede. Internet Protocol, o "IP" do TCP/IP é um protocolo de sem conexão que lida somente
com o roteamento de pacotes da rede utilizando o datagrama de IPs como unidade básica das
informações de rede. O datagrama do IP consiste de um cabeçaho seguido de uma mensagem. O TCP
(Transmission Control Protocol - Protocolo de Controle de Transmissão)

2.2. Configurando TCP/IP
A configuração do protocolo TCP/IP consiste em diversos elementos, que podem ser editados
nos arquivos de configuração apropriados, ou optando-se por soluções como o servidor de DHCP
(Protocolo de Configuração Dinâmica de Hosts), que por sua vez pode ser configurado para prover
as configurações TCP/IP necessárias para cada cliente de rede automaticamente. Esses valores da
configuração precisam ser definidos corretamente, de maneira que que facilite o funcionamento em
rede do seu sistema Ubuntu.

Os elementos básicos de configuração do TCP/IP e seus objetivos são os seguintes:
• Endereço IP O Endereço de IP é uma string de identificação única, expressa em quatro números
  decimais, que vão de zero (0) à duzentos e cinquenta e cinco (255), separada por pontos, com cada
  um dos quatros números representado oito (8) bits do endereço, para um tamanho total de trinta e
  dois (32) bits para todo o endereço. Este formato é chamado de notação decimal com pontos.
• Netmask A Máscara de Subrede (ou simplesmente netmask) é uma máscara de bits locais, ou
  alguns marcadores que separam porções de endereços IPs relacionados à uma rede de uma subrede.
  Por exemplo, na Classe C, a máscara padrão é 255.255.255.0, que mascara os primeiros três
  bytes do endereço IP e permite somente o último byte do endereços disponível para a alocação e
  especificação de hosts ou subredes.
• Endereço de Rede O Endereço de rede representa os bytes compreendidos na porção 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
  Endereço de Rede, que usa o doze (12) para representar o primeiro byte de um endereço IP, (a parte
  de rede) e zeros (0s) em todos os outros três bytes restantes para representar os valores para hosts
  em potencial. Redes de hosts usando endereços IPs comuns como os privados e não distribuídos,
  como 192.168.1.100 pode então usar um endereço de rede como 192.168.1.0, que especifica os três
  primeiros bytes para a Classe C de rede 192.168.1 e zero (0) para todos os outros possíveis hosts da
  rede.


                                                 26
Rede


• Endereço de Transmissão O Endereço de Transmissão é um endereço 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 padrão genérico de endereço de transmissão para
  redes IP é 255.255.255.255, mas este endereço de transmissão não 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 endereço de transmissão precisa ser configurado como
  192.168.1.255. Transmissão de mensagens são tipicamente fruto de rede de protocolos tais como
  Address Resolution Protocol (ARP) e Routing Information Protocol (RIP).
• Gateway AddressUm Gateway Address é o endereço IP direto de uma rede particular, ou host em
  uma rede, podendo se estender. Se uma rede de host não define-se ao comunicar com outra rede de
  host, e aquele host não é localizado em uma mesma rede, então 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 não será capaz de alcançar nenhum host ligado na mesma
  rede.
• Endereço do Servidor de Nomes Endereços de servidores de nome representam o endereço IP
  do sistema de Serviço de Nomes de Domínio (Domain Name Service - DNS), que resolve nomes
  de hosts de rede para endereços IP. Há três níveis de endereços de servidor de nomes, que podem
  ser especificados em ordem de precedência: O servidor de nomes Primário, o servidor de nomes
  Secundário e o servidor de nomes Terciário. Para que seu sistema possa resolver nome de hosts
  da rede para seus endereços IP correspondentes, você deve especificar um endereço de servidor de
  nomes válido o qual você esteja autorizado a utilizar na configuração de TCP/IP do seu sistema.
  Em muitos casos esses endereços podem e devem ser fornecidos pelo seu provedor de serviços de
  rede, mas há muitos servidores de nomes gratuitos e acessíveis publicamente, como os servidores
  Level3 (Verizon) com endereços de IP de 4.2.2.1 a 4.2.2.6.

           O Endereço de IP, a Máscara de rede (netmask), o Endereço de rede, Endereço de
           broadcast, e o Endereço de Gateway são, em geral, especificados com as diretivas
           apropriadas no arquivo /etc/network/interfaces. O endereço do Servidor de Nomes
           (DNS) é em geral especificado pela diretiva nameserver no arquivo /etc/resolv.conf.
           Para maiores informações, veja a página de manual para interfaces ou resolv.conf
           respectivamente, com os seguintes comandos a serem digitados no terminal:

  Acesse o sistema de páginas de manual para interfaces com o seguinte comando:


  man interfaces


  Acesse o sistema de páginas 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
informações da rede serão 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 nós de rede intermediários, conhecidos como roteadores. O Roteamento IP é o
principal modo de descoberta de caminhos na Internet. Há duas formas primárias de roteamento,
Estático e Dinâmico.

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 Dinâmico depende de grandes redes com múltiplas 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 automático para os protocolos da tabela de roteamento, e assim,
fazer o roteamento dinâmico possível. Roteamento dinâmico tem sérias vantagens sobre roteamento
estático, como escalabilidade superior e a capacidade de adaptação a falhas ou ocilações ao longo
das rotas na rede. Adicionalmente, essa posição é inferior a configuração manual para a tabela de
roteamento, desde que os roteadores aprendam sobre outro roteador, sua existencia e rotas possíveis.
Esta peculiaridade também elimina a possibilidade de introduzir um erro em tabelas de roteamento
por erro humano. Roteamento dinâmico não é perfeito, de qualquer modo, ele apresente desvantagens
como alta complexidade e despesas gerais adicionais para a rede, que não beneficiam imediatamente
os usuários finais, e ainda consome banda da rede.

2.4. TCP e UDP
TCP é um protocolo de conexão, oferecendo correção 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 colisões, por exemplo, deste modo assegurando a entrega exata e completa dos dados. TCP é
tipicamente usado em trocas de informações importantes tal como transações de banco de dados.

O User Datagram Protocol (UDP), por outro lado, é um protocolo de conectividade que raramente lida
com a transmissão de dados importantes porque falta controle de fluxo ou qualquer outro método para
assegurar a entrega confiável dos dados. UDP comumente é usado em aplicações como áudio e vídeo,
onde é consideravelmente mais rápido que TCP devido à falta de correção de erro e controle de fluxo,
e onde a perda de alguns pacotes não é catastrófico, geralmente.


                                                   28
Rede


2.5. ICMP

O Internet Control Messaging Protocol (ICMP) é uma extensão do Internet Protocol (IP) como
definido na Petição Para Comentários (RFC) #792 e apoia pacotes de rede contendo controle, erro,
e mensagens de informação. ICMP é usado por aplicações 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 são útil a ambos hosts de rede e para dispositivos tal como roteadores,
incluem Destino Inacessível e Tempo de Esperera Excedido.

2.6. Serviços

Daemons (serviços) são aplicações especiais do sistema que tipicamente executam continuamente
em segundo plano e esperam requisições para as funções que eles fornecem a outras aplicações.
Muitos daemons são rede-cêntrico; isso é, um grande número 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 identificação
(login) remota segura e capacidade de transferência de arquivo; e o Internet Message Access Protocol
Daemon (imapd), que fornece serviços de correio eletrônico (e-Mail).




                                                 29
Rede


3. Configuração do Firewall
O kernel Linux inclui o subsistema Netfilter, o qual é usado para manipular ou decidir o destino
do tráfego de rede dirigido para ou através de seu servidor. Todas as soluções de firewall Linux
modernas utilizam esse sistema para filtragem de pacotes.

3.1. Instrodução ao Firewall

O sistema de filtragem de pacotes do kernel tem pouca utilidade para os administradores sem uma
interface para gerenciá-la. Este é o propósito do iptables. Quando um pacote chega ao servidor, ele
será encaminhado ao subsistema Netfilter para aceitação, manipulação ou rejeição, baseado numa das
regras supridas pela interface via iptables. Então, 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 propósito da Máscara de IP é permitir máquinas com IP privado, endereço não-roteável em sua rede
para acessar a Internet por meio da máquina "mascarada". O tráfico destinado de sua rede privada
para a Internet deve ser manipulado para obter respostas da máquina que fez a petição, como em
uma rota invertida. Para fazer isto, o kernel deve modificar o endereço IP da fonte de cada pacote e
retornar respostas a ele, antes que o endereço privado IP faço o pedido de resposta, que é impossível
através da Internet. O Linux usa Connection Tracking (conntrack) para acompanhar que conexões
pertence a que máquinas e desviar cada pacote de retorno correspondente. O tráfico originado em sua
rede privada é assim "mascarado" como tendo originado de seu gateway Ubuntu. Este processo possui
refência na documentação da Microsoft como Conexão de Internet Compartilha.

Isto pode ser realizado com uma única regra no iptables, que pode diferir levemente baseado em sua
configuração de rede:

sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE

O comando acima supõe que seu endereço 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 endereço 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 série na tabela de filtro (a tabela padrão, onde a maioria ou todos os processos e filtragem
de pacotes ocorre) tem uma diretriz padrão para ACEITAR, mas se você estiver criando um


                                                  30
Rede


firewall adicional para o dispositivo de gateway, você terá que definir políticas de DESCARTE ou
REJEIÇÂO, em que caso seu tráfico "mascarado" necessitará de permição pra ENVIAR para a série
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 conexões de sua rede local à Internet e todo trânsito relacionado
a essas conexões retornar à máquina que os iniciou.

3.3. Ferramentas
Há muitas ferramentas disponíveis para ajudá-lo a construir um firewall completo sem conhecimento
íntimo da ferramenta iptables. Para os que preferem GUI (interfaces gráficas), sugere-se o Firestarter
é bem popular e de fácil utilização, e o fwbuilder, uma aplicação 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 solução poderosa que o ajudará em configurações avançadas de firewall em
sua rede. Se sua rede for relativamente simples ou você não possuir uma rede o ipkungfu deve
proporcionar-lhe um firewall útil com configuração inicial zero, e o permitirá facilmente armar um
firewall mais avançado editando arquivos de configuração 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 aplicações
interativas populares de firewall para Windows.

3.4. Logs
O registro (log) das ações 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, aliás, e regras de registro devem vir antes de
qualquer regra aplicável (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 requisições pela porta 80 para a máquina local, então, 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 invés do LOG (registro). O daemon
ulogd é um servidor userspace que observa o sistema para registrar instruções específicas do kernel
para firewalls e registrar qualquer arquivo que você queira, igual aos bancos de dados PostgreSQL e
MySQL. O registro das ações do firewall pode ser simplificada usando uma ferramenta para análise
de registros, como o fwanalog, fwlogwatch, ou lire.


                                                   31
Rede


4. Servidor OpenSSH

4.1. Introdução

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 versão disponível livremente da família de ferramentas do protocolo Secure Shell
(SSH) para controlar um computador remotamente ou transferir arquivos entre computadores.
Ferramentas tradicionais utilizadas para cumprir essas funções, como telnet ou rcp são inseguras e
transmitem a senha de um usuário em texto puro quando utilizadas. O OpenSSH provê um servidor
daemon e ferramentas de cliente para facilitar controle remoto e operações de transmissão de arquivo
com segurança e criptografia, efetivamente substituindo ferramentas de legado.

O componete de servidor OpenSSH, sshd, observa constantemente conexões de clientes para qualquer
das ferramentas do cliente. Quando uma requisição de conexão ocorre, sshd inicia a conexão correta
dependendo do tipo de ferramenta de conexão do cliente. Por exemplo, se um computador remoto
conecta-se por um cliente ssh, o servidor OpenSSH iniciará o controle remoto da sessão após
autenticar. OpenSSH utiliza vários métodos de autentificação, incluindo senha simples, chave pública
e tiquetes Kerberos.

4.2. Instalação

A instalação 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. Configuração

Você pode configurar o comportamento padrão do servidor OpenSSH, sshd, editando o arquivo
/etc/ssh/sshd_config. Para mais informação sobre as diretrizes de configuração 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 configuração do sshd que controlam coisas como
configurações de comunicação e modos de autenticação. Os seguintes são exemplos de diretrizes de
configuração que podem ser modificados editando o arquivo /etc/ssh/ssh_config.

         Antes de editar o arquivo de configuração, você deve fazer uma cópia do arquivo original e
         protegê-lo de escrita, para que você assim tenha os ajustes originais como uma referência e
         para reusar como necessário.

         Copie o arquivo /etc/ssh/sshd_config e proteja-o contra sobrescrição 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 são exemplos de diretrizes de configuração que você pode modificar:
• Para ajustar seu OpenSSH para escutar na porta de TCP 2222 invés da porta de TCP padrão 22,
  modifique a diretriz Port da seguinte forma:

  Porta 2222
• Para fazer o sshd aceitar acesso público à 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 não está
  comentada.
• Para fazer o seu servidor OpenSSH exibir o conteúdo 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.

Após realizar as auterações no arquivo /etc/ssh/sshd_config, salve o arquivo e reinicie o servidor
de aplicações sshd para que as auterações tenham efeito. Para isto utilize o seguinte comando em um
terminal:


sudo /etc/init.d/ssh restart


         Várias configurações adicionais de diretrizes do sshd estão disponíveis para auterar o
         comportamento do servidor de acordo com suas necessidades. Esteja ciente, no entanto, que
         se seu único método de acesso a um servidor é ssh e você comete um erro ao configurar o
         sshd via arquivo de configuração /etc/ssh/sshd_config, você pode torna-lo indisponível
         após reiniciar o servidor, ou esse servidor sshd pode recusar iniciar, devido a uma diretriz

                                                 33
Rede


        incorreta na configuração, então seja extremamente cuidadoso quando editar este arquivo
        num servidor remoto.

4.4. Referências

Web site OpenSSH [http://www.openssh.org/]

Página Wiki OpenSSH Avançado [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:
• Anônimo
• Autenticado

No modo Anônimo, clientes remotos podem acessar o servidor FTP usando a conta de usuário
padrão chamada 'anonymous' ou 'ftp' e informando um endereço de e-mail como senha. No modo
Autenticado um usuário precisa ter uma conta e uma senha. O acesso do usuário aos diretórios e
arquivos do servidor de FTP depende das permissões definidas para a conta usada no login. Como
uma regra geral, o serviço de FTP irá esconder o diretório root do servidor de FTP e alterá-lo para o
diretório Home do FTP. Isso ocultará o restante do sistema de arquivos nas sessões remotas.

5.1. vsftpd - Instalação de Servidor FTP
O vsftpd é um daemon FTP disponível no Ubuntu. Ele é fácil de instalar, configurar e manter. Para
instalar o vsftpd você pode rodar o seguinte comando:

 sudo apt-get install vsftpd


5.2. vsftpd - Configuração Servidor FTP
Você pode editar o arquivo de configuração do vsftpd, /etc/vsftpd.conf, para modificar as
configurações padrões. Por padrão apenas FTP anônimo é permitido. Se você deseja desabilitar essa
opção, você deve modificar a seguinte linha:


anonymous_enable=YES

para


anonymous_enable=NO

Por padrão, os usuários locais do sistema não tem permissão para fazer login no servidor FTP. Para
modificar essa configuração, você deve descomentar a seguinte linha:


#local_enable=YES

Por padrão, usuários tem permissão para descarregar arquivos do servidor FTP. Eles não tem
permissão para enviar arquivos para o servidor FTP. Para modificar essa configuração, você deve
descomentar a seguinte linha:


                                                  35
Rede



#write_enable=YES

Similarmente, por padrão, os usuários anônimos não tem permissão para enviar arquivos para o
servidor FTP. Para modificar essa configuração, você deve descomentar a seguinte linha:


#anon_upload_enable=YES

O arquivo de configuração é formado por vários parâmetros de configuração. As informações sobre
cada parâmetro estão disponíveis no arquivo de configuração. Alternativamente, você pode consultar
a página do manual, man 5 vsftpd.conf para um melhor detalhamento de cada parâmetro.

Uma vez configurado o vsftpd você pode iniciar o serviço usando o seguinte comando:

 sudo /etc/init.d/vsftpd start

         Note que os valores padronizados no arquivo de configuração estão ajustados da forma que
         estão por motivos de segurança. Cada uma das modificações feitas acima deixa o sistema
         cada vez menos seguro, portanto use-as somente se forem realmente necessárias.




                                                36
Rede


6. Network File System (NFS)
NFS permite um sistema a compartilhar diretórios e arquivos com outros sistemas em uma rede. Ao
usar NFS, usuários e programas podem acessar arquivos em sistemas remotos quase que como se os
mesmos fossem arquivos locais.

Alguns dos mais notáveis benefícios que NFS oferece são:
• Máquinas de trabalho locais usam menos espaço de disco porque dados comumente usados podem
  ser armazenados em uma única máquina e ainda assim permanecer acessível à outros na rede.
• Não é necessário criar diretórios pessoais de usuários separados em cada máquina na rede.
  Diretórios pessoais podem ser criados em um servidor NFS de forma acessível por toda a rede.
• Dispositivos de armazenamento como disquetes, CD-ROM, e chaveiros USB podem ser usados por
  outras máquinas na rede. Isto pode reduzir o número de dispositivos de mídia removíveis por toda a
  rede.

6.1. Instalação

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


sudo apt-get install nfs-kernel-server


6.2. Configuração

Você pode configurar os diretórios 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. Faça a declaração de nome de host o
mais específica possível para que sistemas indesejados não 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. Configuração do Cliente NFS

Use o comando mount para montar um diretório compartilhado NFS de outra máquina, digitando num
prompt de terminal um comando similar ao seguinte:


sudo mount exemplo.nomedamáquina.com:/ubuntu /local/ubuntu


                                                37
Rede


         O diretório ponto de montagem /local/ubuntu deve existir. Não devem existir arquivos ou
         subdiretórios dentro do diretório /local/ubuntu.

Uma forma alternativa para montar uma partição compartilhada NFS remota é adicionar uma linha ao
arquivo /etc/fstab. A linha deve conter o nome do servidor NFS host, o diretório no servidor sendo
exportado, e o diretório local onde a partição 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. Referências

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




                                                38
Rede


7. Dynamic Host Configuration Protocol (DHCP)
O Protocolo de Configuração Dinâmica de Hosts (DHCP) é um serviço de rede que permite que os
computadores sejam configurados automáticamente apartir de configurações feitas em um servidor
ao invés de serem configurados individualmente de forma manual. Computadores configurados
para serem clientes de DHCP não tem controle sobre as configurações que eles recebem do servidor
DHCP, e a configuração é transparente para o usuário do computador.

As configurações mais comuns providenciadas por um servidor DHCP para um cliente DHCP são:
• Endereço IP e Netmask
• DNS
• WINS

Entretanto, um servidor DHCP pode também providenciar propriedades de configuração como:
•   Noma da Máquina
•   Nome do Domínio
•   Gateway Padrão
•   Servidor de Tempo
•   Servidor de Impressão

A vantagem de usar DHCP é que as alterações em uma rede, por exemplo a alteração do endereço
de um servidor DNS, precisam apenas ser modificadas no servidor DHCP, e todos os equipamentos
da rede irão ser reconfigurados da próxima vez que seu cliente de DHCP consultar o servidor. Como
vantagem adicional, ele também torna mais fácil a integração de novos computadores à rede, já que
não é necessário confirmar a disponibilidade de um endereço IP. Conflitos na alocação de endereços
IP também são reduzidos.

Um servidor DHCP pode fornecer parâmetros de configuração usando dois métodos:
Endereço MAC
   Esse método consiste na utilização do DHCP por meio da identificação do endereço de hardware
   único de cada placa de rede conectada à rede e então fornecendo uma configuração constante
   cada vez que o cliente de DHCP faz uma requisição para o servidor DHCP usando o mesmo
   dispositivo de rede.
Pool de Endereços
   Esse método consiste na definição de um pool (algumas vezes chamado de faixa ou escopo) de
   endereços IP apartir do qual os clientes DHCP terão suas propriedades e configurações supridas
   dinâmicamente baseado num método de "o primeiro que chega é o primeiro que leva". Quando
   um cliente DHCP não mais está em rede por período de tempo especificado, a configuração
   expira e é disponibilizada novamente no pool de endereços 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 automáticamente configurados. Ambos os programas


                                                 39
Rede


são fáceis de instalar e configurar e serão automáticamente iniciados durante a inicialização do
sistema.

7.1. Instalação

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


sudo apt-get install dhcpd


Você verá a seguinte saída, 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 serviço do servidor DHCP, edite o /etc/dhcpd.conf para
ajustá-lo às suas necessidades
e configurações particulares, e reinicie o serviço do servidor DHCP
(/etc/init.d/dhcp start).

Você também precisará editar o /etc/default/dhcp para especificar as interfaces que o dhcpd
deverá ouvir. Por padrão ele ouve na eth0.


NOTA: as mensagens do dhcpd são enviadas para o syslog. Procure lá por
mensagens de diagnóstico.

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


7.2. Configuração

A mensagem de erro encontrada no final da instalação pode ser um pouco confusa, mas os seguintes
passos vão te ajudar a configurar o servidor:

Geralmente, o que você quer fazer é associar um endereço IP de forma aleatoria. Isto pode ser feito
com as seguintes configurações:


# Exemplo /etc/dhcpd.conf
# (adicione seus comentários 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 endereço 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 endereço por
600 segundos se o cliente não perguntar por um determinado período de tempo. O servidor também
irá "avisar" o cliente que ele deve usar 255.255.255.0 como sua máscara de sub-rede, 192.168.1.255
como seu endereço 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
opção netbios-nome-servidor.


option netbios-name-servers 192.168.1.1;

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

7.3. Referências

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




                                                41
Rede


8. Domain Name Service (DNS)
Serviço de Nome de Domínio ( Domain Name Service - DNS) é um serviço de internet que mapeia
endereços IP para nomes de domínio completamente qualificados (FQDN) e vice-versa. Dessa forma,
o DNS faz com que não seja necessário decorar endereços IP. Os computadores que rodam o DNS são
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. Instalação
Em um terminal, digite o seguinte comando para instalar dns:


sudo apt-get install bind


8.2. Configuração
Os arquivos de configuração do DNS são armazenados no diretório /etc/bind. O arquivo de
configuração principal é o /etc/bind/named.conf. O conteúdo da configuração padrão está disposto
abaixo:


// Este é o arquivo de configuração primária para o servidor de DNS BIND named.
//
// Por favor, leia /usr/share/doc/bind/README.Debian para informações sobre a
// estrutura dos arquivos de configuração do BIND no Debian para versão 8.2.1 do BIND
// ou superior, *ANTES* de você customizar este arquivo de configuração.
//


include "/etc/bind/named.conf.options";

// reduz a saída de log em erros fora do nosso controle
logging {
 category lame-servers { null; };
 category cname { null; };
};


// servidor primário, 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 definições locais aqui
include "/etc/bind/named.conf.local";

A linha include especifica o nome do arquivo que contém as opções do DNS. A linha directory no
arquivo de opções diz ao DNS onde procupar por arquivos. Todos os arquivos utilizados pelo BIND
estão contidos nesse diretório.

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 seção zone define um servidor mestre, e ela é armazenado em um arquivo mencionado através da
tag file. Cada zona contém 3 registros de recursos (RRs): um RR SOA, um RR NS, e um RR PTR.
SOA é a abreviatura para Start of Authority, ou seja, Início da Autoridade. A "@" é uma notação
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 à documentação mencionada na seção de referências para detalhes.

8.3. Referências

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 serviços de impressão e filas, além de fornecer impressão em rede usando o
Protocolo padrão de Impressão da Internet (IPP), além de oferecer suporte a uma grande variedade
de impressoras, de matriciais a lasers dentre muitas outras. O CUPS também suporta Descrições de
Impressoras PostScript (PPD) e auto-detecção de impressoras de rede, e aprensenta também uma
ferramenta de administração simples baseada na web.

9.1. Instalação

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 usuário, deverá ocorrer o download e instalação dos pacotes
sem erros. Após a instalação, o servidor CUPS será inicializado automaticamente. Para resolução
de problemas, você pode acessar os erros do servidor CUPS através do arquivo de log de erros em:
/var/log/cups/error_log. Se os logs de erros não mostrar informações necessárias para resolução
dos seus problemas que você encontrar, a qualidade de saída de log do CUPS pode ser incrementada,
alterando a diretiva LogLevel no arquivo de configuração (discutido logo abaixo) para "debug" ou
ainda "debug2", o que causará o registro em log de tudo, do padrão ao "info". Se você fizer esta
mudança, lembre-se de desfazê-la assim que você resolver seu problema, para prevenir que o arquivo
fique muito grande.

9.2. Configuração

O comportamento do servidor CUPS (The Common UNIX Printing System) é configurado através
das diretivas contidas no arquivo /etc/cups/cupsd.conf. O arquivo de configuração do CUPS segue
a mesma sintaxe que o arquivo de configuração primário para o servidor de HTTP Apache, portanto
os usuários familiares com a edição do arquivo de configuração do Apache deverão ter uma maior
facilidade ao editar a configuração do CUPS. Alguns exemplos de configuração que você queira
inicialmente alterar serão apresentados aqui.

         Antes de editar o arquivo de configuração, você deve fazer uma cópia do arquivo original
         e protegê-lo contra sobrescrição, porque assim você terá os ajustes originais como uma
         referência, e para reusar como necessário.


                                                 44
Rede


         Copiar o arquivo /etc/cups/cupsd.conf e protegê-lo contra sobrescrição 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 endereço de email designado para o administrador do servidor
  CUPS, simplesmente edite o arquivo de configuração /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, Então você deverá alterar a diretiva
  ServerAdmin para ficar como:


  ServerAdmin bjoy@somebigco.com


Para mais exemplos de diretivas de configuração no arquivo de configuração do servidor CUPS, veja
a página de manual do sistema relacionada através da utilização do seguinte comando no prompt de
um terminal:


man cupsd.conf


         Cada vez que você fizer alterações no arquivo de configuração /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 configurações do servidor CUPS são feitas no arquivo
/etc/cups/cups.d/ports.conf:

• Listen: Por padrão no Ubuntu, o servidor CUPS escuta somente na interface de loopback no
  endereço de IP 127.0.0.1. Para instruir o CUPS a escutar num endereço IP de uma rede, você deve
  especificar um hostname, um endereço de IP, ou opcionalmente, um endereço/porta de acordo com
  as diretivas Listen. Por exemplo, se seu servidor CUPS fica numa rede local com o endereço de IP
  192.168.10.250 e você gostaria de torná-lo acessível 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 referência ao endereço Loopback (127.0.0.1)
  se você não 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, incluíndo 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 invés, como:


  Port 631 # Escute na porta 631 em todas as interfaces


9.3. Referências

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 páginas de internet é o Hyper Text Transfer Protocol
(HTTP - Protocolo de transferência de hipertexto). Protocolos como Hyper Text Transfer Protocol
over Secure Sockets Layer (HTTPS - Protocolo seguro de transferência de hipertexto) e File Transfer
Protocol (FTP - Protocolo de transferência de arquivo), um protocolo para enviar e receber arquivos,
são também suportados.

Servidores Web Apache são geralmente utilizados em conjunto com o motor de banco de dados
MySQL, a linguagem de de construção de scripts pré-processadora de hiper-texto (PHP), e outras
linguagens de construção de scripts populares como o Python e o Perl. Essa configuração é
denominada LAMP (Linux, Apache, MySQL e Perl/Python/PHP) e dá forma a uma poderosa e
robusta plataforma de desenvolvimento e hospedagem de aplicações basedas na web.

10.1. Instalação

O servidor web Apache2 está disponível no Ubuntu Linux. Para instalar o Apache2:

•   No prompt de um terminal informe o seguinte comando:

    #
    sudo apt-get install apache2#


10.2. Configuração

O Apache é configurado colocando-se diretivas em arquivos de configuração de texto puro. O arquivo
de configuração principal é chamado apache2.conf. Além disso, outros arquivos de configuração
podem ser adicionados utilizando-se a diretiva Include, e caracteres coringa (wildcards) podem
ser utilizados para incluir vários arquivos de configuração. Qualquer diretiva pode ser colocada
em qualquer desses arquivos de configuração. Mudanças no arquivo de configuração apenas são
reconhecidas pelo Apache2 quando este for iniciado ou reiniciado.

O servidor também irá ler um arquivo contendo os tipos mime de documentos; o nome do arquivo é
definido pela diretiva TypesConfig, e é mime.types por padrão.


                                                 47
Rede


O arquivo de configuração padrão do Apache2 é o /etc/apache2/apache2.conf. Você pode editar
esse arquivo para configurar o servidor Apache2. Você pode configurar o número da porta, raiz dos
documentos, módulos, arquivos de log, hosts virtuais, etc.

10.2.1. Configurações Básicas

Essa seção explica os parâmetros de configuração essenciais do servidor Apache2. Procure pela
Documentação do Apache2 [http://httpd.apache.org/docs/2.0/] para mais detalhes.
• O Apache2 vem com uma configuração padrão amigável para hosts virtuais. Isto é, ele é
  configurado com um host virtual único padrão (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 múltiplos sites. Se não for alterado, o host virtual
  padrão servirá como seu site padrão, ou o site que os usuários utilizarão caso a URL que eles
  especifiquem não bata com a diretiva ServerName de nenhum de seus sites customizados. Para
  modificar o virtual host padrão, edite o arquivo /etc/apache2/sites-available/default.
  Caso você deseje configurar um novo host virtual ou site, copie esse arquivo para o mesmo
  diretório 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 endereço de email a ser anunciado como do administrador do
  servidor. O valor padrão é webmaster@localhost. Ele deve ser alterado para um endereço 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 endereço de email para
  qual o problema poderá ser relatado. Encontre esta diretiva no arquivo de configuração do site site
  em /etc/apache2/sites-available.
• A diretiva Listen especifica a porta, e opcionalmente o endereço IP, na qual o Apache2 irá escutar.
  Se o endereço IP não for especificado, o Apache2 irá escutar em todos os endereços IP designados
  para a máquina no qual ele esteja rodando. O valor padrão 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 disponível para a Internet, para (por exemplo) 81 para mudar a porta no
  qual ele escuta, ou deixe o valor como está para operação normal. Esta diretiva pode ser encontrada
  e alterada em seu próprio arquivo, /etc/apache2/ports.conf
• A diretiva ServerName é opcional e especifica qual a FQDN seu site deverá responder. O host
  virtual padrão não possui diretiva ServerName especificada, portanto ele irá responder a todas
  as requisições que não combinem com uma diretiva ServerName em outro host virtual. Se
  você acabou de adquirir o nome de domínio ubunturocks.com e gostaria de hospedá-lo no seu
  servidor Ubuntu, o valor da diretiva ServerName no arquivo de configuração 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 padrão é /var/www. Nenhum site está configurado lá, mas você pode descomentar a


                                                  48
Rede


  diretiva RedirectMatch em /etc/apache2/apache2.conf as requisições serão redirecionadas para
  /var/www/apache2-default onde o site padrão do Apache2 aguarda. Altere este valor no arquivo de
  host virtual do seu site e lembre-se de criar aquele diretório se necessário!

         O diretório /etc/apache2/sites-available não é decodificado pelo Apache2. Links simbólicos
         em /etc/apache2/sites-enabled apontam para sites "disponíveis" (available). Utilize o
         utilitário a2ensite (Apache2 Enable Site) para criar esses links simbólicos, como neste
         exemplo: sudo a2ensite meunovosite onde o arquivo de configuração do seu site é
         /etc/apache2/sites-available/meunovosite. Semelhantemente, o utilitário a2dissite
         deve ser usado para desabilitar sites.

10.2.2. Configuração Padrão

Esta seção explica a configuração das definições padrão do servidor Apache2. Por exemplo, se você
adicionar um host virtual, as definições que você configurar para o host virtual têm precedência para
aquele host virtual. Para uma diretiva não definida dentro da definição de host virtual, o valor padrão
é utilizado.
• O DirectoryIndex é a página padrão servida pelo servidor quando o usuário requisita um índice de
  um diretório especificando uma barra (/) no final do nome do diretório.

  Por exemplo, quando um usuário solicita a página http://www.examplo.com/este_diretório/, ele
  ou ela vai ver: o DirectoryIndex (DiretórioÍndice) se ele existir; uma lista do diretório gerado
  pelo servidor caso não exista e as opções de índices estiverem especificadas; ou uma página de
  Permissão Negada se nenhuma das duas opções forem verdadeiras. O servidor irá tentar encontrar
  um dos arquivos listados no DirectoryIndex e irá retornar o primeiro que for encontrado. Se ele
  não encontrar nenhum destes arquivos e se as Opções de Índices estiver ajustadas para aquele
  diretório, o servidor irá gerar e retornar uma lista, no formato HTML, dos subdiretórios e arquivos
  no diretório. O valor padão, encontrado em /etc/apache2/apache2.conf é "index.html index.cgi
  index.pl index.php index.xhtml". Portanto, se o Apache2 encontras um arquivo no diretório
  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 específico de erro. Por exemplo, se um usuário solicitar um recurso que
  não existe, um erro 404 ocorrerá, e por padrão de configuração do Apache2, o arquivo
  /usr/share/apache2/error/HTTP_NOT_FOUND.html.var será mostrado. Este arquivo
  não está na Raiz de Documentos do servidor, mais existe uma diretiva de apelido no
  /etc/apache2/apache2.conf que redireciona as requisições do diretório /error para
  /usr/share/apache2/error/. Para ver a listagem de directivas padrão de Documentos de Erro, use o
  comando: grep ErrorDocument /etc/apache2/apache2.conf
• Por padrão, o servidor registra o arquivo de transferências no arquivo /var/log/apache2/access.log.
  Você pode mudar isto site por site em seu arquivo de configuração de host virtual atravéz
  da diretriz CustomLog, ou omiti-la para aceitar o padrão, especificado no arquivo
  /etc/apache2/apache2.conf. Você pode também especificar o arquivo onde os erros serão
  registrados, através da diretriz ErrorLog, que por padrão é /var/log/apache2/error.log. Estes


                                                   49
Rede


  são mantidos separados do log de transferência para permitir eliminação de problemas com seu
  servidor Apache2. Você pode também especificar o LogLevel (o valor padrão é "alertar") e o
  LogFormat (veja o /etc/apache2/apache2.conf para o valor padrão).

• Algumas opções são especificadas num esquema por diretórios ao invéz de um esquema por
  servidor. A diretiva Option é uma dessas diretivas. Uma instância de Directory é encapsulada entre
  tags semelhantes ao XML, como em:

  <Directory /var/www/mynewsite>
      ...
     </Directory>

  A diretiva Options com um instância de Directory aceita um ou mais dos seguintes valores (entre
  outros), separados por espaços:
  • ExecCGI - Permite execução de scripts CGI. Scripts CGI não são executados se esta opção não
    estiver abilitada.

              A maioria dos arquivos não devem ser executados como scripts CGI. Isto pode ser
              muito perigoso. Scripts CGI devem ser mantidos em diretórios separados fora do
              DocumentRoot, e somente este diretório deve ter a opção ExecCGI habilitada. Isto é o
              padrão, e o local padrão para os scripts CGI é /usr/lib/cgi-bin.
  • Includes - Permite inclusões no lado do servidor. Inclusões no lado do servidor permitem que
    um arquivo HTML inclua outros arquivos. Essa não é uma opção comum. Veja o Apache2 SSI
    Howto [http://httpd.apache.org/docs/2.0/howto/ssi.html] para maiores informações.
  • IncludesNOEXEC - Permite server-side includes, mais desabilita uso dos comandos #exec e
    #include nos scripts CGI
  • Indexes - Mostra uma lista formatada dos conteúdos dos diretórios, caso não exista um
    DirectoryIndex (tal como index.html) no diretório requisitado .

              Por motivos de segurança, isto geralmente não deveria estar hablilitado, e certamente
              não deveria estar habilitado no seu diretório DocumentRoot. Habilite esta opção
              com cuidado, diretório por diretório somente se você tem certeza de que quer que os
              usuários vejam o conteúdo inteiro do diretório.
  • Multiview - Suporta multi-visões negociadas pelo conteúdo; esta opção está desabilitada
    por padrão por motivos de segurança. Veja a Documentação do Apache2 para esta opção
    [http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews].
  • SymLinksIfOwnerMatch - Somente segue os links simbólicos caso o arquivo alvo ou diretório
    seja do mesmo dono que o link.

10.2.3. Configurações de Hosts Virtuais

Hosts virtuais permitem que você rode diferentes servidores para diferentes endereços IP, diferentes
nomes, ou diferentes portas da mesma máquina. 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 opção corresponde à diretiva <VirtualHost> para o virtual host padrão 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 são aplicadas para um host virtual em particular. Se a
diretiva é setada para escopo de servidor e não definida dentro das configurações de um virtual host,
as configurações padrão serão usadas. Por exemp#o, você pode definir o email do Webmaster e não
definir um email individual para cada virtual host.

Ajuste a diretiva DocumentRoot para o diretório que contém o documento raíz (como o index.html)
para o host virtual. O DocumentRoot padrão é /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. Configurações do Servidor

Esta seção explica como configurar as opções básicas 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. É obrigatório armazená-lo no disco local. Deixe o valor
padrão a menos que o diretório de logs esteja localizando em um compartilhamento NFS. Se este for
o caso, o valor padrão deverá ser alterado para um caminho no disco local e para um diretório no qual
apenas o root tem permissões de leitura.

PidFile - A diretiva PidFile define o arquivo em que o servidor gravará o seu ID de processo (pid).
Este arquivo deve ser permissões de leitura somente para o root. Na maioria dos casos, o valor padrão
deve ser deixado.

User - A diretiva User seta o UserID usado pelo servidor para responder as solicitações. Esta opção
determina o acesso ao servidor. Qualquer arquivo inacessível a este usuário será também inacessível
aos visitantes do seu website. O valor padrão para o User é www-data

         A não ser que você saiba exatamente o que está fazendo, não defina a diretiva User para
         root. Usando o root como User (usuário) você irá criar largas brechas de sergurança para seu
         ser servidor Web.

A diretiva Group é similar a diretiva User. Group define o grupo que o servidor irá responder as
solicitações. O grupo padrão é www-data.

10.2.5. Módulos do Apache

O Apache é um servidor modular. Isso significa que somente as funcionalidades básicas são inclusas
no núcleo do servidor. A extensão das funcionalidades são disponibilizadas através de módulos, que
podem ser carregados no Apache. Por padrão, alguns módulos básicos já estão inclusos na hora da


                                                  51
Rede


compilação. Se o servidor for compilado para usar o carregamento dinâmico de módulos, então os
módulos podem ser compilados separadamente, e adicionados à qualquer hora usando a diretiva
LoadModule. Caso contrário, o Apache2 precisa ser recompilado para adicionar ou remover módulos.
O Ubuntu compila o Apache2 de maneira que permita o carregamento dinâmico de módulos. As
diretivas de configuração podem ser incluídas condicionalmente, com a presença de um módulo em
particular incluído num bloco <IfModule>. Você pode instalar módulos adicionais do Apache2 e
usá-los com o seu servidor WEB. Você pode instalar módulos do Apache2 usando o comando apt-get.
Por exemplo, para instalar o módulo do Apache2 para autenticação 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 módulo, ele estará disponível no diretório /etc/apache2/mods-available.
Você pode usar o comando a2enmod para habilitar um módulo. Você pode usar o comando a2dismod
para desabilitar um módulo. Quando você desabilita um módulo, ele estará disponível no diretório
/etc/apache2/mods-enabled.


10.3. Configurações HTTPS

O módulo mod_ssl adiciona uma funcionalidade importante no servidor Apache2 - a habilidade de
encriptar comunicações. Portanto, quando o seu navegador se comunica utilizando encriptação SSL, o
prefixo https:// é usado no começo do Localizador de Recurso Uniforme (URL) na barra de navegação
do navegador.

O módulo mod_ssl está disponível 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 módulo mod_ssl:


sudo a2enmod ssl


10.3.1. Certificados e Segurança

Para configurar um servidor seguro, use a criptografia de chave pública para criar um par de chaves
pública e privada. Na maioria dos casos, você manda o seu pedido de certificação (incluindo a sua
chave pública), uma prova da identidade da sua companhia e o pagamento para uma Autoridade de
Certificados (CA). A CA verifica o pedido de certificação 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 não deve ser usando na maioria dos ambientes de produção. Certificados auto-assinados
não são automaticamente aceitos pelo navegador dos usuários. Os usuários são questionados pelo
navegador para aceitar o certificado e criar uma conexão 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 conexão
  segura sem questionamentos ao usuário.
• Quando um CA emite um certificado assinado, está garantindo a identidade da organização que está
  provendo as páginas da web para o navegador.

A maioria dos navegadores que suportam SSL possuem uma lista dos CAs cujo certificados são
automaticamente aceitos. Se o navegador encontrar um certificado cujo CA autorizador não esteja na
lista, o navegador irá perguntar para o usuário se ele deve aceitar ou rejeitar a conexão.

Você pode gerar um certificado auto-assinado para o seu servidor seguro, mas fique atento para
o fato de que certificados auto-assinados não fornecem a mesma funcionalidade que certificados
assinados por um CA. Um certificado auto-assinado não é automaticamente reconhecido pela maioria
dos navegadores, e um certificado auto-assinado também não fornece nenhuma garantia quanto à
identidade da organização 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 fácil. Segue um resumo rápido:
1. Cria um par de chaves criptográficas privada e pública.
2. Cria uma requisição de certificado baseada na chave pública. A requisição de certificado contém
   informação 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.
   Não podemos lhe dizer qual Autoridade em Certificados (CA) escolher. Sua decisão deve ser
   baseada nas suas experiências anteriores, na experiência de amigos ou colegas, ou puramente por
   fatores financeiros.

   Uma vez decido qual CA usar, você precisa seguir as instruções 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 transações seguras.

Não 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 Requisição de Certificado (CSR)

Para gerar o Pedido de Assinatura de Certificado (CSR - Certificate Signing Request) você deve criar
sua própria 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 módulos longos
.....................++++++
.................++++++
impossível escrever 'estado aletaório'
e é 65537 (0x10001)
Informe a chave senha para o server.key:


Agora, você pode inserir a sua senha. Para uma segurança melhor, ela deve conter no mínimo oito
caracteres. O tamanho mínimo quando -des3 é especificado é de quatro caracteres. É bom incluir
números e/ou pontuação e não ser uma palavra de dicionário. Também, lembre-se que a sua senha é
sensível à caixa alta e/ ou baixa.

Redigite a sua senha para verificação. 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ê não
         precisa entrar com a senha todas as vezes que incializa o seu servidor seguro, mas é muito
         inseguro e uma compromissão da chave significará a compromissão do servidor também.

Em qualquer caso, você pode escoher em rodar o seu servidor sem a frase, deixar de lado a alteração
-des3 na geração da frase ou lançando 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 produção, você
         provavelmente precisa de um certificado assinado por uma CA. Não é 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 configuração do seu host virtual seguro. Você deve colocá-las na seção 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 número 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 páginas seguras no servidor digitando
https://seu_hostname/url/ na barra de endereços do seu navegador.

10.4. Referências
Documentação do Apache2 [http://httpd.apache.org/docs/2.0/]


                                                 55
Rede


Documentação do Mod SSL [http://www.modssl.org/docs/]




                                            56
Rede


11. PHP5 - Linguagem de Scripts
PHP é uma linguagem de scripts de propósito geral adequada para desenvolvimento Web. Os scripts
PHP podem ser embutidos em HTML. Esta seção explica como instalar e configurar PHP5 num
Sistema Ubuntu com Apache2 e MySQL.

Esta seção assume que você já instalou e configurou o Servidor Web Apache 2 e o Servidor de Banco
de Dados MySQL. Você pode consultar a seção do Apache 2 e as seções do MySQL neste documento
para instalar e configurar o Apache 2 e o MySQL, respectivamente.

11.1. Instalação

O PHP5 está disponível 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. Configuração

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 instalação, 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 solução para uma vasta gama de necessidades de
servidores de cache e proxy, ele atende desde pequenos escritórios até redes de grandes empresas
fornecendo mecanismos de controle de acesso granulares e monitoramento de parâmetros críticos via
Protocolo Simples de Gerenciamento de Redes (SNMP). Quando escolher um computador para uso
dedicado à função de servidor proxy Squid, ou servidores de cache, certifique-se de que seu sistema
estará configurado com uma grande quantidade de memória física, já que o Squid mantém um cache
em memória para melhor performance.

12.1. Instalação

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


sudo apt-get install squid squid-common


12.2. Configuração

O Squid é configurado através da edição de diretivas presentes no arquivo de configuração
/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 configuração mais especializada
do Squid, veja a seção de referências.

         Antes de editar o arquivo de configuração você deve fazer uma cópia do arquivo original
         e protegê-lo contra gravação, assim você terá as configurações originais para referência e
         re-utilização quando necessário.

         Copie o arquivo /etc/squid/squid.conf e proteja-o contra gravação 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 invés da porta padrão 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
  específico. Esse nome de host não precisa ser necessáriamente 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 serviços de
  Internet filtrados pelo squid para estar disponível somente para usuários de certos endereços de IP.
  Por exemplo, iremos ilustrar o acesso somente de usuários da sub-rede 192.168.42.0/24:

  Adicione as seguintes informações no final da seção ACL do seu arquivo /etc/squid/squid.conf:

  acl fortytwo_network src 192.168.42.0/24

  Então, adicione as seguintes informações no topo da seção 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
  serviços da Internet através de proxy para estarem disponíveis apenas durante o horário normal de
  trabalho. Por exemplo, nós 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 informações no final da seção 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

  Então, adicione as seguintes informações no topo da seção http_access do seu arquivo
  /etc/squid/squid.conf:


  http_access allow biz_network biz_hours

         Depois de fazer alterações no arquivo /etc/squid/squid.conf, salve-o e reinicie o servidor
         squid para que as alterações tenham efeito usando o seguinte comando em um prompt de
         terminal:


sudo /etc/init.d/squid restart


12.3. Referências

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




                                                  60
Rede


13. Version Control System
O controle de versões é a arte de gerenciar mudanças na informação. Ele tem sido há muito tempo
uma ferramenta crucial para programadores, que tipicamente passam seu tempo fazendo pequenas
mudanças em um software e então desfazendo essas mudanças no outro dia. Mas a utilidade de
softwares de controle de versões vão muito além do mundo dos desenvolvedores de software. Em
qualquer lugar que você possa encontrar pessoas usando computadores para gerenciar informações
que mudam constantemente, existe espaço para o controle de versões.


13.1. Subversion

O Subversion é um sistema de controle de versões de código aberto. Ele gerencia arquivos e diretórios
através do tempo. Uma árvore de arquivos é colocada em um repositório central. Esse repositório é
muito parecido com um servidor de arquivos comum, exceto pelo fato de que ele se lembra de todas
as alterações feitas nos arquivos e diretórios.

13.1.1. Instalação

Para acessar o repositório 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-seção HTTP na seção do Apache2 para instalar e configurar o Apache2. Para acessar o repositório
Subversion usando o protocolo HTTPS você precisa instalar e configurar um certificado digital no seu
servidor web Apache2. Por favor consulte a sub-seção HTTPS na seção 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. Configuração do Servidor

Este passo assume que você possui instalado os pacotes acima mencionados em seu sistema. Esta
sessão explica como criar um repositório Subversion e acessar o projeto.

13.1.2.1. Cria um Repositório Subversion

O repositório Subversion pode ser criado usando o seguinte comando de um prompt de terminal:


svnadmin create /path/to/repos/project


13.1.3. Métodos de Acesso

Os repositórios do Subversion podem ser acessados (retirados) através de diversos métodos -- no
disco local, através de vários protocolos de rede. Uma localização de repositório, entretanto, é sempre


                                                  61
Rede


uma URL. A tabela descreve como diferentes esquemas de URL apontam para os métodos de acesso
disponíveis.

Tabela 4.1. Métodos de Acesso

Esquema                                              Método de Acesso
file://                                              acesso direto ao repositório (no disco local)
http://                                              Acesso via protocolo WebDAV aos servidores
                                                     web Apache2 dotados de Subversion
https://                                             O mesmo que http://, mais com criptografia SSL
svn://                                               Acesso via protocolo customizado para um
                                                     servidor svnserve
svn+ssh://                                           Mesmo que svn://, mais através de um túnel SSH

Nessa seção, nós iremos ver como configurar o Subversion para todos esses métodos de acesso.
Aqui, nós iremos cobrir o básico. Para detalhes avançados de utilização consulte o livro do svn
[http://svnbook.red-bean.com/].

13.1.3.1. Acesso direto ao repositório (file://)

Esse é o mais simples de todos os métodos de acesso. Ele não requer que nenhum processo do
servidor Subversion esteja rodando. Esse método de acesso é usado para acessar o Subversion a partir
da mesma máquina. 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ê não especificar o nome do host, haverão três 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 permissões do repositório dependem das permissões do sistema de arquivos. Se o usuário tem
permissão de leitura/gravação, ele pode fazer checkout e fazer commit para o repositório.

13.1.3.2. Acesso via protocolo WebDAV (http://)

Para acessar o repositório através 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 contém detalhes de
autenticação de usuários. Para adicionar uma entrada, ex.: para adicionar um usuário, 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 usuário
será adicionado. Agora, para acessar o repositório você precisa rodar o seguinte comando:

svn co http://servername/svn

         As senhas são 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
         próxima seção.

13.1.3.3. Acesso via protocolo WebDAV com criptografia SSL (https://)

Acessar o repositório 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 certificação como a
Verisign. Alternativamente, você pode instalar seus próprios 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 repositório do Subversion, por favor consulte a seção acima! Os
métodos de acesso são exatamente os mesmos, exceto pelo protocolo. Você precisa usar https:// para
acessar o repositório do Subversion.

13.1.3.4. Acessar via protocolo específico (svn://)

Assim que o repositório 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 autenticação você pode descomentar as seguintes linhas no
arquivo de configuração:

# [comum]
# password-db = passwd

Depois de descomentar as linhas acima você pode manter a lista de usuários no arquivo passwd.
Então, edite o arquivo passwd no mesmo diretório e adicione o novo usuário. A sintaxe é a seguinte:


                                                      63
Rede


nomedousuário = senha


Para mais detalhes, por favor referir ao arquivo.

Agora, para acessar o Subversion via protocolo específico svn://, estando na mesma maquina ou não,
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 detecção de erros)
# -r -- raiz do diretório a ser servido

Para maiores detalhes de utilização, por favor consulte:
$ svnserve --help


Assim que você rodar esse comando, o Subversion iniciará ouvindo na porta padrão (3690). Para
acessar o repositório do projeto, você precisa rodar o seguinte comando a partir de um prompt de
terminal:


svn co svn://hostname/project project --username nome_do_usuário


Baseado na configuração do servidor, ele perguntará por uma senha. Assim que você estiver
autenticado, ele irá fazer a retirada do código do repositório do Subversion. Para sincronizar o
repositório do projeto com a cópia 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 utilização 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 específico com criptografia SSL (svn+ssh://)

A configuração e o processo do servidor é o mesmo do método svn://. Para detalhes, por favor
consulte a seção acima. Esse passo assume que você tenha seguido o passo acima e iniciado o
servidor Subversion usando o comando svnserve.

Também assume-se que o servidor ssh esteja rodando na maquina e que ele permita conexões
entrantes. Para confirmar, por favor tente fazer login na maquina usando ssh. Se você puder fazer
login, tudo está perfeito. Se você não puder fazer login, por favor resolva isso antes de continuar.

O protoclo svn+ssh:// é usado para acessar o repositório do Subversion usando criptografia SSL. Os
dados transferidos são criptografados usando esse método. Para acessar o repositório 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 repositório do Subversion usando esse método de acesso.

Baseado na configuração 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 código do
repositório do Subversion.

13.2. Servidor CVS

O CVS é um sistema de controle de versões. Você pode usá-lo para gravar o histórico de arquivos
fonte.

13.2.1. Instalação

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. Configuração

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 repositório se você modificar o repositório padrão 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 usuários, criar novos projetos e administrar o
servidor CVS.

         O CVS permite que o usuário adicione usuários independentemente da instalação do SO
         hospedeiro. Provavelmente a maneira mais fácil é usar os Usuários do Linux para o CVS,
         entretanto isso oferece problemas potenciais de segurança. 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 variável ambiental CVSROOT para armazenar o diretório raiz do CVS.
         Uma vez que tenha exportado a variável ambiental CVSROOT, você pode evitá-la usando a
         opção -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 usuário CVS tem permisssão de escrita no
         repositório CVS (/var/lib/cvs). Por padrão, o grupo src tem permissão de escrita no
         repositório CVS. Então, você pode adicionar um usuário neste grupo, e ele poderá então
         adicionar e gerenciar projetos no respositório CVS.


                                                   66
Rede


13.3. Referências

Página 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. São eles:
• MySQL™
• PostgreSQL
. Eles estão disponíveis no repositório principal. Esta seção explica como instalar e configurar esses
servidores de bancos de dados.

14.1. MySQL

MySQL é um servidor de dados SQL rápido, multi-thread, multi-usuário e robusto. Ele é adequado
para missões críticas, sistema de alto carregamento assim como para embutir em software instalado
em massa.

14.1.1. Instalação

Para instalar MySQL, execute o seguinte comando a partir do prompt de terminal:


sudo apt-get install mysql-server mysql-client

Quando a instalação 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 não está executando corretamente, você pode digitar o seguinte comando para
inicializá-lo.


sudo /etc/init.d/mysql restart

14.1.2. Configuração

Por padrão, a senha de administrador não 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 opções básicas -- arquivo de log,
número 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 serão encontradas na próxima geração
de sistemas DBMS.

14.2.1. Instalação

Para instalar PostgreSQL, execute o comando seguinte a partir do prompt de comando:


sudo apt-get install postgresql


Assim que a instalação estiver completa, você deve configurar o servidor PostgreSQL de acordo com
suas necessidades, ainda que a configuração padrão seja viável.

14.2.2. Configuração

Por padrão, a conexão via TCP/IP está desabilitada. O PostgreSQL suporta múltiplos métodos de
autenticação. Por padrão, o método de autenticação IDENT é usado. Por favor consulte O Guia de
Administrador do PostgreSQL [http://www.postgresql.org/docs/8.1/static/admin.html].

A seguinte discussão assume que você deseja habilitar conexões TCP/IP e usar o metódo MD5 para
autenticações de clientes. Os arquivos de configuração do PostgreSQL estão armazenados no diretório
/etc/postgresql/<version>/main. Por exemplo, se você instalar o PostgreSQL 7.4, os arquivos de
configuração estão armazenados no diretório /etc/postgresql/7.4/main.

         Para configurar a autenticação ident, adicione as entradas no arquivo
         /etc/postgresql/7.4/main/pg_ident.conf.


Para habilitar conexões 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
parâmetros, se você souber o que está fazendo! Para detalhes, consulte o arquivo de configuração ou a
documentação do PostgreSQL.

Por padrão, as credenciais de usuário não são definidas para autenticação de cliente por MD5. Então,
primeiro é necessário configurar o servidor PostgreSQL para usar a autenticação de clientes por
confiança, conecte a base de dados, configure a senha e reverta a configuração para a autenticação
de clientes por MD5 usar. Para habilitar a autenticação de clientes por confiança, edite o arquivo
/etc/postgresql/7.4/main/pg_hba.conf


Comente todas as linhas existentes que usem a autenticação de clientes por ident e MD5 e adicione a
seguinte linha:


                                                 69
Rede



local all postgres trust sameuser

Então, 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 padrão de exemplo do PostgreSQL


psql -U postgres -d template1

O comando acima conecta ao banco de dados template1 do PostgreSQL como usuário 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 usuário postgres.


template1=# ALTERA USUÁRIO 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
autenticação MD5:

Comente a linha confiança adicionada recentemente e adicione a seguinte linha:


local all postgres md5 sameuser

         A configuração abaixo não 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 parâmetros.




                                                70
Rede


15. Serviços de Email
O processo de entrega de um e-mail de um pessoa para outra através 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 Usuário de Correio (MUA)
ou cliente de e-mail, para enviar a mensagem através de um ou mais Agentes de Transferência de
Correio (MTA), o qual irá entregá-la para um Agente de Entrega de Correio (MDA) para entregá-la
na caixa postal do destinatário, apartir da qual será retirada pelo cliente de e-mail do destinatário,
normalmente através de um servidor POP3 ou IMAP.

15.1. Postfix
Postfix é o Mail Transfer Agent (MTA) padrão do Ubuntu. Ele tenta ser rápido, fácil de administrar e
seguro. É compatível com o MTA sendmail. Esta seção explica como instalar e configurar o postfix.
Também explica como configurá-lo como um servidor SMTP usando uma conexão segura (para
enviar emails de forma segura).

15.1.1. Instalação

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 instalação, a configuração será
feita em detalhes no próximo passo.

15.1.2. Configuração Básica

Para configurar o postfix, execute o seguinte comando:


sudo dpkg-reconfigure postfix

A interface do usuário será mostrada. Em cada tela, selecione os seguintes valores:
•   Ok
•   Site de Internet
•   NENHUM
•   email.exemplo.com
•   email.exemplo.com, localhost,localdomain, localhost
•   Não
•   127.0.0.0/8
•   Sim
•   0
•   +
•   all


                                                  71
Rede


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



15.1.3. Autenticação SMTP

Os próximos passos são configurar o postfix para usar SASL para SMTP AUTH. Ao invés de
editar o arquivo de configuração diretamente, você pode usar o comando postconf para configurar
todos os parâmetros do postfix. Os parâmetros de configuração serão armanzenados no arquivo
/etc/postfix/main.cf.  Depois se você desejar reconfigurar um parâmetro em particular, você pode
executar o comando ou mudá-lo manualmente no arquivo.
1.   Configure Postfix to do SMTP AUTH using SASL (saslauthd):


     postconf   -e   'smtpd_sasl_local_domain ='
     postconf   -e   'smtpd_sasl_auth_enable = yes'
     postconf   -e   'smtpd_sasl_security_options = noanonymous'
     postconf   -e   'broken_sasl_auth_clients = yes'
     postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_
     postconf -e 'inet_interfaces = all'

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


     pwcheck_method: saslauthd
     mech_list: plain login

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


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


              Você pode adquirir o certificado digital de uma autoridade certificadora.
              Alternativamente , você pode criar o certificado você mesmo. Consulte o Seção 10.3.4,
              “Criando um certificado Auto-Assinado” [54] para mais detalhes.
3.   Configure o Postfix para fazer encriptação 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 configuração 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 é necessário configurar a autenticação 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 modificações são necessárias para fazê-lo funcionar corretamente. Devido ao Postfix
rodar sob chroot em /var/spool/postfix, a SASL precisa ser configurada para rodar na falsa raíz
(/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 variável
START. Para configurar o saslauthd para rodar na raíz falsa, adicione as variáveis PWDIR, PIDFILE
e PARAMS. Finalmente, configure a variável 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 autenticação que você
# deseja usar. O valor padrão é "pam" para suporte PAM, mas você
# pode também incluir "shadow" ou "sasldb", assim:
# MECHANISMS="pam shadow"

MECHANISMS="pam"

             Se preferir, você pode utilizar shadow ao invés de pam. Ele irá usar transferência encriptada
             de senha MD5 e isso é perfeitamente seguro. O nome do usuário e a senha necessários
             para a autenticação serão aqueles mesmos dos usuários 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
inicialização do saslauthd usam essa configuração para criar o diretório que falta com as permissões e
posses necessárias:


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

15.1.5. Testando

A configuração da Autenticação do SMTP está completa. Agora é hora de iniciar e testar a
configuração. 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 estão funcionando normalmente, rode o seguinte comando:

telnet mail.example.com 25

Depois que tiver estabelecido uma conexão com o servidor de e-mail postfix, digite:

ehlo mail.example.com

Se você vir as seguintes linhas entre outras, então 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 Transferência 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 configuração do exim é bem diferente daquela feita para o sendmail.


                                                     74
Rede


15.2.1. Instalação

Para instalar o exim4, rode o seguinte comando:


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

15.2.2. Configuração

Para configurar o exim4, rode o seguinte comando:


sudo dpkg-reconfigure exim4-config

A interface de usuário será mostrada. A interface de usuário permite a você configurar vários
parâmetros. Por exemplo, no exim4 os arquivos de configuração estão divididos em múltiplos
arquivos. Se você quiser tê-los em um único arquivo você pode configurar isso através da interface de
usuário.

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 configuração 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 segurança em primeiro
lugar. Ele suporta os principais formatos de caixas postais: mbox ou Maildir. Essa seção explica como
configurá-lo como um servidor imap ou pop3.

15.3.1. Instalação

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. Configuração

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 descrição desses protocolos está além do escopo desse guia. Para maiores
informações, 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].

Após 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. Configuração 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 são criados automaticamente pelo dovecot quando você o instala. Por favor
note que essas chaves não são assinadas e darão 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 próprios certificados SSL.

15.3.4. Configuração de Firewall para um Servidor de Email

Para acessar seu servidor de e-mail através de outro computador, você deve configurar seu firewall
para permitir conexões ao servidor nas portas necessárias.
• IMAP - 143
• IMAPS - 993
• POP3 - 110
• POP3S - 995

15.4. Mailman
O Mailman é um programa open source para administração de discussões 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 fácil de instalar e manter.

15.4.1. Instalação

O Mailman provê uma interface web para administradores e usuários. 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

Nós 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 seção de referências.

15.4.1.1. Apache2

Para instalar o apache2 você deve consultar Seção 10.1, “Instalação” [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 instalação para o diretório /var/lib/mailman, instala os scripts CGI no
diretório /usr/lib/cgi-bin/mailman. cria o usuário de linux list, cria o grupo de linux list. O processo
mailman será controlado por este usuário.

15.4.2. Configuração

Esta seção 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 são instalados no diretório /usr/lib/cgi-bin/mailman. Logo, a URL do
mailman será http://hostname/cgi-bin/mailman/. Você pode fazer alterações 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 padrão, exim4 utiliza múltiplos arquivos de configuração 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 configuração aos seguintes tipos de
configuração:
• Principal
• Transporte
• Roteador
O Exim cria um arquivo mestre de configuração classificando todos estes pequenos arquivos de
configuração. Logo, a ordem de tais arquivos de configuração é muito importante.

15.4.2.3. Principal

Todos os arquivos que pertençam ao tipo principal são armazenados no diretório
/etc/exim4/conf.d/main/. Você pode adicionar o seguinte conteúdo a um novo arquivo, chamado
04_exim4-config_mailman:



# início
# Diretório inicial para sua instalação do mailman -- tambem conhecido
# como diretório prefixo do Mailman directory.
# No Ubuntu isso deve ser "/var/lib/mailman"
# É geralmente o mesmo que ~mailman
MM_HOME=/var/lib/mailman
#
# Usuário e grupo para o Mailman, deve equivaler ao seu parâmetro
# --with-mail-gid ao script "configura" do Mailman. O valor é normalmente
# "mailman"
MM_UID=list
MM_GID=list
#
# Domínios onde estão suas listas - lista separada por vírgulas
# você pode querer adicioná-los também ao local_domains
domainlist mm_domains=hostname.com
#
# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
#
# Estes valores são derivados daqueles acima and você não deverá
# precisar editá-los a não ser que você tenha bagunçado a sua instalação
# do mailman
#
# O caminho do script wrapper de email do Mailman
MM_WRAP=MM_HOME/mail/mailman
#
# O arquivo do arquivo de configuração da lista (usado como um arquivo
# requerido quando se verifica endereços de listas)
MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck
# fim


                                                 79
Rede


15.4.2.4. Transporte

Todos os arquivos que pertençam ao tipo de transporte são armazenados no diretório
/etc/exim4/conf.d/transport/. Você pode adicionar o seguinte conteúdo 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 configuração pertencentes ao tipo de roteamento são armazenados no diretório
/etc/exim4/conf.d/router/. Você pode adicionar o seguinte contéudo 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 configuração principais e de transporte podem estar em qualquer
         ordem. Mas, a ordem dos arquivos de configuração de roteamento deve a mesma. Este
         arquivo particular deve aparecer antes do arquivo 200_exim4-config_primary. Estes dois
         arquivos de configuração contêm o mesmo tipo de informação. O primeiro arquivo toma a
         precedência. Para mais detalhes, consulte, por favor, a seção das referências.

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 endereço de e-mail da pessoa que administra a lista: bhuvan at ubuntu.com
  Senha inicial do mailman:
  Para finalizar a criação de sua lista de e-mail, você deve editar o arquivo                    /etc/aliases   (ou
  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 proprietário mailman...

  #

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. Administração

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. Usuários

O Mailman fornece uma interface web aos usuários. Para acessar essa página, aponte seu browser
para a seguinte URL:

http://hostname/cgi-bin/mailman/listinfo

A lista de e-mail padrão, mailman, aparecerá nesta tela. Se você clicar no nome da lista, será
apresentado o formulário para inscrição. Você pode informar se endereço 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 instruções
no email para se inscrever.

15.4.5. Referências

GNU Mailman - Manual de Instalação [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. Sincronização de Horário 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 sincronização de horário sobre a rede. Basicamente um cliente
solicita o horário atual ao servidor, e o utiliza para ajustar seu próprio relógio.

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. Páginas 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
Capítulo 5. Redes Windows
Redes de computadores geralmente são 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 seção do Ubuntu Server Guide introduz princípios e ferramentas usadas na
configuração de seu Servidor Ubuntu para compartilhar recursos de rede com computadores
Windows.




                                                 85
Redes Windows


1. Introdução
Ligar em rede seu sistema Ubuntu com clientes Windows envolve que se disponibilize e integre
serviços comuns a ambientes Windows. Tais serviços ajudam no compartilhamento de dados e
informações sobre os computadores e usuários envolvidos na rede e pode ser classificado sob três
grandes categorias de funcionalidades:
• Serviços de Compartilhamento de Arquivos e Impressão. Utilizando o protocolo Server
  Message Block (SMB) para facilitar o compartilhamento de arquivos, pastas, volumes, e o
  compartilhamento de impressoras da rede.
• Serviços de Diretórios. Compartilhando informações vitais sobre os computadores e usuários da
  rede através de tecnologias como o Lightweight Directory Access Protocol (LDAP) e o Microsoft
  Active Directory®.
• Autenticação e Acesso. Estabelecendo a identidade de um computador ou usuário da rede e
  determinando a informação a qual o computador ou usuário está autorizado a acessar utilizando tais
  princípios e tecnologias como permissões de arquivo, diretivas de grupo e o serviço de autenticação
  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 aplicações 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 opções padrão ou adicionar novas configurações. Mais informações sobre cada configuração
estão disponíveis nos comentários do /etc/samba/smb.conf ou lendo a página de manual do
/etc/samba/smb.conf através do seguinte comando digitado no prompt do terminal:



man smb.conf


         Antes de editar o arquivo de configuração, você deve fazer uma cópia do arquivo original
         e protegê-lo contra escrita para que você tenha as configurações originais como uma
         referência e re-utilizá-las quando necessário.

Faça 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 faça suas alterações.

3.1. Servidor

Além do conjunto SAMBA, que compartilha arquivos e impressoras, o Ubuntu inclui outras
aplicações poderosas que fornecem funcionalidades adicionais, como servidor de rede para clientes
Windows, semelhante as funcionalidades fornecidas pelos atuais servidores Windows. Por exemplo,
Ubuntu oferece gerência centralizada de recursos de rede tal como computadores e operadores via
Serviço de Diretórios, o que facilita a identificação, autorização de computadores e usuários por meio
de Serviço de Autentificação.

As seguintes seções discutirão SAMBA e as tecnologias de suporte, tal como servidor Lightweight
Directory Access Protocol - LDAP, e servidor de autentificação Kerberos com mais detalhe. Você
também aprenderá sobre algumas diretrizes disponíveis de configuração do SAMBA que facilita
integração da rede com clientes e servidores Windows.

3.1.1. Active Directory

Active Directory é uma implementação proprietário do Serviço de Diretório da Microsoft, e é
usada para fornecer um meio de compartilhar informações sobre recursos de rede e usuários.
Além de fornecer uma fonte centralizada de tal informação, Active Directory também age como
uma autoridade centralizada de segurança e autentificação para a rede. Active Directory combina
capacidades tradicionalmente achadas separademente em sistemas especializados simplificando
integração, gerência, e segurança de recursos de rede. O pacote SAMBA pode ser configurado para
usar serviços de Active Directory para Controle de Domínios Windows.



                                                  88
Redes Windows


3.1.1.1. LDAP

O servidor LDAP fornece funcionalidade de Serviço de Diretório a computadores Windows
numa maneira muito semelhante ao serviço Active Directory da Microsoft. Tais serviços incluem
administração de identidades, conexões de computadores, usuários, grupos de computadores ou
usuários que participam da rede, além de possibilitar um meio coerente de descrever, localizar e
administrar estes recursos. A implementação livre do LDAP disponível para seu sistema Ubuntu
é chamada de OpenLDAP. Os servidor de "daemons" responsável por manipular requisições do
OpenLDAP e propagar dados doe servidor de diretório LDAP a outro no Ubuntu é slapd e slurpd. O
OpenLDAP pode ser usado em conjunto com o SAMBA para fornecer Arquivo, Impressão, serviços
de Diretório é praticamente igual ao Controle de Domínios do Windows contanto que, o SAMBA seja
compilado com suporte a LDAP.

3.1.1.2. Kerberos

O sistema de segurança e autentificação Kerberos é um serviço padrão que fornecer autentificação
entre computadores e usuários por meio de um servidor centralizado que concede autentificações
criptografas a qualquer computador que esteja utilizando o Kerberos. Os benefícios do sistema de
autentificação do Kerberos incluem autentificação mútua, autentificação delegada, interoperabilidade
e gerência simplificada confiável. O servidor primário de "daemons" que manipula a autentificação do
Kerberos e o servidor que administra a base de dados do Kerberos no Ubuntu são krb5kdc e kadmin.
O SAMBA pode usar Kerberos como um mecanismo para autentificação de computadores e usuários
em contraste com o Controle de Domínios 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 símbolo DOMAIN_NAME no exemplo acima pelo nome
         verdadeiro do seu Domínio Windows específico.

Você precisará reiniciar os daemons SAMBA para efetivar essas alterações. 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 são utilizadas em Serviços de Diretório para identificar unicamente sistemas
de computador que participam de uma rede e são também tratados da mesma maneira que usuários
em termos de segurança. Contas de computador podem ter senha assim como usuários têm e estão


                                                89
Redes Windows


sujeitas a autorização para acessar recursos de rede da mesma forma que contas de usuários. Por
exemplo, se um usuário de rede com uma conta válida para uma rede em particular tenta se autenticar
a um recurso de rede de um computador que não tem uma conta de computador válida, dependendo
das diretivas aplicadas na rede, o acesso ao recurso pode ser negado ao usuário se o computador do
qual ele tenta se autenticar é considerado um computador não 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 válida de usuário na base de dados
local. Para adicionar uma conta de computador ou máquina 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 símbolo NOME_DO_COMPUTADOR no exemplo acima com
         o nome real do computador específico que você deseja adicionar.

3.1.3. Permissões de Arquivo

As Permissões de Arquivo definem de forma clara os direitos que um computador ou usuário tem a
um diretório particular, arquivo ou grupo de arquivos. Tais permissões podem ser definidas editando
/etc/samba/smb.conf e especificando de forma clara as permissões para o arquivo compartilhado.
Por exemplo, se você tem definido no compartilhamento do SAMBA a pastasourcedocse deseja
oferece-la com permissãoread-only (somente leitura) ao grupo conhecido de usuários planning, mas
necessita permitir que o grupo authors e o usuário chamado richard tenham permissão 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 auterações tenham efeito.

Outra possível permissão é declarar permissõesadministrativas a um particular e compartilhar recurso.
Usuários com permissões administrativas podem ler, gravar ou modificar qualquer informação
contida pois lhe foi dada de forma explícita esta autonomia. Por exemplo, se você precisa conceder ao
usuário melissa permissões 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 auterações tenham efeito.

3.2. Clientes

O Ubuntu inclui aplicações cliente e capacidades para acessar recursos de rede compartilhados com
o protocolo SMB. Por exemplo, o utilitário smbclient permite acesso remoto a arquivo/sistemas


                                                 90
Redes Windows


compartilhados, de maneira semelhante ao File Transfer Protocol (Protocolo de Transferência 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 <nomeusuário>


Você então será solicitado a fornecer a senha para o nome do usuários especificado depois da opção
-U, uma vez que a autentificação foi bem sucedida, será apresentado um lembrete onde comandos
podem ser utilizados para manipular e transferir arquivos numa sintaxe semelhante a usada por
clientes não-gráficos de FTP. Para mais informações sobre o utilitário smbclient, leia o manual
através do comando:



man smbclient



O suporte a recursos remotos na rede usatilizando o protocolo SMB também é possível, utilizando
o comando mount. Por exemplo, para montar o conteúdo compartilhada cujo nome é project-code,
localizada em um servidor Windows identificado na rede como development, como o usuário 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 usuário, e uma vez que a autentificação foi bem
sucedida, o conteúdo compartilhado estará disponível localmente no ponto de motagem especificado
como o último argumento ao comando mount. Para desconectar o conteúdo compartilhado, basta usar
o comando umount para qualquer sistema de arquivos montado. Exemplo:


umount /mnt/pcode


3.2.1. Contas de Usuários

Contas de Usuários definem pessoas com algum nível de autorização para usar certo computador
e conteúdo de rede. Tipicamente, num ambiente de rede, uma conta de usuário é fornecida a cada
pessoa permitido acessar um computador ou rede, onde diretrizes e permissões definem que direitos
explícitos essa conta de usuário tem acesso. Para definir usuários da rede SAMBA em seu sistema
Ubuntu, você pode utilizar o comando smbpasswd. Por exemplo, para adicionar o usuário 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 usuário:


                                                 91
Redes Windows


Nova senha SMB:


Entre com a nova senha para o usuário 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 usuário ao arquivo de senhas do SAMBA.

3.2.2. Grupos

Os grupos definem uma relação de computadores ou usuários que têm um nível comum de acesso a
recursos particulares da rede e oferece um nível detalhado para controlador o acesso a tais recursos.
Por exemplo, se o grupo qa contem os usuários freda, danika e rob e um segundo grupos support
contem os seguintes usuários danika, jeremy e vincent em seguida, certos recursos da rede podem
ser configurados para que o grupo qa seja acessível por freda, danika e rob, mas não por jeremy ou
vincent. Desde que o usuário danika pertença a ambos os grupos qa e support, ela será capaz de
acessar recursos de ambos os grupos, ao passo que todos os outros usuários terão acesso a recursos
explicitamente permitindos ao grupo de que fazem parte.

Quando for definir grupos no arquivo de configuração do SAMBA, /etc/samba/smb.conf a sintaxe
para identificar o nome do grupo deve iniciar com o símbolo "@". Por exemplo, se deseja definir um
grupo chamado sysadmin vá até a seção referente em /etc/samba/smb.conf e adicione o nome do
grupo da seguinte maneira: @sysadmin.

3.2.3. Políticas do Grupo

Políticas de Grupo define certos ajustes de configuração do SAMBA pertencentes ao Domínio ou
contas de computador do Grupo de Trabalho (workgroup), além de outros ajustes globais para o
servidor SAMBA. Por exemplo, se o servidor SAMBA pertencer ao Grupo de Trabalho do Windows
chamado NÍVELUM, então o arquivo /etc/samba/smb.conf deve ser editado, alterando os valores da
seguinte maneira:

workgroup = NÍVELUM

Salve o arquivo e reinicie os "daemons" do SAMBA para que as mudanças tenham efeito.

Outros ajustes importantes da política global incluem a sequência servidor que define o nome do
servidor NETBIOS informado por seu sistema Ubuntu a outras máquinas 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 localização do arquivo de registro (log file) do servidor SAMBA manuseando
a diretiva log file no arquivo de configuração /etc/samba/smb.conf.

Algumas diretrizes adicionais que governam as políticas globais de um grupo, incluem a descrição
detalhada da natureza global de todos recursos compartilhados. Por exemplo, colocar certas diretrizes


                                                  92
Redes Windows


na seção [global] do arquivo /etc/samba/smb.conf afetará todos os recursos compartilhados a
menos que uma diretriz primordial seja colocada sob um particular cabeçalho de compartilhamento
de recurso. Você pode especificar tudo que for passível de compartilhamento a qualquer cliente que
participe da rede alterando a diretriz browseable, o qual toma uma lógica Booleana, que deve ser
adicionada/modificada na seção [global] do arquivo /etc/samba/smb.conf. Ou seja, altere o arquivo
adicionando a linha:

browseable = true

abaixo da seção [global] em /etc/samba/smb.conf, então todo o conteúdo fornecidas por seu sistema
Ubuntu via SAMBA serão browseable (navegáveis) por todos os clientes autorizados, a menos que
uma parte específica contenha uma diretriz browseable = false, a qual sobrescreverá a diretriz global.

Outros exemplos de comando que trabalham de maneira semelhante, são as diretrizes public e
writeable. A diretriz public fornece um valor Booleano (sistema combinatório lógico) que define se
um usuário qualquer e/ou todos os clientes da rede compartilham recurso de gravação (writable) .




                                                 93
Apêndice 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
Apêndice 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

Mais conteúdo relacionado

PDF
Hardware idepac
PDF
Apostila Java
PDF
Installdebian
PDF
Apostila Tutorial CakePHP
PDF
50718286 apostila-de-asp-net-c-e-visual-basic-net
PDF
Apostila adobe-flash-cs5
PDF
Ap apostila arduino-rev4
Hardware idepac
Apostila Java
Installdebian
Apostila Tutorial CakePHP
50718286 apostila-de-asp-net-c-e-visual-basic-net
Apostila adobe-flash-cs5
Ap apostila arduino-rev4

Mais procurados (16)

PDF
Material LINUX
PDF
Apostila Arduino Basico
DOCX
Guia de estudo 101 completo
PDF
Hibernate Reference20061120
PDF
Guia xerox workcentre_3550
DOC
Apostila montagem e manuntencao csu
PDF
Manual Crioscópio Eletrônico pzl 7000 rev. 1.0
PDF
Apache
PDF
Resolvendo problemas no seu micro 2007 - laercio vasconcelos -
PDF
Dicionario de termos_de_informatica-3ed
PDF
Sumario9788575222102
DOC
Apostila Curso Montagem E Manutenção De Micros
PDF
Programando ooo b
PDF
Cake php cookbook
PDF
Dream weaver 8
PDF
Manual Aker Firewall UTM 6.7 PT
Material LINUX
Apostila Arduino Basico
Guia de estudo 101 completo
Hibernate Reference20061120
Guia xerox workcentre_3550
Apostila montagem e manuntencao csu
Manual Crioscópio Eletrônico pzl 7000 rev. 1.0
Apache
Resolvendo problemas no seu micro 2007 - laercio vasconcelos -
Dicionario de termos_de_informatica-3ed
Sumario9788575222102
Apostila Curso Montagem E Manutenção De Micros
Programando ooo b
Cake php cookbook
Dream weaver 8
Manual Aker Firewall UTM 6.7 PT
Anúncio

Destaque (20)

PDF
Aula 10 configuração ip estático ubuntu server
PPT
Instalação e configuração
PDF
Linux comandos gerais e servidores de rede
DOCX
Instalación y configuración interfaz gráfica ubuntu server 12.04
PDF
Instalação e configuração servidor dns - ubuntu server
PDF
Redes De Computadores - Alberane - 3
PPT
AdministraçãO Gnu Linux
PDF
Implementação de Servidor Linux Ubuntu Server
PDF
Segurança em servidores Linux
PDF
Linux Ubuntu Server - Configurar modo grafico do user root
PDF
Administração de Redes Linux - II
PPT
Ubuntu
ODP
Treinamento de comandos Unix e Linux
PDF
Cap1 exercicios comandos linux
PPS
Silver
PPT
Presentazione inglese
PPT
Future grps0-1226583494014006-9
PPTX
20 tips and tricks
PDF
Notam 01 jun 15
Aula 10 configuração ip estático ubuntu server
Instalação e configuração
Linux comandos gerais e servidores de rede
Instalación y configuración interfaz gráfica ubuntu server 12.04
Instalação e configuração servidor dns - ubuntu server
Redes De Computadores - Alberane - 3
AdministraçãO Gnu Linux
Implementação de Servidor Linux Ubuntu Server
Segurança em servidores Linux
Linux Ubuntu Server - Configurar modo grafico do user root
Administração de Redes Linux - II
Ubuntu
Treinamento de comandos Unix e Linux
Cap1 exercicios comandos linux
Silver
Presentazione inglese
Future grps0-1226583494014006-9
20 tips and tricks
Notam 01 jun 15
Anúncio

Semelhante a Guia Ubuntu Server (20)

PDF
Manual do ubuntu
PDF
Slackbookptbr 1.0.2
PDF
Instalei o Ubuntu e agora? (18.04)
PDF
Apostila dreamweaver-cs5
PDF
Linux > GUIA FOCA-Linux. 1 of 3.
PDF
Linux iniciantes
PDF
Index
PDF
Manual dreamweaver cs4
PDF
Lpi 101
PDF
Apostila Debian
PDF
Foca avancado
PDF
Guia Foca - Linux - Avançado
PDF
Foca linux3
PDF
Inst configdebian
PDF
Photoshop cs4
PDF
Samba
PDF
Manual Placa Base ICIP 30 Intelbras - LojaTotalseg.com.br
PDF
Photoshop cs3
PDF
Photoshop cs3
PDF
Photoshop cs3
Manual do ubuntu
Slackbookptbr 1.0.2
Instalei o Ubuntu e agora? (18.04)
Apostila dreamweaver-cs5
Linux > GUIA FOCA-Linux. 1 of 3.
Linux iniciantes
Index
Manual dreamweaver cs4
Lpi 101
Apostila Debian
Foca avancado
Guia Foca - Linux - Avançado
Foca linux3
Inst configdebian
Photoshop cs4
Samba
Manual Placa Base ICIP 30 Intelbras - LojaTotalseg.com.br
Photoshop cs3
Photoshop cs3
Photoshop cs3

Mais de Marcio Da Silva Teobaldino (9)

PDF
Apostila para hackers iniciantes
PDF
Apostila sketch-up
PDF
Batman o cavaleiro das trevas 2 - 3 de 3
PDF
Batman o cavaleiro das trevas 2 - 1 de 3
PDF
Batman o cavaleiro das trevas 2 - 2 de 3
PDF
Libre Office para Leigos
PDF
Glossario de T.I
PPTX
Evoluçâo Sistema Operacional Windows
Apostila para hackers iniciantes
Apostila sketch-up
Batman o cavaleiro das trevas 2 - 3 de 3
Batman o cavaleiro das trevas 2 - 1 de 3
Batman o cavaleiro das trevas 2 - 2 de 3
Libre Office para Leigos
Glossario de T.I
Evoluçâo Sistema Operacional Windows

Último (19)

PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Custos e liquidação no SAP Transportation Management, TM130 Col18
COBITxITIL-Entenda as diferença em uso governança TI
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Aula 18 - Manipulacao De Arquivos python
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula04-Academia Heri- Tecnologia Geral 2025
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Apple Pippin Uma breve introdução. - David Glotz
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...

Guia Ubuntu Server

  • 1. Ubuntu Server Guide Ubuntu Documentation Project <ubuntu-doc@lists.ubuntu.com>
  • 2. 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 introdução à instalação e configuração de aplicações para servidores no Ubuntu. Créditos e Licença Os seguintes autores da Equipe de Documentação do Ubuntu mantêm este documento: • Bhuvaneswaran Arumugam O Ubuntu Server Guide é baseado também nas contribuições de: • Robert Stoffers • Brian Shumate • Rocco Stanzione Este documento é feito disponível sob uma estratégia dupla de licença que inclue a Licença Livre de Documentação GNU (GFDL) e a Licença Criativa Comum ShareAlike 2.0 (CC-BY-SA). Você está livre para modificar, ampliar, e melhorar o código de fonte da documentação do Ubuntu sob os termos destas licenças. Todos os trabalhos derivados devem ser liberados sob qualquer uma ou ambos estas licenças. Esta documentação é distribuída na esperança que será útil, mas SEM NENHUMA GARANTIA; sem mesmo a garantia implicada de MERCABILIDADE do ou a APTIDÃO PARA UMA FINALIDADE PARTICULAR COMO DESCRITA NA NEGAÇÃO. As cópias destas licenças estão disponíveis na seção de apêndices deste livro. As versões 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.
  • 3. Índice About This Guide .............................................................................................................. vi 1. Conventions ........................................................................................................... vii 2. Contributing and Feedback ..................................................................................... viii 1. Introdução ...................................................................................................................... 9 2. Instalação ....................................................................................................................... 10 1. Preparando para instalar ......................................................................................... 11 2. Instalando pelo CD ................................................................................................ 13 3. Gerenciador de Pacotes .................................................................................................. 14 1. Introdução .............................................................................................................. 15 2. Apt-Get ................................................................................................................. 16 3. Aptitude ................................................................................................................. 18 4. Configuração .......................................................................................................... 20 5. Repositórios Extras ................................................................................................. 21 4. Rede .............................................................................................................................. 22 1. Configuração de Rede ............................................................................................ 23 2. TCP/IP .................................................................................................................. 26 3. Configuração do Firewall ....................................................................................... 30 4. Servidor OpenSSH ................................................................................................. 32 5. Servidor FTP ......................................................................................................... 35 6. Network File System (NFS) .................................................................................... 37 7. Dynamic Host Configuration Protocol (DHCP) ........................................................ 39 8. Domain Name Service (DNS) ................................................................................. 42 9. CUPS - Servidor de Impressora .............................................................................. 44 10. HTTPD - Servidor Web Apache2 .......................................................................... 47 11. PHP5 - Linguagem de Scripts ............................................................................... 57 12. Squid - Sevidor Proxy .......................................................................................... 59 13. Version Control System ........................................................................................ 61 14. Bancos de Dados .................................................................................................. 68 15. Serviços de Email ................................................................................................ 71 16. Sincronização de Horário com NTP ....................................................................... 83 5. Redes Windows ............................................................................................................. 85 1. Introdução .............................................................................................................. 86 2. Instalando o SAMBA ............................................................................................. 87 3. Configurando o SAMBA ........................................................................................ 88 A. Creative Commons by Attribution-ShareAlike 2.0 ........................................................... 94 B. GNU Free Documentation License ................................................................................. 99 1. PREAMBLE .......................................................................................................... 100 2. APPLICABILITY AND DEFINITIONS .................................................................. 101 3. VERBATIM COPYING ......................................................................................... 103 4. COPYING IN QUANTITY .................................................................................... 104 iii
  • 4. Ubuntu Server Guide 5. MODIFICATIONS ................................................................................................. 105 6. COMBINING DOCUMENTS ................................................................................. 107 7. COLLECTIONS OF DOCUMENTS ....................................................................... 108 8. AGGREGATION WITH INDEPENDENT WORKS ................................................ 109 9. TRANSLATION .................................................................................................... 110 10. TERMINATION .................................................................................................. 111 11. FUTURE REVISIONS OF THIS LICENSE .......................................................... 112 12. ADDENDUM: How to use this License for your documents ................................... 113 iv
  • 5. Lista de Tabelas 2.1. Requerimentos Mínimos Recomendados ....................................................................... 11 4.1. Métodos de Acesso ...................................................................................................... 62 v
  • 7. 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
  • 8. 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
  • 9. Capítulo 1. Introdução Bem-vindo ao Ubuntu Server Guide! O Ubuntu Server Guide contém informações sobre como instalar e configurar várias aplicações 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 tópicos intermediários tais como os seguintes: • Configuração de Rede • Configuração do Apache2 • Bancos de Dados • Redes Windows Este manual é dividido nas seguintes categorias principais: • Instalação • Gerenciador de Pacotes • Rede • Redes Windows Este guia assume que você possua uma compreensão básica de seu sistema Ubuntu. Caso você necessite de ajuda detalhada sobre a instalação do Ubuntu, consulte o Guia de Instalação do Ubuntu. As versões em HTML e PDF deste manual estão disponíveis online no site de Documentação 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 impressão e envio. 9
  • 10. Capítulo 2. Instalação Este capítulo fornece uma visão rápida sobre a instalação do Ubuntu 6.10 Server Edition. Para maiores detalhes, por favor veja o Guia de Instalação do Ubuntu. 10
  • 11. Instalação 1. Preparando para instalar Esta seção explica vários aspectos a serem considerados antes de começar a instalação. 1.1. Requisitos de Sistema O Ubuntu 6.10 Server Edition suporta as três maiores arquiteturas: Intel x86, AMD64 e PowerPC. A tabela abaixo lista as especificações de hardware recomendadas. Dependendo das suas necessidades, você pode conseguir com menos do que isso. No entanto, a maioria dos usuários arriscam se frustrar caso ignorem essas sugestões. Tabela 2.1. Requerimentos Mínimos Recomendados Tipo de Instalação RAM Espaço do Disc Servidor 64 megabytes 500 megabytes O perfil padrão para o Ubuntu 6.10 Server Edition é exibido abaixo. Mais uma vez, o tamanho da instalação dependerá em grande parte dos serviços que você instalar durante a configuração. Para a maioria dos administradores, os serviços padrão são apropriados para o uso geral do servidor. Servidor Este é um perfil pequeno de servidor, que fornece uma base comum para todos os tipos de aplicações para servidores. É mínimo e projetado para ter os serviços desejados adicionados no topo, tais como serviços de arquivos/impressão, serviços web, serviços de e-mail, etc. Para tais serviços bastaria ao menos 500MB de espaço em disco, mas considere adicionar mais espaço dependendo dos serviços que você gostaria de hospedar em seu servidor. Lembre-se que estes tamanhos não incluem todos os materiais restantes que devem geralmente ser encontrados, tais como arquivos de usuário, e-mail, logs, e dados. É melhor ser sempre generoso ao considerar o espaço para os seus próprios arquivos e dados. 1.2. Fazendo Backup • Antes de começar, certifique-se de fazer backup de cada arquivo que está agora em seu sistema. Se for a primeira vez que um sistema operacional não-nativo está sendo instalado em seu computador, será bem provável que você necessite reparticionar seu disco para garantir espaço 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 instalação são consideravelmente de confiança, e a maioria tem sido utilizada há vários anos, mas eles também executam ações destrutivas, e um erro na sua utilização pode resultar na perda de seus valiosos dados. Se você estiver criando um sistema multi-boot, certifique-se de que você tenha em mãos a mídia de distribuição 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
  • 12. Instalação de boot de seu sistema operacional, ou em muitos casos todo o sistema operacional e todos os arquivos nas partições afetadas. 12
  • 13. Instalação 2. Instalando pelo CD Insira seu CD de instalação no seu drive de CD-ROM e reinicie seu computador. O sistema de instalação é 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 instalação. Para fazer isto, pressione F1. Para executar uma instalação padrão de servidor, selecione “Instalar no disco rígido” e pressione Enter. O processo de instalação será inicializado. Simplesmente siga as instruções 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 instruções. 13
  • 14. Capítulo 3. Gerenciador de Pacotes Uma característica do Ubuntu é um sistema que facilita o gerenciamento de pacotes, sua instalação, atualização, configuração e remoção de software. Além de fornecer acesso a uma base organizada de mais de 17.000 pacotes de software para seu computador Ubuntu, o Gerenciador de Pacotes também inclue a capacidade de resolução de dependência e procura por atualizações de software. Várias ferramentas estão disponíveis para interagir com o sistema de gerência de pacotes do Ubuntu, de utilitários simples em linha de comando que facilmente pode ser automatizado por administradores de sistema, a uma interface gráfica simples que é fácil de usar por novos usuários Ubuntu. 14
  • 15. Gerenciador de Pacotes 1. Introdução O sistema de gerenciamento de pacotes do Ubuntu é derivado do mesmo sistema usado na distribuição Debian GNU/Linux. Os pacotes contém todos os arquivos necessário, meta-dados, e instruções para implementar funcionalidades particulares ou softwares em seu computador Ubuntu. Os pacotes Debian, tipicamente possuem a extensão ".deb" e como é de se esperar, possuem repositorios que têm coleções de pacotes que podem ser encontrados na forma de midias, tais como CD-ROM ou on-lines. Pacotes são, normalmente, binários pré-compilados; assim a instalação é rápida, sem a necessidade de compilar o software. Grande número de aplicativos (pacotes) requerem uma complexa árvore de dependências. Estas dependências são informações adicionais necessárias para a correta execução 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 dependências devem ser instaladas em conjunto com o pacote principal, Festival. O gerenciador de pacotes do Ubuntu o faz automaticamete. 15
  • 16. Gerenciador de Pacotes 2. Apt-Get O comando apt-get é uma poderosa ferramenta de trabalho presente no Ubuntu. Advanced Packaging Tool (APT) ou Avançada Ferramenta de Pacotes, possui funcionalidades tais como instalação de novos pacotes de software, atualização de pacotes existentes, atualização da lista de pacotes e atualização 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 conecção (SSH) e a capacidade de ser usado por scripts de administração de sistema que, por sua vez, podem ser automatizados pela ferramenta de ações agendadas cron. Outros exemplos populares de uso do apt-get: • Instalando um Pacote: A instalação 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 não 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 espaços. • Atualizando a Lista de Pacotes: A lista de pacotes do APT é essencialmente um bando de dados com os pacotes disponíveis em repositórios definidos no arquivo /etc/apt/sources.list. Para atualizar a lista local de pacotes com as ultimas alterações feitas no(s) repositorio(s), digite: sudo apt-get update • Atualizando Todos os Pacotes do Sistema: Com o tempo, versões atualizadas de pacotes atualmente instalado em seu computador podem tornar-se disponíveis nos repositórios de pacotes (atualizações de segurança, por exemplo). Para atualizar seu sistema, primeiro atualize a base de dados de pacotes e então digite: sudo apt-get upgrade Se um pacote necessitar que seja instalada ou removida uma nova dependência quando realizar a atualização, ele não será atualizado pelo comando upgrade. Para tal ação será necessário 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
  • 17. 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 Após passado um tempo considerável, seu computador estará atualizado para a nova revisão. Tipicamente, alguns passos de pós-melhora são exigidos como detalhado nas notas para atualização de revisões. As ações do comando apt-get, tais como isntalação e remoção de pacotes, são registradas no arquivo de log /var/log/dpkg.log. Para mais informações sobre o uso do APT, leia o detalhado Manual APT do Usuário Debian [http://www.debian.org/doc/user-manuals#apt-howto] ou digite: apt-get help 17
  • 18. Gerenciador de Pacotes 3. Aptitude Aptitude é uma interface a base de texto controlada por menus, do sistema Advanced Packaging Tool (APT). Muitas funções comuns de um gerenciador de pacotes, tais como instalação, remoção e atualização são executadas pelo Aptitude por simples comandos, os quais são tipicamente grafados em letras minúsculas. Aptitude é a melhor suíte para uso em ambiente não gráfico ou modo-texto, assegurando o funcionamento adequado das teclas de comando. Caso queira utilizar o Aptitude a partir de seu usuário padrão, faça 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 contém as categorias dos pacotes, tais como Novos Pacotes e Pacotes Não Instalados. No painel inferior aparecerá informações relacionadas a categoria selecionada ou pacote selecionado no painel acima. Usando o Aptitude para gerenciar pacotes é relativamente rápido e sua interface torna tarefas comuns algo simples. O seguir, são exemplos de funções populares no gerenciamento de pacotes realizadas pelo Aptitude: • Instalando Pacotes: Para instalar um pacote, localize o pacote em Pacotes Não Instalados, por exemplo, use as teclas setas e pressione ENTER, selecione o pacote que deseja instalar. Após selecionar o pacote que deseja instalar, pressione a tecla +, assim o pacote ficará verde, isto indica que foi marcado para instalação. Agora pressione g e uma lista das ações lhe será apresentada. Pressione g novamente e você será solicitado a torna-se "root" para que o processo tenha continuidade. Pressione ENTER e forneça a senha de "root" solicitada no prompt Password:. Finalmente, pressione g mais uma vez para que o processo de baixar pacote tenha início. Pressione ENTER para a opção Continue e o processo de baixar e instalar do pacote terá início. • 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. Após seleciona-lo, pressione - e o pacote mudará para a cor rosa, indicando assim que foi marcado para remoção. Agora pressione g e uma lista das ações lhe será apresentada. Pressione g novamente e você será solicitado a torna-se "root" para que o processo tenha continuidade. Pressione ENTER e forneça a senha de "root" solicitada no prompt Password:. Finalmente, pressione g mais uma vez para que o processo de remoção do pacote tenha início. Pressione ENTER para a opção Continue e o processo de remoção do pacote terá início. • Atualizando Lista de Pacotes: Para atualizar a base de dados de pacotes, pressione u e, logo em seguida, lhe será solicitado privilégios de "root". Pressione ENTER e forneça a senha de "root" no pronpt Password:. Pressione ENTER e o processo de baixar as atulizações e renovação da base de dados terá início. • 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 passíveis de atualização serão 18
  • 19. Gerenciador de Pacotes selecionados. Agora pressione g e lhe será apresentado um resumo das ações exigidas para o pacote. Pressione g novamente e você será solicitado a torna-se "root" para que o processo tenha continuidade. Pressione ENTER e forneça a senha de "root" solicitada no prompt Password:. Finalmente, pressione g mais uma vez para que o processo de baixar os pacotes tenha início. Pressione ENTER para a opção Continue e o processo de atualização dos pacotes terá início. A primeira coluna de informação 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 não instalado, mas o pacotem possui configurações residuais no sistema • p: Remover do sistema • v: Pacote Virtual • B: Pacote quebrado • u: Arquivos desempacotados, mas o pacote não foi configurado • C: Parcialmente configurado - Configuração fracassou e exige reparo • H: Parcialmente instalado - A remoção fracassou e exige reparo Para sair do Aptitude, basta pressionar a tecla q e confirmar que deseja sair. Outras opções estão disponíveis no menu pressionando a tecla F10. 19
  • 20. Gerenciador de Pacotes 4. Configuração A configuração dos repositórios do sistema Advanced Packaging Tool (APT) está localizada no arquivo de configuração /etc/apt/sources.list. Um exemplo deste arquivo está referido aqui, junto com informação sobre como adicionar ou retirar referências de repositório do arquivo. Aqui [../sample/sources.list] há um exemplo de um típico arquivo /etc/apt/sources.list. Você pode editar o arquivo e habilitar repositórios ou desabilitar. Por exemplo, para desativar a opção de inserir o Ubuntu CD-ROM toda vez que for instalar um pacote, basta comentar a linha que descreve a mídia CD-ROM com um cifrão (#) no início da linha, como se segue: # por favor, não requisitar pelo CD-ROM # deb cdrom:[Ubuntu 6.06 _Dapper Drake_ - Release i386 (20060329.1)]/ dapper main restricted 20
  • 21. Gerenciador de Pacotes 5. Repositórios Extras Além dos repositórios de pacotes oficialmente apoiados e disponibilizados para Ubuntu, ainda existem repositórios mantidos pela comunidade que adicionam milhares de pacotes extras, mas potenciais a instalação. Dois destes repositórios são bem populares, o Universe (mantidos pela comunidade) e o Multiverse (não-livre). Estes repositórios não são oficialmente suportados por Ubuntu, por isso não são habilitados por padrão, mas eles geralmente fornecem pacotes que são seguros para uso em seu computador Ubuntu. Os pacotes no repositório Multiverse freqüentemente possuem licenças que os previnem quanto a distribuição em sistemas operacionais livres, podendo ser ilegais em seu localidade. Esteja ciente que nem o repositório Universe ou o Multiverse contém pacotes oficialmente suportados. Em particular, talvez não seja seguro atualizar para estes pacotes Várias fontes de pacotes estão disponíveis, às vezes, oferecendo apenas um pacote, como no caso de fontes de pacotes fornecido pelo mantenedor de uma única aplicação. Você deve ser sempre cuidadoso e cauteloso quando usar fontes não padrão de pacotes. Pesquise a fonte e pacotes cuidadosamente antes de executar qualquer instalação, como algumas fontes de pacotes e seus respectivos pacotes podem deixar seu sistema instável ou mesmo inabilitálo de fazer alguma operação. Para habilitar os repositórios Universe e Multiverse, edite o arquivo /etc/apt/sources.list descomentando (removendo o símbolo de sustenido #) das seguintes linhas: # Quero os repositórios Multiverse e Universe disponíveis deb http://archive.ubuntu.com/ubuntu dapper universe multiverse deb-src http://archive.ubuntu.com/ubuntu dapper universe multiverse 5.1. Referências Como Adicionar Repositórios (Ubuntu Wiki) [https://wiki.ubuntu.com/AddingRepositoriesHowto] 21
  • 22. Capítulo 4. Rede As redes consistem em dois ou mais dispositivos, tal como sistemas de computador, impressoras e equipamentos relacionados que são ligados por qualquer meio físico, como equipamentos de rede via sinal de rádio (wireless), com o propósito de compartilhar informações e ou distribuir informações entre os dispositivos conectados. Esta seção do Guia para Servidores Ubuntu fornece informação gerais e específicas sobre redes, incluindo uma vista geral de conceitos de rede e detalhes sobre protocolos populares de rede e aplicações de servidor. 22
  • 23. Rede 1. Configuração de Rede O Ubuntu distribui um número de utilidades gráficas 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 configuração de rede está centralizada em um único arquivo, /etc/network/interfaces. Se você não possui dispositívos 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 configuração 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 espaço IPv4 (subistitua “inet” por “inet6” para dispositivos IPv6) e isto deverá obter automaticamente a configuração via DHCP. Assumindo que sua rede e servido DHCP já esteja devidamente configurado, esta máquina não precisará de nenhuma configuração adicional para funcionar corretamente. O servidor DHCP irá prover o gateway padrão (implementado através do comando route), os endereços 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 estático e uma configuração personalizada, será necessário algumas informações. Suponhamos que você queira definir o IP 192.168.0.2 para a interface eth1, com a máscara de rede típica 255.255.255.0. Seu gateway (rota de saída) padrão é 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 endereço dos servidores de DNS manualmente no arquivo /etc/resolv.conf, que deverá parecer com algo do tipo: 23
  • 24. 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 domínio 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) próprio, insira-o aqui. Senão, pergunte ao seu provedor de internet os servidores DNS primário e secundário, e depois insira-os em /etc/resolv.conf, como mostrado abaixo. Diversas outras configurações são possíveis, incluindo interfaces PPP, rede em IPv6, interfaces VPN, entre outras. Execute o comando man 5 interfaces para mais informações e para as opções suportadas. Lembre-se que /etc/network/interfaces é utilizado pelos scripts ifup/ifdown como um esquema de configuração de mais alto nível, que pode ser utilizado por outras distribuições, e que os utilitários de baixo nível, como ifconfig, route e dhclient continuam disponíveis para configurações ad hoc. 1.2. Administrando entradas DNS Esta seção explica como configurar o servidor de nomes (DNS) para gerar endereços IP a hostnames e vice versa. Não 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. Então, quando nos executamos: ping ubuntu ela interpretará como ping ubuntu.com. A chave nameserver especifica o endereço IP do servidor de nomes. Ele será usado para resolver os endereços IP ou hostnames. Este arquivo pode possuir multiplas entradas de DNS. Os DNS's serão usados pela rede de mesma classe. Se o DNS estiver obtendo dinâmicamente por DHCP ou PPPoE (obtido do seu provedor), não 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
  • 25. Rede 1.3. Gerenciando Hosts Para gerenciar hosts, você pode adicionar, alterar ou remover hosts do arquivo /etc/hosts. O arquivo contêm endereços IP e seus nomes de host correspondentes. Quando seu sistema tenta resolver um nome de host para um endereço IP ou determinar um nome de host para um endereço IP, ele procura para o arquivo /etc/hosts antes de usar os servidores de nome. Se o endereço IP está listado no arquivo /etc/hosts, os servidores de nome não serão utilizados. Este comportamento pode ser alterado, bastando para isso editar o arquivo /etc/nsswitch.conf como quiser. Se sua rede possui computadores cujos endereços IP não estão listadas no DNS, é recomendado que você os adicione ao arquivo /etc/hosts. 25
  • 26. Rede 2. TCP/IP O Transmission Control Protocol e o Internet Protocol (TCP/IP) são um conjunto podrão de protocolos desenvolvidos no final dos anos 1970 pela Defense Advanced Research Projects Agency (DARPA) como uma forma de comunicação entre diferente tipos de computadores e redes de computadores. TCP/IP é a força motora da Internet, e é portanto o mais popular conjunto de protocolos da Terra. 2.1. Introdução ao TCP/IP Os dois protocolos componentes do TCP/IP lidam com diferentes aspectos da computação em rede. Internet Protocol, o "IP" do TCP/IP é um protocolo de sem conexão que lida somente com o roteamento de pacotes da rede utilizando o datagrama de IPs como unidade básica das informações de rede. O datagrama do IP consiste de um cabeçaho seguido de uma mensagem. O TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão) 2.2. Configurando TCP/IP A configuração do protocolo TCP/IP consiste em diversos elementos, que podem ser editados nos arquivos de configuração apropriados, ou optando-se por soluções como o servidor de DHCP (Protocolo de Configuração Dinâmica de Hosts), que por sua vez pode ser configurado para prover as configurações TCP/IP necessárias para cada cliente de rede automaticamente. Esses valores da configuração precisam ser definidos corretamente, de maneira que que facilite o funcionamento em rede do seu sistema Ubuntu. Os elementos básicos de configuração do TCP/IP e seus objetivos são os seguintes: • Endereço IP O Endereço de IP é uma string de identificação única, expressa em quatro números decimais, que vão de zero (0) à duzentos e cinquenta e cinco (255), separada por pontos, com cada um dos quatros números representado oito (8) bits do endereço, para um tamanho total de trinta e dois (32) bits para todo o endereço. Este formato é chamado de notação decimal com pontos. • Netmask A Máscara de Subrede (ou simplesmente netmask) é uma máscara de bits locais, ou alguns marcadores que separam porções de endereços IPs relacionados à uma rede de uma subrede. Por exemplo, na Classe C, a máscara padrão é 255.255.255.0, que mascara os primeiros três bytes do endereço IP e permite somente o último byte do endereços disponível para a alocação e especificação de hosts ou subredes. • Endereço de Rede O Endereço de rede representa os bytes compreendidos na porção 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 Endereço de Rede, que usa o doze (12) para representar o primeiro byte de um endereço IP, (a parte de rede) e zeros (0s) em todos os outros três bytes restantes para representar os valores para hosts em potencial. Redes de hosts usando endereços IPs comuns como os privados e não distribuídos, como 192.168.1.100 pode então usar um endereço de rede como 192.168.1.0, que especifica os três primeiros bytes para a Classe C de rede 192.168.1 e zero (0) para todos os outros possíveis hosts da rede. 26
  • 27. Rede • Endereço de Transmissão O Endereço de Transmissão é um endereço 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 padrão genérico de endereço de transmissão para redes IP é 255.255.255.255, mas este endereço de transmissão não 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 endereço de transmissão precisa ser configurado como 192.168.1.255. Transmissão de mensagens são tipicamente fruto de rede de protocolos tais como Address Resolution Protocol (ARP) e Routing Information Protocol (RIP). • Gateway AddressUm Gateway Address é o endereço IP direto de uma rede particular, ou host em uma rede, podendo se estender. Se uma rede de host não define-se ao comunicar com outra rede de host, e aquele host não é localizado em uma mesma rede, então 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 não será capaz de alcançar nenhum host ligado na mesma rede. • Endereço do Servidor de Nomes Endereços de servidores de nome representam o endereço IP do sistema de Serviço de Nomes de Domínio (Domain Name Service - DNS), que resolve nomes de hosts de rede para endereços IP. Há três níveis de endereços de servidor de nomes, que podem ser especificados em ordem de precedência: O servidor de nomes Primário, o servidor de nomes Secundário e o servidor de nomes Terciário. Para que seu sistema possa resolver nome de hosts da rede para seus endereços IP correspondentes, você deve especificar um endereço de servidor de nomes válido o qual você esteja autorizado a utilizar na configuração de TCP/IP do seu sistema. Em muitos casos esses endereços podem e devem ser fornecidos pelo seu provedor de serviços de rede, mas há muitos servidores de nomes gratuitos e acessíveis publicamente, como os servidores Level3 (Verizon) com endereços de IP de 4.2.2.1 a 4.2.2.6. O Endereço de IP, a Máscara de rede (netmask), o Endereço de rede, Endereço de broadcast, e o Endereço de Gateway são, em geral, especificados com as diretivas apropriadas no arquivo /etc/network/interfaces. O endereço do Servidor de Nomes (DNS) é em geral especificado pela diretiva nameserver no arquivo /etc/resolv.conf. Para maiores informações, veja a página de manual para interfaces ou resolv.conf respectivamente, com os seguintes comandos a serem digitados no terminal: Acesse o sistema de páginas de manual para interfaces com o seguinte comando: man interfaces Acesse o sistema de páginas de manual para resolv.conf com o seguinte comando: man resolv.conf 27
  • 28. Rede 2.3. Roteamento IP O roteamento IP é uma forma de especificar e descobrir caminhos em uma rede TCP/IP na qual as informações da rede serão 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 nós de rede intermediários, conhecidos como roteadores. O Roteamento IP é o principal modo de descoberta de caminhos na Internet. Há duas formas primárias de roteamento, Estático e Dinâmico. 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 Dinâmico depende de grandes redes com múltiplas 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 automático para os protocolos da tabela de roteamento, e assim, fazer o roteamento dinâmico possível. Roteamento dinâmico tem sérias vantagens sobre roteamento estático, como escalabilidade superior e a capacidade de adaptação a falhas ou ocilações ao longo das rotas na rede. Adicionalmente, essa posição é inferior a configuração manual para a tabela de roteamento, desde que os roteadores aprendam sobre outro roteador, sua existencia e rotas possíveis. Esta peculiaridade também elimina a possibilidade de introduzir um erro em tabelas de roteamento por erro humano. Roteamento dinâmico não é perfeito, de qualquer modo, ele apresente desvantagens como alta complexidade e despesas gerais adicionais para a rede, que não beneficiam imediatamente os usuários finais, e ainda consome banda da rede. 2.4. TCP e UDP TCP é um protocolo de conexão, oferecendo correção 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 colisões, por exemplo, deste modo assegurando a entrega exata e completa dos dados. TCP é tipicamente usado em trocas de informações importantes tal como transações de banco de dados. O User Datagram Protocol (UDP), por outro lado, é um protocolo de conectividade que raramente lida com a transmissão de dados importantes porque falta controle de fluxo ou qualquer outro método para assegurar a entrega confiável dos dados. UDP comumente é usado em aplicações como áudio e vídeo, onde é consideravelmente mais rápido que TCP devido à falta de correção de erro e controle de fluxo, e onde a perda de alguns pacotes não é catastrófico, geralmente. 28
  • 29. Rede 2.5. ICMP O Internet Control Messaging Protocol (ICMP) é uma extensão do Internet Protocol (IP) como definido na Petição Para Comentários (RFC) #792 e apoia pacotes de rede contendo controle, erro, e mensagens de informação. ICMP é usado por aplicações 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 são útil a ambos hosts de rede e para dispositivos tal como roteadores, incluem Destino Inacessível e Tempo de Esperera Excedido. 2.6. Serviços Daemons (serviços) são aplicações especiais do sistema que tipicamente executam continuamente em segundo plano e esperam requisições para as funções que eles fornecem a outras aplicações. Muitos daemons são rede-cêntrico; isso é, um grande número 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 identificação (login) remota segura e capacidade de transferência de arquivo; e o Internet Message Access Protocol Daemon (imapd), que fornece serviços de correio eletrônico (e-Mail). 29
  • 30. Rede 3. Configuração do Firewall O kernel Linux inclui o subsistema Netfilter, o qual é usado para manipular ou decidir o destino do tráfego de rede dirigido para ou através de seu servidor. Todas as soluções de firewall Linux modernas utilizam esse sistema para filtragem de pacotes. 3.1. Instrodução ao Firewall O sistema de filtragem de pacotes do kernel tem pouca utilidade para os administradores sem uma interface para gerenciá-la. Este é o propósito do iptables. Quando um pacote chega ao servidor, ele será encaminhado ao subsistema Netfilter para aceitação, manipulação ou rejeição, baseado numa das regras supridas pela interface via iptables. Então, 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 propósito da Máscara de IP é permitir máquinas com IP privado, endereço não-roteável em sua rede para acessar a Internet por meio da máquina "mascarada". O tráfico destinado de sua rede privada para a Internet deve ser manipulado para obter respostas da máquina que fez a petição, como em uma rota invertida. Para fazer isto, o kernel deve modificar o endereço IP da fonte de cada pacote e retornar respostas a ele, antes que o endereço privado IP faço o pedido de resposta, que é impossível através da Internet. O Linux usa Connection Tracking (conntrack) para acompanhar que conexões pertence a que máquinas e desviar cada pacote de retorno correspondente. O tráfico originado em sua rede privada é assim "mascarado" como tendo originado de seu gateway Ubuntu. Este processo possui refência na documentação da Microsoft como Conexão de Internet Compartilha. Isto pode ser realizado com uma única regra no iptables, que pode diferir levemente baseado em sua configuração de rede: sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE O comando acima supõe que seu endereço 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 endereço 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 série na tabela de filtro (a tabela padrão, onde a maioria ou todos os processos e filtragem de pacotes ocorre) tem uma diretriz padrão para ACEITAR, mas se você estiver criando um 30
  • 31. Rede firewall adicional para o dispositivo de gateway, você terá que definir políticas de DESCARTE ou REJEIÇÂO, em que caso seu tráfico "mascarado" necessitará de permição pra ENVIAR para a série 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 conexões de sua rede local à Internet e todo trânsito relacionado a essas conexões retornar à máquina que os iniciou. 3.3. Ferramentas Há muitas ferramentas disponíveis para ajudá-lo a construir um firewall completo sem conhecimento íntimo da ferramenta iptables. Para os que preferem GUI (interfaces gráficas), sugere-se o Firestarter é bem popular e de fácil utilização, e o fwbuilder, uma aplicação 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 solução poderosa que o ajudará em configurações avançadas de firewall em sua rede. Se sua rede for relativamente simples ou você não possuir uma rede o ipkungfu deve proporcionar-lhe um firewall útil com configuração inicial zero, e o permitirá facilmente armar um firewall mais avançado editando arquivos de configuração 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 aplicações interativas populares de firewall para Windows. 3.4. Logs O registro (log) das ações 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, aliás, e regras de registro devem vir antes de qualquer regra aplicável (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 requisições pela porta 80 para a máquina local, então, 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 invés do LOG (registro). O daemon ulogd é um servidor userspace que observa o sistema para registrar instruções específicas do kernel para firewalls e registrar qualquer arquivo que você queira, igual aos bancos de dados PostgreSQL e MySQL. O registro das ações do firewall pode ser simplificada usando uma ferramenta para análise de registros, como o fwanalog, fwlogwatch, ou lire. 31
  • 32. Rede 4. Servidor OpenSSH 4.1. Introdução 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 versão disponível livremente da família de ferramentas do protocolo Secure Shell (SSH) para controlar um computador remotamente ou transferir arquivos entre computadores. Ferramentas tradicionais utilizadas para cumprir essas funções, como telnet ou rcp são inseguras e transmitem a senha de um usuário em texto puro quando utilizadas. O OpenSSH provê um servidor daemon e ferramentas de cliente para facilitar controle remoto e operações de transmissão de arquivo com segurança e criptografia, efetivamente substituindo ferramentas de legado. O componete de servidor OpenSSH, sshd, observa constantemente conexões de clientes para qualquer das ferramentas do cliente. Quando uma requisição de conexão ocorre, sshd inicia a conexão correta dependendo do tipo de ferramenta de conexão do cliente. Por exemplo, se um computador remoto conecta-se por um cliente ssh, o servidor OpenSSH iniciará o controle remoto da sessão após autenticar. OpenSSH utiliza vários métodos de autentificação, incluindo senha simples, chave pública e tiquetes Kerberos. 4.2. Instalação A instalação 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. Configuração Você pode configurar o comportamento padrão do servidor OpenSSH, sshd, editando o arquivo /etc/ssh/sshd_config. Para mais informação sobre as diretrizes de configuração usadas neste arquivo, você pode ver o manual apropriado com o seguinte comando, executado pela linha de comando: man sshd_config 32
  • 33. Rede Existem muitas diretrizes no arquivo de configuração do sshd que controlam coisas como configurações de comunicação e modos de autenticação. Os seguintes são exemplos de diretrizes de configuração que podem ser modificados editando o arquivo /etc/ssh/ssh_config. Antes de editar o arquivo de configuração, você deve fazer uma cópia do arquivo original e protegê-lo de escrita, para que você assim tenha os ajustes originais como uma referência e para reusar como necessário. Copie o arquivo /etc/ssh/sshd_config e proteja-o contra sobrescrição 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 são exemplos de diretrizes de configuração que você pode modificar: • Para ajustar seu OpenSSH para escutar na porta de TCP 2222 invés da porta de TCP padrão 22, modifique a diretriz Port da seguinte forma: Porta 2222 • Para fazer o sshd aceitar acesso público à 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 não está comentada. • Para fazer o seu servidor OpenSSH exibir o conteúdo 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. Após realizar as auterações no arquivo /etc/ssh/sshd_config, salve o arquivo e reinicie o servidor de aplicações sshd para que as auterações tenham efeito. Para isto utilize o seguinte comando em um terminal: sudo /etc/init.d/ssh restart Várias configurações adicionais de diretrizes do sshd estão disponíveis para auterar o comportamento do servidor de acordo com suas necessidades. Esteja ciente, no entanto, que se seu único método de acesso a um servidor é ssh e você comete um erro ao configurar o sshd via arquivo de configuração /etc/ssh/sshd_config, você pode torna-lo indisponível após reiniciar o servidor, ou esse servidor sshd pode recusar iniciar, devido a uma diretriz 33
  • 34. Rede incorreta na configuração, então seja extremamente cuidadoso quando editar este arquivo num servidor remoto. 4.4. Referências Web site OpenSSH [http://www.openssh.org/] Página Wiki OpenSSH Avançado [https://wiki.ubuntu.com/AdvancedOpenSSH] 34
  • 35. 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: • Anônimo • Autenticado No modo Anônimo, clientes remotos podem acessar o servidor FTP usando a conta de usuário padrão chamada 'anonymous' ou 'ftp' e informando um endereço de e-mail como senha. No modo Autenticado um usuário precisa ter uma conta e uma senha. O acesso do usuário aos diretórios e arquivos do servidor de FTP depende das permissões definidas para a conta usada no login. Como uma regra geral, o serviço de FTP irá esconder o diretório root do servidor de FTP e alterá-lo para o diretório Home do FTP. Isso ocultará o restante do sistema de arquivos nas sessões remotas. 5.1. vsftpd - Instalação de Servidor FTP O vsftpd é um daemon FTP disponível no Ubuntu. Ele é fácil de instalar, configurar e manter. Para instalar o vsftpd você pode rodar o seguinte comando: sudo apt-get install vsftpd 5.2. vsftpd - Configuração Servidor FTP Você pode editar o arquivo de configuração do vsftpd, /etc/vsftpd.conf, para modificar as configurações padrões. Por padrão apenas FTP anônimo é permitido. Se você deseja desabilitar essa opção, você deve modificar a seguinte linha: anonymous_enable=YES para anonymous_enable=NO Por padrão, os usuários locais do sistema não tem permissão para fazer login no servidor FTP. Para modificar essa configuração, você deve descomentar a seguinte linha: #local_enable=YES Por padrão, usuários tem permissão para descarregar arquivos do servidor FTP. Eles não tem permissão para enviar arquivos para o servidor FTP. Para modificar essa configuração, você deve descomentar a seguinte linha: 35
  • 36. Rede #write_enable=YES Similarmente, por padrão, os usuários anônimos não tem permissão para enviar arquivos para o servidor FTP. Para modificar essa configuração, você deve descomentar a seguinte linha: #anon_upload_enable=YES O arquivo de configuração é formado por vários parâmetros de configuração. As informações sobre cada parâmetro estão disponíveis no arquivo de configuração. Alternativamente, você pode consultar a página do manual, man 5 vsftpd.conf para um melhor detalhamento de cada parâmetro. Uma vez configurado o vsftpd você pode iniciar o serviço usando o seguinte comando: sudo /etc/init.d/vsftpd start Note que os valores padronizados no arquivo de configuração estão ajustados da forma que estão por motivos de segurança. Cada uma das modificações feitas acima deixa o sistema cada vez menos seguro, portanto use-as somente se forem realmente necessárias. 36
  • 37. Rede 6. Network File System (NFS) NFS permite um sistema a compartilhar diretórios e arquivos com outros sistemas em uma rede. Ao usar NFS, usuários e programas podem acessar arquivos em sistemas remotos quase que como se os mesmos fossem arquivos locais. Alguns dos mais notáveis benefícios que NFS oferece são: • Máquinas de trabalho locais usam menos espaço de disco porque dados comumente usados podem ser armazenados em uma única máquina e ainda assim permanecer acessível à outros na rede. • Não é necessário criar diretórios pessoais de usuários separados em cada máquina na rede. Diretórios pessoais podem ser criados em um servidor NFS de forma acessível por toda a rede. • Dispositivos de armazenamento como disquetes, CD-ROM, e chaveiros USB podem ser usados por outras máquinas na rede. Isto pode reduzir o número de dispositivos de mídia removíveis por toda a rede. 6.1. Instalação Em um prompt de terminal entre o seguinte comando para instalar o servidor NFS: sudo apt-get install nfs-kernel-server 6.2. Configuração Você pode configurar os diretórios 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. Faça a declaração de nome de host o mais específica possível para que sistemas indesejados não 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. Configuração do Cliente NFS Use o comando mount para montar um diretório compartilhado NFS de outra máquina, digitando num prompt de terminal um comando similar ao seguinte: sudo mount exemplo.nomedamáquina.com:/ubuntu /local/ubuntu 37
  • 38. Rede O diretório ponto de montagem /local/ubuntu deve existir. Não devem existir arquivos ou subdiretórios dentro do diretório /local/ubuntu. Uma forma alternativa para montar uma partição compartilhada NFS remota é adicionar uma linha ao arquivo /etc/fstab. A linha deve conter o nome do servidor NFS host, o diretório no servidor sendo exportado, e o diretório local onde a partição 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. Referências Linux NFS faq [http://nfs.sourceforge.net/] 38
  • 39. Rede 7. Dynamic Host Configuration Protocol (DHCP) O Protocolo de Configuração Dinâmica de Hosts (DHCP) é um serviço de rede que permite que os computadores sejam configurados automáticamente apartir de configurações feitas em um servidor ao invés de serem configurados individualmente de forma manual. Computadores configurados para serem clientes de DHCP não tem controle sobre as configurações que eles recebem do servidor DHCP, e a configuração é transparente para o usuário do computador. As configurações mais comuns providenciadas por um servidor DHCP para um cliente DHCP são: • Endereço IP e Netmask • DNS • WINS Entretanto, um servidor DHCP pode também providenciar propriedades de configuração como: • Noma da Máquina • Nome do Domínio • Gateway Padrão • Servidor de Tempo • Servidor de Impressão A vantagem de usar DHCP é que as alterações em uma rede, por exemplo a alteração do endereço de um servidor DNS, precisam apenas ser modificadas no servidor DHCP, e todos os equipamentos da rede irão ser reconfigurados da próxima vez que seu cliente de DHCP consultar o servidor. Como vantagem adicional, ele também torna mais fácil a integração de novos computadores à rede, já que não é necessário confirmar a disponibilidade de um endereço IP. Conflitos na alocação de endereços IP também são reduzidos. Um servidor DHCP pode fornecer parâmetros de configuração usando dois métodos: Endereço MAC Esse método consiste na utilização do DHCP por meio da identificação do endereço de hardware único de cada placa de rede conectada à rede e então fornecendo uma configuração constante cada vez que o cliente de DHCP faz uma requisição para o servidor DHCP usando o mesmo dispositivo de rede. Pool de Endereços Esse método consiste na definição de um pool (algumas vezes chamado de faixa ou escopo) de endereços IP apartir do qual os clientes DHCP terão suas propriedades e configurações supridas dinâmicamente baseado num método de "o primeiro que chega é o primeiro que leva". Quando um cliente DHCP não mais está em rede por período de tempo especificado, a configuração expira e é disponibilizada novamente no pool de endereços 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 automáticamente configurados. Ambos os programas 39
  • 40. Rede são fáceis de instalar e configurar e serão automáticamente iniciados durante a inicialização do sistema. 7.1. Instalação Em um terminal, digite o seguinte comando para instalar dhcpd: sudo apt-get install dhcpd Você verá a seguinte saída, 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 serviço do servidor DHCP, edite o /etc/dhcpd.conf para ajustá-lo às suas necessidades e configurações particulares, e reinicie o serviço do servidor DHCP (/etc/init.d/dhcp start). Você também precisará editar o /etc/default/dhcp para especificar as interfaces que o dhcpd deverá ouvir. Por padrão ele ouve na eth0. NOTA: as mensagens do dhcpd são enviadas para o syslog. Procure lá por mensagens de diagnóstico. Iniciando o servidor DHCP: o dhcpd falhou ao iniciar - verifique o syslog para diagnosticar o proble 7.2. Configuração A mensagem de erro encontrada no final da instalação pode ser um pouco confusa, mas os seguintes passos vão te ajudar a configurar o servidor: Geralmente, o que você quer fazer é associar um endereço IP de forma aleatoria. Isto pode ser feito com as seguintes configurações: # Exemplo /etc/dhcpd.conf # (adicione seus comentários 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
  • 41. Rede Isso irá fazer com que o servidor DHCP atribua ao cliente um endereço 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 endereço por 600 segundos se o cliente não perguntar por um determinado período de tempo. O servidor também irá "avisar" o cliente que ele deve usar 255.255.255.0 como sua máscara de sub-rede, 192.168.1.255 como seu endereço 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 opção netbios-nome-servidor. option netbios-name-servers 192.168.1.1; Configurações do dhcpd foram adiquiridas do mini-HOWTO do DHCP, que pode ser encontrado aqui [http://www.tldp.org/HOWTO/DHCP/index.html]. 7.3. Referências DHCP FAQ [http://www.dhcp-handbook.com/dhcp_faq.html] 41
  • 42. Rede 8. Domain Name Service (DNS) Serviço de Nome de Domínio ( Domain Name Service - DNS) é um serviço de internet que mapeia endereços IP para nomes de domínio completamente qualificados (FQDN) e vice-versa. Dessa forma, o DNS faz com que não seja necessário decorar endereços IP. Os computadores que rodam o DNS são 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. Instalação Em um terminal, digite o seguinte comando para instalar dns: sudo apt-get install bind 8.2. Configuração Os arquivos de configuração do DNS são armazenados no diretório /etc/bind. O arquivo de configuração principal é o /etc/bind/named.conf. O conteúdo da configuração padrão está disposto abaixo: // Este é o arquivo de configuração primária para o servidor de DNS BIND named. // // Por favor, leia /usr/share/doc/bind/README.Debian para informações sobre a // estrutura dos arquivos de configuração do BIND no Debian para versão 8.2.1 do BIND // ou superior, *ANTES* de você customizar este arquivo de configuração. // include "/etc/bind/named.conf.options"; // reduz a saída de log em erros fora do nosso controle logging { category lame-servers { null; }; category cname { null; }; }; // servidor primário, 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
  • 43. 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 definições locais aqui include "/etc/bind/named.conf.local"; A linha include especifica o nome do arquivo que contém as opções do DNS. A linha directory no arquivo de opções diz ao DNS onde procupar por arquivos. Todos os arquivos utilizados pelo BIND estão contidos nesse diretório. 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 seção zone define um servidor mestre, e ela é armazenado em um arquivo mencionado através da tag file. Cada zona contém 3 registros de recursos (RRs): um RR SOA, um RR NS, e um RR PTR. SOA é a abreviatura para Start of Authority, ou seja, Início da Autoridade. A "@" é uma notação 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 à documentação mencionada na seção de referências para detalhes. 8.3. Referências TUTORIAL DNS [http://www.tldp.org/HOWTO/DNS-HOWTO.html] 43
  • 44. 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 serviços de impressão e filas, além de fornecer impressão em rede usando o Protocolo padrão de Impressão da Internet (IPP), além de oferecer suporte a uma grande variedade de impressoras, de matriciais a lasers dentre muitas outras. O CUPS também suporta Descrições de Impressoras PostScript (PPD) e auto-detecção de impressoras de rede, e aprensenta também uma ferramenta de administração simples baseada na web. 9.1. Instalação 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 usuário, deverá ocorrer o download e instalação dos pacotes sem erros. Após a instalação, o servidor CUPS será inicializado automaticamente. Para resolução de problemas, você pode acessar os erros do servidor CUPS através do arquivo de log de erros em: /var/log/cups/error_log. Se os logs de erros não mostrar informações necessárias para resolução dos seus problemas que você encontrar, a qualidade de saída de log do CUPS pode ser incrementada, alterando a diretiva LogLevel no arquivo de configuração (discutido logo abaixo) para "debug" ou ainda "debug2", o que causará o registro em log de tudo, do padrão ao "info". Se você fizer esta mudança, lembre-se de desfazê-la assim que você resolver seu problema, para prevenir que o arquivo fique muito grande. 9.2. Configuração O comportamento do servidor CUPS (The Common UNIX Printing System) é configurado através das diretivas contidas no arquivo /etc/cups/cupsd.conf. O arquivo de configuração do CUPS segue a mesma sintaxe que o arquivo de configuração primário para o servidor de HTTP Apache, portanto os usuários familiares com a edição do arquivo de configuração do Apache deverão ter uma maior facilidade ao editar a configuração do CUPS. Alguns exemplos de configuração que você queira inicialmente alterar serão apresentados aqui. Antes de editar o arquivo de configuração, você deve fazer uma cópia do arquivo original e protegê-lo contra sobrescrição, porque assim você terá os ajustes originais como uma referência, e para reusar como necessário. 44
  • 45. Rede Copiar o arquivo /etc/cups/cupsd.conf e protegê-lo contra sobrescrição 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 endereço de email designado para o administrador do servidor CUPS, simplesmente edite o arquivo de configuração /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, Então você deverá alterar a diretiva ServerAdmin para ficar como: ServerAdmin bjoy@somebigco.com Para mais exemplos de diretivas de configuração no arquivo de configuração do servidor CUPS, veja a página de manual do sistema relacionada através da utilização do seguinte comando no prompt de um terminal: man cupsd.conf Cada vez que você fizer alterações no arquivo de configuração /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 configurações do servidor CUPS são feitas no arquivo /etc/cups/cups.d/ports.conf: • Listen: Por padrão no Ubuntu, o servidor CUPS escuta somente na interface de loopback no endereço de IP 127.0.0.1. Para instruir o CUPS a escutar num endereço IP de uma rede, você deve especificar um hostname, um endereço de IP, ou opcionalmente, um endereço/porta de acordo com as diretivas Listen. Por exemplo, se seu servidor CUPS fica numa rede local com o endereço de IP 192.168.10.250 e você gostaria de torná-lo acessível 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 referência ao endereço Loopback (127.0.0.1) se você não 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
  • 46. Rede de rede em que um hostname esteja ligado, incluíndo 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 invés, como: Port 631 # Escute na porta 631 em todas as interfaces 9.3. Referências Website do CUPS [http://www.cups.org/] 46
  • 47. 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 páginas de internet é o Hyper Text Transfer Protocol (HTTP - Protocolo de transferência de hipertexto). Protocolos como Hyper Text Transfer Protocol over Secure Sockets Layer (HTTPS - Protocolo seguro de transferência de hipertexto) e File Transfer Protocol (FTP - Protocolo de transferência de arquivo), um protocolo para enviar e receber arquivos, são também suportados. Servidores Web Apache são geralmente utilizados em conjunto com o motor de banco de dados MySQL, a linguagem de de construção de scripts pré-processadora de hiper-texto (PHP), e outras linguagens de construção de scripts populares como o Python e o Perl. Essa configuração é denominada LAMP (Linux, Apache, MySQL e Perl/Python/PHP) e dá forma a uma poderosa e robusta plataforma de desenvolvimento e hospedagem de aplicações basedas na web. 10.1. Instalação O servidor web Apache2 está disponível no Ubuntu Linux. Para instalar o Apache2: • No prompt de um terminal informe o seguinte comando: # sudo apt-get install apache2# 10.2. Configuração O Apache é configurado colocando-se diretivas em arquivos de configuração de texto puro. O arquivo de configuração principal é chamado apache2.conf. Além disso, outros arquivos de configuração podem ser adicionados utilizando-se a diretiva Include, e caracteres coringa (wildcards) podem ser utilizados para incluir vários arquivos de configuração. Qualquer diretiva pode ser colocada em qualquer desses arquivos de configuração. Mudanças no arquivo de configuração apenas são reconhecidas pelo Apache2 quando este for iniciado ou reiniciado. O servidor também irá ler um arquivo contendo os tipos mime de documentos; o nome do arquivo é definido pela diretiva TypesConfig, e é mime.types por padrão. 47
  • 48. Rede O arquivo de configuração padrão do Apache2 é o /etc/apache2/apache2.conf. Você pode editar esse arquivo para configurar o servidor Apache2. Você pode configurar o número da porta, raiz dos documentos, módulos, arquivos de log, hosts virtuais, etc. 10.2.1. Configurações Básicas Essa seção explica os parâmetros de configuração essenciais do servidor Apache2. Procure pela Documentação do Apache2 [http://httpd.apache.org/docs/2.0/] para mais detalhes. • O Apache2 vem com uma configuração padrão amigável para hosts virtuais. Isto é, ele é configurado com um host virtual único padrão (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 múltiplos sites. Se não for alterado, o host virtual padrão servirá como seu site padrão, ou o site que os usuários utilizarão caso a URL que eles especifiquem não bata com a diretiva ServerName de nenhum de seus sites customizados. Para modificar o virtual host padrão, edite o arquivo /etc/apache2/sites-available/default. Caso você deseje configurar um novo host virtual ou site, copie esse arquivo para o mesmo diretório 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 endereço de email a ser anunciado como do administrador do servidor. O valor padrão é webmaster@localhost. Ele deve ser alterado para um endereço 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 endereço de email para qual o problema poderá ser relatado. Encontre esta diretiva no arquivo de configuração do site site em /etc/apache2/sites-available. • A diretiva Listen especifica a porta, e opcionalmente o endereço IP, na qual o Apache2 irá escutar. Se o endereço IP não for especificado, o Apache2 irá escutar em todos os endereços IP designados para a máquina no qual ele esteja rodando. O valor padrão 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 disponível para a Internet, para (por exemplo) 81 para mudar a porta no qual ele escuta, ou deixe o valor como está para operação normal. Esta diretiva pode ser encontrada e alterada em seu próprio arquivo, /etc/apache2/ports.conf • A diretiva ServerName é opcional e especifica qual a FQDN seu site deverá responder. O host virtual padrão não possui diretiva ServerName especificada, portanto ele irá responder a todas as requisições que não combinem com uma diretiva ServerName em outro host virtual. Se você acabou de adquirir o nome de domínio ubunturocks.com e gostaria de hospedá-lo no seu servidor Ubuntu, o valor da diretiva ServerName no arquivo de configuração 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 padrão é /var/www. Nenhum site está configurado lá, mas você pode descomentar a 48
  • 49. Rede diretiva RedirectMatch em /etc/apache2/apache2.conf as requisições serão redirecionadas para /var/www/apache2-default onde o site padrão do Apache2 aguarda. Altere este valor no arquivo de host virtual do seu site e lembre-se de criar aquele diretório se necessário! O diretório /etc/apache2/sites-available não é decodificado pelo Apache2. Links simbólicos em /etc/apache2/sites-enabled apontam para sites "disponíveis" (available). Utilize o utilitário a2ensite (Apache2 Enable Site) para criar esses links simbólicos, como neste exemplo: sudo a2ensite meunovosite onde o arquivo de configuração do seu site é /etc/apache2/sites-available/meunovosite. Semelhantemente, o utilitário a2dissite deve ser usado para desabilitar sites. 10.2.2. Configuração Padrão Esta seção explica a configuração das definições padrão do servidor Apache2. Por exemplo, se você adicionar um host virtual, as definições que você configurar para o host virtual têm precedência para aquele host virtual. Para uma diretiva não definida dentro da definição de host virtual, o valor padrão é utilizado. • O DirectoryIndex é a página padrão servida pelo servidor quando o usuário requisita um índice de um diretório especificando uma barra (/) no final do nome do diretório. Por exemplo, quando um usuário solicita a página http://www.examplo.com/este_diretório/, ele ou ela vai ver: o DirectoryIndex (DiretórioÍndice) se ele existir; uma lista do diretório gerado pelo servidor caso não exista e as opções de índices estiverem especificadas; ou uma página de Permissão Negada se nenhuma das duas opções forem verdadeiras. O servidor irá tentar encontrar um dos arquivos listados no DirectoryIndex e irá retornar o primeiro que for encontrado. Se ele não encontrar nenhum destes arquivos e se as Opções de Índices estiver ajustadas para aquele diretório, o servidor irá gerar e retornar uma lista, no formato HTML, dos subdiretórios e arquivos no diretório. O valor padão, encontrado em /etc/apache2/apache2.conf é "index.html index.cgi index.pl index.php index.xhtml". Portanto, se o Apache2 encontras um arquivo no diretório 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 específico de erro. Por exemplo, se um usuário solicitar um recurso que não existe, um erro 404 ocorrerá, e por padrão de configuração do Apache2, o arquivo /usr/share/apache2/error/HTTP_NOT_FOUND.html.var será mostrado. Este arquivo não está na Raiz de Documentos do servidor, mais existe uma diretiva de apelido no /etc/apache2/apache2.conf que redireciona as requisições do diretório /error para /usr/share/apache2/error/. Para ver a listagem de directivas padrão de Documentos de Erro, use o comando: grep ErrorDocument /etc/apache2/apache2.conf • Por padrão, o servidor registra o arquivo de transferências no arquivo /var/log/apache2/access.log. Você pode mudar isto site por site em seu arquivo de configuração de host virtual atravéz da diretriz CustomLog, ou omiti-la para aceitar o padrão, especificado no arquivo /etc/apache2/apache2.conf. Você pode também especificar o arquivo onde os erros serão registrados, através da diretriz ErrorLog, que por padrão é /var/log/apache2/error.log. Estes 49
  • 50. Rede são mantidos separados do log de transferência para permitir eliminação de problemas com seu servidor Apache2. Você pode também especificar o LogLevel (o valor padrão é "alertar") e o LogFormat (veja o /etc/apache2/apache2.conf para o valor padrão). • Algumas opções são especificadas num esquema por diretórios ao invéz de um esquema por servidor. A diretiva Option é uma dessas diretivas. Uma instância de Directory é encapsulada entre tags semelhantes ao XML, como em: <Directory /var/www/mynewsite> ... </Directory> A diretiva Options com um instância de Directory aceita um ou mais dos seguintes valores (entre outros), separados por espaços: • ExecCGI - Permite execução de scripts CGI. Scripts CGI não são executados se esta opção não estiver abilitada. A maioria dos arquivos não devem ser executados como scripts CGI. Isto pode ser muito perigoso. Scripts CGI devem ser mantidos em diretórios separados fora do DocumentRoot, e somente este diretório deve ter a opção ExecCGI habilitada. Isto é o padrão, e o local padrão para os scripts CGI é /usr/lib/cgi-bin. • Includes - Permite inclusões no lado do servidor. Inclusões no lado do servidor permitem que um arquivo HTML inclua outros arquivos. Essa não é uma opção comum. Veja o Apache2 SSI Howto [http://httpd.apache.org/docs/2.0/howto/ssi.html] para maiores informações. • IncludesNOEXEC - Permite server-side includes, mais desabilita uso dos comandos #exec e #include nos scripts CGI • Indexes - Mostra uma lista formatada dos conteúdos dos diretórios, caso não exista um DirectoryIndex (tal como index.html) no diretório requisitado . Por motivos de segurança, isto geralmente não deveria estar hablilitado, e certamente não deveria estar habilitado no seu diretório DocumentRoot. Habilite esta opção com cuidado, diretório por diretório somente se você tem certeza de que quer que os usuários vejam o conteúdo inteiro do diretório. • Multiview - Suporta multi-visões negociadas pelo conteúdo; esta opção está desabilitada por padrão por motivos de segurança. Veja a Documentação do Apache2 para esta opção [http://httpd.apache.org/docs/2.0/mod/mod_negotiation.html#multiviews]. • SymLinksIfOwnerMatch - Somente segue os links simbólicos caso o arquivo alvo ou diretório seja do mesmo dono que o link. 10.2.3. Configurações de Hosts Virtuais Hosts virtuais permitem que você rode diferentes servidores para diferentes endereços IP, diferentes nomes, ou diferentes portas da mesma máquina. 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 opção corresponde à diretiva <VirtualHost> para o virtual host padrão e virtual 50
  • 51. Rede hosts baseados em IP. E corresponde à diretiva <NameVirtualHost> para um virtual host baseado em nomes. As diretivas para um host virtual somente são aplicadas para um host virtual em particular. Se a diretiva é setada para escopo de servidor e não definida dentro das configurações de um virtual host, as configurações padrão serão usadas. Por exemp#o, você pode definir o email do Webmaster e não definir um email individual para cada virtual host. Ajuste a diretiva DocumentRoot para o diretório que contém o documento raíz (como o index.html) para o host virtual. O DocumentRoot padrão é /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. Configurações do Servidor Esta seção explica como configurar as opções básicas 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. É obrigatório armazená-lo no disco local. Deixe o valor padrão a menos que o diretório de logs esteja localizando em um compartilhamento NFS. Se este for o caso, o valor padrão deverá ser alterado para um caminho no disco local e para um diretório no qual apenas o root tem permissões de leitura. PidFile - A diretiva PidFile define o arquivo em que o servidor gravará o seu ID de processo (pid). Este arquivo deve ser permissões de leitura somente para o root. Na maioria dos casos, o valor padrão deve ser deixado. User - A diretiva User seta o UserID usado pelo servidor para responder as solicitações. Esta opção determina o acesso ao servidor. Qualquer arquivo inacessível a este usuário será também inacessível aos visitantes do seu website. O valor padrão para o User é www-data A não ser que você saiba exatamente o que está fazendo, não defina a diretiva User para root. Usando o root como User (usuário) você irá criar largas brechas de sergurança para seu ser servidor Web. A diretiva Group é similar a diretiva User. Group define o grupo que o servidor irá responder as solicitações. O grupo padrão é www-data. 10.2.5. Módulos do Apache O Apache é um servidor modular. Isso significa que somente as funcionalidades básicas são inclusas no núcleo do servidor. A extensão das funcionalidades são disponibilizadas através de módulos, que podem ser carregados no Apache. Por padrão, alguns módulos básicos já estão inclusos na hora da 51
  • 52. Rede compilação. Se o servidor for compilado para usar o carregamento dinâmico de módulos, então os módulos podem ser compilados separadamente, e adicionados à qualquer hora usando a diretiva LoadModule. Caso contrário, o Apache2 precisa ser recompilado para adicionar ou remover módulos. O Ubuntu compila o Apache2 de maneira que permita o carregamento dinâmico de módulos. As diretivas de configuração podem ser incluídas condicionalmente, com a presença de um módulo em particular incluído num bloco <IfModule>. Você pode instalar módulos adicionais do Apache2 e usá-los com o seu servidor WEB. Você pode instalar módulos do Apache2 usando o comando apt-get. Por exemplo, para instalar o módulo do Apache2 para autenticação 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 módulo, ele estará disponível no diretório /etc/apache2/mods-available. Você pode usar o comando a2enmod para habilitar um módulo. Você pode usar o comando a2dismod para desabilitar um módulo. Quando você desabilita um módulo, ele estará disponível no diretório /etc/apache2/mods-enabled. 10.3. Configurações HTTPS O módulo mod_ssl adiciona uma funcionalidade importante no servidor Apache2 - a habilidade de encriptar comunicações. Portanto, quando o seu navegador se comunica utilizando encriptação SSL, o prefixo https:// é usado no começo do Localizador de Recurso Uniforme (URL) na barra de navegação do navegador. O módulo mod_ssl está disponível 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 módulo mod_ssl: sudo a2enmod ssl 10.3.1. Certificados e Segurança Para configurar um servidor seguro, use a criptografia de chave pública para criar um par de chaves pública e privada. Na maioria dos casos, você manda o seu pedido de certificação (incluindo a sua chave pública), uma prova da identidade da sua companhia e o pagamento para uma Autoridade de Certificados (CA). A CA verifica o pedido de certificação 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 não deve ser usando na maioria dos ambientes de produção. Certificados auto-assinados não são automaticamente aceitos pelo navegador dos usuários. Os usuários são questionados pelo navegador para aceitar o certificado e criar uma conexão 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
  • 53. 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 conexão segura sem questionamentos ao usuário. • Quando um CA emite um certificado assinado, está garantindo a identidade da organização que está provendo as páginas da web para o navegador. A maioria dos navegadores que suportam SSL possuem uma lista dos CAs cujo certificados são automaticamente aceitos. Se o navegador encontrar um certificado cujo CA autorizador não esteja na lista, o navegador irá perguntar para o usuário se ele deve aceitar ou rejeitar a conexão. Você pode gerar um certificado auto-assinado para o seu servidor seguro, mas fique atento para o fato de que certificados auto-assinados não fornecem a mesma funcionalidade que certificados assinados por um CA. Um certificado auto-assinado não é automaticamente reconhecido pela maioria dos navegadores, e um certificado auto-assinado também não fornece nenhuma garantia quanto à identidade da organização 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 fácil. Segue um resumo rápido: 1. Cria um par de chaves criptográficas privada e pública. 2. Cria uma requisição de certificado baseada na chave pública. A requisição de certificado contém informação 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. Não podemos lhe dizer qual Autoridade em Certificados (CA) escolher. Sua decisão deve ser baseada nas suas experiências anteriores, na experiência de amigos ou colegas, ou puramente por fatores financeiros. Uma vez decido qual CA usar, você precisa seguir as instruções 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 transações seguras. Não 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 Requisição de Certificado (CSR) Para gerar o Pedido de Assinatura de Certificado (CSR - Certificate Signing Request) você deve criar sua própria chave. Você pode rodar o seguinte comando no prompt do terminal (linha de comando) para criar a chave: 53
  • 54. Rede openssl genrsa -des3 -out server.key 1024 Gerando chave privada RSA, 1024 bit módulos longos .....................++++++ .................++++++ impossível escrever 'estado aletaório' e é 65537 (0x10001) Informe a chave senha para o server.key: Agora, você pode inserir a sua senha. Para uma segurança melhor, ela deve conter no mínimo oito caracteres. O tamanho mínimo quando -des3 é especificado é de quatro caracteres. É bom incluir números e/ou pontuação e não ser uma palavra de dicionário. Também, lembre-se que a sua senha é sensível à caixa alta e/ ou baixa. Redigite a sua senha para verificação. 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ê não precisa entrar com a senha todas as vezes que incializa o seu servidor seguro, mas é muito inseguro e uma compromissão da chave significará a compromissão do servidor também. Em qualquer caso, você pode escoher em rodar o seu servidor sem a frase, deixar de lado a alteração -des3 na geração da frase ou lançando 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
  • 55. 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 produção, você provavelmente precisa de um certificado assinado por uma CA. Não é 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 configuração do seu host virtual seguro. Você deve colocá-las na seção 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 número 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 páginas seguras no servidor digitando https://seu_hostname/url/ na barra de endereços do seu navegador. 10.4. Referências Documentação do Apache2 [http://httpd.apache.org/docs/2.0/] 55
  • 56. Rede Documentação do Mod SSL [http://www.modssl.org/docs/] 56
  • 57. Rede 11. PHP5 - Linguagem de Scripts PHP é uma linguagem de scripts de propósito geral adequada para desenvolvimento Web. Os scripts PHP podem ser embutidos em HTML. Esta seção explica como instalar e configurar PHP5 num Sistema Ubuntu com Apache2 e MySQL. Esta seção assume que você já instalou e configurou o Servidor Web Apache 2 e o Servidor de Banco de Dados MySQL. Você pode consultar a seção do Apache 2 e as seções do MySQL neste documento para instalar e configurar o Apache 2 e o MySQL, respectivamente. 11.1. Instalação O PHP5 está disponível 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. Configuração 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
  • 58. Rede sudo /etc/init.d/apache2 restart 11.3. Testando Para verificar a sua instalação, 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
  • 59. Rede 12. Squid - Sevidor Proxy Squid é um servidor proxy cache completo que fornece servi O servidor proxy cache Squid é uma excelente solução para uma vasta gama de necessidades de servidores de cache e proxy, ele atende desde pequenos escritórios até redes de grandes empresas fornecendo mecanismos de controle de acesso granulares e monitoramento de parâmetros críticos via Protocolo Simples de Gerenciamento de Redes (SNMP). Quando escolher um computador para uso dedicado à função de servidor proxy Squid, ou servidores de cache, certifique-se de que seu sistema estará configurado com uma grande quantidade de memória física, já que o Squid mantém um cache em memória para melhor performance. 12.1. Instalação No prompt de terminal, digite os seguintes comandos para instalar o servidor Squid: sudo apt-get install squid squid-common 12.2. Configuração O Squid é configurado através da edição de diretivas presentes no arquivo de configuração /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 configuração mais especializada do Squid, veja a seção de referências. Antes de editar o arquivo de configuração você deve fazer uma cópia do arquivo original e protegê-lo contra gravação, assim você terá as configurações originais para referência e re-utilização quando necessário. Copie o arquivo /etc/squid/squid.conf e proteja-o contra gravação 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 invés da porta padrão 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 específico. Esse nome de host não precisa ser necessáriamente o nome de host do computador. Nesse exemplo ele é configurado como sendo weezie visible_hostname weezie 59
  • 60. Rede • Novamente, Usando o controle de acesso do Squid, você pode configurar o uso de serviços de Internet filtrados pelo squid para estar disponível somente para usuários de certos endereços de IP. Por exemplo, iremos ilustrar o acesso somente de usuários da sub-rede 192.168.42.0/24: Adicione as seguintes informações no final da seção ACL do seu arquivo /etc/squid/squid.conf: acl fortytwo_network src 192.168.42.0/24 Então, adicione as seguintes informações no topo da seção 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 serviços da Internet através de proxy para estarem disponíveis apenas durante o horário normal de trabalho. Por exemplo, nós 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 informações no final da seção 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 Então, adicione as seguintes informações no topo da seção http_access do seu arquivo /etc/squid/squid.conf: http_access allow biz_network biz_hours Depois de fazer alterações no arquivo /etc/squid/squid.conf, salve-o e reinicie o servidor squid para que as alterações tenham efeito usando o seguinte comando em um prompt de terminal: sudo /etc/init.d/squid restart 12.3. Referências Squid Website [http://www.squid-cache.org/] 60
  • 61. Rede 13. Version Control System O controle de versões é a arte de gerenciar mudanças na informação. Ele tem sido há muito tempo uma ferramenta crucial para programadores, que tipicamente passam seu tempo fazendo pequenas mudanças em um software e então desfazendo essas mudanças no outro dia. Mas a utilidade de softwares de controle de versões vão muito além do mundo dos desenvolvedores de software. Em qualquer lugar que você possa encontrar pessoas usando computadores para gerenciar informações que mudam constantemente, existe espaço para o controle de versões. 13.1. Subversion O Subversion é um sistema de controle de versões de código aberto. Ele gerencia arquivos e diretórios através do tempo. Uma árvore de arquivos é colocada em um repositório central. Esse repositório é muito parecido com um servidor de arquivos comum, exceto pelo fato de que ele se lembra de todas as alterações feitas nos arquivos e diretórios. 13.1.1. Instalação Para acessar o repositório 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-seção HTTP na seção do Apache2 para instalar e configurar o Apache2. Para acessar o repositório Subversion usando o protocolo HTTPS você precisa instalar e configurar um certificado digital no seu servidor web Apache2. Por favor consulte a sub-seção HTTPS na seção 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. Configuração do Servidor Este passo assume que você possui instalado os pacotes acima mencionados em seu sistema. Esta sessão explica como criar um repositório Subversion e acessar o projeto. 13.1.2.1. Cria um Repositório Subversion O repositório Subversion pode ser criado usando o seguinte comando de um prompt de terminal: svnadmin create /path/to/repos/project 13.1.3. Métodos de Acesso Os repositórios do Subversion podem ser acessados (retirados) através de diversos métodos -- no disco local, através de vários protocolos de rede. Uma localização de repositório, entretanto, é sempre 61
  • 62. Rede uma URL. A tabela descreve como diferentes esquemas de URL apontam para os métodos de acesso disponíveis. Tabela 4.1. Métodos de Acesso Esquema Método de Acesso file:// acesso direto ao repositório (no disco local) http:// Acesso via protocolo WebDAV aos servidores web Apache2 dotados de Subversion https:// O mesmo que http://, mais com criptografia SSL svn:// Acesso via protocolo customizado para um servidor svnserve svn+ssh:// Mesmo que svn://, mais através de um túnel SSH Nessa seção, nós iremos ver como configurar o Subversion para todos esses métodos de acesso. Aqui, nós iremos cobrir o básico. Para detalhes avançados de utilização consulte o livro do svn [http://svnbook.red-bean.com/]. 13.1.3.1. Acesso direto ao repositório (file://) Esse é o mais simples de todos os métodos de acesso. Ele não requer que nenhum processo do servidor Subversion esteja rodando. Esse método de acesso é usado para acessar o Subversion a partir da mesma máquina. 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ê não especificar o nome do host, haverão três 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 permissões do repositório dependem das permissões do sistema de arquivos. Se o usuário tem permissão de leitura/gravação, ele pode fazer checkout e fazer commit para o repositório. 13.1.3.2. Acesso via protocolo WebDAV (http://) Para acessar o repositório através 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
  • 63. 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 contém detalhes de autenticação de usuários. Para adicionar uma entrada, ex.: para adicionar um usuário, 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 usuário será adicionado. Agora, para acessar o repositório você precisa rodar o seguinte comando: svn co http://servername/svn As senhas são 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 próxima seção. 13.1.3.3. Acesso via protocolo WebDAV com criptografia SSL (https://) Acessar o repositório 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 certificação como a Verisign. Alternativamente, você pode instalar seus próprios 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 repositório do Subversion, por favor consulte a seção acima! Os métodos de acesso são exatamente os mesmos, exceto pelo protocolo. Você precisa usar https:// para acessar o repositório do Subversion. 13.1.3.4. Acessar via protocolo específico (svn://) Assim que o repositório 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 autenticação você pode descomentar as seguintes linhas no arquivo de configuração: # [comum] # password-db = passwd Depois de descomentar as linhas acima você pode manter a lista de usuários no arquivo passwd. Então, edite o arquivo passwd no mesmo diretório e adicione o novo usuário. A sintaxe é a seguinte: 63
  • 64. Rede nomedousuário = senha Para mais detalhes, por favor referir ao arquivo. Agora, para acessar o Subversion via protocolo específico svn://, estando na mesma maquina ou não, 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 detecção de erros) # -r -- raiz do diretório a ser servido Para maiores detalhes de utilização, por favor consulte: $ svnserve --help Assim que você rodar esse comando, o Subversion iniciará ouvindo na porta padrão (3690). Para acessar o repositório do projeto, você precisa rodar o seguinte comando a partir de um prompt de terminal: svn co svn://hostname/project project --username nome_do_usuário Baseado na configuração do servidor, ele perguntará por uma senha. Assim que você estiver autenticado, ele irá fazer a retirada do código do repositório do Subversion. Para sincronizar o repositório do projeto com a cópia 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 utilização 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 específico com criptografia SSL (svn+ssh://) A configuração e o processo do servidor é o mesmo do método svn://. Para detalhes, por favor consulte a seção acima. Esse passo assume que você tenha seguido o passo acima e iniciado o servidor Subversion usando o comando svnserve. Também assume-se que o servidor ssh esteja rodando na maquina e que ele permita conexões entrantes. Para confirmar, por favor tente fazer login na maquina usando ssh. Se você puder fazer login, tudo está perfeito. Se você não puder fazer login, por favor resolva isso antes de continuar. O protoclo svn+ssh:// é usado para acessar o repositório do Subversion usando criptografia SSL. Os dados transferidos são criptografados usando esse método. Para acessar o repositório do projeto (por exemplo com um checkout), você precisa usar a seguinte sintaxe de comando: 64
  • 65. 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 repositório do Subversion usando esse método de acesso. Baseado na configuração 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 código do repositório do Subversion. 13.2. Servidor CVS O CVS é um sistema de controle de versões. Você pode usá-lo para gravar o histórico de arquivos fonte. 13.2.1. Instalação 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. Configuração 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
  • 66. Rede } Certifique-se de ter editado o repositório se você modificar o repositório padrão 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 usuários, criar novos projetos e administrar o servidor CVS. O CVS permite que o usuário adicione usuários independentemente da instalação do SO hospedeiro. Provavelmente a maneira mais fácil é usar os Usuários do Linux para o CVS, entretanto isso oferece problemas potenciais de segurança. 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 variável ambiental CVSROOT para armazenar o diretório raiz do CVS. Uma vez que tenha exportado a variável ambiental CVSROOT, você pode evitá-la usando a opção -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 usuário CVS tem permisssão de escrita no repositório CVS (/var/lib/cvs). Por padrão, o grupo src tem permissão de escrita no repositório CVS. Então, você pode adicionar um usuário neste grupo, e ele poderá então adicionar e gerenciar projetos no respositório CVS. 66
  • 67. Rede 13.3. Referências Página 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
  • 68. Rede 14. Bancos de Dados O Ubuntu provê dois servidores de banco de dados. São eles: • MySQL™ • PostgreSQL . Eles estão disponíveis no repositório principal. Esta seção explica como instalar e configurar esses servidores de bancos de dados. 14.1. MySQL MySQL é um servidor de dados SQL rápido, multi-thread, multi-usuário e robusto. Ele é adequado para missões críticas, sistema de alto carregamento assim como para embutir em software instalado em massa. 14.1.1. Instalação Para instalar MySQL, execute o seguinte comando a partir do prompt de terminal: sudo apt-get install mysql-server mysql-client Quando a instalação 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 não está executando corretamente, você pode digitar o seguinte comando para inicializá-lo. sudo /etc/init.d/mysql restart 14.1.2. Configuração Por padrão, a senha de administrador não 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
  • 69. Rede Você pode editar o arquivo /etc/mysql/my.cnf para configurar as opções básicas -- arquivo de log, número 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 serão encontradas na próxima geração de sistemas DBMS. 14.2.1. Instalação Para instalar PostgreSQL, execute o comando seguinte a partir do prompt de comando: sudo apt-get install postgresql Assim que a instalação estiver completa, você deve configurar o servidor PostgreSQL de acordo com suas necessidades, ainda que a configuração padrão seja viável. 14.2.2. Configuração Por padrão, a conexão via TCP/IP está desabilitada. O PostgreSQL suporta múltiplos métodos de autenticação. Por padrão, o método de autenticação IDENT é usado. Por favor consulte O Guia de Administrador do PostgreSQL [http://www.postgresql.org/docs/8.1/static/admin.html]. A seguinte discussão assume que você deseja habilitar conexões TCP/IP e usar o metódo MD5 para autenticações de clientes. Os arquivos de configuração do PostgreSQL estão armazenados no diretório /etc/postgresql/<version>/main. Por exemplo, se você instalar o PostgreSQL 7.4, os arquivos de configuração estão armazenados no diretório /etc/postgresql/7.4/main. Para configurar a autenticação ident, adicione as entradas no arquivo /etc/postgresql/7.4/main/pg_ident.conf. Para habilitar conexões 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 parâmetros, se você souber o que está fazendo! Para detalhes, consulte o arquivo de configuração ou a documentação do PostgreSQL. Por padrão, as credenciais de usuário não são definidas para autenticação de cliente por MD5. Então, primeiro é necessário configurar o servidor PostgreSQL para usar a autenticação de clientes por confiança, conecte a base de dados, configure a senha e reverta a configuração para a autenticação de clientes por MD5 usar. Para habilitar a autenticação de clientes por confiança, edite o arquivo /etc/postgresql/7.4/main/pg_hba.conf Comente todas as linhas existentes que usem a autenticação de clientes por ident e MD5 e adicione a seguinte linha: 69
  • 70. Rede local all postgres trust sameuser Então, 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 padrão de exemplo do PostgreSQL psql -U postgres -d template1 O comando acima conecta ao banco de dados template1 do PostgreSQL como usuário 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 usuário postgres. template1=# ALTERA USUÁRIO 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 autenticação MD5: Comente a linha confiança adicionada recentemente e adicione a seguinte linha: local all postgres md5 sameuser A configuração abaixo não 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 parâmetros. 70
  • 71. Rede 15. Serviços de Email O processo de entrega de um e-mail de um pessoa para outra através 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 Usuário de Correio (MUA) ou cliente de e-mail, para enviar a mensagem através de um ou mais Agentes de Transferência de Correio (MTA), o qual irá entregá-la para um Agente de Entrega de Correio (MDA) para entregá-la na caixa postal do destinatário, apartir da qual será retirada pelo cliente de e-mail do destinatário, normalmente através de um servidor POP3 ou IMAP. 15.1. Postfix Postfix é o Mail Transfer Agent (MTA) padrão do Ubuntu. Ele tenta ser rápido, fácil de administrar e seguro. É compatível com o MTA sendmail. Esta seção explica como instalar e configurar o postfix. Também explica como configurá-lo como um servidor SMTP usando uma conexão segura (para enviar emails de forma segura). 15.1.1. Instalação 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 instalação, a configuração será feita em detalhes no próximo passo. 15.1.2. Configuração Básica Para configurar o postfix, execute o seguinte comando: sudo dpkg-reconfigure postfix A interface do usuário será mostrada. Em cada tela, selecione os seguintes valores: • Ok • Site de Internet • NENHUM • email.exemplo.com • email.exemplo.com, localhost,localdomain, localhost • Não • 127.0.0.0/8 • Sim • 0 • + • all 71
  • 72. Rede Substitua mail.example.com pelo nome do seu servidor de email. 15.1.3. Autenticação SMTP Os próximos passos são configurar o postfix para usar SASL para SMTP AUTH. Ao invés de editar o arquivo de configuração diretamente, você pode usar o comando postconf para configurar todos os parâmetros do postfix. Os parâmetros de configuração serão armanzenados no arquivo /etc/postfix/main.cf. Depois se você desejar reconfigurar um parâmetro em particular, você pode executar o comando ou mudá-lo manualmente no arquivo. 1. Configure Postfix to do SMTP AUTH using SASL (saslauthd): postconf -e 'smtpd_sasl_local_domain =' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'smtpd_sasl_security_options = noanonymous' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_ postconf -e 'inet_interfaces = all' Open the /etc/postfix/sasl/smtpd.conf file and add the following lines to end of the file: pwcheck_method: saslauthd mech_list: plain login 2. Next, configure the digital certificate for TLS. When asked questions, follow the instructions and answer appropriately. openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/ Você pode adquirir o certificado digital de uma autoridade certificadora. Alternativamente , você pode criar o certificado você mesmo. Consulte o Seção 10.3.4, “Criando um certificado Auto-Assinado” [54] para mais detalhes. 3. Configure o Postfix para fazer encriptação 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
  • 73. 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 configuração 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 é necessário configurar a autenticação 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 modificações são necessárias para fazê-lo funcionar corretamente. Devido ao Postfix rodar sob chroot em /var/spool/postfix, a SASL precisa ser configurada para rodar na falsa raíz (/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 variável START. Para configurar o saslauthd para rodar na raíz falsa, adicione as variáveis PWDIR, PIDFILE e PARAMS. Finalmente, configure a variável MECHANISMS à sua maneira. O arquivo deve se parecer com isso: # Isso deve ser descomentado antes que o saslauthd rode # automaticamente # automatically START=yes 73
  • 74. Rede PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # Você deve especificar os mecanismos de autenticação que você # deseja usar. O valor padrão é "pam" para suporte PAM, mas você # pode também incluir "shadow" ou "sasldb", assim: # MECHANISMS="pam shadow" MECHANISMS="pam" Se preferir, você pode utilizar shadow ao invés de pam. Ele irá usar transferência encriptada de senha MD5 e isso é perfeitamente seguro. O nome do usuário e a senha necessários para a autenticação serão aqueles mesmos dos usuários 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 inicialização do saslauthd usam essa configuração para criar o diretório que falta com as permissões e posses necessárias: dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd 15.1.5. Testando A configuração da Autenticação do SMTP está completa. Agora é hora de iniciar e testar a configuração. 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 estão funcionando normalmente, rode o seguinte comando: telnet mail.example.com 25 Depois que tiver estabelecido uma conexão com o servidor de e-mail postfix, digite: ehlo mail.example.com Se você vir as seguintes linhas entre outras, então 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 Transferência 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 configuração do exim é bem diferente daquela feita para o sendmail. 74
  • 75. Rede 15.2.1. Instalação Para instalar o exim4, rode o seguinte comando: sudo apt-get install exim4 exim4-base exim4-config 15.2.2. Configuração Para configurar o exim4, rode o seguinte comando: sudo dpkg-reconfigure exim4-config A interface de usuário será mostrada. A interface de usuário permite a você configurar vários parâmetros. Por exemplo, no exim4 os arquivos de configuração estão divididos em múltiplos arquivos. Se você quiser tê-los em um único arquivo você pode configurar isso através da interface de usuário. 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 configuração 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 segurança em primeiro lugar. Ele suporta os principais formatos de caixas postais: mbox ou Maildir. Essa seção explica como configurá-lo como um servidor imap ou pop3. 15.3.1. Instalação Para instalar o dovecot, rode o seguinte comando em um prompt de comando: 75
  • 76. Rede sudo apt-get install dovecot-common dovecot-imapd dovecot-pop3d 15.3.2. Configuração 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 descrição desses protocolos está além do escopo desse guia. Para maiores informações, 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]. Após 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
  • 77. Rede 15.3.3. Configuração 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 são criados automaticamente pelo dovecot quando você o instala. Por favor note que essas chaves não são assinadas e darão 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 próprios certificados SSL. 15.3.4. Configuração de Firewall para um Servidor de Email Para acessar seu servidor de e-mail através de outro computador, você deve configurar seu firewall para permitir conexões ao servidor nas portas necessárias. • IMAP - 143 • IMAPS - 993 • POP3 - 110 • POP3S - 995 15.4. Mailman O Mailman é um programa open source para administração de discussões 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 fácil de instalar e manter. 15.4.1. Instalação O Mailman provê uma interface web para administradores e usuários. 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 Nós 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 seção de referências. 15.4.1.1. Apache2 Para instalar o apache2 você deve consultar Seção 10.1, “Instalação” [47]. 77
  • 78. 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 instalação para o diretório /var/lib/mailman, instala os scripts CGI no diretório /usr/lib/cgi-bin/mailman. cria o usuário de linux list, cria o grupo de linux list. O processo mailman será controlado por este usuário. 15.4.2. Configuração Esta seção 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 são instalados no diretório /usr/lib/cgi-bin/mailman. Logo, a URL do mailman será http://hostname/cgi-bin/mailman/. Você pode fazer alterações 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
  • 79. 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 padrão, exim4 utiliza múltiplos arquivos de configuração 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 configuração aos seguintes tipos de configuração: • Principal • Transporte • Roteador O Exim cria um arquivo mestre de configuração classificando todos estes pequenos arquivos de configuração. Logo, a ordem de tais arquivos de configuração é muito importante. 15.4.2.3. Principal Todos os arquivos que pertençam ao tipo principal são armazenados no diretório /etc/exim4/conf.d/main/. Você pode adicionar o seguinte conteúdo a um novo arquivo, chamado 04_exim4-config_mailman: # início # Diretório inicial para sua instalação do mailman -- tambem conhecido # como diretório prefixo do Mailman directory. # No Ubuntu isso deve ser "/var/lib/mailman" # É geralmente o mesmo que ~mailman MM_HOME=/var/lib/mailman # # Usuário e grupo para o Mailman, deve equivaler ao seu parâmetro # --with-mail-gid ao script "configura" do Mailman. O valor é normalmente # "mailman" MM_UID=list MM_GID=list # # Domínios onde estão suas listas - lista separada por vírgulas # você pode querer adicioná-los também ao local_domains domainlist mm_domains=hostname.com # # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# # # Estes valores são derivados daqueles acima and você não deverá # precisar editá-los a não ser que você tenha bagunçado a sua instalação # do mailman # # O caminho do script wrapper de email do Mailman MM_WRAP=MM_HOME/mail/mailman # # O arquivo do arquivo de configuração da lista (usado como um arquivo # requerido quando se verifica endereços de listas) MM_LISTCHK=MM_HOME/lists/${lc::$local_part}/config.pck # fim 79
  • 80. Rede 15.4.2.4. Transporte Todos os arquivos que pertençam ao tipo de transporte são armazenados no diretório /etc/exim4/conf.d/transport/. Você pode adicionar o seguinte conteúdo 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 configuração pertencentes ao tipo de roteamento são armazenados no diretório /etc/exim4/conf.d/router/. Você pode adicionar o seguinte contéudo 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 configuração principais e de transporte podem estar em qualquer ordem. Mas, a ordem dos arquivos de configuração de roteamento deve a mesma. Este arquivo particular deve aparecer antes do arquivo 200_exim4-config_primary. Estes dois arquivos de configuração contêm o mesmo tipo de informação. O primeiro arquivo toma a precedência. Para mais detalhes, consulte, por favor, a seção das referências. 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
  • 81. Rede sudo /usr/sbin/newlist mailman Informe o endereço de e-mail da pessoa que administra a lista: bhuvan at ubuntu.com Senha inicial do mailman: Para finalizar a criação de sua lista de e-mail, você deve editar o arquivo /etc/aliases (ou 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 proprietário mailman... # 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. Administração 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. Usuários O Mailman fornece uma interface web aos usuários. Para acessar essa página, aponte seu browser para a seguinte URL: http://hostname/cgi-bin/mailman/listinfo A lista de e-mail padrão, mailman, aparecerá nesta tela. Se você clicar no nome da lista, será apresentado o formulário para inscrição. Você pode informar se endereço de e-mail, nome (opcional), 81
  • 82. Rede e senha para se inscrever. Um convite será enviado a você por e-mail. Você pode seguir as instruções no email para se inscrever. 15.4.5. Referências GNU Mailman - Manual de Instalação [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
  • 83. Rede 16. Sincronização de Horário 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 sincronização de horário sobre a rede. Basicamente um cliente solicita o horário atual ao servidor, e o utiliza para ajustar seu próprio relógio. 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
  • 84. 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. Páginas 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
  • 85. Capítulo 5. Redes Windows Redes de computadores geralmente são 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 seção do Ubuntu Server Guide introduz princípios e ferramentas usadas na configuração de seu Servidor Ubuntu para compartilhar recursos de rede com computadores Windows. 85
  • 86. Redes Windows 1. Introdução Ligar em rede seu sistema Ubuntu com clientes Windows envolve que se disponibilize e integre serviços comuns a ambientes Windows. Tais serviços ajudam no compartilhamento de dados e informações sobre os computadores e usuários envolvidos na rede e pode ser classificado sob três grandes categorias de funcionalidades: • Serviços de Compartilhamento de Arquivos e Impressão. Utilizando o protocolo Server Message Block (SMB) para facilitar o compartilhamento de arquivos, pastas, volumes, e o compartilhamento de impressoras da rede. • Serviços de Diretórios. Compartilhando informações vitais sobre os computadores e usuários da rede através de tecnologias como o Lightweight Directory Access Protocol (LDAP) e o Microsoft Active Directory®. • Autenticação e Acesso. Estabelecendo a identidade de um computador ou usuário da rede e determinando a informação a qual o computador ou usuário está autorizado a acessar utilizando tais princípios e tecnologias como permissões de arquivo, diretivas de grupo e o serviço de autenticação 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
  • 87. Redes Windows 2. Instalando o SAMBA No prompt digite o seguinte comando para instalar as aplicações do servidor SAMBA: sudo apt-get install samba 87
  • 88. Redes Windows 3. Configurando o SAMBA Você pode configurar o servidor SAMBA editando o arquivo /etc/samba/smb.conf para mudar as opções padrão ou adicionar novas configurações. Mais informações sobre cada configuração estão disponíveis nos comentários do /etc/samba/smb.conf ou lendo a página de manual do /etc/samba/smb.conf através do seguinte comando digitado no prompt do terminal: man smb.conf Antes de editar o arquivo de configuração, você deve fazer uma cópia do arquivo original e protegê-lo contra escrita para que você tenha as configurações originais como uma referência e re-utilizá-las quando necessário. Faça 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 faça suas alterações. 3.1. Servidor Além do conjunto SAMBA, que compartilha arquivos e impressoras, o Ubuntu inclui outras aplicações poderosas que fornecem funcionalidades adicionais, como servidor de rede para clientes Windows, semelhante as funcionalidades fornecidas pelos atuais servidores Windows. Por exemplo, Ubuntu oferece gerência centralizada de recursos de rede tal como computadores e operadores via Serviço de Diretórios, o que facilita a identificação, autorização de computadores e usuários por meio de Serviço de Autentificação. As seguintes seções discutirão SAMBA e as tecnologias de suporte, tal como servidor Lightweight Directory Access Protocol - LDAP, e servidor de autentificação Kerberos com mais detalhe. Você também aprenderá sobre algumas diretrizes disponíveis de configuração do SAMBA que facilita integração da rede com clientes e servidores Windows. 3.1.1. Active Directory Active Directory é uma implementação proprietário do Serviço de Diretório da Microsoft, e é usada para fornecer um meio de compartilhar informações sobre recursos de rede e usuários. Além de fornecer uma fonte centralizada de tal informação, Active Directory também age como uma autoridade centralizada de segurança e autentificação para a rede. Active Directory combina capacidades tradicionalmente achadas separademente em sistemas especializados simplificando integração, gerência, e segurança de recursos de rede. O pacote SAMBA pode ser configurado para usar serviços de Active Directory para Controle de Domínios Windows. 88
  • 89. Redes Windows 3.1.1.1. LDAP O servidor LDAP fornece funcionalidade de Serviço de Diretório a computadores Windows numa maneira muito semelhante ao serviço Active Directory da Microsoft. Tais serviços incluem administração de identidades, conexões de computadores, usuários, grupos de computadores ou usuários que participam da rede, além de possibilitar um meio coerente de descrever, localizar e administrar estes recursos. A implementação livre do LDAP disponível para seu sistema Ubuntu é chamada de OpenLDAP. Os servidor de "daemons" responsável por manipular requisições do OpenLDAP e propagar dados doe servidor de diretório LDAP a outro no Ubuntu é slapd e slurpd. O OpenLDAP pode ser usado em conjunto com o SAMBA para fornecer Arquivo, Impressão, serviços de Diretório é praticamente igual ao Controle de Domínios do Windows contanto que, o SAMBA seja compilado com suporte a LDAP. 3.1.1.2. Kerberos O sistema de segurança e autentificação Kerberos é um serviço padrão que fornecer autentificação entre computadores e usuários por meio de um servidor centralizado que concede autentificações criptografas a qualquer computador que esteja utilizando o Kerberos. Os benefícios do sistema de autentificação do Kerberos incluem autentificação mútua, autentificação delegada, interoperabilidade e gerência simplificada confiável. O servidor primário de "daemons" que manipula a autentificação do Kerberos e o servidor que administra a base de dados do Kerberos no Ubuntu são krb5kdc e kadmin. O SAMBA pode usar Kerberos como um mecanismo para autentificação de computadores e usuários em contraste com o Controle de Domínios 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 símbolo DOMAIN_NAME no exemplo acima pelo nome verdadeiro do seu Domínio Windows específico. Você precisará reiniciar os daemons SAMBA para efetivar essas alterações. 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 são utilizadas em Serviços de Diretório para identificar unicamente sistemas de computador que participam de uma rede e são também tratados da mesma maneira que usuários em termos de segurança. Contas de computador podem ter senha assim como usuários têm e estão 89
  • 90. Redes Windows sujeitas a autorização para acessar recursos de rede da mesma forma que contas de usuários. Por exemplo, se um usuário de rede com uma conta válida para uma rede em particular tenta se autenticar a um recurso de rede de um computador que não tem uma conta de computador válida, dependendo das diretivas aplicadas na rede, o acesso ao recurso pode ser negado ao usuário se o computador do qual ele tenta se autenticar é considerado um computador não 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 válida de usuário na base de dados local. Para adicionar uma conta de computador ou máquina 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 símbolo NOME_DO_COMPUTADOR no exemplo acima com o nome real do computador específico que você deseja adicionar. 3.1.3. Permissões de Arquivo As Permissões de Arquivo definem de forma clara os direitos que um computador ou usuário tem a um diretório particular, arquivo ou grupo de arquivos. Tais permissões podem ser definidas editando /etc/samba/smb.conf e especificando de forma clara as permissões para o arquivo compartilhado. Por exemplo, se você tem definido no compartilhamento do SAMBA a pastasourcedocse deseja oferece-la com permissãoread-only (somente leitura) ao grupo conhecido de usuários planning, mas necessita permitir que o grupo authors e o usuário chamado richard tenham permissão 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 auterações tenham efeito. Outra possível permissão é declarar permissõesadministrativas a um particular e compartilhar recurso. Usuários com permissões administrativas podem ler, gravar ou modificar qualquer informação contida pois lhe foi dada de forma explícita esta autonomia. Por exemplo, se você precisa conceder ao usuário melissa permissões 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 auterações tenham efeito. 3.2. Clientes O Ubuntu inclui aplicações cliente e capacidades para acessar recursos de rede compartilhados com o protocolo SMB. Por exemplo, o utilitário smbclient permite acesso remoto a arquivo/sistemas 90
  • 91. Redes Windows compartilhados, de maneira semelhante ao File Transfer Protocol (Protocolo de Transferência 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 <nomeusuário> Você então será solicitado a fornecer a senha para o nome do usuários especificado depois da opção -U, uma vez que a autentificação foi bem sucedida, será apresentado um lembrete onde comandos podem ser utilizados para manipular e transferir arquivos numa sintaxe semelhante a usada por clientes não-gráficos de FTP. Para mais informações sobre o utilitário smbclient, leia o manual através do comando: man smbclient O suporte a recursos remotos na rede usatilizando o protocolo SMB também é possível, utilizando o comando mount. Por exemplo, para montar o conteúdo compartilhada cujo nome é project-code, localizada em um servidor Windows identificado na rede como development, como o usuário 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 usuário, e uma vez que a autentificação foi bem sucedida, o conteúdo compartilhado estará disponível localmente no ponto de motagem especificado como o último argumento ao comando mount. Para desconectar o conteúdo compartilhado, basta usar o comando umount para qualquer sistema de arquivos montado. Exemplo: umount /mnt/pcode 3.2.1. Contas de Usuários Contas de Usuários definem pessoas com algum nível de autorização para usar certo computador e conteúdo de rede. Tipicamente, num ambiente de rede, uma conta de usuário é fornecida a cada pessoa permitido acessar um computador ou rede, onde diretrizes e permissões definem que direitos explícitos essa conta de usuário tem acesso. Para definir usuários da rede SAMBA em seu sistema Ubuntu, você pode utilizar o comando smbpasswd. Por exemplo, para adicionar o usuário 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 usuário: 91
  • 92. Redes Windows Nova senha SMB: Entre com a nova senha para o usuário 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 usuário ao arquivo de senhas do SAMBA. 3.2.2. Grupos Os grupos definem uma relação de computadores ou usuários que têm um nível comum de acesso a recursos particulares da rede e oferece um nível detalhado para controlador o acesso a tais recursos. Por exemplo, se o grupo qa contem os usuários freda, danika e rob e um segundo grupos support contem os seguintes usuários danika, jeremy e vincent em seguida, certos recursos da rede podem ser configurados para que o grupo qa seja acessível por freda, danika e rob, mas não por jeremy ou vincent. Desde que o usuário danika pertença a ambos os grupos qa e support, ela será capaz de acessar recursos de ambos os grupos, ao passo que todos os outros usuários terão acesso a recursos explicitamente permitindos ao grupo de que fazem parte. Quando for definir grupos no arquivo de configuração do SAMBA, /etc/samba/smb.conf a sintaxe para identificar o nome do grupo deve iniciar com o símbolo "@". Por exemplo, se deseja definir um grupo chamado sysadmin vá até a seção referente em /etc/samba/smb.conf e adicione o nome do grupo da seguinte maneira: @sysadmin. 3.2.3. Políticas do Grupo Políticas de Grupo define certos ajustes de configuração do SAMBA pertencentes ao Domínio ou contas de computador do Grupo de Trabalho (workgroup), além de outros ajustes globais para o servidor SAMBA. Por exemplo, se o servidor SAMBA pertencer ao Grupo de Trabalho do Windows chamado NÍVELUM, então o arquivo /etc/samba/smb.conf deve ser editado, alterando os valores da seguinte maneira: workgroup = NÍVELUM Salve o arquivo e reinicie os "daemons" do SAMBA para que as mudanças tenham efeito. Outros ajustes importantes da política global incluem a sequência servidor que define o nome do servidor NETBIOS informado por seu sistema Ubuntu a outras máquinas 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 localização do arquivo de registro (log file) do servidor SAMBA manuseando a diretiva log file no arquivo de configuração /etc/samba/smb.conf. Algumas diretrizes adicionais que governam as políticas globais de um grupo, incluem a descrição detalhada da natureza global de todos recursos compartilhados. Por exemplo, colocar certas diretrizes 92
  • 93. Redes Windows na seção [global] do arquivo /etc/samba/smb.conf afetará todos os recursos compartilhados a menos que uma diretriz primordial seja colocada sob um particular cabeçalho de compartilhamento de recurso. Você pode especificar tudo que for passível de compartilhamento a qualquer cliente que participe da rede alterando a diretriz browseable, o qual toma uma lógica Booleana, que deve ser adicionada/modificada na seção [global] do arquivo /etc/samba/smb.conf. Ou seja, altere o arquivo adicionando a linha: browseable = true abaixo da seção [global] em /etc/samba/smb.conf, então todo o conteúdo fornecidas por seu sistema Ubuntu via SAMBA serão browseable (navegáveis) por todos os clientes autorizados, a menos que uma parte específica contenha uma diretriz browseable = false, a qual sobrescreverá a diretriz global. Outros exemplos de comando que trabalham de maneira semelhante, são as diretrizes public e writeable. A diretriz public fornece um valor Booleano (sistema combinatório lógico) que define se um usuário qualquer e/ou todos os clientes da rede compartilham recurso de gravação (writable) . 93
  • 94. Apêndice 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
  • 95. 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
  • 96. 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
  • 97. 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
  • 98. 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
  • 99. Apêndice 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
  • 100. 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
  • 101. 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
  • 102. 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
  • 103. 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
  • 104. 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
  • 105. 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
  • 106. 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
  • 107. 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
  • 108. 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
  • 109. 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
  • 110. 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
  • 111. 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
  • 112. 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
  • 113. 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