Postfix auto create Maildir

2

Eu tenho batido minha cabeça contra a parede por um tempo agora neste. Basicamente, aqui está o resumo:

Nosso registro MX aponta para um servidor SMTP front-end, que contém aliases para rotear o email. Sem alias, sem acesso ao servidor de armazenamento backend, ao qual nossos clientes se conectam.

Estou atualizando o servidor de e-mail de back-end. Atualmente, um usuário é criado para cada usuário de email no servidor, o que cria a caixa de correio. No novo servidor, tudo é autenticado através do PAM para um servidor LDAP (tudo funcionando corretamente). Meu objetivo é fazer com que o Postfix crie o diretório Maildir para o usuário automaticamente. Isso funciona bem quando eu tenho o diretório / home com permissões 777, mas por razões óbvias, isso deve ser evitado. Eu gostaria de fazer isso com 775 permissões em / home com um proprietário de grupo de qualquer usuário que o Postfix esteja executando, mas não consigo descobrir qual usuário usar. Com as permissões 777, o diretório / home / $ user / Maildir é criado na entrega de mensagens. Alguém sabe como posso fazer isso sem 777 permissões?

O sistema em que estou trabalhando é uma instalação do Debian Lenny 5.07 de 64 bits.

Qualquer conselho seria apreciado.

    
por Eugene 06.01.2011 / 19:37

2 respostas

5

A resposta para isso varia dependendo de como o sistema Postfix está configurado. Você menciona pam e LDAP, então eu suponho que você tenha todos os seus domínios em $ mydestination, ou use apenas um domínio (example.com, por exemplo)

Pode ser mais fácil configurar virtual_mailbox_domains com mapas LDAP em vez de mapas mysql / pgsql (a lógica é exatamente a mesma).

Você cria um único usuário do sistema, sem privilégios de login. Vou assumir um nome de usuário e um grupo de vmail: vmail aqui, mas o nome específico não é importante.

No LDAP, crie seu caminho de caixa de correio relativo a $ HOME para vmail (assim o maildir se tornará / home / vmail / user / Maildir /).

Adicione seus domínios a virtual_mailbox_domains. Crie um mapa virtual_mailbox_maps que inclua o nome de usuário como entrada e retorne username / Maildir como saída.

Definir


virtual_mailbox_domains = example.com
virtual_mailbox_base = /home/vmail/
virtual_mailbox_maps = ldap:/etc/postfix/ldap_virtual.cf
virtual_uid_maps = static:$uid_of_vmail
virtual_gid_maps = static:$gid_of_vmail
#$uid_of_vmail and $gid_of_vmail are obtained from the output of 
#id vmail
em main.cf.

Veja link e link para mais informações (e o que você precisa colocar em ldap_virtual.cf).

FWIW, o Postfix executa o processo de entrega local como o uid / gid do usuário do sistema para o qual você está entregando.

As permissões gerais para / home são 755 com o proprietário e o grupo raiz, mas o usuário pode escrever dentro de ~ user. Portanto, o Postfix terá prazer em entregar para ~ user / Maildir /, mas não poderá criar ~ user. Usar usuários virtuais contornará esse problema concedendo acesso a todas as caixas de correio para um único uid / gid, que é acessado apenas pelo software pop3 / imap. O acesso direto à caixa de correio pelos usuários não será possível.

    
por 06.01.2011 / 21:50
3

Se o postfix (que é membro do grupo mail ) não puder gravar no diretório, não poderá concluir a entrega. O segredo é fazer com que o grupo mail tenha acesso de leitura / gravação no diretório pessoal do usuário . 775 será suficiente para colocar o postfix em / home; mas uma vez lá, pode não ser o suficiente para permitir a criação de um diretório em / home / $ user, porque o grupo atribuído provavelmente não é mail , e o proprietário certamente não é mail , e os bits do mundo são com certeza não definido como rwx . Então, para o postfix, é "sem sopa para você".

Como uma medida de intervalo, você sempre pode definir o grupo do diretório do usuário como mail , mas eu realmente não o recomendo.

Uma solução melhor seria usar atributos estendidos , disponíveis em EXT3 e EXT4. Isso permitiria definir vários grupos, não apenas um. Assim, você pode adicionar o grupo mail a todos os diretórios de usuários com rwx , não r-x , ignorando o problema e permitindo a criação de diretórios.

Apenas curioso, porque não usar /var/spool/mail/$user e acabar com isso? Usar esse arranjo resolveria todo o problema; o grupo para o diretório é defacto mail , ignorando todo o problema "Eu preciso do 777". Eu só posso adivinhar que você tem a necessidade de montar diretórios home de usuário do NFS ou algo assim.

    
por 06.01.2011 / 19:58