apostila qmail ldap

165
http://www.freesoftware.org.br QMAIL + OPENLDAP Marcio Garcia Marcenari & Ralf Braga Sermatheu [email protected] [email protected] Versão 0.01 1

Upload: agressorbr

Post on 05-Jul-2015

2.440 views

Category:

Documents


9 download

DESCRIPTION

Apostila que ensina como instalar um servidor de e-mail qmail-ldap no debian.

TRANSCRIPT

Page 1: Apostila Qmail LDAP

http://www.freesoftware.org.br

QMAIL + OPENLDAP

Marcio Garcia Marcenari & Ralf Braga Sermatheu [email protected] [email protected]

Versão 0.01

1

Page 2: Apostila Qmail LDAP

Nota de Copyright

Copyleft © 2004 - Marcio Garcia Marcenari e Ralf Braga

Permission is granted to copy, distribute and/or modify this documentunder the terms of the GNU Free Documentation License, Version 1.2 orany later version published by the Free Software Foundation; A copyof the license is included in the section entitled "GNU FreeDocumentation License"

2

Page 3: Apostila Qmail LDAP

Do Autor

Marcio Garcia Marcenari,

Bem comecei a mexer com Linux ainda na TurboLinux como o únicorepresentante no Brasil, em seguida atuei na empresa 4Linux como profissionalda Área Técnica Comercial, também Consultor Técnico e Instrutor da mesma.Atualmente sou consultor da empresa The Source, atuando também comoinstrutor de Software Livre na Sucesu São Paulo e outros centros de treinamentofocando os diversos tópicos, dentre eles:

Qmail, Linux, Ldap, Segurança, Samba, VPN, Apache), etc...

3

Page 4: Apostila Qmail LDAP

Introdução

Gostaria de agradecer alguns amigos que trabalharam comigo porém nunca tive aoportunidade de documentar ou relatar isso formalmente, apenas comentários.Sem os mesmos eu jamais teria chegado nessa velocidade onde cheguei, sãoeles: Alessandro Kenji Urakawa e Renato Tambelini. Também quero agradecercomo Co-Autor Ralf Braga.

A idéia com o tempo é formalizar um grupo de discussão sobre o Qmail, que naminha opinião é um dos melhores servidores de correio que já conheci.

A idéia de criação do site e grupo é iniciar as traduções de manuais do qmail paraa Língua Portuguesa pt_BR e aprimorar o material, fazendo assim com que oconhecimento brasileiro em qmail cresça, fomentando também a comunidade deSoftware Livre.

E assim deixar documentado, todas as dificuldades encontradas no meio dopercurso e incentivar com que outras pessoas façam o mesmo e comecemostodos a ajudar uns aos outros. Em breve esperamos poder contar também comvocê para poder contribuir para a comunidade Qmail_BR.

4

Page 5: Apostila Qmail LDAP

ÍndiceO Sistema Operacional.........................................................................................10O Linux.................................................................................................................10Algumas Características do Linux.........................................................................11Distribuições do Linux...........................................................................................13Software Livre.......................................................................................................17Instalação do GNU/Debian Linux 3.0 r2................................................................20

Menu de Instalação – Selecionando a Imagem de Instalação............................20Menu de Instalação – Seleção de Ídioma...........................................................21Menu de Instalação – Seleção de Ídioma e Teclado...........................................22Menu de Instalação – Notas de Lançamento.....................................................23Menu de Instalação – Configuração do Teclado.................................................24Menu de Instalação – Selecionar Teclado..........................................................25Menu de Instalação – Particionar Disco Rígido..................................................26Menu de Instalação – Selecionar Unidade de Disco...........................................27Menu de Instalação – Limitações do LILO..........................................................28Menu de Instalação – Informações Adicionais sobre ReiserFS...........................29Menu de Instalação – Particionar Disco Rígido..................................................30Menu de Instalação – Particionar Disco Rígido..................................................31Menu de Instalação – Configuração da Partição Swap.......................................32Menu de Instalação – Checar Blocos Defeituosos..............................................33Menu de Instalação – Formatar Dispositivo Selecionado...................................34Menu de Instalação – Inicializar Dispositivo do Sistema....................................35Menu de Instalação – Tipo de Sistema de Arquivos...........................................36Menu de Instalação – Selecionar Dispositivo.....................................................37Menu de Instalação – Checar Blocos Defeituosos..............................................38Menu de Instalação – Formatar Dispositivo Selecionado...................................39Menu de Instalação – Gerando Sistema de Arquivos.........................................40Menu de Instalação – Montar Dispositivo Selecionado.......................................41Menu de Instalação – Inicializar Dispositivo do Sistema....................................42Menu de Instalação – Selecionar Dispositivo.....................................................43Menu de Instalação – Checar Blocos Defeituosos..............................................44Menu de Instalação – Formatar Dispositivo Selecionado...................................45Menu de Instalação – Gerando Sistema de Arquivos.........................................46Menu de Instalação – Montar Dispositivo Selecionado.......................................47Menu de Instalação – Instalar Kernel e Módulos................................................48Menu de Instalação – CDROM............................................................................49Menu de Instalação – Configuração de Dispositivos..........................................50Menu de Instalação – Configuração de Dispositivos..........................................51Menu de Instalação – Configuração de Dispositivos..........................................52Menu de Instalação – Configuração de Rede.....................................................53Menu de Instalação – Nome no Servidor...........................................................54

5

Page 6: Apostila Qmail LDAP

Menu de Instalação – Ativar Rede DHCP ou STATIC...........................................55Menu de Instalação – Configuração do IP do Servidor.......................................56Menu de Instalação – Configuração da Mascará de Rede..................................57Menu de Instalação – Configuração do Gateway...............................................58Menu de Instalação – Configuração do Domínio do Servidor.............................59Menu de Instalação – Configuração do Resolvedor de Nomes...........................60Menu de Instalação – Instalação do Sistema GNU/Debian Linux........................61Menu de Instalação – Instalação do Sistema GNU/Debian Linux........................62Menu de Instalação – Configuração do Gerenciador de Boot.............................63Menu de Instalação – Configuração do Gerenciador de Boot.............................64Menu de Instalação – Configuração do Gerenciador de Boot.............................65Menu de Instalação – Reiniciar o Sistema.........................................................66Menu de Instalação – Reiniciar o Sistema.........................................................67

Gerenciador de pacotes do Debian.......................................................................68dpkg..................................................................................................................68APT...................................................................................................................69

Redes...................................................................................................................72Configuração do ambiente Debian........................................................................74Instalação e Configuração DNS (Domain Name Server)........................................77

Introdução.........................................................................................................77A História do Domain Name Server...................................................................78A História do BIND.............................................................................................79Instalação do BIND............................................................................................80Configuração do BIND.......................................................................................80Iniciando o Serviço do BIND..............................................................................82Testando o BIND...............................................................................................82

daemontools.........................................................................................................83O que é ?..........................................................................................................83O programa svscanboot....................................................................................83

Interface........................................................................................................83O programa svscan...........................................................................................83

Interface........................................................................................................84O programa supervise.......................................................................................84

Interface........................................................................................................84O programa svc.................................................................................................85

Interface........................................................................................................85Opções..........................................................................................................85

O programa svok...............................................................................................85Interface........................................................................................................85

O programa svstat............................................................................................86Interface........................................................................................................86

O programa readproctitle..................................................................................86Interface........................................................................................................86

O programa multilog.........................................................................................87Interface........................................................................................................87Timestamping...............................................................................................87

6

Page 7: Apostila Qmail LDAP

Rotate logs automaticamente.......................................................................87O programa setuidgid.......................................................................................88

Interface........................................................................................................88O programa softlimit.........................................................................................89

Interface........................................................................................................89Opções..........................................................................................................89

ucspi-tcp...............................................................................................................90O que é ?..........................................................................................................90Outras ferramentas TCP de comandos de linha................................................90O programa tcpserver.......................................................................................90

Interface........................................................................................................90Opções..........................................................................................................91

O programa tcprules.........................................................................................92Interface........................................................................................................92

Formato das regras...........................................................................................93Endereços.....................................................................................................93Range de endereços......................................................................................94Instruções......................................................................................................94

O programa tcpclient........................................................................................94Interface........................................................................................................94Opções..........................................................................................................95

Variáveis de ambiente TCP...............................................................................95Qmail....................................................................................................................97

Releases do Qmail............................................................................................97Por que usar o Qmail.........................................................................................97Algumas comparações do Qmail.......................................................................98Pacotes.............................................................................................................98Download dos pacotes......................................................................................98Como instalar o daemontools............................................................................99Como instalar o ucspi-tcp..................................................................................99Como instalar o Qmail.....................................................................................100

Criando os alias do Qmail............................................................................101Configurando o script “/var/qmail/rc”..........................................................102Iniciando o Qmail somente local..................................................................104Verificando os processos do Qmail..............................................................104Testando o servidor de correio Qmail..........................................................105Parando o servidor de correio Qmail...........................................................105Configurando o binário “sendmail”..............................................................106Configurando o SEND do Qmail...................................................................106Configurando o SMTP do Qmail...................................................................107Configurando o POP3D do Qmail.................................................................107Criando os diretórios de logs do Qmail........................................................108Criando os links dos scripts do Qmail..........................................................108Configurando a tabela de relay...................................................................109Habilitando a checagem de domínio...........................................................109Script de rotinas do Qmail...........................................................................110

7

Page 8: Apostila Qmail LDAP

Arquivos de controle do Qmail........................................................................111Variáveis de ambiente do Qmail.....................................................................112Arquitetura......................................................................................................114Estrutura de Diretórios....................................................................................115Estrutura do Queue.........................................................................................115Tentativas de Entrega das Mensagens............................................................115

Vpopmail............................................................................................................118Vantagens.......................................................................................................118Pacotes...........................................................................................................118Download........................................................................................................118Como instalar o vpopmail...............................................................................118

Courier-Imap.......................................................................................................120Pacotes...........................................................................................................120Download........................................................................................................120Dependências.................................................................................................120Como instalar o courier-imap..........................................................................120

Qmailadmin........................................................................................................121Outros recursos do qmailadmin......................................................................122Pacote.............................................................................................................122Download........................................................................................................122Pré-requisitos..................................................................................................122Como instalar o qmailadmin...........................................................................123Como acessar o qmailadmin...........................................................................124

Squirrelmail........................................................................................................124Pacote.............................................................................................................124Download........................................................................................................124Como instalar o squirrelmail...........................................................................124Como acessar o squirrelmail...........................................................................124

Como deixar o webmail mais seguro..................................................................125OPENLDAP2........................................................................................................126Instalação do OpenLdap2 através do APT...........................................................126

Arquivos de configuração do OPENLDAP.........................................................128Instalando o pacote migrationtools.....................................................................131

Migrando a Base de Objetos...........................................................................132Ferramenta de administração web para o OpenLDAP.........................................133

Download........................................................................................................133Pré-requisitos..................................................................................................134Como instalar o davedap................................................................................134Como acessar o davedap................................................................................139

Instalação do OpenLdap2 através do código fonte.............................................139Pré-requisitos..................................................................................................139Pacotes...........................................................................................................139Download........................................................................................................139Como instalar o BerkeleyDB............................................................................140Como instalar o Cyrus - SASL..........................................................................140Como instalar o OpenLDAP.............................................................................141

8

Page 9: Apostila Qmail LDAP

Configuração do OpenLdap.............................................................................142Carregando o serviço do OpenLDAP................................................................143Configurando as entradas no OpenLDAP.........................................................143Modificando as entradas na base LDAP...........................................................146Removendo as entradas na base LDAP...........................................................146Consultando as entradas na base LDAP..........................................................146Como fazer a indexão da base LDAP...............................................................146Criptografando senhas do OpenLDAP..............................................................146

Instando o Qmail com suporte a LDAP................................................................148Pré-requisitos..................................................................................................148Download do Qmail.........................................................................................148Download do Patch do LDAP para o Qmail......................................................148Instalação do Qmail........................................................................................148Descompactando o Qmail...............................................................................148Aplicando o patch do LDAP no Qmail..............................................................148Editando o Makefile do Qmail..........................................................................149Configurando o LDAP com suporte ao Qmail...................................................149Criando usuário para interagir com o LDAP.....................................................151Criando os alias do Qmail................................................................................151Criando os arquivos de controle do Qmail.......................................................152

Configurando o usuário e grupo que irá interagir com o LDAP....................152Configurando o usuário “administrador” que irá controlar a Base LDAP......152Configurando a senha do “Manager” no Qmail............................................152Configurando a base do LDAP no Qmail......................................................152Configurando o endereço do servidor LDAP.................................................152Configurando o objectclass para usuário poder interagir com o LDAP.........153Configurando arquivos de controle para o Qmail consultar o LDAP.............153Configurando mensagem de quota..............................................................153Configurando o arquivo para criação da conta do usuário no Qmail............153Criando o script para criação automática da caixa postal do usuário..........153Configurando tabela de relay do SMTP........................................................154

Configurando os scripts do Qmail....................................................................154Configurando o SEND..................................................................................155Configurando o SMTPD................................................................................155Configurando o POP3D................................................................................156

Criando os links dos serviços do Qmail...........................................................157Referências.........................................................................................................158GNU Free Documentation License......................................................................159

9

Page 10: Apostila Qmail LDAP

O Sistema Operacional

O Sistema Operacional é o conjunto de programas que fazem a interface dousuário e seus programas com o computador. Ele é responsável pelogerenciamento de recursos e periféricos (como memória, discos, arquivos,impressoras, CD-ROMs, etc.), interpretação de mensagens e a execução deprogramas.

No Linux o Kernel mais o conjunto de ferramentas GNU compõem o SistemaOperacional. O kernel (que é a base principal de um sistema operacional), poderáser construído de acordo com a configuração do seu computador e dos periféricosque possui.

O Linux

O Linux é um sistema operacional criado em 1991 por Linus Torvalds nauniversidade de Helsinki na Finlândia. É um sistema Operacional de código abertodistribuído gratuitamente pela Internet. Seu código fonte é liberado como FreeSoftware (software livre) o aviso de copyright do kernel feito por Linus descrevedetalhadamente isto e mesmo ele está proibido de fazer a comercialização dosistema.

Isto quer dizer que você não precisa pagar nada para usar o Linux, e não écrime fazer cópias para instalar em outros computadores, nós inclusiveincentivamos você a fazer isto. Ser um sistema de código aberto pode explicar aperformance, estabilidade e velocidade em que novos recursos são adicionadosao sistema.

Para rodar o Linux você precisa, no mínimo, de um computador 386 SX com2 MB de memória e 40MB disponíveis em seu disco rígido para uma instalaçãobásica e funcional.

O sistema segue o padrão POSIX que é o mesmo usado por sistemas UNIX esuas variantes. Assim, aprendendo o Linux você não encontrará muita dificuldadeem operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastandoapenas aprender alguns detalhes encontrados em cada sistema.

O código fonte aberto permite que qualquer pessoa veja como o sistemafunciona (útil para aprendizado), corrija alguma problema ou faça algumasugestão sobre sua melhoria, esse é um dos motivos de seu rápido crescimento,do aumento da compatibilidade de periféricos (como novas placas sendosuportadas logo após seu lançamento) e de sua estabilidade.

Outro ponto em que ele se destaca é o suporte que oferece a placas, CD-Roms e outros tipos de dispositivos de última geração e mais antigos (a maioriadeles já ultrapassados e sendo completamente suportados pelo sistemaoperacional). Este é um ponto forte para empresas que desejam manter seus

10

Page 11: Apostila Qmail LDAP

micros em funcionamento e pretendem investir em avanços tecnológicos com asmáquinas que possui.

Hoje o Linux é desenvolvido por milhares de pessoas espalhadas pelomundo, cada uma fazendo sua contribuição ou mantendo alguma parte do kernelgratuitamente. Linus Torvalds ainda trabalha em seu desenvolvimento e tambémajuda na coordenação entre os desenvolvedores.

O suporte ao sistema também se destaca como sendo o mais eficiente erápido do que qualquer programa comercial disponível no mercado. Existemcentenas de consultores especializados espalhados ao redor do mundo. Vocêpode se inscrever em uma lista de discussão e relatar sua dúvida ou algumafalha, e sua mensagem será vista por centenas de usuários na Internet e algumirá te ajudar ou avisará as pessoas responsáveis sobre a falha encontrada paradevida correção.

Algumas Características do Linux

• É livre e desenvolvido voluntariamente por programadores experientes,hackers, e contribuidores espalhados ao redor do mundo que tem comoobjetivo a contribuição para a melhoria e crescimento deste sistemaoperacional.

• Muitos deles estavam cansados do excesso de propaganda (Marketing) e baixaqualidade de sistemas comerciais existentes.

• Convivem sem nenhum tipo de conflito com outros sistemas operacionais (como DOS, Windows, OS/2) no mesmo computador.

• Multitarefa real.

• Multiusuário.

• Suporte a nomes extensos de arquivos e diretórios (255 caracteres).

• Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh,Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc.

• Proteção entre processos executados na memória RAM.

• Suporte a mais de 63 terminais virtuais (consoles).

• Modularização - O GNU/Linux somente carrega para a memória o que é usadodurante o processamento, liberando totalmente a memória assim que oprograma/dispositivo é finalizado.

• Devido a modularização, os drivers dos periféricos e recursos do sistemapodem ser carregados e removidos completamente da memória RAM aqualquer momento. Os drivers (módulos) ocupam pouco espaço quandocarregados na memória RAM (cerca de 6Kb para a Placa de rede NE 2000, porexemplo).

11

Page 12: Apostila Qmail LDAP

• Não há a necessidade de se reiniciar o sistema após modificar a configuraçãode qualquer periférico ou parâmetros de rede. Somente é necessário reiniciar osistema no caso de uma instalação interna de um novo periférico, falha emalgum hardware (queima do processador, placa mãe, etc.) ou atualização doKernel.

• Não precisa de um processador potente para funcionar. O sistema roda bem emcomputadores 386Sx 25 com 4MB de memória RAM (sem rodar o sistemagráfico X, que é recomendado 8MB de RAM). Já pensou no seu desempenho emum 486 ou Pentium ;-)

• O crescimento e novas versões do sistema não provocam lentidão, pelocontrário, a cada nova versão os desenvolvedores procuram buscar maiorcompatibilidade, acrescentar recursos úteis e melhor desempenho do sistema(como o que aconteceu na passagem do kernel 2.0.x para 2.2.x).

• Não é requerida uma licença para seu uso. O GNU/Linux é licenciado de acordocom os termos da GPL.

• Acessa sem problemas discos formatados pelo DOS, Windows, Novell, OS/2,NTFS, SunOS, Amiga, Atari, Mac, etc.

• Utiliza permissões de acesso a arquivos, diretórios e programas em execuçãona memória RAM.

• NÃO EXISTEM VÍRUS NO LINUX! Em 13 anos de existência, nunca foi registradoNENHUM tipo de vírus neste sistema. Isto tudo devido a grande segurançaoferecida pelas permissões de acesso do sistema que funcionam inclusivedurante a execução de programas.

• Rede TCP/IP mais rápida que no Windows e tem sua pilha constantementemelhorada. O GNU/Linux tem suporte nativo a redes TCP/IP e não depende deuma camada intermediária como o WinSock. Em acessos via modem a Internet,a velocidade de transmissão é 10% maior.

• Jogadores do Quake ou qualquer outro tipo de jogo via Internet preferem oGNU/Linux por causa da maior velocidade do Jogo em rede. É fácil rodar umservidor Quake em seu computador e assim jogar contra vários adversários viaInternet.

• Roda aplicações DOS através do DOSEMU. Para se ter uma idéia, é possível daro boot em um sistema DOS qualquer dentro dele e ao mesmo tempo usar amultitarefa deste sistema.

• Roda aplicações Windows através do WINE.

• Suporte a dispositivos infravermelho.

• Suporte a rede via rádio amador.

• Suporte a dispositivos Plug-and-Play.

• Suporte a dispositivos USB.

• Vários tipos de firewalls de alta qualidade e com grande poder de segurança de

12

Page 13: Apostila Qmail LDAP

graça.

• Roteamento estático e dinâmico de pacotes.

• Ponte entre Redes.

• Proxy Tradicional e Transparente.

• Possui recursos para atender a mais de um endereço IP na mesma placa derede, sendo muito útil para situações de manutenção em servidores de redesou para a emulação de "mais computadores" virtualmente.

• O servidor WEB e FTP podem estar localizados no mesmo computador, mas ousuário que se conecta tem a impressão que a rede possui servidoresdiferentes.

• O sistema de arquivos usado pelo GNU/Linux (Ext3) organiza os arquivos deforma inteligente evitando a fragmentação e fazendo-o um poderoso sistemapara aplicações multi-usuárias exigentes e gravações intensivas e ainda possuio recurso de Kjournal File System.

• Permite a montagem de um servidor Web, E-mail, News, etc. com um baixocusto e alta performance. O melhor servidor Web do mercado, o Apache, édistribuído gratuitamente junto com o Linux. O mesmo acontece com oSendmail.

• Por ser um sistema operacional de código aberto, você pode ver o que o códigofonte (o que foi digitado pelo programador) faz e adaptá-lo as suasnecessidades ou de sua empresa. Esta característica é uma segurança a maispara empresas sérias e outros que não querem ter seus dados roubados (vocênão sabe o que um sistema sem código fonte faz na realidade enquanto estaprocessando o programa).

• Suporte a diversos dispositivos e periféricos disponíveis no mercado, tanto osnovos como obsoletos.

• Pode ser executado em 10 arquiteturas diferentes (Intel, Macintosh, Alpha,Arm, S/390. Risc, Sparc, etc.).

• Consultores técnicos especializados no suporte ao sistema espalhados por todoo mundo.

• Entre muitas outras características que você descobrirá durante o uso dosistema.

TODOS OS ÍTENS DESCRITOS ACIMA SÃO VERDADEIROS E TESTADOS PARA QUETIVESSE PLENA CERTEZA DE SEU FUNCIONAMENTO.

Distribuições do Linux

13

Page 14: Apostila Qmail LDAP

Só o kernel GNU/Linux não é suficiente para se ter uma sistema funcional,mas é o principal.

Existem grupos de pessoas, empresas e organizações que decidem"distribuir" o Linux junto com outros programas essenciais (como por exemploeditores gráficos, planilhas, bancos de dados, ambientes de programação,formatação de documentos, firewalls, etc).

Este é o significado básico de distribuição. Cada distribuição tem suacaracterística própria, como o sistema de instalação, o objetivo, a localização deprogramas, nomes de arquivos de configuração, etc. A escolha de umadistribuição é pessoal e depende das necessidades de cada um.

