Servidor · 10 min read · Sep 09, 2025
Servidor de Diretório Mandriva no Debian Etch
Servidor de Diretório Mandriva no Debian Etch
Versão 1.1
Autor: Oliver Meyer
Este documento descreve como configurar o Servidor de Diretório Mandriva (MDS) no Debian Etch. O sistema resultante fornece um servidor de escritório completo para pequenas e médias empresas - fácil de administrar através do Console de Gerenciamento Mandriva (MMC) baseado na web.
Principais Recursos
- Administração fácil via MMC
- Integração OpenLDAP em todo o sistema
- Controlador de Domínio Primário (PDC) SAMBA
- Servidor de Email Postfix com Dovecot, Amavis, Spamassassin e ClamAV (POP3/IMAP/SSL/TLS/Quota)
- Servidor DNS BIND
- Servidor DHCP ISC
- Proxy web Squid com SquidGuard
Este howto é um guia prático sem qualquer garantia - não cobre os fundamentos teóricos. Existem muitas maneiras de configurar tal sistema - este é o caminho que escolhi.
Preâmbulo
Este howto é bastante complexo. Por favor, leve seu tempo, leia-o extensivamente e siga os passos minuciosamente. A menor variação pode afetar o funcionamento correto da sua configuração.
1 Preparação
1.1 Sistema Básico
Configure um sistema padrão Debian Etch e atualize-o. Eu usei a seguinte configuração para este howto e a máquina virtual anexada que está disponível para nossos assinantes:
Hostname: server1.example.com
Domínio SAMBA: EXAMPLE
IP: 192.168.0.100
Gateway: 192.168.0.2
Todas as Senhas: howtoforge
1.2 Nome do Host
Edite o arquivo hosts - atribua o nome do host ao IP do servidor.
vi /etc/hostsDeve ficar assim:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# As linhas a seguir são desejáveis para hosts compatíveis com 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-allhostsDepois insira o nome do host no arquivo hostname …
echo server1.example.com > /etc/hostname… e reinicie o sistema.
rebootQuando o sistema estiver novamente ativo, a saída dos dois comandos …
hostname… e …
hostname -f… deve ser:
server1.example.com1.3 ACLs do Sistema de Arquivos
Para que o SAMBA consiga mapear ACLs do sistema de arquivos entre o servidor Linux e os clientes Windows, você precisa adicionar suporte a ACL ao ponto de montagem correspondente.
vi /etc/fstabAdicione a opção “ acl “ ao ponto de montagem onde os diretórios SAMBA serão armazenados e os usuários SAMBA terão seus lares. No meu caso é “ / “ - o conteúdo deve ficar assim:
# /etc/fstab: informações estáticas do sistema de arquivos.
#
#
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,acl,errors=remount-ro 0 1
/dev/sda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 Depois, remonte o ponto de montagem para que as alterações tenham efeito.
mount -o remount /Se tudo correr bem, o comando …
mount -l… deve mostrar a opção “ acl “ para o ponto de montagem correspondente:
/dev/sda1 on / type ext3 (rw,acl,errors=remount-ro)2 Repositórios
2.1 MDS
O repositório MDS fornece os pacotes relacionados ao MDS e também pacotes corrigidos para bind9 & dhcp3.
vi /etc/apt/sources.listAdicione as seguintes linhas ao arquivo.
# Repositório MDS
deb http://mds.mandriva.org/pub/mds/debian etch main2.2 Debian Volatile
O repositório Debian Volatile fornece pacotes mais novos para ClamAV & Spamassassin do que o repositório padrão do Debian.
vi /etc/apt/sources.listAdicione as seguintes linhas ao arquivo.
# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free2.3 Debian Backports
O repositório Debian Backports fornece pacotes mais novos para dovecot.
vi /etc/apt/sources.listAdicione as seguintes linhas ao arquivo.
# Debian Etch Backports
deb http://www.backports.org/debian etch-backports mainDepois, atualize o apt.
apt-get update3 Pacotes Necessários
3.1 Instalação
Instale os pacotes necessários para esta configuração.
apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2 libsasl2-modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free unzoo arj spamassassin libnet-dns-perl razor pyzor dcc-client slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server dhcp3-server-ldap bind9 samba smbclient smbldap-tools cupsys cupsys-client foomatic-db-engine foomatic-db foomatic-db-hpijs foomatic-db-gutenprint foomatic-filters foomatic-filters-ppds fontconfig hpijs-ppds linuxprinting.org-ppdsOs pacotes dovecot atuais no repositório padrão do Debian têm um bug em conjunto com LDAP - então você deve usar os pacotes dovecot do Debian Backports.
apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3dSe você quiser usar impressoras HP, é recomendado instalar mais alguns pacotes.
apt-get install hplip libusb-dev python-dev python-reportlab libcupsys2-dev libjpeg62-dev libsnmp9-dev lsb-core3.2 Configuração
Durante a instalação dos novos pacotes, você será solicitado a responder algumas perguntas - responda da seguinte forma.
3.2.1 LDAP
Digite a senha para o admin LDAP e confirme-a. ( howtoforge)
3.2.2 Samba
Digite um nome para seu domínio. ( EXAMPLE)
Selecione “ Não “ quando perguntado se o smb.conf deve ser modificado para usar as configurações WINS do DHCP.
3.2.3 Postfix
Selecione “ Site da Internet “ como tipo geral de configuração.
Digite “ server1.example.com “ como nome de email.
3.2.4 Libnss-LDAP
Digite “ ldap://127.0.0.1/ “ como URI do servidor LDAP.
Digite “ dc=example,dc=com “ como nome para a base de pesquisa.
Selecione a versão do LDAP. ( 3)
Digite “ cn=admin,dc=example,dc=com “ como conta LDAP para root.
Digite a senha para o admin LDAP. ( howtoforge)
3.2.5 Libpam-LDAP
Selecione “ Sim “ quando perguntado se o root local deve ser o administrador do banco de dados.
Selecione “ Não “ quando perguntado se o banco de dados LDAP requer login.
Digite “ cn=admin,dc=example,dc=com “ como conta LDAP para root.
Digite a senha para o admin LDAP. ( howtoforge)
4 Configuração do LDAP
4.1 Arquivos de Esquema
Primeiro, copie os arquivos de esquema para MMC, email, SAMBA, impressora, DNS e DHCP para o diretório de esquema LDAP.
cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/printer.schema.gz > /etc/ldap/schema/printer.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema
zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schemaEm seguida, inclua os arquivos de esquema na configuração do LDAP
vi /etc/ldap/slapd.confInclua os arquivos de esquema após o esquema inetorgperson.
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schemaAtive a verificação de esquema (abaixo dos arquivos de esquema incluídos).
schemacheck on4.2 Configuração Básica
Nesta etapa, você precisará da senha do admin ldap (que você definiu durante a instalação do pacote na etapa 3) em forma criptografada (SSHA) - então vamos criptografá-la.
slappasswd -s %ldap_admin_password%Ex.:
slappasswd -s howtoforgeA saída deve ser parecida com isto:
{SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9AAnote e prossiga - abra o arquivo de configuração do servidor LDAP.
vi /etc/ldap/slapd.confProcure a linha comentada com a entrada para o admin LDAP (rootdn) …
# rootdn "cn=admin,dc=example,dc=com"… e comente-a. Depois disso, adicione uma nova linha logo abaixo. Você deve inserir a senha admin ldap criptografada que você gerou no início desta etapa.
rootpw %encrypted_ldap_admin_password%Ex.:
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9AEm seguida, precisamos modificar as opções de indexação para o banco de dados. Procure a seguinte entrada:
# Opções de indexação para o banco de dados #1Remova a linha abaixo …
index objectClass eq… e insira as seguintes linhas:
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eqAgora adicione SAMBA à lista de acesso para o banco de dados. Procure a seguinte linha:
access to attrs=userPassword,shadowLastChangeAltere-a para que fique assim:
access to attrs=userPassword,sambaLMPassword,sambaNTPasswordNeste ponto, o arquivo de configuração do servidor LDAP deve ficar assim:
# Este é o arquivo de configuração principal do slapd. Veja slapd.conf(5) para mais
# informações sobre as opções de configuração.
#######################################################################
# Diretrizes Globais:
# Recursos a permitir
#allow bind_v2
# Definições de esquema e objectClass
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/printer.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema
schemacheck on
# Onde o arquivo pid é colocado. O script init.d
# não irá parar o servidor se você mudar isso.
pidfile /var/run/slapd/slapd.pid
# Lista de argumentos que foram passados para o servidor
argsfile /var/run/slapd/slapd.args
# Leia slapd.conf(5) para valores possíveis
loglevel 0
# Onde os módulos carregados dinamicamente são armazenados
modulepath /usr/lib/ldap
moduleload back_bdb
# O número máximo de entradas que é retornado para uma operação de pesquisa
sizelimit 500
# O parâmetro tool-threads define a quantidade real de CPUs que é usada
# para indexação.
tool-threads 1
#######################################################################
# Diretrizes Específicas do Backend para bdb:
# Diretrizes específicas do backend se aplicam a este backend até que outro
# diretiva 'backend' ocorra
backend bdb
checkpoint 512 30
#######################################################################
# Diretrizes Específicas do Backend para 'outro':
# Diretrizes específicas do backend se aplicam a este backend até que outro
# diretiva 'backend' ocorra
#backend
#######################################################################
# Diretrizes Específicas para o banco de dados #1, do tipo bdb:
# Diretrizes específicas do banco de dados se aplicam a este banco de dados até que outro
# diretiva 'database' ocorra
database bdb
# A base do seu diretório no banco de dados #1
suffix "dc=example,dc=com"
# diretiva rootdn para especificar um superusuário no banco de dados. Isso é necessário
# para syncrepl.
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
# Onde os arquivos do banco de dados são fisicamente armazenados para o banco de dados #1
directory "/var/lib/ldap"
# Para o pacote Debian, usamos 2MB como padrão, mas tenha certeza de atualizar este
# valor se você tiver muita RAM
dbconfig set_cachesize 0 2097152 0
# Sven Hartge relatou que teve que definir este valor incrivelmente alto
# para fazer o slapd funcionar. Veja http://bugs.debian.org/303057
# para mais informações.
# Número de objetos que podem ser bloqueados ao mesmo tempo.
dbconfig set_lk_max_objects 1500
# Número de bloqueios (tanto solicitados quanto concedidos)
dbconfig set_lk_max_locks 1500
# Número de bloqueadores
dbconfig set_lk_max_lockers 1500
# Opções de indexação para o banco de dados #1
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq
# Salve o tempo que a entrada é modificada, para o banco de dados #1
lastmod on
# Onde armazenar os logs de réplica para o banco de dados #1
# replogfile /var/lib/ldap/replog
# A userPassword por padrão pode ser alterada
# pela entrada que a possui se estiver autenticada.
# Outros não devem ser capazes de vê-la, exceto a
# entrada admin abaixo
# Essas linhas de acesso se aplicam apenas ao banco de dados #1
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by dn="cn=admin,dc=example,dc=com" write
by anonymous auth
by self write
by * none
# Garantir acesso de leitura à base para coisas como
# supportedSASLMechanisms. Sem isso você pode
# ter problemas com SASL não sabendo quais
# mecanismos estão disponíveis e assim por diante.
# Note que isso é coberto pela ACL 'access to *'
# abaixo também, mas se você mudar isso como as pessoas
# costumam fazer, você ainda precisará disso se você
# quiser que o SASL (e possivelmente outras coisas) funcione
# felizmente.
access to dn.base="" by * read
# O dn admin tem acesso total de escrita, todos os outros
# podem ler tudo.
access to *
by dn="cn=admin,dc=example,dc=com" write
by * read
# Para suporte de Roaming do Netscape, cada usuário recebe um
# perfil de roaming para o qual eles têm acesso de escrita a
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=example,dc=com" write
# by dnattr=owner write
#######################################################################
# Diretrizes Específicas para o banco de dados #2, do tipo 'outro' (pode ser bdb também):
# Diretrizes específicas do banco de dados se aplicam a este banco de dados até que outro
# diretiva 'database' ocorra
#database
# A base do seu diretório para o banco de dados #2
#suffix "dc=debian,dc=org" Além disso, você deve editar o arquivo de configuração do LDAP.
vi /etc/ldap/ldap.confAdicione as seguintes linhas: host 127.0.0.1
base dc=example,dc=com
Depois, reinicie o servidor LDAP.
/etc/init.d/slapd restartReceba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.