Algumas distribuições bastante conhecidas são: Slackware, Debian, RedHat, Conectiva, Suse, Monkey, todas usando o SO Linux como kernel principal (aDebian é uma distribuição independente de kernel e pode ser executada soboutros kernels, como o GNU hurd).

A escolha de sua distribuição deve ser feita com muita atenção, não adiantamuita coisa perguntar em canais de IRC sobre qual é a melhor distribuição, serlevado pelas propagandas, pelo vizinho, etc. O melhor caminho para a escolha dadistribuição, acredito eu, seria perguntar as características de cada uma e porqueessa pessoa gosta dela ao invés de perguntar qual é a melhor, porque quem lheresponder isto estará usando uma distribuição que se encaixa de acordo com suasnecessidade e esta mesma distribuição pode não ser a melhor para lhe atender.

Segue abaixo as características de algumas distribuições seguidas do siteprincipal e endereço ftp:

Debianhttp://www.debian.org/ - Distribuição desenvolvida e atualizada através doesforço de voluntários espalhados ao redor do mundo, seguindo o estilo dedesenvolvimento GNU/Linux. Por este motivo, foi adotada como a distribuiçãooficial do projeto GNU. Possui suporte a língua Portuguesa, é a única que temsuporte a 10 arquiteturas diferentes (i386, Alpha, Sparc, PowerPc, Macintosh,Arm, etc.) e aproximadamente 15 sub-arquiteturas. A instalação dadistribuição pode ser feita tanto através de Disquetes, CD-ROM, Tftp, Ftp,NFS ou através da combinação de vários destes em cada etapa de instalação.

Acompanha mais de 4350 programas distribuídos em forma de pacotesdivididos em 4 CDs binários e 2 de código fonte, cada um destes programassão mantidos e testados pela pessoa responsável por seu empacotamento.Os pacotes são divididos em diretórios de acordo com sua categoria egerenciados através de um avançado sistema de gerenciamento de pacotes(o dpkg) facilitando a instalação e atualização de pacotes. Possui tantoferramentas para administração de redes e servidores quanto para desktops,estações multimídia, jogos, desenvolvimento, web, etc.

A atualização da distribuição ou de pacotes individuais pode ser feitafacilmente através de 2 comandos, não requerendo adquirir um novo CD

14

Page 15: Apostila Qmail LDAP

para usar a última versão da distribuição. É a única distribuição nãocomercial onde todos podem contribuir com seu conhecimento para o seudesenvolvimento. Para gerenciar os voluntários, conta com centenas de listasde discussão envolvendo determinados desenvolvedores das mais diversaspartes do mundo.

São feitos extensivos testes antes do lançamento de cada versão para atingirum alto grau de confiabilidade. As falhas encontradas nos pacotes podem serrelatados através de um sistema de tratamento de falhas que encaminha afalha encontrada diretamente ao responsável para avaliação e correção.Qualquer um pode receber a lista de falhas ou sugestões sobre a distribuiçãocadastrando-se em uma das lista de discussão que tratam especificamenteda solução de falhas encontradas na distribuição (disponível na páginaprincipal da distribuição).

Os pacotes podem ser instalados através de Tarefas contendo seleções depacotes de acordo com a utilização do computador (servidor Web,desenvolvimento, TeX, jogos, desktop, etc.), Perfis contendo seleções depacotes de acordo com o tipo de usuário (programador, operador, etc.), ouatravés de uma seleção individual de pacotes, garantindo que somente ospacotes selecionados serão instalados fazendo uma instalação enxuta.

Existe um time de desenvolvedores com a tarefa específica de monitoraratualizações de segurança em serviços (apache, sendmail, e todos os outros8000 pacotes)que possam compromenter o servidor, deixando-o vulnerável aataques. Assim que uma falha é descoberta, é enviado uma alerta (DSA -Debian Security Alert) e disponibilizada uma atualização para correção dasdiversas versões da Debian. Isto é geralmente feito em menos de 48 horasdesde a descoberta da falha até a divulgação da correção. Como quase todasas falhas são descobertas nos programas, este método também pode serusado por administradores de outras distribuições para manterem seusistema seguro e atualizado.

O suporte ao usuário e desenvolvimento da distribuição são feitos através delistas de discussões e canais IRC. Existem uma lista de consultoreshabilitados a dar suporte e assistência a sistemas Debian ao redor do mundo.

ftp://ftp.debian.org/ - Endereço Ftp para download.

Conectivahttp://www.conectiva.com.br/

ftp://ftp.conectiva.com.br/

Libranethttp://www.libranet.com/ - Distribuição baseada na Debian GNU/Linux

15

Page 16: Apostila Qmail LDAP

oferecendo as principais características da distribuição Debian. Sãoempacotadas os aplicativos mais utilizados da Distribuição Debian em umúnico CD, você pode ter um desktop completo sendo executado em poucotempo.

As atualizações de softwares são feitas gratuitamente. O sistema degerenciamento de pacotes Debian permite o gerenciamento de atualizaçõesautomaticamente.

Slackwarehttp://www.slackware.com/ - Distribuição desenvolvida por PatrickVolkerding, desenvolvida para alcançar facilidade de uso e estabilidade comoprioridades principais. Foi a primeira distribuição a ser lançada no mundo ecostuma trazer o que há de mais novo enquanto mantém uma certa tradição,provendo simplicidade, facilidade de uso e com isso flexibilidade e poder.

Desde a primeira versão lançada em Abril de 1993, o Projeto Slackware Linuxtem buscado produzir a distribuição Linux mais UNIX-like, ou seja, maisparecida com UNIX. O Slackware segue os padrões Linux como o Linux FileSystem Standard, que é um padrão de organização de diretórios e arquivospara as distribuições.

Enquanto as pessoas diziam que a Red Hat era a melhor distribuição para ousuário iniciante, o Slackware é o melhor para o usuário mais "velho", ou sejaprogramadores, administradores, etc.

ftp://ftp.slackwarebrasil.org/linux/slackware/ - Ftp da distribuição Slackware.

SuSEhttp://www.suse.com/ - Distribuição comercial Alemã com a coordenaçãosendo feita através dos processos administrativos dos desenvolvedores e deseu braço norte-americano. O foco da Suse é o usuário com conhecimentotécnico no Linux (programador, administrador de rede, etc.) e ascorporações.

A distribuição possui suporte ao idioma e teclado Português, mas não inclui(até a versão 6.2) a documentação em Português. Eis a lista de idiomassuportados pela distribuição: English, Deutsch, Français, Italiano, Espanholñ,Português, Português Brasileiro, Polski, Cesky, Romanian, Slovensky,Indonésia.

Sua instalação pode ser feita via CD-ROM ou CD-DVD (é a primeiradistribuição com instalação através de DVD).

Uma média de 1500 programas acompanham a versão 6.3 distribuídos em 6CD-ROMs. O sistema de gerenciamento de pacotes é o RPM padronizado. A

16

Page 17: Apostila Qmail LDAP

seleção de pacotes durante a instalação pode ser feita através da seleção doperfil de máquina (developer, estação kde, gráficos, estação gnome, servidorde rede, etc.) ou através da seleção individual de pacotes.

A atualização da distribuição pode ser feita através do CD-ROM de uma novaversão ou baixando pacotes de ftp://ftp.suse.com/. Usuários registradosganham direito a suporte de instalação via e-mail. A base de dados desuporte também é excelente e está disponível na web para qualquer usuárioindependente de registro.

ftp://ftp.suse.com/ - Ftp da distribuição SuSE.

Red Hathttp://www.redhat.com/

ftp://ftp.redhat.com/

Software Livre

(tradução do texto Linux e o Sistema GNU de Richard Stallman obtido nosite do CIPSGA: http://www.cipsga.org.br). O projeto GNU começou há 12 anosatrás com o objetivo de desenvolver um sistema operacional Unix-like totalmentelivre. Livre se refere à liberdade, e não ao preço; significa que você está livre paraexecutar, distribuir, estudar, mudar e melhorar o software.

Um sistema Unix-like consiste de muitos programas diferentes. Nósachamos alguns componentes já disponíveis como softwares livres -- porexemplo, X Window e TeX. Obtemos outros componentes ajudando a convencerseus desenvolvedores a tornarem eles livres -- por exemplo, o Berkeley networkutilities. Outros componentes nós escrevemos especificamente para o GNU -- porexemplo, GNU Emacs, o compilador GNU C, o GNU C library, Bash e Ghostscript.Os componentes desta última categoria são "software GNU". O sistema GNUconsiste de todas as três categorias reunidas.

O projeto GNU não é somente desenvolvimento e distribuição de algunssoftwares livres úteis. O coração do projeto GNU é uma idéia: que software deveser livre, e que a liberdade do usuário vale a pena ser defendida. Se as pessoastêm liberdade mas não a apreciam conscientemente, não irão mantê-la por muitotempo. Se queremos que a liberdade dure, precisamos chamar a atenção daspessoas para a liberdade que elas têm em programas livres.

O método do projeto GNU é que programas livres e a idéia da liberdade dosusuários ajudam-se mutuamente. Nós desenvolvemos software GNU, e conformeas pessoas encontrem programas GNU ou o sistema GNU e comecem a usá-los,elas também pensam sobre a filosofia GNU. O software mostra que a idéia

17

Page 18: Apostila Qmail LDAP

funciona na prática. Algumas destas pessoas acabam concordando com a idéia, eentão escrevem mais programas livres. Então, o software carrega a idéia,dissemina a idéia e cresce da idéia.

Em 1992, nós encontramos ou criamos todos os componentes principais dosistema exceto o kernel, que nós estávamos escrevendo. (Este kernel consiste domicrokernel Mach mais o GNU HURD. Atualmente ele está funcionando, mas nãoestá preparado para os usuários. Uma versão alfa deverá estar pronta em breve.)

Então o kernel do Linux tornou-se disponível. Linux é um kernel livre escritopor Linus Torvalds compatível com o Unix. Ele não foi escrito para o projeto GNU,mas o Linux e o quase completo sistema GNU fizeram uma combinação útil. Estacombinação disponibilizou todos os principais componentes de um sistemaoperacional compatível com o Unix, e, com algum trabalho, as pessoas otornaram um sistema funcional. Foi um sistema GNU variante, baseado no kerneldo Linux.

Ironicamente, a popularidade destes sistemas desmerece nosso método decomunicar a idéia GNU para as pessoas que usam GNU. Estes sistemas sãopraticamente iguais ao sistema GNU -- a principal diferença é a escolha do kernel.Porém as pessoas normalmente os chamam de "sistemas Linux (Linux systems)".A primeira impressão que se tem é a de que um "sistema Linux" soa como algocompletamente diferente de "sistema GNU", e é isto que a maioria dos usuáriospensam que acontece.

A maioria das introduções para o "sistema Linux" reconhece o papeldesempenhado pelos componentes de software GNU. Mas elas não dizem que osistema como um todo é uma variante do sistema GNU que o projeto GNU vemcompondo por uma década. Elas não dizem que o objetivo de um sistema Unix-like livre como este veio do projeto GNU. Daí a maioria dos usuários não saberestas coisas.

Como os seres humanos tendem a corrigir as suas primeiras impressõesmenos do que as informações subseqüentes tentam dizer-lhes, estes usuários quedepois aprendem sobre a relação entre estes sistemas e o projeto GNU aindageralmente o subestima.

Isto faz com que muitos usuários se identifiquem como uma comunidadeseparada de "usuários de Linux", distinta da comunidade de usuários GNU. Elesusam todos os softwares GNU; de fato, eles usam quase todo o sistema GNU; maseles não pensam neles como usuários GNU, e freqüentemente não pensam que afilosofia GNU está relacionada a eles.

Isto leva a outros problemas também -- mesmo dificultando cooperação coma manutenção de programas. Normalmente quando usuários mudam umprograma GNU para fazer ele funcionar melhor em um sistema específico, elesmandam a mudança para o mantenedor do programa; então eles trabalham como mantenedor explicando a mudança, perguntando por ela, e às vezesreescrevendo-a para manter a coerência e mantenebilidade do pacote, para ter opatch instalado.

18

Page 19: Apostila Qmail LDAP

Mas as pessoas que pensam nelas como "usuários Linux" tendem a lançaruma versão "Linux-only" do programa GNU, e consideram o trabalho terminado.Nós queremos cada e todos os programas GNU que funcionem "out of the box"em sistemas baseados em Linux; mas se os usuários não ajudarem, este objetivose torna muito mais difícil de atingir.

Como deve o projeto GNU lidar com este problema? O que nós devemosfazer agora para disseminar a idéia de que a liberdade para os usuários decomputador é importante?

Nós devemos continuar a falar sobre a liberdade de compartilhar emodificar software -- e ensinar outros usuários o valor destas liberdades. Se nósnos beneficiamos por ter um sistema operacional livre, faz sentido para nóspensar em preservar estas liberdades por um longo tempo. Se nós nosbeneficiamos por ter uma variedade de software livres, faz sentido pensar sobreencorajar outras pessoas a escrever mais software livre, em vez de softwareproprietário.

Nós não devemos aceitar a idéia de duas comunidades separadas para GNUe Linux. Ao contrário, devemos disseminar o entendimento de que "sistemasLinux" são variantes do sistema GNU, e que os usuários destes sistemas são tantousuários GNU como usuários Linux (usuários do kernel do Linux). Usuários quetêm conhecimento disto irão naturalmente dar uma olhada na filosofia GNU quefez estes sistemas existirem.

Eu escrevi este artigo como um meio de fazer isto. Outra maneira é usar ostermos "sistema GNU baseado em Linux (Linux-based GNU system)" ou "sistemaGNU/Linux (GNU/Linux system)", em vez de "sistema Linux", quando você escrevesobre ou menciona este sistema.

19

Page 20: Apostila Qmail LDAP

Instalação do GNU/Debian Linux 3.0 r2

Menu de Instalação – Selecionando a Imagem de Instalação

Figura 1.0

Na figura 1.0, estaremos efetuando a instalação do Sistema OperacionalGNU/Debian Linux 3.0 r2.

Existem muitas imagens de instalação do GNU/Debian Linux. Caso desejelistar as imgens, pressione a tecla <F3>.

Estaremos utilizando a imagen “bf24”, utilizada para instalar o GNU/DebianLinux com o kernel 2.4.

20

Page 21: Apostila Qmail LDAP

Menu de Instalação – Seleção de Ídioma

Figura 1.1

Na figura 1.1, estaremos selecionando nosso idioma para a instalação doSistema Operacional GNU/Debian Linux 3.0 r2.

Conforme descrito na figura 1.0, estaremos selecionando a opção “pt”, ouseja, Português.

21

Page 22: Apostila Qmail LDAP

Menu de Instalação – Seleção de Ídioma e Teclado

Figura 1.2

Na figura 1.2, estaremos selecionando nosso idioma e teclado para ainstalação do Sistema Operacional GNU/Debian Linux 3.0 r2.

Conforme descrito na figura 1.1, estaremos selecionando a opção “Brasileiro(teclado padrão ABNT2).

Para quem possui teclado “Americano Internacional”, escolha a opção“Brasileiro (teclado padrão EUA).

22

Page 23: Apostila Qmail LDAP

Menu de Instalação – Notas de Lançamento

Figura 1.3

Na figura 1.3 nos fornece algumas informações sobre o Sistema OperacionalGNU/Debian Linux.

Podemos seguir adiante...

23

Page 24: Apostila Qmail LDAP

Menu de Instalação – Configuração do Teclado

Figura 1.4

Na figura 1.4, podemos reconfigurar nosso teclado novamente ouparticionar o disco rígido, estaremos reconfigurando nosso teclado para Brasileiropadrão ABNT2.

24

Page 25: Apostila Qmail LDAP

Menu de Instalação – Selecionar Teclado

Figura 1.5

Na figura 1.5, estaremos selecionando nosso teclado “qwerty/br-abnt2 :Brasileiro (layout ABNT2)”.

25

Page 26: Apostila Qmail LDAP

Menu de Instalação – Particionar Disco Rígido

Figura 1.6

Na figura 1.6, estaremos particionando nosso disco rígido, onde iremosseparar partições para a instalação do GNU/Debian Linux.

26

Page 27: Apostila Qmail LDAP

Menu de Instalação – Selecionar Unidade de Disco

Figura 1.7

Na figura 1.7, estaremos selecionando o disco no qual estaremosparticionando o disco rígido e efetuando a instalação do Linux.

Nesta etapa temos que tomar muito cuidado para não selecionar o discoerrado, caso tenhamos mais de um.

Estaremos efetuando a instalação no disco “/dev/hdb”, que é o nossosegundo disco, conforme descrito abaixo:

Dispositivo Descrição Dispositivo Descrição

/dev/hda IDE – Master Primário /dev/sda 1 unidade SCSI

/dev/hdb IDE – Master Secundário /dev/sdb 2 unidade SCSI

/dev/hdc IDE – Slave Primário /dev/sdc 3 unidade SCSI

/dev/hdd IDE – Slave Secundário /dev/sdd ... 4 unidade SCSI ...

27

Page 28: Apostila Qmail LDAP

Menu de Instalação – Limitações do LILO

Figura 1.8

Na figura 1.8, fornece informações muito importantes sobre a MBR (MasterBoot Records), onde e como deve ser gravado o boot de nosso SistemaOperacional.

Leia atentamente as informações da figura 1.7, pois se estivermosefetuando uma instalação do GNU/Debian Linux ou qualquer outra distribuição emuma máquina antiga, devemos gravar o boot do Sistema Operacional nosprimeiros 1024 cilindros.

28

Page 29: Apostila Qmail LDAP

Menu de Instalação – Informações Adicionais sobre ReiserFS

Figura 1.9

Na figura 1.9, exibe algumas informações sobre o sistema de arquivosReiserFS.

29

Page 30: Apostila Qmail LDAP

Menu de Instalação – Particionar Disco Rígido

Figura 2.0

Na figura 2.0, estaremos efetuando o particionamento de nosso disco rígido.

Nesta etapa temos que tomar muito cuidado para não apagar as partiçõesque já existem em nosso sistema.

Criamos 3 partições para a instalação de nosso sistema GNU/Linux Debian,sendo elas:

Dispositivo Tipo da Partição Tamanho Descrição

hdb11 83 – Linux 24Mb Partição de boot

hdb12 82 – Linux Swap 256Mb Partição de troca

hdb13 83 – Linux 3072Mb Partição raíz

Em seguida salvamos a tabela de particionamento conforme figura 1.9.

30

Page 31: Apostila Qmail LDAP

Menu de Instalação – Particionar Disco Rígido

Figura 2.1

Na figura 2.1, após ter gravado a tabela de particionamento, iremos sair doaplicativo “cfdisk”, utilizado para particionar o disco rígido.

31

Page 32: Apostila Qmail LDAP

Menu de Instalação – Configuração da Partição Swap

Figura 2.2

Na figura 2.2, iremos inicializar uma partição Swap.

O GNU/Debian Linux detecta automaticamente a partição Swap.

32

Page 33: Apostila Qmail LDAP

Menu de Instalação – Checar Blocos Defeituosos

Figura 2.3

Na figura 2.3, temos a opção de checar blocos defeituosos no disco. Apesarde ser uma tarefa demorada, é recomendado checar blocos defeituosos em discosnovos, pois os mesmos nunca foram utilizados é não sabemos se existe erros.

33

Page 34: Apostila Qmail LDAP

Menu de Instalação – Formatar Dispositivo Selecionado

Figura 2.4

Na figura 2.4, será formatado o dispositivo “/dev/hdb12” e será utilizado osistema de arquivos Linux Swap, portanto, todos os dados existentes nodispositivo serão apagados.

34

Page 35: Apostila Qmail LDAP

Menu de Instalação – Inicializar Dispositivo do Sistema

Figura 2.5

Na figura 2.5, iremos inicializar outro dispositivo, pois até agora sóconfiguramos a Partição Swap.

O próximo dispositivo a ser selecionado, será a partição raíz ( / ) do SistemaOperacional GNU/Debian Linux, portanto se você deseja criar partições separadaspara alguns diretórios (ex.: /home /var /tmp /boot), não se esqueça que a próximapartição a ser inicializada após a Swap é a Raíz ( / ), onde ficarão os demaisdiretórios.

35

Page 36: Apostila Qmail LDAP

Menu de Instalação – Tipo de Sistema de Arquivos

Figura 2.6

Na figura 2.6, iremos escolher o sistema de arquivos para o dispositivo a serselecionado.

Iremos utilizar o sistema de arquivos “ext3”, que possui um recurso muitoimportanto chamado “Kjournal File System”, onde obtemos maior segurança emeventuais queda de energia.

36

Page 37: Apostila Qmail LDAP

Menu de Instalação – Selecionar Dispositivo

Figura 2.7

Na figura 2.7, iremos selecionar o dispositivo “/dev/hda13” para ser a raízso sistema.

37

Page 38: Apostila Qmail LDAP

Menu de Instalação – Checar Blocos Defeituosos

Figura 2.8

Na figura 2.8, temos a opção de checar blocos defeituosos no disco. Apesarde ser uma tarefa demorada, é recomendado checar blocos defeituosos em discosnovos, pois os mesmos nunca foram utilizados é não sabemos se existe erros.

38

Page 39: Apostila Qmail LDAP

Menu de Instalação – Formatar Dispositivo Selecionado

Figura 2.9

Na figura 2.9, será formatado o dispositivo “/dev/hdb13”, portanto, todos osdados existentes no dispositivo serão apagados.

39

Page 40: Apostila Qmail LDAP

Menu de Instalação – Gerando Sistema de Arquivos

Figura 3.0

Na figura 3.0, está sendo criado o sistema de arquivos “ext3” no dispositivo“/dev/hdb13”.

40

Page 41: Apostila Qmail LDAP

Menu de Instalação – Montar Dispositivo Selecionado

Figura 3.1

Na figura 3.1, iremos montar o dispositivo “/dev/hdb13” como raíz ( / ) dosistema. Será abaixo do “ / “ onde estarão os demais diretórios do GNU/Linux,tais como: /boot, /var, /home, /etc, /usr, /tmp, /lib , etc...

41

Page 42: Apostila Qmail LDAP

Menu de Instalação – Inicializar Dispositivo do Sistema

Figura 3.2

Na figura 3.2, iremos inicializar outro dispositivo, pois até agora sóconfiguramos a Partição Swap e o “ / “, que é o suficiente para instalar oGNU/Linux, portanto, iremos também configurar um dispositivo só para osarquivos de inicialização do GNU/Linux.

O próximo dispositivo a ser selecionado, será a partição de boot ( /boot ) doSistema Operacional GNU/Debian Linux.

42

Page 43: Apostila Qmail LDAP

Menu de Instalação – Selecionar Dispositivo

Figura 3.3

Na figura 3.3, iremos escolher o sistema de arquivos para o dispositivo a serselecionado.

Iremos utilizar o sistema de arquivos “ext3”, que possui um recurso muitoimportanto chamado “Kjournal File System”, onde obtemos maior segurança emeventuais queda de energia.

43

Page 44: Apostila Qmail LDAP

Menu de Instalação – Checar Blocos Defeituosos

Figura 3.4

Na figura 3.4, temos a opção de checar blocos defeituosos no disco. Apesarde ser uma tarefa demorada, é recomendado checar blocos defeituosos em discosnovos, pois os mesmos nunca foram utilizados é não sabemos se existe erros.

44

Page 45: Apostila Qmail LDAP

Menu de Instalação – Formatar Dispositivo Selecionado

Figura 3.5

Na figura 3.5, será formatado o dispositivo “/dev/hdb11”, portanto, todos osdados existentes no dispositivo serão apagados.

45

Page 46: Apostila Qmail LDAP

Menu de Instalação – Gerando Sistema de Arquivos

Figura 3.6

Na figura 3.6, está sendo criado o sistema de arquivos “ext3” no dispositivo“/dev/hdb11”.

46

Page 47: Apostila Qmail LDAP

Menu de Instalação – Montar Dispositivo Selecionado

Figura 3.7

Na figura 3.7, iremos montar o dispositivo “/dev/hdb11” como boot ( /boot )do sistema. Será abaixo do “ /boot “ onde estarão os arquivos de inicialização doGNU/Linux.

47

Page 48: Apostila Qmail LDAP

Menu de Instalação – Instalar Kernel e Módulos

Figura 3.8

Na figura 3.8, iremos instalar o kernel e os módulos para que possamos darinicio a instalação do GNU/Debian Linux

48

Page 49: Apostila Qmail LDAP

Menu de Instalação – CDROM

Figura 3.9

Na figura 3.9, iremos instalar GNU/Debian Linux através do CDROM, pois omesmo também pode ser instalado através de NFS, WWW ou FTP.

49

Page 50: Apostila Qmail LDAP

Menu de Instalação – Configuração de Dispositivos

Figura 4.0

Na figura 4.0, iremos configurar os módulos dos dipositivos de nossoservidor, ex: placa de rede, som, vídeo, etc...

Esta etapa é muito importante caso desejamos carregar algum módulo emespecífico para sua utilização no decorrer da instalação.

Em muitos casos, o GNU/Debian Linux pode detectar alguns dipositivos denosso sistema, como placa de rede.

50

Page 51: Apostila Qmail LDAP

Menu de Instalação – Configuração de Dispositivos

Figura 4.1

Na figura 4.1, exibe informações de que alguns módulos já estão embutidosno kernel, ex: sistema de arquivos, cdrom, floppy, etc...

51

Page 52: Apostila Qmail LDAP

Menu de Instalação – Configuração de Dispositivos

Figura 4.2

Na figura 4.2, exibe os módulos que podem ser carregados na instalação doGNU/Debian Linux. Caso deseje carregar algum módulo, basta selecioná-lo nomenu desejado.

Nesta estapa não estaremos adicionando nenhum módulo.

Os módulos que adicionarmos nesta etapa, serão carregados toda vez queinicializarmos nosso servidor, portanto, não se preocupe, pois os módulos podemser adicionados após a instalação de nosso sistema.

52

Page 53: Apostila Qmail LDAP

Menu de Instalação – Configuração de Rede

Figura 4.3

Na figura 4.3, o GNU/Debian Linux detectou nossa placa de rede eestaremos configurando a mesma no decorrer da instalação.

Também temos a opção de continuar a instalação do sistema semconfigurar nossa placa de rede, bastando apenas escolher a opção “Instalar oSistema Básico”.

53

Page 54: Apostila Qmail LDAP

Menu de Instalação – Nome no Servidor

Figura 4.4

Na figura 4.4, estaremos configurando o “hostname” de nosso computador,ou seja, o nome de nosso servidor.

É muito importante o nome de nosso servidor, pois ele será umaidentificação em nossa rede e caso o mesmo esteja na Internet, será um alvo.

Por que um alvo ?

Imagine que você possui um servidor de email em sua empresa chamado“mail.freesoftware.org.br”. O nome “mail” chama muita atenção e o ideal seriacolocar algum outro nome que não associa-se com email, como: smeagol, golum,ferrari, lamborguini, beta, alpha, etc...

54

Page 55: Apostila Qmail LDAP

Menu de Instalação – Ativar Rede DHCP ou STATIC

Figura 4.5

Na figura 4.5, estaremos efetuando a configuração de rede de nossoservidor.

Caso deseje configurar seu servidor com um IP dinâmico, basta apenasselecionar a opção “<SIM>”, conforme decrito na figura 4.5, portanto, em umservidor, não colocamos um IP dinâmico.

Em servidores a melhor forma de evitar aborrecimentos, é configurá-lo comIP estático, ou seja, mais conhecido como IP fixo.

55

Page 56: Apostila Qmail LDAP

Menu de Instalação – Configuração do IP do Servidor

Figura 4.6

Na figura 4.6, iremos atribuir um IP para nosso servidor.OBS: Caso esteja configurando um servidor ou uma estação de trabalho que

não estarão na Internet, ou o servidor tem que obrigatoriamente estar em suarede interna, utilize sempre IP's que não são roteáveis para na Internet, ou seja,IP's inválidos, conforme tabela abaixo:

Veja RFC 1597

Classe IP Mascará

Classe A 10.0.0.0 a 10.255.255.255 255.0.0.0 ou /8

Classe B 172.16.0.0 a 172.31.255.255 255.255.0.0 ou /16

Classe C 192.168.0.0 a 192.168.255.255 255.255.255.0 ou /24Figura 4.6.1

Utilizando IP's inválidos em sua rede, você evita um séria de problemas, taiscomo: lentidão, colisão, perda de pacotes, etc...

56

Page 57: Apostila Qmail LDAP

Menu de Instalação – Configuração da Mascará de Rede

Figura 4.7

Na figura 4.7, iremos atribuir a mascará de rede para nosso IP.

Veja figura 4.6.1 caso esteja utilizando um endereço inválido e que não sejasubnetado ou supernetado.

57

Page 58: Apostila Qmail LDAP

Menu de Instalação – Configuração do Gateway

Figura 4.8

Na figura 4.8, iremos atribuir um Gateway para nosso servidor.

Um Gateway ou um roteador são utilizados para fazer repasses de pacotespara uma outra rede ou para a Internet.

58

Page 59: Apostila Qmail LDAP

Menu de Instalação – Configuração do Domínio do Servidor

Figura 4.9

Na figura 4.9, iremos atribuir um domínio para nosso servidor.

59

Page 60: Apostila Qmail LDAP

Menu de Instalação – Configuração do Resolvedor de Nomes

Figura 5.0

Na figura 5.0, iremos atribuir um servidor de nomes para nosso servidor.

O servidor de nomes, mais conhecido como DNS (Domain Name Server), éutilizado na resolução de nomes na Internet, ou seja, tranforma nomes em IP's.

Você já imaginou se todo o site que você desejasse acessar, você teria quecolocar o IP do mesmo em seu navegador. Por isso existem os servidores denomes que tranforme o site “www.freesoftware.org.br” em IP “200.155.x.x”.

60

Page 61: Apostila Qmail LDAP

Menu de Instalação – Instalação do Sistema GNU/Debian Linux

Figura 5.1

Na figura 5.1, estaremos iniciando a instalação de nosso sistemaGNU/Debian Linux.

61

Page 62: Apostila Qmail LDAP

Menu de Instalação – Instalação do Sistema GNU/Debian Linux

Figura 5.2

Na figura 5.2, exibe o status da instalação do GNU/Debian Linux.

Um ítem interessante é que a instalação do GNU/Debian é rápido, pois eleinstala o mínimo essencial para seu funcionamento perfeito.

62

Page 63: Apostila Qmail LDAP

Menu de Instalação – Configuração do Gerenciador de Boot

Figura 5.3

Na figura 5.3, estaremos configurando o gerenciador de boot de nossoservidor.

Um gerenciador de boot é utilizado para inicializar um determinado sistemaoperacional. Caso tenhamos mais de um sistema operacional em nosso servidor,quem nos fornecerá a opção de qual sistema inicializar é o gerenciador de boot.

63

Page 64: Apostila Qmail LDAP

Menu de Instalação – Configuração do Gerenciador de Boot

Figura 5.4

Na figura 5.4, estaremos instalando o gerenciador de boot na MBR (MasterBoot Records).

Temos também a opção de instalar o boot no disco para você deseje utilizarum outro gerenciador de boot.

Estaremos utilizando o LILO como gerenciador de boot.

64

Page 65: Apostila Qmail LDAP

Menu de Instalação – Configuração do Gerenciador de Boot

Figura 5.5

Na figura 5.5, exibe informações importantes sobre o gerenciador de boot,de como torná-lo mais seguro.

Após a instalação você pode editar o arquivo de configuração de boot(/etc/lilo.conf) do sistema e adicionar as seguintes linha para torná-lo mais seguro:

restricted

password=senha

Após setar estas configurações no LILO, digite “lilo” para validar asalterações.

65

Page 66: Apostila Qmail LDAP

Menu de Instalação – Reiniciar o Sistema

Figura 5.6

Na figura 5.6, iremos reiniciar o sistema, pois a instalação foi finalizada.

Temos também a opção “Criar um Disquete de Partida”, que é utilizado parainicializar o GNU/Debian Linux caso ocorra algum problema no gerenciador deboot do sistema.

Quando instalamos o sistema operacional GNU/Linux e em seguida oWindows, o gerenciador de boot do Windows sobrepõe o gerenciador de boot doGNU/Linux, e então, não conseguimos inicializar o Linux, a não ser que tenhamoso “Disquete de Partida” ou um “Rescue Disk”.

66

Page 67: Apostila Qmail LDAP

Menu de Instalação – Reiniciar o Sistema

Figura 5.7

Na figura 5.7, iremos reiniciar o sistema.

Não se esqueça de remover a mídia do leitor de CD.

67

Page 68: Apostila Qmail LDAP

Gerenciador de pacotes do Debian

dpkg

Iremos agora nos adaptar no GNU/Debian Linux, onde iremos ver algunscomandos úteis para instalação, consulta e exclusão de pacotes no sistema.

Nesta etapa, também iremos aprender alguns ítens de configuração doDebian, exclusivo de sua distribuição.

Listar os pacotes instalados no sistema:

# dpkg -lOpção: L minúsculo

Listar os pacotes instalados no sistema, filtrando pelo nome:

# dpkg -l | grep <nome>Opção: L minúsculo

Listar os pacotes instalados no sistema, que começam com “c”:

# dpkg -l | awk '{print $2}' | grep ^cOpção: L minúsculo

Obter informações de um pacote através do dpkg e suas dependências:

# dpkg -I <pacote.deb>Opção: i maiúsculo

Qual pacote instalou determinado aplicativo:

# dpkg -S <aplicativo>

# dpkg -S /bin/ls

Onde estão instalados os arquivos do pacote “fileutils”:

# dpkg -L fileutils

Onde serão instalados os arquivos de um determiando pacote:

68

Page 69: Apostila Qmail LDAP

# dpkg -c <pacote.deb>

Instalar um pacote no sistema através do dpkg:

# dpkg -i <pacote.deb>

Remover um pacote no sistema através do dpkg:

# dpkg -r <pacote>

Remover um pacote no sistema através do dpkg e excluir todos seusarquivos:

# dpkg --purge <pacote>

Remover um pacote no sistema brutalmente através do dpkg:

# dpkg --purge --force-all <pacote>

APT

O “apt” é uma ferramenta útil para consulta, instalação e remoção depacotes no sistema. Através do apt, conseguimos instalar um pacote e caso omesmo apresente alguma dependência, o apt se encarrega de instalar a mesma.

Também é possível manter o sistema atualizado de uma forma bastantesimples e segura, pois os pacotes atualizados foram baixados do mirror“security.debian.org”, onde contém todos os pacotes que devem ser atualizados.Normalmente, quando surge uma vulnerabilidade de algum aplicativo, a equipede desenvolvimento do Debian se encarrega de corrigir o aplicativo bugado, eapós efetuar todos os testes, disponibiliza uma nova versão do aplicativocorrigido.

Podemos utilizar o apt para manipular pacotes através de http, ftp,filesystem ou do próprio CD.

Configurando o apt:

# apt-setup

69

Page 70: Apostila Qmail LDAP

Localizando um determinado aplicativo:

# apt-cache search <aplicativo>

Instalando um determinado aplicativo:

# apt-get install <aplicativo>

Reinstalando um determinado aplicativo:

# apt-get install <aplicativo> --reinstall

Removendo um aplicativo do sistema:

# apt-get remove <aplicativo>

Compilando um determinado aplicativo para gerar um pacote.deb:

# apt-get source <aplicativo> --compile

Atualizando a lista de aplicativos dos mirrors configurados:

# apt-get update

Atualizando o sistema:

# apt-get upgrade

# apt-get dist-upgrade

Arquivo de configuração dos mirrors:

70

Page 71: Apostila Qmail LDAP

# vi /etc/apt/sources.list

# CDROM

deb cdrom:[Debian GNU/Linux 3.0 r2 _Woody_ - Official i386 Binary-1(20031201)]/ unstable contrib main non-US/contrib non-US/main

# Mirrors da Debian

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

deb-src http://ftp.us.debian.org/debian/ stable main non-free contrib

# Mirror do site de segurança da Debian

deb http://security.debian.org/ stable/updates main contrib non-free

Onde ficam os pacotes.deb que foram baixados da Internet:

# ls /var/cache/apt/archives/

OBS.: Após ter efetuado a instalação de um aplicativo através do apt, seuspacotes, que estão localizados no diretório “/var/cache/apt/archives/”, podem serapagados.

Também é possível migrar os pacotes de padrão RPM (RedHat PackageManager) para o Debian, utilizando o aplicativo “alien”. O nome “alien” foi umaexcelente escolha, pois imaginem vocês migrando um pacote de padrão RPM paraDebian (.deb). Com certeza o pacote.deb gerado pode ter se tornado um pacotede outro mundo, totalmente incompátivel com o Debian.

Deixo aqui meus parábens ao criadores do nome “alien”.

Marcio Garcia

71

Page 72: Apostila Qmail LDAP

Redes

Iremos agora nos adaptar aos arquivos de configuração de rede do Debian,que é diferente das outras distribuições.

Arquivo de configuração de rede e gateway:

# vi /etc/network/interfaces

# Interface Loopback e Ethernet

auto lo eth0

# Configuração da interface Loopback

iface lo inet loopback

# Configuração da Interface Ethernet

iface eth0 inet static

address 192.168.100.1

netmask 255.255.255.0

gateway 192.168.100.1

Arquivo de configuração /etc/hosts:

# vi /etc/hosts

127.0.0.1 localhost

192.168.100.1 instrutor.freesoftware.org.br instrutor

# Suporte a IPv6

::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts

72

Page 73: Apostila Qmail LDAP

Obs: É no arquivo /etc/hosts que definimos a configuração do domínio de nosso servidor.

Arquivo de configuração /etc/resolv.conf:

# vi /etc/resolv.conf

search freesoftware.org.br

nameserver 192.168.100.23

Arquivo de configuração do nome do servidor:

# vi /etc/hostname

instrutor

Arquivo de configuração do módulo de rede:

# vi /etc/modules

# Placa de rede 3COM

3c59xObs: É no arquivo /etc/modules que definimos os módulos que serão carregados na inicialização do sistema.

Iniciando o serviço de rede:

# /etc/init.d/networking stop

# /etc/init.d/networking start

Checklist das configurações de rede do servidor:

# ifconfig Interfaces de rede do servidor – eth0 e lo

# route -n Tabela de rotas do servidor

# hostname Nome da servidor

# hostname -d Domínio do servidor

# ping instrutor IP Ethernet tem que responder

# ping instrutor.freesoftware.org.br IP Ethernet tem que responder

Obs: Esta etapa é muito importante para o funcionamento correto de nosso servidor.

73

Page 74: Apostila Qmail LDAP

Configuração do ambiente Debian

Iremos agora instalar e configurar o ambiente gráfico e alguns aplicativosque iremos utilizar no decorrer do curso.

Instalando e configurando o ambiente gráfico:

# apt-get install xserver-xfree86

# apt-get install x-window-system

# xf86config Utilize caso seu ambiente gráfico não esteja corretamente configurado

Obs: O apt irá instalar e configurar todas as dependências dos aplicativos acima.

Instalando e configurando um desktop:

# apt-get install fluxbox

# vi /root/.xinitrc

fluxboxObs: Configuramos o desktop padrão que será inicializado ao digitarmos “startx”.

Instalando o mozilla (browser, https e email):

# apt-get install mozilla mozilla-psm mozilla-mailnews

Instalando o vim:

# apt-get install vim

# vi /root/.vimrc

:syntax onObs: Ao editar os arquivos de configuração com o vi, os parâmetros irão ficar coloridos.

Configurando o mapa de caracteres pt_BR para o ambiente gráfico:

74

Page 75: Apostila Qmail LDAP

# dpkg-reconfigure locales

Obs: Iremos selecionar o mapa de teclados “pt_BR ISO-8859-1”.

Configurando o mapa de caracteres pt_BR para o ambiente texto:

75

Page 76: Apostila Qmail LDAP

# dpkg-reconfigure console-data

Obs: Iremos selecionar o mapa de teclados em uma lista de opções.

Obs: Selecionar a opção “qwerty”, opção na qual contém o layout Brasileiro.

Obs: Selecionar a opção “Brazilian”.

76

Page 77: Apostila Qmail LDAP

Instalação e Configuração DNS (Domain Name Server)

Introdução

Talvez você não conheça muito bem o DNS (Domain Name Server) – ainda –mas, sempre que entra na Internet, usa o DNS. Toda vez que você envia um e-mail ou navega na World Wide Web (WWW), precisa do DNS.

Enquanto os seres humanos preferem se lembrar dos nomes doscomputadores, os computadores gostam de se comunicar por número. NaInternet, esse número tem 32 bits, entre zero e quatro bilhões, ou mais. Para umcomputador é fácil lembrar de tantos números, já que ele possui muita memória,o que é ideal para armazenar números. Porém, isso não é fácil para nós, sereshumanos. Por exemplo, pegue aleatoriamente dez números de telefones de suaagenda e depois tente se lembrar de cada um deles. Achou difícil ? Agora, anexecódigos de área aleatórios a esses dez números de telefone. Isso demonstra onível de dificuldade que teríamos para lembrar de dez endereços arbritários naInternet.

Esse é um dos motivos pelo qual precisamos do DNS. O DNS lida com omapeamento entre os nomes dos hosts, convenientes para nós, seres humanos, eentre os endereços na Internet, com os quais o computador lida. Na verdade, oDNS é o mecanismo padrão da Internet para anunciar e acessar todos os tipos deinformações sobre hosts, não apenas endereços. E o DNS é usado porpraticamente todos os softwares de interligação de redes, inclusive email;programas terminais remotos como como Telnet e SSH; programas detransferência de arquivos, como o FTP; e navegadores Web, como o NetscapeNavigator e o Mozilla Navigator.

Outro recurso do DNS é que ele torna as informações do host acessíveis emtoda a Internet. Manter informações sobre hosts em um arquivo formatado em umúnico computador só ajuda os usuários naquele computador. O DNS oferece ummeio de recuperar informações remotamente de qualquer lugar da rede.

Além disso, o DNS permite que você distribua o gerenciamento deinformações de hosts entre muitos sites e organizações. Você não precisa enviarseus dados a um site central ou recuperar periodicamente cópias do banco dedados “master”. Você deve simplesmente certificar-se de que sua seção,chamada de zona, esteja atualizada em seus SERVIDORES DE NOMES. Seusservidores de nomes tornam seus dados de zonas disponíveis para todos osoutros servidores de nomes.

Como o banco de dados é distribuído, o sistema também precisa ser capazde localizar os dados que você procura buscando um número de possíveis

77

Page 78: Apostila Qmail LDAP

localizações. O DNS fornece inteligência aos servidores de nomes para que elespossam navegar pelo banco de dados e achar os dados em qualquer zona.

Quando falamos sobre DNS, iremos no concentrar exclusivamente no BIND(Berkeley Internet Name Domain), que é a implementação das especificações doDNS.

A História do Domain Name Server

Durante a década de 1970, a ARPAnet era uma comunidade amigável,pequena, de algumas centenas de hosts. Um único arquivo, HOSTS.TXT, continhatodas as informações necessárias sobre esses hosts; mapeamento de nome aendereço para cada host conectado à ARPAnet. A conhecida tabela de host doUnix, “/etc/hosts”, foi derivada do HOSTS.TXT (basicamernte eliminando camposque o Unix não usava).

O HOSTS.TXT era atualizado pelo Network Information Center do SRI (NIC) edistribuído a partir de um único host, SRI-NIC. Os administradores da ARPAnetgeralmente enviavam suas mudanças por email para o NIC, e periodicamente, porFTP para o SRI-NIC e capturavam o atual HOSTS.TXT. Suas mudanças eramcompiladas em um novo HOSTS.TXT um ou duas vezes por semana. À medida quea ARPAnet crescia, contudo, esse esquema tornava-se impraticável. O tamanhodo HOSTS.TXT crescia em proporção do ao crescimento do número de hosts daARPAnet. Além disso, o tráfego gerado pelo processo de atualização aumentavacada vez mais rápido; cada host adicionado significava não apenas outra linha noHOSTS.TXT, mas potencialmente outra atualização de host dp SRI-NIC.

E quando a ARPAnet mudou para protocolos TCP/IP, a população da redeexplodiu. Agora, havia um milhão de problemas com o HOSTS.TXT:

Tráfego e cargaA taxa na SRI-NIC cobrada pelo tráfego da rede e carga de

processadores envolvidos na distribuição do arquivo, começava a ficarinsustentável.

Colisões de nomesNão podia haver dois hosts no HOSTS.TXT com o mesmo nome.

Contudo, enquanto o NIC podia atribuir endereços de uma forma que garantiasuas singularidades, não tinha autoridade sobre os nomes do host. Não haviacomo impedir que alguém adicionasse um host com um nome conflitante equebrasse o esquema inteiro. Se alguém adicionasse um host com o mesmonome como mail principal, por exemplo, poderia romper com o serviço de emailda ARPAnet.

Consistência

78

Page 79: Apostila Qmail LDAP

Manter a consistência do arquivo em uma rede em expanção tornou-se cada vez mais difícil. Quando um novo HOSTS.TXT atingia os mais distanteslugares da expandida ARPAnet, um host de rede alterava endereços ou surgia umnovo host que os usuários queriam atingir.

O problema maior era que o mecanismo do HOSTS.TXT não dimensionavabem. Ironicamente, o sucesso da ARPAnet como um experimento levou oHOSTS.TXT ao fracasso e à absolescência.

A direção da ARPAnet contratou pesquisadores para criar um sucessor parao HOSTS.TXT. A meta era criar um sistema que solucionasse os problemasinerente a um sistema de tabelas de hosts unificados. O novo sistema deveriapermitir a administração local de dados, e ainda disponibilizar os dadosglobalmente. A descentralização da administração eliminaria o gargalo de umhost único e liberaria o problema do tráfego. E o gerenciamento local realizaria atarefa de manter os dados atualizados com mais facilidade. O novo sistemadeveria usar um espaço de nomes hierárquico para nomear hosts, garantindoassim a singularidade dos nomes.

Paul Mockapetris, do Instituto de Ciência da Informação da Universidade deColúmbia, era o responsável pelo projeto de arquitetura do novo sistema. Em1984, ele liberou as RFC's 882 e 883, que descreviam o Domain Name Server.Essas RFC's foram suplantadas pela RFC's 1034 e 1035, as especificações atuaisdo DNS. Agora as RFC's 1034 e 1035 foram expandidas por muitas outras RFC's,descrevendo potenciais problemas de segurança, implementação e administraçãocom o DNS, e descrevendo mecanismos para atualização dinâmica de servidoresde nomes e a segurança de dados de zonas, e muito mais.

Em poucas palavras o DNS é um banco de dados distribuído. Isso permiteum controle local dos segmentos do banco de dados global, embora os dados emcada segmento estejam disponíveis em toda a rede através de um esquemacliente-servidor. Desempenhos resistentes e adequados são adquiridos por meiode reprodução e cache.

A História do BIND

A primeira implementação do DNS foi chamada JEEVES, escrita pelo próprioPaul Mockapetris. A implementação seguinte foi o BIND, um acrônimo de BerkeleyInternet Domain, escrita para o sistema operacional do Unix BSD 4.3 de Berkeleypor Kevin Dunlap. O BIND hoje é mantido pelo Internet Software Consortium.

Maiores informações sobre o Internet Software Consortium e seu trabalhocom o BIND, pode ser obtida através do site: https://www.isc.org/bind.html

79

Page 80: Apostila Qmail LDAP

Instalação do BIND

# apt-get install bind9

Configuração do BIND

# vi /etc/bind/named.conf

options {

directory "/var/cache/bind";

allow-transfer { 192.168.100.1; 192.168.100.2; };

auth-nxdomain no;

};

zone "." {

type hint;

file "/etc/bind/db.root";

};

zone "localhost" {

type master;

file "/etc/bind/db.local";

};

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";

};

include "primary/freesoftware.conf";

80

Page 81: Apostila Qmail LDAP

# vi /var/cache/bind/primary/freesoftware.conf

zone "freesoftware.org.br" IN {

type master;

file "zone/db.freesoftware";

};

zone "100.168.192.in-addr.arpa" IN {

type master;

file "zone/rev.freesoftware";

};

# vi /var/cache/bind/zone/db.freesoftware

$TTL 3600

@ IN SOA freesoftware.org.br. root.freesoftware.org.br. (

2004200500 ; Serial

3H ; Refresh

15M ; Retry

1W ; Expire

1D ) ; Negative Cache TTL

@ IN NS freesoftware.org.br.

freesoftware.org.br. IN A 192.168.100.1

mail IN A 192.168.100.1

webmail IN A 192.168.100.1

@ IN MX 5 mail.freesoftware.org.br.

instrutor IN A 192.168.100.1

# vi /var/cache/bind/zone/rev.freesoftware

$TTL 3600

@ IN SOA freesoftware.org.br. root.freesoftware.org.br. (

2004200500 ; Serial

3H ; Refresh

81

Page 82: Apostila Qmail LDAP

# vi /var/cache/bind/zone/rev.freesoftware

15M ; Retry

1W ; Expire

1D ) ; Negative Cache TTL

@ IN NS freesoftware.org.br.

1.100.168.192.in-addr.arpa. IN PTR freesoftware.org.br.

1.100.168.192.in-addr.arpa. IN PTR mail.freesoftware.org.br.

1.100.168.192.in-addr.arpa. IN PTR webmail.freesoftware.org.br.

# vi /etc/resolv.conf

search freesoftware.org.br

nameserver 192.168.100.1

Iniciando o Serviço do BIND

# /etc/init.d/bind9 stop

# /etc/init.d/bind9 start

Testando o BIND

# ping freesoftware.org.br

# ping mail.freesoftware.org.br

# ping webmail.freesoftware.org.br

# ping instrutor.freesoftware.org.br

# ping -R 192.168.100.1

82

Page 83: Apostila Qmail LDAP

daemontools

O que é ?

O daemontools é uma coleção de ferramentas para controlar serviços doUNIX (UNIX Like).

O supervise que é um aplicativo do daemontools, monitora um serviço. Eleinicia um serviço e reinicia o serviço se o mesmo parar. Configurar um novoserviço é fácil: todo supervise precisa de um diretório com um script executávelexecutando o serviço.

O multilog (aplicativo do daemontools) salva as mensagens de erro para umou mais logs, logando o data e hora de cada log e de cada linha.Automaticamente executa o rotate dos logs para diminuí-los e aumentar o espaçoem disco. Se o disco estiver cheio, ele pausa e tenta novamente, sem perderqualquer dado.

O programa svscanboot

O aplicativo “svscanboot” é carregado durante a inicialização do sistema.

O svscanboot faz uma chamada para o svscan no diretório /service, ondeestão os scripts de inicialização, onde todas as mensagens de erros são logadasatravés do readproctitle. Caso algum script de inicialização esteja com erro, oulincada de forma errada, as mensagens de erros serão exibidas através doreadproctitle.

O svscanboot está disponível a partir da versão 0.75 do daemontools.

Interfacesvscanboot

svscanboot executa um pipeline

svscan /service 2>&1 | readproctitle service errors: .....

com 400 pontos. Os últimos 400 bytes de mensagens de erro do svscanserá visível para o comando ps através do readproctitle.

svscanboot seta o $PATH para

/command:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin

e limpa todas as outras variáveis de ambiente. Os escritores dos programassão encorajados a usar globalmente os nomes alocados no /command.

O programa svscan

svscan inicia e monitora uma coleção de serviços.

83

Page 84: Apostila Qmail LDAP

Interface

svscan inicia um processo supervise para cada subdiretório do diretóriocorrente, com um limite de 1000 subdiretórios. svscan pula os nomes dossubdiretórios que iniciam com pontos. supervise deve estar no path do svscan.

svscan opcionalmente inicia um par de processos supervise, um para osubdiretório, outro para o log do subdiretório, com um pipe entre eles. svscanprecisa de duas descrições livres para cada pipe.

De 5 em 5 segundos, svscan checa pelo subdiretório novamente. Se ele verum novo subdiretório, ele starta um novo processo supervise. Se ele ver umsubdiretório antigo onde um processo supervise foi finalizado, ele reinicia oprocesso supervise. No registro do log ele reusa os mesmos pipe então nenhumdado é perdido.

svscan é designado para executar para sempre. Se tiver problemas em criarum pipe ou executar o supervise, ele printa uma mensagem para stderr, que podeser visualizada através do comando “ps” ou através dos logs do multilog; Irátentar novamente depois de 5 segundos.

Se é passado para o svscan um argumento de linha, ele troca para aquelediretório quando é iniciado.

O programa supervise

supervise starta e monitora um serviço.

Interfacesupervise s

supervise vai para o diretório com o nome s e inicia o ./run. Ele reinicia ./runse ./run existir. Ele pausa por um segundo e em seguida inicia o ./run, de modoque não dê loops demasiamente se o ./run finalizar imediatamente.

Se o arquivo s/down existir, supervise não inicia o ./run imediatamente.Você pode usar o svc para iniciar o ./run e fornecer outros comandos para osupervise.

supervise mantém informações sobre o status em um formato bináriodentro do diretório s/supervise, no qual deve ter escrita para o supervise. Asinformações sobre o status podem ser lidas pelo svstat.

supervise pode sair imediatamente e em seguida iniciá-lo se ele nãoencontrar os arquivos que ele precisa no diretório s ou se outra cópia do supervisejá está em execução no diretório s. Uma vez que o supervise esteja executandocom sucesso, ele não irá encerrar ao menos que ele seja morto ou questionado asair. Você pode usar o svok para checar se o supervise está executando comsucesso. Você pode usar o svscan para startar confiantemente uma coleção de

84

Page 85: Apostila Qmail LDAP

processos do supervise.

O programa svc

O programa svc controla os serviços monitorados pelo supervise.

Interfacesvc opts services

opts é uma série de opções getopt-style. services consiste no número deargumentos, cada argumento chamando um diretório usado pelo supervise.

svc aplica-se em todas as opções de cada serviço por sua vez. Aqui estão as

Opções

• -u: Up. If the service is not running, start it. If the service stops, restart it. • -d: Down. If the service is running, send it a TERM signal and then a CONT

signal. After it stops, do not restart it. • -o: Once. If the service is not running, start it. Do not restart it if it stops. • -p: Pause. Send the service a STOP signal. • -c: Continue. Send the service a CONT signal. • -h: Hangup. Send the service a HUP signal. • -a: Alarm. Send the service an ALRM signal. • -i: Interrupt. Send the service an INT signal. • -t: Terminate. Send the service a TERM signal. • -k: Kill. Send the service a KILL signal. • -x: Exit. supervise will exit as soon as the service is down. If you use this

option on a stable system, you're doing something wrong; supervise isdesigned to run forever.

O programa svok

svok checa se o supervise está em execução.

Interfacesvok service

svok checa se o supervise está executando com sucesso no diretóriochamado /service. Retorna 0 se o supervise está executando com sucesso eretorna 100 se o supervise não está executando com sucesso.

85

Page 86: Apostila Qmail LDAP

O programa svstat

svstat printa o status do serviço monitorado supervise.

Interfacesvstat services

services consiste em no número de argumentos, cada argumento chamandoum diretório. svstat printa uma linha legível para cada diretório, dizendo se oserviço está executando com sucesso naquele diretório, e reporta informações dostatus mantido pelo supervise.

O programa readproctitle

readproctitle mantém um log automático rotacional na memória parainspeção pelo comando ps.

readproctitle está disponível a partir da versão 0.75 do daemontools.

Interfacereadproctitle L D

L consiste no número de argumentos. D é um argumento que consiste pelomenos em 5 pontos.

readproctitle lê os dados no fim de D, deslocando D para a esquerda. Istosignifica que os mais recentes dados são visíveis a listas de ferramentas deprocessos como o comando ps.

readproctitle sempre deixa três pontos na esquerda de D.

Por exemplo, se

readproctitle io errors: ....................

lê os dados

fatal error xyzwarning abc

então os argumentos das linhas de comandos mudam para

readproctitle io errors: ... xyz!warning abc!

com um carácter da nova linha no final de cada !. As ferramentas delistagem de processos tipicamente exibe o carácter da nova linha como ? ou \n.

86

Page 87: Apostila Qmail LDAP

O programa multilog

multilog lê a sequência de linhas de stdin e apenda as linhas selecionadaspara os logs.

Interfacemultilog script

script consiste no número de argumentos. Cada argumento especifíca umaação. As ações são realizadas para cada linha de entrada. Note que as açõesdevem conter shell metacaracteres que precisam ser citados quando o multilogestá executando de um shell.

multilog retorna 0 quando ele vê o final do stdin. Se stdin tem uma linhaparcial no final então o multilog insere uma nova linha no final.

Timestamping

A ação

t

insere um @, um timestamp preciso, e um espaço na frente de cada linha.Isto é requerido para ser a primeira ação.

Os testes padrões aplicam-se à linha depois que o timestamp é introduzido,por exemplo, se

multilog t '-*' '+* fatal: *' ./main

lê a linha

fatal: out of memory

então registrará uma linha como

@400000003b4a39c23294b13c fatal: out of memory

com o primeiro * combinando o timestamp.

Você pode usar o tai64nlocal para converter estes timestamps em umformato legível.

Rotate logs automaticamente

No diretório de logs, contém muitos logs antigos com alguns números e umcd /log atual chamado current, e outros arquivos do multilog servem para manter-se a par de suas ações. Cada nome de log antigo começa com @, continuado comum timestamp preciso exibindo quando o arquivo foi finalizado, cada log antigocomeça com a string @ precedido com um timestamp preciso, exibindo quando oarquivo foi finalizado, e o arquivo de log é finalizado com um dos códigos abaixo:

• .s: Este arquivo é completamente gravado e seguramente gravado no disco.

87

Page 88: Apostila Qmail LDAP

• .u: Este arquivo pode ter sido truncado. Ele não foi processado.

Quando o multilog está executando, o arquivo current tem permissão 644.Quando o multilog grava o arquivo current no disco, ele seta o current para 744.Quando ele reinicia, ele retorna o valor do current para 644 e continua gravandonovas linhas.

Quando o multilog decide que o arquivo current está bastante grande, elegrava o current seguramente no disco, seta a permissão do current para 744, erenomeia o current para um arquivo de log antigo.

A ação

ssize

seta o tamanho máximo do arquivo. O multilog irá decidir se o current estágrande o bastante e está com tamanho de size bytes. size deve ter entre 4096 e16777215. O tamanho máximo default do arquivo e 99999.

A ação

nnum

Seta o número de arquivos de logs. O número default de logs é 10.

Então, podemos atribuir em nosso script de inicialização, quantos logs serãocriados pelo multilog e qual será o seu tamanho.

O programa setuidgid

setuidgid executa outro programa sob o uid e o gid de um clienteespecificado.

Interfacesetuidgid account child

account é um simples argumento. child consiste em um ou maisargumentos.

setuidgid ajusta seu uid e gid ao uid e gid do cliente, removendo todos ossuplementares. E então executa o child.

setuidgid retorna 111 se ele não puder encontrar uma conta UNIX chamadaaccount, ou se ele não puder setar o gid, ou se ele não puder setar o uid, ou seele não puder executar o child. Senão seu código de saída é o mesmo que dochild.

setuidgid não pode ser executado por qualquer um quanto ao root.

88

Page 89: Apostila Qmail LDAP

O programa softlimit

softlimit executa outro programa com novos limites de recursos.

Interfacesoftlimit opts child

opts é uma série de opções getopt-style. child consiste em um ou maisargumentos.

softlimit seta recursos de limites como especificado pelo opts. Eles entãosão executados pelo child.

Opções

Opções de controle de memória:

• -m n: Same as -d n -s n -l n -a n. • -d n: Limit the data segment per process to n bytes. • -s n: Limit the stack segment per process to n bytes. • -l n: Limit the locked physical pages per process to n bytes. This option has

no effect on some operating systems. • -a n: Limit the total of all segments per process to n bytes. This option has

no effect on some operating systems. • -o n: Limit the number of open file descriptors per process to n. This option

has no effect on some operating systems. • -p n: Limit the process number per uid to n.

Opções controlando o tamanho dos arquivos:

• -f n: Limit output file sizes to n bytes. • -c n: Limit core file sizes to n bytes.

Opções eficientes:

• -r n: Limit the resident set size to n bytes. This limit is not enforced unlessphysical memory is full.

• -t n: Limit the CPU time to n seconds. This limit is not enforced except thatthe process receives a SIGXCPU signal after n seconds.

89

Page 90: Apostila Qmail LDAP

ucspi-tcp

O que é ?

tcpserver e tcpclient são ferramentas de comandos de linha fáceis de usarpara construir aplicações TCP Cliente/Servidor.

tcpserver aguarda por conexões entrantes e, para cada conexão, executaum programa de sua escolha. Seu programa recebe as variáveis de ambiente quemostram os nomes dos hosts locais e remotos, endereço IP e os números dasportas.

O tcpserver oferece um limite de conexões simultâneas para protegê-lo deprocessos fora de execução e memória. Quando o tcpserver está segurando 40conexões simultâneas (por default), ele adía a aceitação de novas conexões.

O tcpserver também oferece característica de controle de acesso TCP,similares a tcp-wrappers/tcp's hosts.allow só que muito mais rápido. Seuscontroles de acesso são compilados dentro de um arquivo no formato hash comcdb, podendo tratar fácilmente de milhares de hosts diferentes, ou seja, quempode fazer relay, etc...

Este pacote inclui uma ferramenta chamada recordio que monitora todaentrada e saída de um servidor.

O tcpclient faz uma conexão TCP e executa um programa de sua escolha.Ele configura as mesmas variáveis de ambiente que o tcpserver.

O UCSPI-TCP está disponível para diferente tipos de redes.

Outras ferramentas TCP de comandos de linha

O ucspi-tcp agora compete com diferentes tipos de programas, como:

• inetd;• xinetd, uma evolução do inetd; • o cliente mconnect fornecido como parte do SunOS; • O programa socket; • faucet e hose, parte do pacote netpipes;• O programa netcat, que também suporta UDP.

O programa tcpserver

O tcpserver aceita conexões TCP entrantes.

Interfacetcpserver opts host port prog

opts é uma série de opções que podem ser utilizadas. host é um argumento.port é um argumento. prog consiste em um ou mais argumentos.

tcpserver aguarda por conexões TCP de clientes. Para cada conexão, ele

90

Page 91: Apostila Qmail LDAP

executa o prog, com descrição 0 lendo da rede e descrição 1 gravando da rede.Também configura diferentes variáveis de ambiente.

O endereço do servidor é fornecido por host e port. port pode ser um nomeou um número do arquivo /etc/services; se está 0, o tcpserver irá escolher umaporta TCP livre. host deve ser 0, permitindo conexões de endereços IP dequalquer lugar; ou um endereço IP decimal com pontos, permitindo conexõessomente daquele endereço; ou um nome de host, permitindo conexões para oprimeiro endereço IP daquele host.

O tcpserver encerra sua execução quando recebe um SIGTERM.

Opções

Opções gerais:

• -q: Quiet. Do not print error messages. • -Q: (Default.) Print error messages. • -v: Verbose. Print error messages and status messages.

Opções de conexões:

• -c n: Do not handle more than n simultaneous connections. If there are nsimultaneous copies of prog running, defer acceptance of a new connectionuntil one copy finishes. n must be a positive integer. Default: 40.

• -x cdb: Follow the rules compiled into cdb by tcprules. These rules mayspecify setting environment variables or rejecting connections from badsources. You can rerun tcprules to change the rules while tcpserver isrunning.

• -X: With -x cdb, allow connections even if cdb does not exist. Normallytcpserver will drop the connection if cdb does not exist.

• -B banner: Write banner to the network immediately after each connectionis made. tcpserver writes banner before looking up $TCPREMOTEHOST,before looking up $TCPREMOTEINFO, and before checking cdb. This featurecan be used to reduce latency in protocols where the client waits for agreeting from the server.

• -g gid: Switch group ID to gid after preparing to receive connections. gidmust be a positive integer.

• -u uid: Switch user ID to uid after preparing to receive connections. uid mustbe a positive integer.

• -U: Same as -g $GID -u $UID. Typically $GID and $UID are set by envuidgid. • -1: After preparing to receive connections, print the local port number to

standard output. • -b n: Allow a backlog of approximately n TCP SYNs. On some systems, n is

silently limited to 5. On systems supporting SYN cookies, the backlog isirrelevant.

• -o: Leave IP options alone. If the client is sending packets along an IP sourceroute, send packets back along the same route.

• -O: (Default.) Kill IP options. A client can still use source routing to connectand to send data, but packets will be sent back along the default route.

91

Page 92: Apostila Qmail LDAP

• -d: Delay sending data for a fraction of a second whenever the remote hostis responding slowly. This is currently the default, but it may not be in thefuture; if you want it, set it explicitly.

• -D: Never delay sending data; enable TCP_NODELAY.

Opções de recolhimento de dados

• -h: (Default.) Look up the remote host name in DNS to set the environmentvariable $TCPREMOTEHOST.

• -H: Do not look up the remote host name in DNS; remove the environmentvariable $TCPREMOTEHOST. To avoid loops, you must use this option forservers on TCP port 53.

• -p: Paranoid. After looking up the remote host name in DNS, look up the IPaddresses in DNS for that host name, and remove the environment variable$TCPREMOTEHOST if none of the addresses match the client's IP address.

• -P: (Default.) Not paranoid. • -l localname: Do not look up the local host name in DNS; use localname for

the environment variable $TCPLOCALHOST. A common choice for localnameis 0. To avoid loops, you must use this option for servers on TCP port 53.

• -r: (Default.) Attempt to obtain $TCPREMOTEINFO from the remote host. • -R: Do not attempt to obtain $TCPREMOTEINFO from the remote host. To

avoid loops, you must use this option for servers on TCP ports 53 and 113. • -t n: Give up on the $TCPREMOTEINFO connection attempt after n seconds.

Default: 26

O programa tcprules

tcprules compila regras para o tcpserver.

Interfacetcprules cdb tmp

O tcpserver segue regras para decidir-se se uma conexão TCP é aceitável.Por exemplo, a regra:

18.23.0.32:deny

proibe conexões do endereço IP 18.23.0.32.

O tcprules pode ser utilizado quando o tcpserver está executando, sem ter anecessidade de encerrar sua execução. O arquivo cdb é atualizadoautomaticamente. Primeiramente ele grava as regras para um arquivo tmp(temporário) e então move o conteúdo para o início do arquivo cdb. Se o arquivotmp existir, ele será destruído. Os diretórios que contém os arquivos cdb e tmpdevem ter permissão de gravação para que o tcprules possa alterá-los e elesdevem estar no mesmo sistema de arquivos.

92

Page 93: Apostila Qmail LDAP

Se houver algum problema com a entrada ou com o tmp, o tcprules irá sequeixar e irá deixar o cdb sozinho.

O formato binário do cdb é portável para outras máquinas.

Formato das regras

Uma regra é uma linha. Um arquivo contendo regras podem também contercomentários: linhas iniciando com # são ignoradas.

Cada regras contém um endereço, uma vírgula, e uma lista de instruções,com nenhum espaço extra. Quando o tcpserver recebe conexões daqueledeterminado endereço, ele segue as instruções.

Endereços

O tcpserver procura regras com vários endereços:

1. $TCPREMOTEINFO@$TCPREMOTEIP, if $TCPREMOTEINFO is set; 2. $TCPREMOTEINFO@=$TCPREMOTEHOST, if $TCPREMOTEINFO is set and

$TCPREMOTEHOST is set; 3. $TCPREMOTEIP; 4. =$TCPREMOTEHOST, if $TCPREMOTEHOST is set; 5. shorter and shorter prefixes of $TCPREMOTEIP ending with a dot; 6. shorter and shorter suffixes of $TCPREMOTEHOST starting with a dot,

preceded by =, if $TCPREMOTEHOST is set; 7. =, if $TCPREMOTEHOST is set; and finally 8. the empty string.

O tcpserver usa a primeira regra que encontrar. Você deve usar a opção -pno tcpserver se você confiar em $TCPREMOTEHOST.

Por exemplo, aqui estão algumas regras:

[email protected]:first18.23.0.32:second:third127.:fourth

Se $TCPREMOTEIP é 10.119.75.38, tcpserver irá seguir a terceira instrução.

Se $TCPREMOTEIP é 18.23.0.32, tcpserver irá seguir a segunda instrução.

Se $TCPREMOTEIP é 127.0.0.1 e $TCPREMOTEINFO é conta, tcpserver iráseguir a quarta instrução.

Se $TCPREMOTEIP é 127.0.0.1 e $TCPREMOTEINFO é joe, tcpserver iráseguir a primeira instrução.

Você pode usar o tcprulescheck para ver como o tcpserver irá interpretar asregras no cdb.

93

Page 94: Apostila Qmail LDAP

Range de endereços

tcprules trata 1.2.3.37-53:ins como uma abreviação para as regras1.2.3.37:ins, 1.2.3.38:ins e então até 1.2.3.53:ins. Similarmente, 10.2-3.:ins éuma abreviação para 10.2.:ins e 10.3.:ins.

Instruções

As instruções em uma regra podem começar com allow ou deny. Deny dizao tcpserver para barrar a conexão sem executar qualquer coisa. Por exemplo, aregra

:deny

diz ao tcpserver para barrar todas conexões que não estão ativas pornenhuma regra específica.

As instruções podem continuar com algumas variáveis de ambiente, noformulário, var=”x”. O tcpserver adiciona uma variável de ambiente $var comvalor x. Por exemplo,

10.0.:allow,RELAYCLIENT="@fix.me"

adiciona uma variável de ambiente $RELAYCLIENT com valor @fix.me. Ascitações podem ser trocadas por qualquer caracter repetido:

10.0.:allow,RELAYCLIENT=/@fix.me/

Qualquer número de variáveis podem ser listadas:

127.0.0.1:allow,RELAYCLIENT="",TCPLOCALHOST="movie.edu"

O programa tcpclient

O tcpclient cria uma conexão que parte do TCP.

Interfacetcpclient opts host port prog

opts é uma série de opções getopt-style. host é um armento. port é umargumento. prog consiste em um ou mais argumentos.

O tcpclient tenta conectar em um servidor TCP. Se for com sucesso, executao prog, com descrição 6 lendo da rede e descrição 7 gravando na rede. Tambémconfigura diversas variáveis de ambiente.

O endereço do servidor é dado por host e port. port pode ser um nome de /etc/services ou um número. host pode ser 0, referindo-se a maquina local, ou umendereço IP decimal com pontos, ou um nome de host.

Se o servidor tem diversos endereços IP's, o tcpclient tenta endereçar cada

94

Page 95: Apostila Qmail LDAP

um por sua vez.

Opções

Opções gerais:

• -q: Quiet. Do not print error messages. • -Q: (Default.) Print error messages. • -v: Verbose. Print error messages and status messages.

Opções de conexão:

• -T x+y: Give up on the connection attempt after x+y seconds. Default:2+58. When a host has several IP addresses, tcpclient tries to connect tothe first IP address, waits x seconds, tries to connect to the second IPaddress, waits x seconds, etc.; then it retries each address that timed out,waiting y seconds per address. You may omit +y to skip the second try.Before version 0.88, tcpclient will use only x (default: 60).

• -i localip: Use localip as the IP address for the local side of the connection;quit if localip is not available. Normally tcpclient lets the operating systemchoose an address.

• -p localport: Use localport as the TCP port for the local side of theconnection; quit if localport is not available. Normally tcpclient lets theoperating system choose a port.

• -d: Delay sending data for a fraction of a second whenever the remote hostis responding slowly. This is currently the default, but it may not be in thefuture; if you want it, set it explicitly.

• -D: Never delay sending data; enable TCP_NODELAY.

Opções de recolhimento de dados:

• -h: (Default.) Look up the remote host name in DNS to set the environmentvariable $TCPREMOTEHOST.

• -H: Do not look up the remote host name in DNS; remove the environmentvariable $TCPREMOTEHOST.

• -l localname: Do not look up the local host name in DNS; use localname forthe environment variable $TCPLOCALHOST. A common choice for localnameis 0.

• -r: (Default.) Attempt to obtain $TCPREMOTEINFO from the remote host. • -R: Do not attempt to obtain $TCPREMOTEINFO from the remote host. • -t n: Give up on the $TCPREMOTEINFO connection attempt after n seconds.

Default: 26.

Variáveis de ambiente TCP

$PROTO é uma string TCP.

$TCPLOCALIP é o endereço IP do localhost, no formato decimal com pontos(ip.ip.ip.ip).

95

Page 96: Apostila Qmail LDAP

$TCPLOCALPORT é o número local da porta TCP, em decimal.

$TCPLOCALHOST é o nome listado no DNS para o localhost. Se o nome nãoexistir, $TCPLOCALHOST não é setado. Esteja ciente que $TCPLOCALHOST podeconter caracteres arbitrários.

$TCPREMOTEIP é o endereço IP do host remoto, no formato decimal compontos.

$TCPREMOTEPORT é o número remoto da porta TCP, em decimal.

$TCPREMOTEHOST é o nome listado no DNS para o host remoto. Se o nomenão existir, $TCPREMOTEHOST não é setado. Esteja ciente que $TCPREMOTEHOSTpode conter caracteres arbitrários.

$TCPREMOTEINFO é uma string específica de conexão fornecido pelo hostremoto através do protocolo 931/1413/IDENT/TAP. Se não existir informação,$TCPREMOTEINFO não é setado. Esteja ciente que $TCPREMOTEINFO pode contercaracteres arbitrários.

96

Page 97: Apostila Qmail LDAP

Qmail

Qmail é um MTA (Mail Transfer Agente), para sistemas operacionais Unix-like.

“Qmail é um SMTP moderno que torna o sendmail obsoleto”Dan Bernstein

Atualmente o Qmail é considerado um dos servidores de correio maisseguros e estáveis do mundo. Quando foi disponibilizado sua primeira versão, odesenvolvedor do Qmail lançou um desafio para a comunidade: Aquele queconseguisse invadir o servidor de correio com qmail, ganharia U$ 500,00. Bom,não preciso nem dizer que ninguém conseguiu.

O Qmail foi escrito por Dan Bernstein (DJB), http://cr.yp.to/djb.html, umprofessor de Matemática da Universidade de Illinois em Chicago. Bernsteintambém é conhecido pelo seu trabalho de criptografia.

Releases do Qmail

0.70, publicado em 24 de Janeiro de 1996; Versão beta;

0.90, publicado em 01 de Agosto de 1996; Versão gamma;

1.00, publicado em 20 de Fevereiro de 1997;

1.03, publicado em 15 de Junho de 1998; versão corrente.

Por que usar o Qmail

Porque além de ser considerado um dos servidores de correio mais segurose estáveis do mundo, é um servidor de correio modular, possui uma extensa suítede aplicativos, trabalha com Mailbox ou Maildir, etc... e o mais interessante é queo Qmail é executado por usuários e grupos dele próprio, ou seja, o Qmail não éexecutá-do como root.

97

Page 98: Apostila Qmail LDAP

Algumas comparações do Qmail

Fontes:

www.lifewithqmail.org/lwq.html

www.geocities.com/mailsoftware42/

Pacotes

qmail-1.03.tar.gz - Pacote do Qmail

qmail-1.03-mfcheck.3.patch - Checa se o domínio existe.

qmailqueue.patch - sem limites de mensagens na fila (255 padrão).

daemontools - Daemon que monitora os serviços do Qmail.

ucspi-tcp - inet mais inteligente Controla as conexões do Qmail.

Download dos pacotes

Qmail

http://cr.yp.to/software/qmail-1.03.tar.gz

Patches

http://qmail.org/top.html#patches

Daemontools

http://www.inter7.com

98

Page 99: Apostila Qmail LDAP

Ucspi-tcp

http://www.inter7.com

Como instalar o daemontools

Faça download do pacote daemontools. A última versão do daemontoolspublicada é: daemontools-0.76.tar.gz.

Crie um diretório chamado /package:

# mkdir -p /package

# chmod 1755 /package

Descompacte o pacote dentro do diretório /package:

# tar xzvf daemontools-0.76.tar.gz -C /package

Compilando e instalando o daemontools:

# cd /package/admin/daemontools-0.76/

# package/install

Como instalar o ucspi-tcp

Faça download do pacote ucspi-tcp. A última versão do ucspi-tcp publicadaé: ucspi-tcp-0.88.tar.gz.

Descompacte o pacote:

# tar xzvf ucspi-tcp-0.88.tar.gz

Compilando e instalando o ucspi-tcp:

# cd ucspci-tcp-0.88

# make setup check

Verificar se a instação foi efetuada com sucesso( echo 'First M. Last'; cat `cat SYSDEPS` ) | mail [email protected]

Troque First M. Last pelo seu nome

99

Page 100: Apostila Qmail LDAP

Como instalar o Qmail

Faça download do pacote Qmail e seus Patches. A última versão do Qmailpublicada é: qmail-1.03.tar.gz.

Descompacte o pacote:

# tar xzvf qmail-1.03.tar.gz

Aplique os patches no Qmail:

# cd qmail-1.03

# patch -p1 < ../<caminho_do_patche>/qmail-1.03-mfcheck.3.patch

# patch -p1 < ../<caminho_do_patche>/qmailqueue.patch

Antes de compilar o Qmail, precisamos criar seus usuários e grupos, paraisto é necessário editar o arquivo “INSTALL.ids” e deixar somente os parâmetrospara o Linux, conforme especificado abaixo:

Criando os usuários e grupos do Qmail:

# vi INSTALL.ids

groupadd nofiles

useradd -g nofiles -d /var/qmail/alias alias

useradd -g nofiles -d /var/qmail qmaild

useradd -g nofiles -d /var/qmail qmaill

useradd -g nofiles -d /var/qmail qmailp

groupadd qmail

useradd -g qmail -d /var/qmail qmailq

useradd -g qmail -d /var/qmail qmailr

useradd -g qmail -d /var/qmail qmails

Executando o script INSTALL.ids:

# sh INSTALL.ids

Instalando o Qmail (compila, instala e testa):

# make setup check

100

Page 101: Apostila Qmail LDAP

Configurando o Qmail:

# ./config-fast instrutor.freesoftware.org.brOnde, a opção “instrutor” é o nome do servidor e “freesoftware.org.br” é nome do domínio do servidor.

É fundamental que o nome e domínio estejam configurados corretamente, eque a tabela /etc/hosts também esteja adequadamente configurado de acordo asconfigurações do servidor, para o bom funcionamento do Qmail.

Já estamos com o daemontools, ucspci-tcp e Qmail com os patchesinstalados, iremos agora dar procedimento as configurações do Qmail.

Criando os alias do Qmail

Os alias do Qmail são arquivos de configuração utilizados para enviar emailspara uma determinado usuário, portanto, iremos agora criar os alias do Qmailpara que o mesmo saiba para quem encaminhar as mensagens do root,postmaster e mailer-daemon.

Porque criar os alias:

Alias Purpose postmaster RFC 2821 required, points to the mail administrator

(you)

mailer-daemon standard recipient for some bounces

root redirects mail from privileged account to the system administrator

Iremos criar um usuário denominado “correio” que será utilizado parareceber as mensagens do root, postmaster e mailer-daemon.

Criando o usuário:

# adduser correio

Criando os alias do Qmail:

# cd /var/qmail/alias/

# echo “[email protected]” > .qmail-root

# echo “correio @freesoftware.org.br ” > .qmail-postmaster

# echo “correio @freesoftware.org.br ” > .qmail-mailer-daemon

101

Page 102: Apostila Qmail LDAP

Configurando as permissões:

# chmod 644 .qmail-root .qmail-postmaster .qmail-mailer-daemon

# chown root.qmail .qmail-*

Iremos trabalhar com mensagens no Qmail no formato “Maildir”, que é maisseguro e confiável do que “mailbox”, portanto, como já possuimos um usuáriocriado, no qual irá receber as mensagens do root, postmaster e mailer-daemon,teremos agora que criar o diretório “Maildir” em seu home.

Criando o diretório “Maildir” do usuário “geral”:

# su -l correio

$ cd /var/qmail/bin/

$ ./maildirmake /home/correio/Maildir

$ exit

# chmod 700 /home/geral/Maildir

Configurando o script “/var/qmail/rc”

O script “/var/qmail/rc” é o responsável em iniciar o servidor de correioQmail, portanto, só é possível enviar mensagens para usuários locais, devido anão configuração do script do “smtpd”, na qual estaremos efetuando mais tarde.

O diretório /var/qmail/boot contém exemplos de scripts de boot para oQmail para diferentes configurações: /var/spool/mail vs. $HOME/Mailbox, usando oprocmail ou ponto-forward, e várias combinações. Exemplo:

Criando o script “rc”:

# cp /var/qmail/boot /var/qmail/rc

# vi /var/qmail/rc

#!/bin/sh

# Using stdout for logging# Using control/defaultdelivery from qmail-local to deliver messages bydefault

exec env - PATH="/var/qmail/bin:$PATH" \qmail-start "`cat /var/qmail/control/defaultdelivery`"

102

Page 103: Apostila Qmail LDAP

Criando os alias do Qmail:

Nota: Este script utiliza crases (`), e não aspas simples (').

Após ter criado o script /var/qmail/rc, então execute estes comandos:

# chmod 755 /var/qmail/rc

# mkdir /var/log/qmail

Iremos trabalhar com o formato de emails “./Maildir/” que é muito maisflexível que “mailbox”, pois a diferença entre eles é que trabalhando com“./Maildir/”, cada mensagem se torna um arquivo, e trabalhando com “mailbox”,todas as mensagem ficam armazenadas em um só arquivo.

Para configurarmos o método que iremos trabalhar, no caso “./Maildir/”,basta seguir o procedimento abaixo:

Configurando as permissões:

# echo “./Maildir/” > /var/qmail/control/defaultdelivery

# chown root.qmail .qmail-*

Nota: defaultdelivery não é um arquivo de controle do qmail. Ésomente uma configuração no qual utilizamos para configurar o métodode mensagens recebidas.

O script também pode ser criado da seguinte forma:

Como root:

# cp /var/qmail/boot /var/qmail/rc

# vi /var/qmail/rc

#!/bin/sh

# Using stdout for logging# Using control/defaultdelivery from qmail-local to deliver messages bydefault

exec env - PATH="/var/qmail/bin:$PATH" \qmail-start ./Maildir/ splogger qmail

Onde, trocamos o parâmetro “./Mailbox” para “./Maildir/” .

103

Page 104: Apostila Qmail LDAP

As duas formas de configuração do script “rc” funcionam da mesmamaneira, portanto, fica a critério de vocês de como configurá-lo, desde que sigaos exemplos acima.

Iniciando o Qmail somente local

Iremos agora carregar o serviço do Qmail, portanto ele não irá abrir nenhumsocket (porta), pois o mesmo até agora, está configurado para ser executadosomente local.

Carregando o serviço do Qmail:

# csh -cf '/var/qmail/rc &'

OBS.: Antes de carregar o serviço do Qmail, verifique se você possui a shell“csh” instalada em seu sistema, caso não esteja, devemos instalar a shellprimeiro de depois carregar o serviço do Qmail.

Verificando os processos do Qmail

Iremos agora listar os processos do Qmail para verificar se até agora houvealgum erro de configuração.

Listando os processos do Qmail:

# ps wax

Deverá aparecer uma lista de serviços ativos conforme abaixo:

qmail-sendsplogger qmailqmail-lspawn ./Maildir/qmail-rspawnqmail-clean

Além dos processos listados acima, devemos também verificar os logs parater certeza de que tudo está OK, portanto iremos listar os logs do arquivo“mail.log” localizado no diretório “/var/log/”.

Listando os logs do Qmail:

104

Page 105: Apostila Qmail LDAP

# tail /var/log/mail.log

....qmail qmail: 10.......391995status: local 0/10 remote 0/20

Deverá aparecer no “mail.log” a linha acima, indicando que tudo estácorreto com o Qmail.

Testando o servidor de correio Qmail

Iremos agora efetuar testes de envio de mensagens para o usuário local“correio” e também iremos forjar um erro no envio de uma mensagem, onde amesma deverá rertornar com erro encaminhando a mensagem para o“postmaster”.

1º teste – Enviando mensagem para um usuário válido:

# echo to: correio | /var/qmail/bin/qmail-injectIr para o diretório do usuário “correio” (/home/correio/Maildir/new) e verificar se ele recebeu a mensagem.

2º teste – Enviando mensagem para um usuário inválido:

# echo to: mgarcia | /var/qmail/bin/qmail-injectA mensagem irá voltar com erro para o postmaster, pois o usuário “mgarcia” não existe.

3º teste – Não é case sensitive:

# echo to: PostMaSteR | /var/qmail/bin/qmail-injectO postmaster irá receber a mensagem, pois a mesma não é case sensitive.

Parando o servidor de correio Qmail

Após ter efetuado os testes, iremos parar o servidor de correio para darprocedimento a outras configurações do mesmo, pois o Qmail será administradopelo daemontools (responsável pelo serviço) e pelo ucspi-tcp (responsável pelasconexões).

Parando os serviços do Qmail:

# kill -9 `pidof qmail-send` pidof `splogger` pidof `qmail-lspawn` pidof `qmail-rspawn` pidof `qmail-clean`

105

Page 106: Apostila Qmail LDAP

Configurando o binário “sendmail”

Em todas as distribuições o servidor de correio “sendmail” vem instaladopor default, com exceção do GNU/Debian que vem com o servidor de correio“exim”, onde ambos possuem o binário sendmail no diretório “/usr/sbin” e“/usr/lib/”. Quando instalamos o servidor de correio Qmail, o mesmo tambémutiliza o binário “sendmail”, que fica localizado no diretório “/var/qmail/bin/”. Namaioria dos casos acorrem erros ao tentarmos enviar mensagens para usuáriosexternos, devido ao Qmail utilizar o “sendmail” que está localizado no diretório“/usr/sbin/”, portanto iremos apagá-lo e criar um link apontando para o“sendmail” do Qmail.

Configurando o binário “sendmail”:

# rm /usr/sbin/sendmail

# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

# rm /usr/lib/sendmail

# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

Configurando o SEND do Qmail

Iremos agora configurar o SEND do servidor de correio Qmail, para que omesmo possa enviar mensagens para qualquer usuário.

Configurando o SEND:

# cd /var/qmail/

# mkdir -p supervise/qmail-send/log/../env

# vi supervise/qmail-send/run

#!/bin/sh

exec /var/qmail/rc

# vi supervise/qmail-send/log/run

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 \/var/log/qmail/qmail-send

106

Page 107: Apostila Qmail LDAP

Configurando o SMTP do Qmail

Iremos agora configurar o SMTP do servidor de correio Qmail, para que osusuários possam enviar mensagens para outros usuários que não fazem parte doservidor de correio, ou seja, para usuários externos.

Configurando o SMTP:

# cd /var/qmail/

# mkdir -p supervise/qmail-smtpd/log/../env

# vi supervise/qmail-smtpd/run

#!/bin/sh

QMAILDUID=`id -u qmaild`NOFILESGID=`id -g qmaild`

exec /usr/local/bin/softlimit -m 3000000 /usr/local/bin/tcpserver \-H -R -v -p -x /etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp \/var/qmail/bin/qmail-smtpd 2>&1

# vi supervise/qmail-smtpd/log/run

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 \/var/log/qmail/qmail-smtpd

Configurando o POP3D do Qmail

Iremos agora configurar o POP3D do servidor de correio Qmail, para que osusuários possam receber mensagens do servidor de correio Qmail.

Configurando o POP3D:

107

Page 108: Apostila Qmail LDAP

# cd /var/qmail/

# mkdir -p supervise/qmail-pop3d/log/../env

# vi supervise/qmail-pop3d/run

#!/bin/sh

QMAILDUID=`id -u qmaild`NOFILESGID=`id -g qmaild`

exec /usr/local/bin/softlimit -m 5000000 /usr/local/bin/tcpserver \-v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup instrutor.freesoftware.org.br \/var/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1

# vi supervise/qmail-pop3d/log/run

#!/bin/sh

exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s2500000 \/var/log/qmail/qmail-pop3d

Criando os diretórios de logs do Qmail

Iremos agora criar os diretórios de logs do Qmail para que todas asmensagens sejam logadas, independente se as mesmas foram enviadas comsucesso ou não.

Criando o diretório de logs do Qmail:

# cd /var/log/

# mkdir -p qmail/qmail-send/../qmail-smtpd/../qmail-pop3d

# chown -R qmaill: qmail

Criando os links dos scripts do Qmail

Iremos agora criar os links dos scripts (SEND, SMTPD e POP3D) do Qmail,para que os mesmos possam ser gerenciados pelo daemontools e pelo ucspci-tcp.A partir do momento que os links forem criados, o serviço do Qmail será iniciado,devido ao daemontools carregá-lo automaticamente.

Criando os links dos scripts do Qmail:

108

Page 109: Apostila Qmail LDAP

# ln -s /var/qmail/supervise/qmail-send/ /service/qmail-send

# ln -s /var/qmail/supervise/qmail-smtpd/ /service/qmail-smtpd

# ln -s /var/qmail/supervise/qmail-pop3d/ /service/qmail-pop3d

Para cada script linkado, deverá aparecer duas linhas de serviços ao digitaro comando “ps wax”:

tcpserver

multilog

Configurando a tabela de relay

Iremos agora configurar a tabela de relay do Qmail, pois é a tabela de relayquem diz quem tem permissão de enviar emails, tantos locais como remotos.Outro ítem importante é que se não configurarmos corretamente as redes quepodem fazer relay, podemos nos tornar um servidor de SPAM.

Configurando a tabela de relay do Qmail:

# vi /etc/tcp.smtp

127.0.0.1:allow,RELAYCLIENT=""

192.168.100.:allow,RELAYCLIENT=""

192.168.0.23:allow,RELAYCLIENT=""Na opção acima, somente os ips 127.0.0.1 e 192.168.0.23 e a rede 192.168.100.0 podem fazer relay.

Gerando o banco de dados da tabela de relay:

# tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp

Temos que criar o banco de dados da tabela de relay, pois o qmail somentelê o arquivo “tcp.smtp.cdb”. Qualquer alteração na tabela de relay, é necessárioexecutar o “tcprules” novamente.

Habilitando a checagem de domínio

Iremos agora configurar um arquivo de controle no diretório“/var/qmail/control/” denominado “mfcheck”, onde o mesmo é responsável emchecar se o reverso do domínio existe, das mensagens que estamos enviando erecebendo.

109

Page 110: Apostila Qmail LDAP

Criando o arquivo de checagem do reverso:

# cd /var/qmail/control/

# vi mfcheck

1Na opção acima, 1 está habilitado para a checagem de domínio e 0 esta desabilitado.

Após a criação do arquivo de checagem de domínio, é necessário parar einiciar o servidor de correio Qmail.

Parando o servidor de correio Qmail:

# svc -d /service/qmail-send /service/qmail-send/log

# svc -d /service/qmail-smtpd /service/qmail-smtpd/log

# svc -d /service/qmail-pop3d /service/qmail-pop3d/logOnde a opção “-d” é igual a “down”

Iniciando o servidor de correio Qmail:

# svc -u /service/qmail-send /service/qmail-send/log

# svc -u /service/qmail-smtpd /service/qmail-smtpd/log

# svc -u /service/qmail-pop3d /service/qmail-pop3d/logOnde a opção “-u” é igual a “up”

Script de rotinas do Qmail

Utilizando o script qmailctl podemos parar o qmail, iniciar, pausar, listar afila de mensagens, listar quantas mensagens estão na fila, mandar um sinal parao qmail entregar as mensagens imediatamente, etc...

Download:

http://www.lifewithqmail.org/qmailctl-script-dt70

Após o download do script de rotinas do Qmail, coloque-o em algumdiretório que faça parte do patch do sistema e dê permissão de execução para omesmo:

# cp qmailctl /usr/sbin/

# chmod 750 /usr/sbin/qmailctl

110

Page 111: Apostila Qmail LDAP

Rotinas do Qmail:

qmailctl stop Para o servidor de correioqmailctl start Inicia o servidor de correioqmailctl restart Restarta o servidor de correioqmailctl pause Pausa o servidor de correioqmailctl cont Starta o servidor de correio pausadoqmailctl stat Mostra o status do servidor de correioqmailctl cdb Refaz a tabela de relayqmailctl queue Mostra o status da fila de correioqmailctl doqueue Agenda a fila de mensagens para entregaqmailctl flush Ídem doqueueqmailctl reload Recarrega tabelas de domínios locais e virtuaisqmailctl alrm Ídem doqueueqmailctl hup Ídem reload

Arquivos de controle do Qmail

Segue abaixo arquivos de controle / configuração do Qmail localizados nodiretório “/var/qmail/control/”:

Control Default Used by Purpose

badmailfrom none qmail-smtpd blacklisted Fromaddresses

bouncefrom MAILER-DAEMON

qmail-send username of bouncesender

bouncehost me qmail-send hostname of bouncesender

concurrencyincoming none /service/qmail-smtpd/run

max simultaneousincoming SMTPconnections

concurrencylocal 10 qmail-send max simultaneous localdeliveries

concurrencyremote 20 qmail-send max simultaneous remotedeliveries

defaultdelivery none /var/qmail/rc default .qmail file

defaultdomain me qmail-inject default domain name

defaulthost me qmail-inject default host name

databytes 0 qmail-smtpd max number of bytes inmessage (0=no limit)

doublebouncehost me qmail-send host name of doublebounce sender

doublebounceto postmaster qmail-send user to receive doublebounces

111

Page 112: Apostila Qmail LDAP

envnoathost me qmail-send default domain foraddresses without "@"

helohost me qmail-remote host name used in SMTPHELO command

idhost me qmail-inject host name for Message-ID's

localiphost me qmail-smtpd name substituted for localIP address

locals me qmail-send domains that we deliverlocally

me FQDN ofsystem various default for many control

files

morercpthosts none qmail-smtpd secondary rcpthostsdatabase

percenthack none qmail-send domains that can use"%"-style relaying

plusdomain me qmail-inject domain substituted fortrailing "+"

qmqpservers none qmail-qmqpc IP addresses of QMQPservers

queuelifetime 604800 qmail-send seconds a message canremain in queue

rcpthosts none qmail-smtpd domains that we acceptmail for

smtpgreeting me qmail-smtpd SMTP greeting message

smtproutes none qmail-remote artificial SMTP routes

timeoutconnect 60 qmail-remote how long, in seconds, towait for SMTP connection

timeoutremote 1200 qmail-remote how long, in seconds, towait for remote server

timeoutsmtpd 1200 qmail-smtpd how long, in seconds, towait for SMTP client

virtualdomains none qmail-send virtual domains and users

Variáveis de ambiente do Qmail

Muitos aplicativos do Qmail utilizam variáveis de ambiente. Segue abaixo,lista de variáveis e suas respectivas descrições:

Name Manpage

Setorused

Purpose

112

Page 113: Apostila Qmail LDAP

DATABYTES qmail-smtpd used Overrides control/databytes

DEFAULT qmail-command

set Portion of address matching"-default" in a .qmail file name.

DTLINE qmail-command set Delivered-To header field

EXT qmail-command

set The address extension

EXT2 qmail-command set Portion of EXT following first dash

EXT3 qmail-command

set Portion of EXT following seconddash

EXT4 qmail-command set Portion of EXT following third dash

HOME qmail-command

set The user's home directory

HOST qmail-command set The domain part of the recipient

address

HOST2 qmail-command

set Portion of HOST preceding lastdot.

HOST3 qmail-command set Portion of HOST preceding

second-to-last dot

HOST4 qmail-command

set Portion of HOST preceding third-to-last dot

LOCAL qmail-command set The local part of the recipient

address

LOGNAME qmail-inject used User name in From header field(4)

MAILHOST qmail-inject used Host name in From header field(2)

MAILNAME qmail-inject used Personal name in From headerfield (2)

MAILUSER qmail-inject used User name in From header field(2)

NAME qmail-inject used Personal name in From headerfield (3)

NEWSENDER qmail-command set Forwarding sender address (see

"man dot-qmail")

QMAILDEFAULTDOMAIN qmail-inject used Overrides control/defaultdomain

QMAILDEFAULTHOST qmail-inject used Overrides control/defaulthost

QMAILHOST qmail-inject used Host name in From header field(1)

QMAILIDHOST qmail-inject used Overrides control/idhost

QMAILINJECT qmail-inject used Specify various options (see nexttable)

113

Page 114: Apostila Qmail LDAP

QMAILMFTFILE qmail-inject used File containing list of mailing listaddresses for Mail-Followup-Togeneration

QMAILNAME qmail-inject used Personal name in From headerfield (1)

QMAILPLUSDOMAIN qmail-inject used Overrides control/plusdomain

QMAILSHOST qmail-inject used Host name in envelope senderaddress

QMAILSUSER qmail-inject used User name in envelope senderaddress

QMAILUSER qmail-inject used User name in From header field(1)

RECIPIENT qmail-command

set Envelope recipient address

RELAYCLIENT qmail-smtpd used Ignore control/rcpthosts andappend value to recipient address

RPLINE qmail-command

set Return-Path header field

SENDER qmail-command set Envelope sender address

UFLINE qmail-command

set UUCP-style "From " line

USER qmail-command set The current user

USER qmail-inject used User name in From header field(3)

QMAILINJECT FlagsLetter Purpose

c Use address-comment style for the From field

s Do not look at any incoming Return-Path field

f Delete any incoming From field

i Delete any incoming Message-ID field

r Use a per-recipient VERP

m Use a per-message VERP

Arquitetura

Modules Function

qmail-smtpd accepts/rejects messages via SMTP

qmail-inject injects messages locally

qmail-rspawn/qmail-remote handles remote deliveries

114

Page 115: Apostila Qmail LDAP

qmail-lspawn/qmail-local handles local deliveries

qmail-send processes the queue

qmail-clean cleans the queue

Estrutura de Diretórios

O diretório /var/qmail é o diretório onde contém toda a estrutura do Qmail.

Seus subdiretórios são:

Directory Contents

alias .qmail files for system-wide aliases

bin program binaries and scripts

boot startup scripts

control configuration files

doc documentation (except man pages)

man man pages

queue the queue of unsent messages

users the qmail-users database files

Estrutura do Queue

O diretório queue contém as mensagens que estão na fila para serem enviadas:

Subdirectory Contents

bounce permanent delivery errors

info* envelope sender addresses

intd envelopes under construction by qmail-queue

local* local envelope recipient addresses

lock lock files

mess* message files

pid used by qmail-queue to acquire an i-node number

remote* remote envelope recipient addresses

todo complete envelopes

Tentativas de Entrega das Mensagens

O diretório queue contém as mensagens que estão na fila para seremenviadas. Segue abaixo as tentativas de entrega de emails quando a mesmaretorna devido a caixa postal do destinatário estar lotada, ou por algum outromotivo:

115

Page 116: Apostila Qmail LDAP

Tentativas deEntrega

Segundos D-HH:MM:SS

1 0 0-00:00:00

2 400 0-00:06:40

3 1600 0-00:26:40

4 3600 0-01:00:00

5 6400 0-01:46:40

6 10000 0-02:46:40

7 14400 0-04:00:00

8 19600 0-05:26:40

9 25600 0-07:06:40

10 32400 0-09:00:00

11 40000 0-11:06:40

12 48400 0-13:26:40

13 57600 0-16:00:00

14 67600 0-18:46:40

15 78400 0-21:46:40

16 90000 1-01:00:00

17 102400 1-04:26:40

18 115600 1-08:06:40

19 129600 1-12:00:00

20 144400 1-16:06:40

21 160000 1-20:26:40

22 176400 2-01:00:00

23 193600 2-05:46:40

24 211600 2-10:46:40

25 230400 2-16:00:00

26 250000 2-21:26:40

27 270400 3-03:06:40

28 291600 3-09:00:00

29 313600 3-15:06:40

30 336400 3-21:26:40

31 360000 4-04:00:00

32 384400 4-10:46:40

33 409600 4-17:46:40

34 435600 5-01:00:00

116

Page 117: Apostila Qmail LDAP

35 462400 5-08:26:40

36 490000 5-16:06:40

37 518400 6-00:00:00

38 547600 6-08:06:40

39 577600 6-16:26:40

40 608400 7-01:00:00

117

Page 118: Apostila Qmail LDAP

Vpopmail

O vpopmail é um servidor pop3d com suporte a domínios virtuais muitoutilizado, que trabalha em conjunto com o Qmail, desenvolvido por Chris Johnsone mantido por Ken Jones.

Vantagens

• Suporte até 23 milhões de domínios virtuais, balanceado por uma árvore dediretórios;

• Suporte até 23 milhões de usuários por domínio, balanceado por uma árvorede diretórios;

• Integração total com o Qmail;

• Não requer contas de usuários no sistema;

• Suporte para MySQL, Oracle, PostGreSQL, LDAP, Sybase, “/etc/passwd” e“/etc/shadow”;

• Um usuário que possui conta em mais de um domínio, possui uma senhadiferente para cada;

• Administração em modo texto e gráfico, etc...

Pacotes

vpopmail-5.2.1.tar.gz - Pacote do Servidor POP3d

Download

vpopmail

http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz

Como instalar o vpopmail

Faça download do pacote Vpopmail. A última versão do vpopmail publicadaé: daemontools-0.76.tar.gz.

Descompactando o vpopmail:

# tar xzvf vpopmail-5.2.1.tar.gz

# cd vpopmail-5.2.1

Criando o grupo e usuário do vpopmail:

118

Page 119: Apostila Qmail LDAP

# groupadd -g 89 vchkpw

# adduser -g vchkpw -u 89 -d /var/vpopmail vpopmail

Obs.: Por padrão, o vpopmail é instalado no diretório “/home/vpopmail” eiremos instalar o Vpopmail do diretório “/var/vpopmail”.

Compilando o vpopmail:

# ./configure --enable-clear-passwd=n

--enable-md5-passwords=y

--enable-logging=y

--enable-default-domain=freesoftware.org.br

-with-prefix=/var/vpopmail

# make

# make install-strip

O que é cada opção:

--enable-clear-passwd= Habilita/Desabilita senhas em branco

--enable-md5-passwords= Habilita senhas com cripografia MD5

--enable-logging= Habilita logs de acesso

--enable-default-domain= Compila o vpopmail com um domínio default

-with-prefix= Local onde será instalado o vpopmail

Configurando o vpopmail:

# cd /var/vpopmail/bin/

# ./vadddomain freesoftware.org.br

# ./vadduser [email protected]

# ./vadduser [email protected]

# ./vadduser [email protected]

# ./vuserinfo [email protected]

# ./vpasswd [email protected]

# ./vdeluser [email protected]

# ./vsetuserquota [email protected]

119

Page 120: Apostila Qmail LDAP

Courier-Imap

O Courier-imap é um servidor que provê acesso IMAP aos Maildirs. É muitopopular com correios que utilizam o esquema Maildir, pois o mesmo não possuisuporte a Mailbox. A vantagem de se utilizar Maildir, é que o mesmo pode seracessado de diversas aplicações simultâneamente, além de ser mais rápido eeficiente.

Possui recursos como:

• IMAP sobre SSL;• Ipv6;• Supote a PAM, MySQL, PostGreSQL, LDAP, etc...

Pacotes

courier-imap-3.0.3.20040411.tar.bz2 - Pacote do Servidor IMAP

Download

courier-imap

http://www.inter7.com/courierimap.html

Dependências

Antes de instalar e configurar o courier-imap é necessário instalar asseguintes dependências:

# apt-get install zlib1g

# apt-get install zlib1g-dev

# apt-get install expect

# apt-get install libgdbmg1-dev

# apt-get install openssl

# apt-get install libssl-dev

Como instalar o courier-imap

Faça download do pacote courier-imap. A última versão do courier publicadaé: courier-imap-3.0.3.20040411.tar.bz2.

Descompactando o courier-imap:

120

Page 121: Apostila Qmail LDAP

# tar xjvf courier-imap-3.0.3.20040411.tar.bz2

Antes de instalar o courier-imap é necessário configurar as bibliotecas dovpopmail no diretório “/var/vpopmail/etc/”, pois o courier-imap irá buscar estasbibliotecas.

Configurando as bibliotecas do vpopmail:

# echo “-I/var/vpopmail/include” > /var/vpopmail/etc/inc_deps

# echo “-L/var/vpopmail/lib -lvpopmail” > /var/vpopmail/etc/lib_depsA 1ª opção é “i” maiúsculo e a 2ª opção é “L” maiúsculo e a opção “lvpopmail” é L minúsculo

Instalando o courier-imap:

# cd courier-imap-3.0.3.20040411

# ./configure --disable-root-check--without-auth-daemon--with-authvchkpw

# make# make install-strip# make install-configure

Iniciando o serviço do courier-imap:

# /usr/lib/courier-imap/libexec/imapd.rc start

Parando o serviço do courier-imap:

# /usr/lib/courier-imap/libexec/imapd.rc stop

Qmailadmin

O qmailadmin é uma ferramenta web gráfica utilizada para administrardomínios virtuais e usuários dos domínios.

Possui recursos como:

121

Page 122: Apostila Qmail LDAP

• Adicionar usuários;• Remover usuários;• Aliases;• Forward;• Mailing list;• Vacation.

Outros recursos do qmailadmin

Cada usuário do vpopmail pode administrar sua própria conta, podendousufruir de tais recursos:

• Troca de senha; • Forward; • Salvar cópia de email; • Vacation.

Pacote

qmailadmin-1.0.6.tar - Pacote do qmailadmin

Download

qmailadmin

http://www.inter7.com/qmailadmin/

Pré-requisitos

Antes de instalar e configurar o qmailadmin é necessário instalar osseguintes pacotes:

apache Servidor Webphp4 Suporte a php4ezmlm Lista de distribuiçãoautorespond Necessário para a lista de distribuiçãoqmail Servidor do Qmailvpopmail Servidor pop3d

OBS.: Configurar o servidor “apache” com suporte a “PHP4”

Instalando o apache:

# apt-get install apache

Instalando o php4:

122

Page 123: Apostila Qmail LDAP

# apt-get install php4

Os pacotes “ezmlm-0.53.tar.gz” e “autorespond-2.0.2.tar.gz” podem serfeitos o download através do site:

http://www.inter7.com.br

Instalando o ezmlm:

# tar xzvf ezmlm-0.53.tar.gz# cd ezmlm-0.53# make# make man# make setup

Instalando o autorespond:

# tar xzvf autorespond-2.0.2.tar.gz# cd autorespond-2.0.2# make# make install

Como instalar o qmailadmin

Faça download do pacote qmailadmin. A versão do qmailadmin que iremosutilizar é: qmailadmin-1.0.6.tar.gz.

Descompactando o qmailadmin:

# tar xzvf qmailadmin-1.0.6.tar.gz

Instalando o qmailadmin:

# cd qmailadmin-1.0.6/

# ./configure --enable-htmllibdir=/var/www/--enable-cgibindir=/usr/lib/cgi-dir/

# make# make install-strip

123

Page 124: Apostila Qmail LDAP

Como acessar o qmailadmin

Abra em seu browser o seguinte endereço:

http://localhost/cgi-dir/qmailadmin

Squirrelmail

O squirrelmail é um webmail integrado com o qmail e vpopmail. Possuisuporte a domínios virtuais e também possui mais de 200 plugins, cada um comuma finalidade.

Pacote

squirrelmail-1.4.2.tar.bz2 - Pacote do webmail

Download

squirrelmail

http://www.squirrelmail.org

Como instalar o squirrelmail

Faça download do pacote squirrelmail. A última versão do squirrelmailpublicada é: squirrelmail-1.4.2.tar.bz2.

Descompactando o squirrelmail:

# tar xjvf squirrelmail-1.4.2.tar.bz2 -C /var/www/

Instalando o squirrelmail:

# cd /var/www/

# mv squirrelmail-1.4.2 webmail

# ./configure Agora é só seguir as instruções do menu

Como acessar o squirrelmail

Abra em seu browser o seguinte endereço:

124

Page 125: Apostila Qmail LDAP

http://localhost/webmail/

Como deixar o webmail mais seguro

Configure um domínio virtual no apache para o webmail com suporte a ssl.

Coloque o logo da empresa e aplique alguns plugins importântes no dia-a-dia como por exemplo: calendário, selecionar todas mensagens, etc...

Caso queira adicionar mais plugins no seu webmail, acesse o site:

http://www.squirrelmail.org/plugins/

125

Page 126: Apostila Qmail LDAP

OPENLDAP2

Existem duas maneiras de instalar o OpenLDAP2 no Debian, sendo elas:

1ª – Através do apt;

2ª – Através do código fonte, baixando os pacotes diretamente no site.

Iremos utilizar as duas formas para instalar o OpenLDAP2.

Instalação do OpenLdap2 através do APT

Estaremos utilizando o APT para instalar o OpenLDAP2.

Instalando o OpenLDAP2 através do “apt”:

# apt-get source openldap2 --compile

Se ocorrer problemas de dependência, utilize o comando abaixo parainstalar as mesmas:

# apt-get install <nome>

Onde o <nome> é o pacote que o APT encontrou a dependência. Apósresolvido as mesmas, devemos repetir o comando:

# apt-get source openldap2 --compile

Serão gerados 5 arquivos:

ldap-gateways_2.0.23-6_i386.deb Responsável pela comunicação

ldap-utils_2.0.23-6_i386.deb Bibliotecas úteis

libldap2-dev_2.0.23-6_i386.deb Bibliotecas para o cliente ldap

libldap2_2.0.23-6_i386.deb Cliente ldap

slapd_2.0.23-6_i386.deb Server ldap

126

Page 127: Apostila Qmail LDAP

Agóra iremos instalar os pacotes gerados pelo “apt”:

# apt-get install ldap-gateways_2.0.23-6_i386.deb

# apt-get install ldap-utils_2.0.23-6_i386.deb

# apt-get install libldap2-dev_2.0.23-6_i386.deb

# apt-get install libldap2_2.0.23-6_i386.deb

# apt-get install slapd_2.0.23-6_i386.deb

Após instalar o Openldap2, será chamado a configuração do servidor ldap.

Deve-se escolher como a base do LDAP será criada. Em nosso caso iremosescolher a opção AUTO para que o LDAP gere automaticamente nossa base , obanco usado para esta base será o lbdm.

127

Page 128: Apostila Qmail LDAP

Aqui escolheremos o padrão para o SUFIXO do LDAP, esse sufixo seráutilizado nas pesquisas e autenticação no diretório ldap. Escolha a opção domainor host para que o sufixo seja criado com o padrão de seu endereço DNS.

Indique uma senha para o administrador, ele será o usuário responsável porfazer as alterações no diretório.

Arquivos de configuração do OPENLDAP

128

Page 129: Apostila Qmail LDAP

Serão gerados 5 arquivos:

/etc/ldap.secret Senha do administrador do diretório

/etc/ldap/slapd.conf Configuração do servidor LDAP

/etc/ldap/lapd.conf Configuração do cliente LDAP

/var/lib/ldap/ Diretório da base de dados

Arquivo de configuração do cliente:

# vi /etc/ldap/ldap.conf

# $OpenLDAP: pkg/ldap/libraries/libldap/ldap.conf,v 1.4.8.6 2000/09/0517:54:38 kurt Exp $## LDAP Defaults#

# See ldap.conf(5) for details# This file should be world readable but not world writable.

#BASE dc=example, dc=com#URI ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT 12#TIMELIMIT 15#DEREF never

# Configuracao do localhost

host localhost

# Base principal do LDAP

base dc=gusl,dc=org,dc=br

# User que sera padrao nas pesquisas

binddn cn=admin,dc=gusl,dc=org,dc=br

# Senha padrao para fazer as pesquizas

bindpw 123456

# Senha utilizando md5

pam_password md5

129

Page 130: Apostila Qmail LDAP

# Define um filtro para as pesquisas

pam_filter objectclass=account

# Forca os usuarios a usarem um determinado grupo

pam_groupdn cn=users,ou=Group,dc=gusl,dc=org,dc=br

# Habilita o SSL

ssl yes

Arquivo de configuração do servidor:

# vi /etc/ldap/slapd.conf

# This is the main ldapd configuration file. See slapd.conf(5) for more# info on the configuration options.

# Schema and objectClass definitionsinclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/qmail.schema

# Schema check allows for forcing entries to# match schemas for their objectClasses'sschemacheck on

# Where the pid file is put. The init.d script# will not stop the server if you change this.pidfile /var/run/slapd.pid

# List of arguments that were passed to the serverargsfile /var/run/slapd.args

# Where to store the replica logsreplogfile /var/lib/ldap/replog

# Read slapd.conf(5) for possible valuesloglevel 0

######################################################################## ldbm database definitions#############################################

130

Page 131: Apostila Qmail LDAP

##########################

# The backend type, ldbm, is the default standarddatabase ldbm

# The base of your directorysuffix "dc=gusl,dc=org,dc=br"

# Where the database file are physically storeddirectory "/var/lib/ldap"

# Indexing optionsindex objectClass eq

# Save the time that the entry gets modifiedlastmod on

# The userPassword by default can be changed# by the entry owning it if they are authenticated.# Others should not be able to see it, except the# admin entry belowaccess to attribute=userPassword by dn="cn=admin,dc=gusl,dc=org,dc=br" write by anonymous auth by self write by * none

# The admin dn has full write accessaccess to * by dn="cn=admin,dc=gusl,dc=org,dc=br" write by * read

# For Netscape Roaming support, each user gets a roaming# profile for which they have write access toaccess to dn=".*,ou=Roaming,o=morsnet" by dn="cn=admin,dc=gusl,dc=org,dc=br" write by dnattr=owner write

Arquivo de configuração da senha do OpenLDAP:

# vi /etc/ldap.secrets

NOSSA_SENHA

131

Page 132: Apostila Qmail LDAP

Instalando o pacote migrationtools

O pacote migrationtools é o responsável em fazer a migração dos dados doLinux para um arquivo padrão LDIF, este pacote instala scripts em perl que faz asmigrações.

Iremos verificar se o perl está instalado:

# dpkg -l | grep perl

Caso não esteja, teremos que efetuar a instalação do mesmo:

# apt-get install perl-5.6

Após a instalação do perl, iremos instalar o migrationtools:

# apt-get install migrationtools

Agora acessamos o diretório “/usr/share/migrationtools/” e editamos oarquivo “migrate_common.ph”, arquivo responsável pela configuração básica dosdemais scripts, altere conforme abaixo:

# cd /usr/share/migrationtools/# vi migrate_common.ph

# Default DNS domain$DEFAULT_MAIL_DOMAIN = "freesoftware.org.br";

# Default base $DEFAULT_BASE = "dc=freesoftware,dc=org,dc=br";

# where /etc/mail/ldapdomains contains names of ldap_routed# domains (similiar to MASQUERADE_DOMAIN_FILE).$DEFAULT_MAIL_HOST = "instrutor.freesoftware.org.br";

Migrando a Base de Objetos

Iremos migrar a base de objetos para que o diretório de LDAP possa criar osobjetos “o”, porém, a princípio vamos criar apenas o “OU” People e Group.

132

Page 133: Apostila Qmail LDAP

# cd /usr/share/migrationtools/# ./migrate_base.pl /root/base.ldif

Executando o comando acima estaremos migrando os objetos básicos paraa criação do seu diretório. Vamos utilizar apenas o “OU” People que é responsávelpor guardar os usuários do diretório, e o Group que é o responsável por guardaros grupos. Portanto, edite o /root/base.ldif delete a linha que fazer referência aosoutros “OU”, o arquivo deve ficar como indicado abaixo:

# vi /root/base.ldif

dn: ou=People,dc=gusl,dc=org,dc=brou: PeopleobjectClass: topobjectClass: organizationalUnit

dn: ou=Group,dc=gusl,dc=org,dc=brou: GroupobjectClass: topobjectClass: organizationalUnit

Adicionando as informações dos arquivos LDIF no diretório LDAP:

# cd /root# ldapadd -x -D “cn=admin,dc=freesoftware,dc=org,dc=br” -f base.ldif -W Enter LDAP Password:

OBS.: Informar a senha do servidor LDAP

Com isso acabamos de criar os objetos “OU”, “People” e “Group”, o básicopara fazer autenticação do LDAP ou utilizar o mesmo para lista de contatos.

Podemos fazer um teste para saber se o LDAP está funcionando, vamosutilizar o ldapclient para fazer isto:

# ldapsearch -x

Esse comando irá retornar todos os objetos da base LDAP.

Ferramenta de administração web para o OpenLDAP

Agora que o LDAP está rodando, poderemos manipular nossos usuários viaWEB utilizando ferramentas OpenSource, portanto, iremos utilizar o DAVEDAP.

133

Page 134: Apostila Qmail LDAP

Download

http://davedap.sourceforge.net

Pré-requisitos

Para que o davedap funcione corretamente, teremos que instalar osseguintes pacotes:

apache Já instalado e configuradophp4 Já instalado e configurado

Instalando suporte a LDAP no PHP4:

# apt-get install php-pear# apt-get install php-ldap

Como instalar o davedap

Faça download do pacote davedap. A última versão do davedap publicada é:phpldapadmin-0.9.3.tar.gz.

Descompactando o davedap:

# tar xjvf phpldapadmin-0.9.3.tar.gz -C /var/www/

Instalando o davedap:

# cd /var/www/

# mv phpldapadmin-0.9.3 davedap

# cd davedap

# cp config.php.example config.inc.php

Editando o arquivo de configuração do davedap:

# vi config.inc.php

<?php

/* * The phpLDAPadmin config file

134

Page 135: Apostila Qmail LDAP

* * This is where you customize phpLDAPadmin. The most important * part is immediately below: The "LDAP Servers" section. * You must specify at least one LDAP server there. You may add * as many as you like. You can also specify your language, and * many other options. * */

// Your LDAP servers$i=0;$servers = array();$servers[$i]['name'] = 'Servidor LDAP'; /* A convenient name that willappear in the tree viewer */$servers[$i]['host'] = 'localhost'; /* Examples: 'ldap.example.com', 'ldaps://ldap.example.com/' Note: Leave blank to remove it from the list of servers in the tree viewer*/$servers[$i]['base'] = 'dc=freesoftware,dc=org,dc=br'; /* The base DN ofyour LDAP server. Leave this blank to have phpLDAPadmin auto-detect it for you. */$servers[$i]['port'] = 389; /* The port your LDAP server listenson (no quotes) */$servers[$i]['auth_type'] = 'config'; /* 2 options: 'form': you will beprompted, and a cookie stored with your login dn and password. 'config': specify your login dn and password here. In both cases, usecaution! */$servers[$i]['login_dn'] = 'cn=admin,dc=freesoftware,dc=org,dc=br'; /* For anonymous binds, leave the login_dn and login_pass blank */$servers[$i]['login_pass'] = '123456'; /* Your password (only if youspecified 'config' for 'auth_type' */$servers[$i]['tls'] = false; /* Use TLS to connect. Requires PHP 4.2or newer */$servers[$i]['default_hash'] = 'md5'; /* Default password hashingalgorith; One of md5, ssha, sha, md5crpyt, smd5,blowfish or leave blank for now default algorithm. */$servers[$i]['login_attr'] = 'dn'; /* If you specified 'form' as theauth_type above, you can optionally specify here an attribute to use when logging in. If you enter 'uid', then login as 'dsmith', phpLDAPadmin will

135

Page 136: Apostila Qmail LDAP

search for uid=dsmith and log in as such.Leave blank or specify 'dn' to use full DN for logging in .*/$servers[$i]['read_only'] = false; /* Specify true If you wantphpLDAPadmin to not display or permit any modification to the LDAP server. */$servers[$i]['enable_auto_uid_numbers'] = false; /* This feature allows phpLDAPadmin to automatically determine the next available uidNumber for a new entry. */$servers[$i]['auto_uid_number_mechanism'] = 'search'; /* The mechanism to use when finding the next availableuidNumber. Two possible values: 'uidpool' or 'search'. The 'uidpool' mechanism uses an existing uidPoolentry in your LDAP server to blindly lookup the next availableuidNumber. The 'search' mechanism searches for entries with auidNumber value and finds the first available uidNumber (slower).*/$servers[$i]['auto_uid_number_search_base'] ='ou=People,dc=example,dc=com'; /* The DN of the search base when the 'search' mechanism is used above. */$servers[$i]['auto_uid_number_min'] = 1000; /* The minimum number to use when searching for the next available UID number (only when 'search' is used for auto_uid_number_mechanism' */$servers[$i]['auto_uid_number_uid_pool_dn'] ='cn=uidPool,dc=example,dc=com'; /* The DN of the uidPool entry when 'uidpool' mechanism is used above. */

// If you want to configure additional LDAP servers, do so below.$i++;$servers[$i]['name'] = 'Another server';$servers[$i]['host'] = '';$servers[$i]['base'] = 'dc=example,dc=com';$servers[$i]['port'] = 389; $servers[$i]['auth_type'] = 'config';$servers[$i]['login_dn'] = '';$servers[$i]['login_pass'] = '';

136

Page 137: Apostila Qmail LDAP

$servers[$i]['tls'] = false; $servers[$i]['default_hash'] = 'crypt';$servers[$i]['login_attr'] = '';$servers[$i]['read_only'] = false;$servers[$i]['enable_auto_uid_numbers'] = false;$servers[$i]['auto_uid_number_mechanism'] = 'search'; $servers[$i]['auto_uid_number_search_base'] ='ou=People,dc=example,dc=com';$servers[$i]['auto_uid_number_min'] = 1000; $servers[$i]['auto_uid_number_uid_pool_dn'] ='cn=uidPool,dc=example,dc=com';

// If you want to configure more LDAP servers, copy and paste the above(including the "$i++;")

// The temporary storage directory where we will put jpegPhoto data// This directory must be readable and writable by your web server $jpeg_temp_dir = "/tmp"; // Example for Unix systems//$jpeg_temp_dir = "c:\\temp"; // Example for Windows systems

/** **//** Appearance and Behavior **//** **/

// The language setting. If you set this to 'auto', phpLDAPadmin will // attempt to determine your language automatically. Otherwise, available // lanaguages are: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', and 'ru'// Localization is not complete yet, but most strings have been translated.// Please help by writing language files. See lang/en.php for an example.$language = 'auto';

// Set to true if you want to draw a checkbox next to each entry in the treeviewer// to be able to delete multiple entries at once$enable_mass_delete = false;

// Set to true if you want LDAP data to be displayed read-only (without inputfields)// when a user logs in to a server anonymously$anonymous_bind_implies_read_only = true;

// If you used auth_type 'form' in the servers list, you can adjust how longthe cookie will last // (default is 0 seconds, which expires when you close the browser)$cookie_time = 0; // seconds

// How many pixels wide do you want your left frame view (for the treebrowser)$tree_width = 320; // pixels

137

Page 138: Apostila Qmail LDAP

// How long to keep jpegPhoto temporary files in the jpeg_temp_dirdirectory (in seconds)$jpeg_tmp_keep_time = 120; // seconds

// Would you like to see helpful hint text occacsionally?$show_hints = true; // set to false to disable hints

// When using the search page, limit result size to this many entries$search_result_size_limit = 50;

/** **//** Simple Search Form Config **//** **/

// Which attributes to include in the drop-down menu of the simple searchform (comma-separated)// Change this to suit your needs for convenient searching. Be sure tochange the correlating// list below ($search_attributes_display)$search_attributes = "uid, cn, gidNumber, objectClass, telephoneNumber,mail, street";

// This list correlates to the list directly above. If you want to present morereadable names// for your search attributes, do so here. Both lists must have the samenumber of entries.$search_attributes_display = "User Name, Common Name, Group ID,Object Class, Phone Number, Email, Address";

// The list of attributes to display in each search result entry summary$search_result_attributes = "dn, cn";

/** **//** User-friendly attribute translation **//** **/

$friendly_attrs = array();

// Use this array to map attribute names to user friendly names. Forexample, if you// don't want to see "facsimileTelephoneNumber" but rather "Fax".

$friendly_attrs[ 'facsimileTelephoneNumber' ] = 'Fax';$friendly_attrs[ 'telephoneNumber' ] = 'Phone';

/** **//** Hidden attributes **//** **/

138

Page 139: Apostila Qmail LDAP

// You may want to hide certain attributes from being displayed in the editorscreen// Do this by adding the desired attributes to this list (and uncomment it).This// only affects the editor screen. Attributes will still be visible in the schema// browser and elsewhere. An example is provided below:

//$hidden_attrs = array( 'jpegPhoto', 'objectClass' );

?>

Como acessar o davedap

Acessando o endereço abaixo teremos acesso a base LDAP, podendo fazerqualquer tipo de alteração, adicionar usuários, unix, samba, grupos, etc...

http://localhost/davedap/

Instalação do OpenLdap2 através do código fonte

Estaremos efetuando agora a instalação do OpenLDAP através de seucódigo fonte.

Pré-requisitos

openssl

Databases – BerkeleyDB ou GDBM

Cyrus – SASL

Pacotes

db-4.1.25.tar.gz – Pacote do BerkeleyDB

cyrus-sasl-2.1.18.tar.gz – Pacote de Autenticação e Criptografia

openldap-stable-20040329.tgz – Pacote do OpenLDAP

Download

BerkeleyDB

http://www.sleepycat.com

139

Page 140: Apostila Qmail LDAP

Cyrus – SASL

http://asg.web.cmu.edu/sasl/sasl-library.html

OpenLDAP

http://www.openldap.org

Como instalar o BerkeleyDB

Faça download do pacote BerkeleyDB. A última versão estável doBerkeleyDB é: db-4.1.25.tar.gz.

Descompactando o BerkeleyDB:

# tar xjvf db-4.1.25.tar.gz

Instalando o BerkeleyDB:

# cd db-4.1.25/docs/

# ../dist/configure

# make

# make installOBS.: A base será instalada em /usr/local/BerkeleyDB.4.1/

Colocar o diretório /usr/local/BerkeleyDB.4.1 no arquivo /etc/ld.so.conf:

# echo “/usr/local/BerkeleyDB.4.1” > /etc/ld.so.conf

# ldconfig

# ldconfig -v | grep BerkeleyDB

Como instalar o Cyrus - SASL

Faça download do pacote Cyrus - SASL. A última versão estável do Cyrus –SASL é: cyrus-sasl-2.1.18.tar.gz.

Descompactando o Cyrus – SASL:

# tar xjvf cyrus-sasl-2.1.18.tar.gz

140

Page 141: Apostila Qmail LDAP

Instalando o Cyrus – SASL:

# tar xzvf cyrus-sasl-2.1.18.tar.gz

# cd cyrus-2.1.18

# ./configure --with-bdb-libdir=/usr/local/BerkeleyDB.4.1/lib --with-bdb-incdir=/usr/local/BerkeleyDB.4.1/include --enable-krb4=no

#make

#make installOBS.: A base será instalada em /usr/local/BerkeleyDB.4.1/

Crie um link simbólico das “libs” do Cyrus – SASL para “/usr/lib/”:

# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2

Como instalar o OpenLDAP

Faça download do pacote OpenLDAP. A última versão estável do OpenLDAPé: openldap-stable-20040329.tgz.

Descompactando o OpenLDAP:

# tar xjvf openldap-stable-20040329.tgz

Instalando o OpenLDAP:

# cd openldap-2.1.29

# env CPPFLAGS=”-I/usr/local/BerkeleyDB.4.1/include”

LDFLAGS=”-L/usr/local/BerkeleyDB.4.1/lib”

./configure

# make depend

# make

# make installA opção do CPPFLAGS é “i” maiúsculo e a opção do LDFLAGS é “L” maiúsculo

O OpenLDAP será instalado no diretório “/usr/local/”.

141

Page 142: Apostila Qmail LDAP

Configuração do OpenLdap

Editando o arquivo de configuração do OpenLDAP:

# vi /usc/local/etc/openldap/slapd.conf

## O include inclui os esquemas com que você quer trabalhar, sendo os principais:

include /usr/local/etc/openldap/schema/core.schema

include /usr/local/etc/openldap/schema/cosine.schema

include /usr/local/etc/openldap/schema/inetorgperson.schema

include /usr/local/etc/openldap/schema/nis.schema

## PID's e Arg's file usados no daemon do Servidor LDAP.

pidfile /usr/local/var/slapd.pid

argsfile /usr/local/var/slapd.args

## Alguns parâmetros do LDAP.

allow bind_v2

concurrency 100

defaultsearchbase "c=BR"

idletimeout 240

loglevel 0

sizelimit 10000

timelimit 240

threads 120

## Tipo de banco utilizado. No nosso caso estaremos utilizando o BerkeleyDB.

#Também iremos configurar duas hierarquias de nossa base:

database bdb

suffix "c=BR"

rootdn "cn=Manager,c=BR"

rootpw {MD5}4QrcOUm6Wau+VuBX8g+IPg==

# c = Country.

# cn = Common Name.

142

Page 143: Apostila Qmail LDAP

# dc = Domain Component.

# rootdn = Usuário administrador do LDAP.

# rootpw = Senha do administrador. Pode ser criptografado.

## Diretório onde será guardado a base LDAP.

directory /usr/local/var/openldap-data

## Index usados pelo LDAP.

index mail,cn,sn pres,eq,sub

index uid pres,eq

index objectClass eq

cachesize 10000

checkpoint 100 30

dbnosync

Carregando o serviço do OpenLDAP

Para iniciar o daemon do LDAP basta apenas executá-lo:

# /usr/local/libexec/slapd

Configurando as entradas no OpenLDAP

Após ter iniciado nosso servidor, vamos começar a configurar as entradasno LDAP. O Ldap utiliza um formato de arquivo conhecido como ldif, que nadamais é que um arquivo de texto puro, porém você deve seguir os formatos deuma entrada, conforme exemplo abaixo:

Iremos criar a base do OpenLDAP:

# vi base.ldif

# Brasil

dn: c=BR

objectClass: country

c: BR

143

Page 144: Apostila Qmail LDAP

Agora iremos criar uma Organização da base:

# vi organizacao.ldif

# Freesoftware

dn: o=Freesoftware, c=BR

objectClass: organization

o: GUSL

Agora iremos criar uma Unidade Organizacional da Organização:

# vi unidadeorganizacional.ldif

# Departamento

dn: ou=Treinamento, o=Freesoftware, c=BR

ou: Treinamento

description: Departamento de Treinamento

objectClass: organizationalUnit

Agora iremos criar um usuário:

144

Page 145: Apostila Qmail LDAP

# vi correio.ldif

dn: uid=correio,ou=Treinamento,o=freesoftware,c=BR

mailAlternateAddress: [email protected]

objectClass: inetOrgPerson

objectClass: qmailuser

uid: correio

cn: correio

sn: Freesoftware

mail: [email protected]

mailMessageStore: /var/vmail/correio

mailQuotaSize: 200000000

mailQuotaCount: 10000

mailSizeMax: 100000000

mailHost: instrutor.freesoftware.com.br

userPassword: {MD5}4QrcOUm6Wau+VuBX8g+IPg==

Agora iremos importar a base (base.ldif), a organização (organizacao.ldif) ea unidade organizacional (unidadeorganizacional.ldif) na base LDAP. O usuáriocorreio (correio.ldif) será importado na base LDAP após a configuração o Qmailcom suporte a OpenLDAP.

Importando as entradas na base LDAP:

# ldapadd -x -W -v -D'cn=Manager,c=BR' -f base.ldif

# ldapadd -x -W -v -D'cn=Manager,c=BR' -f organizacao.ldif

# ldapadd -x -W -v -D'cn=Manager,c=BR' -f unidadeorganizacional.ldif

O que é cada opção:

-x Autenticação Simples

-W Pedir senha do usuário que vai fazer a conexão

-v Verbose

-D Usuário que irá conectar na base

-f Arquivo ldif que será adicionado na base LDAP

145

Page 146: Apostila Qmail LDAP

Modificando as entradas na base LDAP

# ldapmodify -x -W -v -D'cn=Manager,c=BR' -f arquivo.ldif

Removendo as entradas na base LDAP

# ldapdelete -x -W -v -D'cn=Manager,c=BR' -f arquivo.ldif

Consultando as entradas na base LDAP

# ldapsearch -x

Como fazer a indexão da base LDAP

# slapindex

Útil quando você tem uma base pronta e quer exportá-la para outroservidor, basta você copiar o diretório de onde esteja a base e no novo servidorexecutar este comando para que a base seja reindexada.

Criptografando senhas do OpenLDAP

# slapdpasswd -h '{criptografia}'Em seguida o slapdpasswd irá pedir a senha

Onde:

-h Criptografia

As suportadas são: {MD5}, {SMD5}, {SHA}, {SSHA} e {CRYPT}

Como faço para informar a senha em linha de comando:

146

Page 147: Apostila Qmail LDAP

-s <senha> Senha

A opção “-s <senha>” é utilizado para informar a senha na linha decomando. Sem este parâmetro, será pedido que você entre com a senha e aconfirme. A saída deste comando exibe a criptografia escolhida e a senha digitadacriptografada.

147

Page 148: Apostila Qmail LDAP

Instando o Qmail com suporte a LDAP

Pré-requisitos

Antes de efetuar a instalação o Qmail+LDAP, devemos ter instalado econfigurado em nosso servidor os seguintes aplicativos:

ucspi-tcp Controle de conexõesdaemon-tools Controle dos serviços do QmailOpenLdap Servidor LDAP com seus respectivos usuários

Download do Qmail

http://cr.yp.to/software/qmail-1.0.3.tar.gz

Download do Patch do LDAP para o Qmail

http://www.qmail-ldap.org/qmail/qmail-ldap-1.03-20040301a.patch.gz

Iremos utilizar o patch “qmail-ldap-1.03-20040301a.patch.gz” que é oúltimo estável.

Instalação do Qmail

Nesta etapa iremos somente descompactar o Qmail e após ter aplicado opatch iremos editar o Makefile para efetuar algumas alterações e após asalterações iremos instalar o Qmail.

Descompactando o Qmail

# tar xzvf qmail-1.0.3.tar.gz

Aplicando o patch do LDAP no Qmail

Colocar o patch do ldap um nível acima do diretório do Qmail:

# gunzip qmail-ldap-1.03-20040301a.patch.gz# cd qmail-1.0.3# patch -p1 < ../qmail-ldap-1.03-20040301a.patch

148

Page 149: Apostila Qmail LDAP

Editando o Makefile do Qmail

Iremos agora editar o Makefile do Qmail anter de efetuar sua instalação.

Editando o Makefile do Qmail:

# vi Makefile

# Descomentar a opção “LDAPFLAGS” e setar alguns parâmetros:

LDAPFLAGS=-DALTQUEUE -DBIGTODO -DEXTERNAL_TODO -DDASH_EXT-DIGNOREVERISIGN

# Bibliotecas do LDAPLDAPLIBS=-L/usr/local/lib -lldap -llber

# Includes do LDAPLDAPINCLUDES=-I/usr/local/include

# Utilizado para mostrar o status de download de aplicativos do NetscapeMNW=-DMAKE_NETSCAPE_WORK

# Habilita a criação automática da caixa postal do usuário no qmail.Quando criamos o entrada do usuário no LDAP, e enviamos email para omesmo, a caixa postal do usuário será criada automaticamente setando osparâmetros abaixoMDIRMAKE=-DAUTOMAILDIRMAKEHDIRMAKE=-DAUTOHOMEDIRMAKE

# Necessário quanto utilizamos auth_pop e auth_imapSHADOWLIBS=-lcrypt

Após ter configurado o Makefile do Qmail, iremos instalar o mesmo:

# make setup check

# ./config-fast <host.dominio>No nosso caso iremos configurar o Qmail com o domínio: instrutor.freesoftware.com.br

Configurando o LDAP com suporte ao Qmail

Após ter compilado o Qmail, devemos configurar o LDAP para suportar oQmail.

# cd qmail-1.0.3# cp qmail.schema /usr/local/etc/openldap/schema/

Após ter copiado o schema do Qmail para o LDAP, devemos editar o arquivo

149

Page 150: Apostila Qmail LDAP

de configuração do OpenLDAP e modificá-lo para suportar o Qmail:

# vi /usc/local/etc/openldap/slapd.conf

## O include inclui os esquemas com que você quer trabalhar, sendo os principais:

include /usr/local/etc/openldap/schema/core.schema

include /usr/local/etc/openldap/schema/cosine.schema

include /usr/local/etc/openldap/schema/inetorgperson.schema

include /usr/local/etc/openldap/schema/nis.schema

include /usr/local/etc/openldap/schema/qmail.schema

## PID's e Arg's file usados no daemon do Servidor LDAP.

pidfile /usr/local/var/slapd.pid

argsfile /usr/local/var/slapd.args

## Alguns parâmetros do LDAP.

allow bind_v2

concurrency 100

defaultsearchbase "c=BR"

idletimeout 240

loglevel 0

sizelimit 10000

timelimit 240

threads 120

## Tipo de banco utilizado. No nosso caso estaremos utilizando o BerkeleyDB.

#Também iremos configurar duas hierarquias de nossa base:

database bdb

suffix "c=BR"

rootdn "cn=Manager,c=BR"

rootpw {MD5}4QrcOUm6Wau+VuBX8g+IPg==

# c = Country.

# cn = Common Name.

# dc = Domain Component.

# rootdn = Usuário administrador do LDAP.

# rootpw = Senha do administrador. Pode ser criptografado.

150

Page 151: Apostila Qmail LDAP

## Diretório onde será guardado a base LDAP.

directory /usr/local/var/openldap-data

## Index usados pelo LDAP.

index mail,cn,sn pres,eq,sub

index uid pres,eq

index objectClass eq

cachesize 10000

checkpoint 100 30

dbnosync

Foi adicionado no arquivo de configuração somente o include do qmail

Após ter configurado o LDAP com suporte ao Qmail, devemos parar o LDAPe iniciá-lo novamente:

# killall -9 slapd

# /usr/local/libexec/slapd

Pronto, o LDAP está com suporte ao Qmail.

Criando usuário para interagir com o LDAP

Iremos agora criar um usuário, onde o mesmo será o responsável eminteragir com o LDAP, ou seja, toda consulta, envio/recepção de email, será feitacom o LDAP através do usuário “vmail”.

# groupadd vmail# useradd -g vmail -d /var/vmail vmail# cd /var# mkdir vmail# chown vmail: vmail# chmod 700 vmail

Criando os alias do Qmail

Iremos agora criar os alias do Qmail, utilizado para receber mensagens doroot, postmaster e mailer-daemon. Estas mensagens podem ser de erro, deserviços do sistemas, etc...

151

Page 152: Apostila Qmail LDAP

Teremos que designar um usuário para receber estas mensagens, no nossocaso iremos utilizar o usuário “correio”. O usuário “correio” deve ser criado nabase LDAP.

# cd /var/qmail/alias# echo “[email protected]” > .qmail-root# echo “[email protected]” > .qmail-postmaster# echo “[email protected]” > .qmail-mailer-daemon

Criando os arquivos de controle do Qmail

Iremos agora criar os arquivos de controle do Qmail, onde os mesmo serãoos responsáveis em interagir com o LDAP.

# cd /var/qmail/control/

Configurando o usuário e grupo que irá interagir com o LDAP

# id -u vmail > ldapuid# id -g vmail > ldapgid

Configurando o usuário “administrador” que irá controlar aBase LDAP

# echo “cn=Manager,c=BR” > ldaplogin

Configurando a senha do “Manager” no Qmail

# echo “123456” > ldappassword

Configurando a base do LDAP no Qmail

# echo “c=BR” > ldapbasedn

Configurando o endereço do servidor LDAP

152

Page 153: Apostila Qmail LDAP

# echo “127.0.0.1” > ldapserver

Configurando o objectclass para usuário poder interagir com oLDAP

# echo “qmailuser” > ldapobjectclass

Configurando arquivos de controle para o Qmail consultar oLDAP

# echo “./Maildir/ > aliasempty# echo “both” > ldapdefaultdotmode# echo “0” > ldaplocaldelivery# echo “1” > ldaprebind

Configurando mensagem de quota

# echo “Sua caixa postal esta com 70% de utilização” > quotawarning

Configurando o arquivo para criação da conta do usuário noQmail

# echo “/var/qmail/bin/dirmaker.sh” > dirmaker

Criando o script para criação automática da caixa postal dousuário

# vi /var/qmail/bin/dirmaker.sh

#!/bin/bashmkdir -m 700 -p $1#EOF

# chmod 755 /var/qmail/bin/dirmaker.sh

153

Page 154: Apostila Qmail LDAP

Configurando tabela de relay do SMTP

# vi qmail-smtpd.rules

# SMTP server rules.# Default rule is to accept mails but not to relay. Do not even think of setting# RELAYCLIENT on the default rule.# Other useful stuff:# BLOCKRELAYPROBE: reject recipients with and "!", "%" or double-"@"# LOGLEVEL: Level of log verbosity# MAXRCPTCOUNT: maximum number of RCPT TOs you accept# NOBOUNCE: Rejects null sender bounces, use only in extreme cases# NOPBS: Disable pop-befor-smtp feature (pbscheck).# QMAILQUEUE: alternate mail queueing program# RBL: If set turns on rbl checking.# RBLONLYHEADER: only tag messages filtered by rbl checking.# REJECTEXEC: Reject DOS/Windows executables in mail attachements.# RETURNMXCHECK: Rejects senders if they don't have a valid return MX.# SANITYCHECK: Rejects senders without an @, no . or too long/short TLD# 550GREETING: Rejects a connection right away with an 550 error# SMTP550DISCONNECT: Disconnect the SMTP session if a 5xx error happens# TARPITCOUNT: number of RCPT TOs you accept before you start tarpitting.# TARPITDELAY: number of seconds of delay to introduce while tarpitting# RCPTCHECK: Check if the recipient of a message really exists.# SENDERCHECK: Check if the sender of a message really exists.#192.168.100.:allow,RELAYCLIENT=""10.1.2.:allow,RELAYCLIENT="":allow

Na configuração acima as redes “192.168.100” e “10.1.2” podem fazerrelay.

Após a configuração do arquivo de relay, teremos que digitar make paragerar o cdb.

# make

OBS.: Qualquer configuração que efetuarmos no diretório“/var/qmail/control” com exeção dos arquivos do LDAP, teremos que digitar“make” para gerar o cdb dos arquivos que foram modificados.

Configurando os scripts do Qmail

Iremos agora configurar os scripts do SEND, SMTPD e POP3D do Qmail, quejá estão pre-configurados no diretório “/var/qmail/boot/”.

154

Page 155: Apostila Qmail LDAP

Configurando o SEND

# cd /var/qmail/boot/qmail/# vi run

#!/bin/shexec 2>&1## qmail-send and friends#QMAIL="/var/qmail"ALIASEMPTY=$(head -1 $QMAIL/control/aliasempty 2> /dev/null)ALIASEMPTY=${ALIASEMPTY:="./Maildir/"}

PATH="$QMAIL/bin:$PATH"

# limit to prevent memory hogsulimit -c 204800

exec envdir ./env qmail-start "$ALIASEMPTY" splogger qmail

# vi log/run

#!/bin/sh

exec setuidgid qmaill multilog t /var/qmail/log/qmail

Configurando o SMTPD

155

Page 156: Apostila Qmail LDAP

# cd /var/qmail/boot/qmail-smtpd/# vi run

#!/bin/shexec 2>&1## SMTP service #QMAIL="/var/qmail"ME=$(head -1 $QMAIL/control/me)CONCURRENCY=${CONCURRENCY:=50}

PATH="$QMAIL/bin:$PATH"

# source the environemt in ./enveval `env - envdir ./env awk '\ BEGIN { for (i in ENVIRON) printf "%s=\"%s\"\n", i, ENVIRON[i] }'`

# enforce some sane defaultsUSER=${USER:="qmaild"}

exec envdir ./env \ envuidgid $USER \ tcpserver -v -URl $ME -x$QMAIL/control/qmail-smtpd.cdb \ ${CONCURRENCY+"-c$CONCURRENCY"} ${BACKLOG+"-b$BACKLOG"} 0smtp \ $QMAIL/bin/qmail-smtpd

# vi log/run

#!/bin/sh

exec setuidgid qmaill multilog t /var/qmail/log/qmail-smtpd

# cd env# echo “/var/qmail/bin/qmail-queue” > QMAILQUEUE# touch BLOCKRELAYPROBE# touch RCPTCHECK# touch RETURNMXCHECK# touch SANITYCHECK# touch SENDERCHECK

Configurando o POP3D

156

Page 157: Apostila Qmail LDAP

# cd /var/qmail/boot/qmail-pop3d/# vi run

#!/bin/shexec 2>&1## POP3 service #QMAIL=/var/qmailME=$(head -1 $QMAIL/control/me)ALIASEMPTY=$(head -1 $QMAIL/control/aliasempty > /dev/null 2>&1)if test X"$ALIASEMPTY" = "X"; then ALIASEMPTY=./Maildir/fi

PATH=$PATH:"$QMAIL/bin"

exec envdir ./env \ tcpserver -v -HRl $ME 0 pop3 \ $QMAIL/bin/qmail-popup $ME \ $QMAIL/bin/auth_pop \ $QMAIL/bin/qmail-pop3d "$ALIASEMPTY"

# vi log/run

#!/bin/sh

exec setuidgid qmaill multilog t /var/qmail/log/qmail-pop3d

Criando os links dos serviços do Qmail

Iremos agora criar os links dos serviços do Qmail para que o daemontoolscontrole os mesmos.

# ln -s /var/qmail/boot/qmail /service/qmail# ln -s /var/qmail/boot/qmail-smtpd /service/qmail-smtpd# ln -s /var/qmail/boot/qmail-pop3d /service/qmail-pop3d

Pronto, nosso servidor de correio com suporte a LDAP está configurado.

157

Page 158: Apostila Qmail LDAP

Referências

Alessandro Kenji Urakawa

Renato Tambelini

Marcos Amorim

http://cr.yp.to

http://www.lifewithqmail.org

http://www.inter7.com

http://www.lifewithqmail.org/ldap/

http://www.openldap.org

http://focalinux.cipsga.org.br

DNS e BINDO'REILLY

158

Page 159: Apostila Qmail LDAP

GNU Free Documentation LicenseVersion 1.2, November 2002

Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 USAEveryone is permitted to copy and distribute verbatim copiesof this license document, but changing it is not allowed.

0. PREAMBLE

The purpose of this License is to make a manual, textbook, or other functionaland useful document "free" in the sense of freedom: to assure everyone theeffective freedom to copy and redistribute it, with or without modifying it, eithercommercially or noncommercially. Secondarily, this License preserves for theauthor and publisher a way to get credit for their work, while not beingconsidered responsible for modifications made by others.

This License is a kind of "copyleft", which means that derivative works of thedocument must themselves be free in the same sense. It complements the GNUGeneral 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 comewith manuals providing the same freedoms that the software does. But thisLicense 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. Werecommend this License principally for works whose purpose is instruction orreference.

1. APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work, in any medium, that contains anotice placed by the copyright holder saying it can be distributed under theterms 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 thepublic 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 Documentor a portion of it, either copied verbatim, or with modifications and/or translatedinto another language.

A "Secondary Section" is a named appendix or a front-matter section of theDocument that deals exclusively with the relationship of the publishers orauthors of the Document to the Document's overall subject (or to relatedmatters) and contains nothing that could fall directly within that overall subject.(Thus, if the Document is in part a textbook of mathematics, a Secondary Sectionmay not explain any mathematics.) The relationship could be a matter ofhistorical connection with the subject or with related matters, or of legal,commercial, philosophical, ethical or political position regarding them.

159

Page 160: Apostila Qmail LDAP

The "Invariant Sections" are certain Secondary Sections whose titles aredesignated, as being those of Invariant Sections, in the notice that says that theDocument is released under this License. If a section does not fit the abovedefinition of Secondary then it is not allowed to be designated as Invariant. TheDocument may contain zero Invariant Sections. If the Document does not identifyany 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 isreleased under this License. A Front-Cover Text may be at most 5 words, and aBack-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 texteditors or (for images composed of pixels) generic paint programs or (fordrawings) some widely available drawing editor, and that is suitable for input totext formatters or for automatic translation to a variety of formats suitable forinput to text formatters. A copy made in an otherwise Transparent file formatwhose markup, or absence of markup, has been arranged to thwart ordiscourage subsequent modification by readers is not Transparent. An imageformat is not Transparent if used for any substantial amount of text. A copy thatis not "Transparent" is called "Opaque".

Examples of suitable formats for Transparent copies include plain ASCII withoutmarkup, Texinfo input format, LaTeX input format, SGML or XML using apublicly available DTD, and standard-conforming simple HTML, PostScript orPDF designed for human modification. Examples of transparent image formatsinclude PNG, XCF and JPG. Opaque formats include proprietary formats that canbe read and edited only by proprietary word processors, SGML or XML for whichthe DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors foroutput purposes only.

The "Title Page" means, for a printed book, the title page itself, plus suchfollowing pages as are needed to hold, legibly, the material this License requiresto appear in the title page. For works in formats which do not have any title pageas such, "Title Page" means the text near the most prominent appearance of thework's title, preceding the beginning of the body of the text.

A section "Entitled XYZ" means a named subunit of the Document whose titleeither is precisely XYZ or contains XYZ in parentheses following text thattranslates XYZ in another language. (Here XYZ stands for a specific section namementioned below, such as "Acknowledgements", "Dedications", "Endorsements",or "History".) To "Preserve the Title" of such a section when you modify theDocument means that it remains a section "Entitled XYZ" according to thisdefinition.

The Document may include Warranty Disclaimers next to the notice which statesthat this License applies to the Document. These Warranty Disclaimers are

160

Page 161: Apostila Qmail LDAP

considered to be included by reference in this License, but only as regardsdisclaiming warranties: any other implication that these Warranty Disclaimersmay have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING

You may copy and distribute the Document in any medium, either commerciallyor noncommercially, provided that this License, the copyright notices, and thelicense notice saying this License applies to the Document are reproduced in allcopies, 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 furthercopying of the copies you make or distribute. However, you may acceptcompensation in exchange for copies. If you distribute a large enough number ofcopies you must also follow the conditions in section 3.

You may also lend copies, under the same conditions stated above, and you maypublicly display copies.

3. COPYING IN QUANTITY

If you publish printed copies (or copies in media that commonly have printedcovers) of the Document, numbering more than 100, and the Document's licensenotice 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 andlegibly identify you as the publisher of these copies. The front cover must presentthe full title with all words of the title equally prominent and visible. You mayadd other material on the covers in addition. Copying with changes limited to thecovers, as long as they preserve the title of the Document and satisfy theseconditions, can be treated as verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you shouldput the first ones listed (as many as fit reasonably) on the actual cover, andcontinue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than100, you must either include a machine-readable Transparent copy along witheach Opaque copy, or state in or with each Opaque copy a computer-networklocation from which the general network-using public has access to downloadusing public-standard network protocols a complete Transparent copy of theDocument, free of added material. If you use the latter option, you must takereasonably prudent steps, when you begin distribution of Opaque copies inquantity, to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute anOpaque copy (directly or through your agents or retailers) of that edition to thepublic.

It is requested, but not required, that you contact the authors of the Documentwell before redistributing any large number of copies, to give them a chance toprovide you with an updated version of the Document.

161

Page 162: Apostila Qmail LDAP

4. MODIFICATIONS

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

• A. Use in the Title Page (and on the covers, if any) a title distinct from thatof the Document, and from those of previous versions (which should, ifthere were any, be listed in the History section of the Document). You mayuse the same title as a previous version if the original publisher of thatversion gives permission.

• B. List on the Title Page, as authors, one or more persons or entitiesresponsible for authorship of the modifications in the Modified Version,together with at least five of the principal authors of the Document (all ofits principal authors, if it has fewer than five), unless they release you fromthis requirement.

• C. State on the Title page the name of the publisher of the ModifiedVersion, 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 thisLicense, in the form shown in the Addendum below.

• G. Preserve in that license notice the full lists of Invariant Sections andrequired 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 theModified Version as given on the Title Page. If there is no section Entitled"History" in the Document, create one stating the title, year, authors, andpublisher of the Document as given on its Title Page, then add an itemdescribing the Modified Version as stated in the previous sentence.

• J. Preserve the network location, if any, given in the Document for publicaccess to a Transparent copy of the Document, and likewise the networklocations given in the Document for previous versions it was based on.These may be placed in the "History" section. You may omit a networklocation for a work that was published at least four years before theDocument itself, or if the original publisher of the version it refers to givespermission.

• K. For any section Entitled "Acknowledgements" or "Dedications", Preservethe Title of the section, and preserve in the section all the substance andtone of each of the contributor acknowledgements and/or dedications giventherein.

162

Page 163: Apostila Qmail LDAP

• L. Preserve all the Invariant Sections of the Document, unaltered in theirtext and in their titles. Section numbers or the equivalent are notconsidered part of the section titles.

• M. Delete any section Entitled "Endorsements". Such a section may not beincluded in the Modified Version.

• N. Do not retitle any existing section to be Entitled "Endorsements" or toconflict in title with any Invariant Section.

• O. Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices thatqualify as Secondary Sections and contain no material copied from theDocument, you may at your option designate some or all of these sections asinvariant. To do this, add their titles to the list of Invariant Sections in theModified Version's license notice. These titles must be distinct from any othersection titles.

You may add a section Entitled "Endorsements", provided it contains nothing butendorsements of your Modified Version by various parties--for example,statements of peer review or that the text has been approved by an organizationas the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passageof up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts inthe 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, previouslyadded by you or by arrangement made by the same entity you are acting onbehalf of, you may not add another; but you may replace the old one, on explicitpermission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License givepermission to use their names for publicity for or to assert or imply endorsementof any Modified Version.

5. COMBINING DOCUMENTS

You may combine the Document with other documents released under thisLicense, 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 ofthe original documents, unmodified, and list them all as Invariant Sections ofyour combined work in its license notice, and that you preserve all theirWarranty Disclaimers.

The combined work need only contain one copy of this License, and multipleidentical Invariant Sections may be replaced with a single copy. If there aremultiple Invariant Sections with the same name but different contents, make thetitle of each such section unique by adding at the end of it, in parentheses, thename of the original author or publisher of that section if known, or else a uniquenumber. Make the same adjustment to the section titles in the list of InvariantSections in the license notice of the combined work.

163

Page 164: Apostila Qmail LDAP

In the combination, you must combine any sections Entitled "History" in thevarious original documents, forming one section Entitled "History"; likewisecombine any sections Entitled "Acknowledgements", and any sections Entitled"Dedications". You must delete all sections Entitled "Endorsements."

6. COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documentsreleased under this License, and replace the individual copies of this License inthe 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 ofthe documents in all other respects.

You may extract a single document from such a collection, and distribute itindividually under this License, provided you insert a copy of this License intothe extracted document, and follow this License in all other respects regardingverbatim copying of that document.

7. AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate andindependent documents or works, in or on a volume of a storage or distributionmedium, is called an "aggregate" if the copyright resulting from the compilationis not used to limit the legal rights of the compilation's users beyond what theindividual works permit. When the Document is included in an aggregate, thisLicense does not apply to the other works in the aggregate which are notthemselves derivative works of the Document.

If the Cover Text requirement of section 3 is applicable to these copies of theDocument, then if the Document is less than one half of the entire aggregate, theDocument's Cover Texts may be placed on covers that bracket the Documentwithin the aggregate, or the electronic equivalent of covers if the Document is inelectronic form. Otherwise they must appear on printed covers that bracket thewhole aggregate.

8. TRANSLATION

Translation is considered a kind of modification, so you may distributetranslations of the Document under the terms of section 4. Replacing InvariantSections with translations requires special permission from their copyrightholders, but you may include translations of some or all Invariant Sections inaddition to the original versions of these Invariant Sections. You may include atranslation of this License, and all the license notices in the Document, and anyWarranty Disclaimers, provided that you also include the original English versionof this License and the original versions of those notices and disclaimers. In caseof a disagreement between the translation and the original version of thisLicense 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) willtypically require changing the actual title.

164

Page 165: Apostila Qmail LDAP

9. TERMINATION

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

10. FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNUFree Documentation License from time to time. Such new versions will be similarin spirit to the present version, but may differ in detail to address new problemsor concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If theDocument specifies that a particular numbered version of this License "or anylater version" applies to it, you have the option of following the terms andconditions either of that specified version or of any later version that has beenpublished (not as a draft) by the Free Software Foundation. If the Document doesnot specify a version number of this License, you may choose any version everpublished (not as a draft) by the Free Software Foundation.

165