Ir para o conteúdo
ou

Software livre Brasil

0 comunidades

Nenhum(a)

 Voltar a Blog
Tela cheia

Servidor de Email – Integração Perfeita entre Gosa e Postfix

22 de Abril de 2009, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 2418 vezes

Para instalar o servidor de e-mail é necessário que os seguintes pré-requisitos estejam instalados.

Pré-requisito:

1. LDAP

Crie o schema gosa_custom.schema e copie para o diretório /etc/ldap/schema. E adicione este schema no slapd.conf. É necessário criar este schema para expandir os atributos do Gosa acrescentando o gosaMailHome que gravara o path do email de cada usuário.

  • gosa_custom.schema  

1
2
3
4
5
6
7
8
9
attributetype ( 1.3.6.1.4.1.25981.1.1.1 NAME 'gosaMailHome'
    DESC 'The absolute path to the mail message stor directory in a/ virtual mail setup.'
    EQUALITY caseExactIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
 
objectclass ( 1.3.6.1.4.1.25981.1.2.1 NAME 'gosaVirtualMailAccount'
    SUP top AUXILIARY
    DESC 'Objectclass to mark Virtual MailAccounts for GOsa (v2.4)'
    MAY ( gosaMailHome ) )
  • slapd.conf

Para o atributo gosaMailHome estar disponível na base ldap, é necessário acrescentar o schema gosa_custom.schema no slapd.conf.  

include           /etc/ldap/schema/gosa_custom.schema

Reinicie o servidor LDAP após essa alteração.

2. Gosa

Levando em consideração que o GOSA está instalado e funcionando, vamos alterar o gosa.conf para acrescentar o script create_user.sh. Este script é executado na criação do usuário. Após a criação do usuário, o script create_user.sh deve ser executado.

  • /etc/gosa.conf

Altere o gosa.conf, e altere a linha do posixAccount.

<plugin acl="default" class="posixAccount" icon="posix.png" path="plugins/personal/posix" postcreate="/usr/bin/sudo /etc/gosa/create_user.sh %uid"></plugin>
  • /etc/sudoers

O script create_user.sh é executado pelo usuário do apache. Para o script funcionar corretamente é necessário atribuir permissão de administrador para este usuário. Para isso que alteramos o arquivo /etc/sudoers.

www-data   ALL=(ALL)  NOPASSWD:ALL
  • /etc/gosa/create_user.sh

Crie o script create_user.sh no diretório /etc/gosa. Este script faz as seguintes tarefas:

  • Cria o diretório home do usuário (/home)
  • Define as permissões de acesso do usuário no diretório home que foi criado.
  • Acrescenta o atributo gosaMailHome. Este atributo é utilizado para definir o diretório que será armazenado os e-mails
  • Este script também criar a estrutura do Maildir para possibilitar que o usuário realize autenticação no webmail.  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
HOME=$(getent passwd $1| sed -n -e "/^$1:x:[[:digit:]]*:[[:digit:]]*:.*:\(.*\):.*/{s//\1/;p;q;}")
if [[ -d $HOME ]]; then
        exit 1
fi
GROUP=$(getent passwd $1| sed -n -e "/^$1:x:[[:digit:]]*:\([[:digit:]]*\):.*/{s//\1/;p;q;}")
mkdir $HOME
chown $1:$GROUP $HOME
LDAPDN=`ldapsearch -h localhost -x -b "dc=trigo" -D "cn=manager,dc=trigo" -w x "(uid=$1)"|grep dn`
(
echo ""
echo "$LDAPDN"
echo "changetype: modify"
echo "add: objectClass"
echo "objectClass: gosaVirtualMailAccount"
echo ""
echo "$LDAPDN"
echo "changetype: modify"
echo "add: gosaMailHome"
echo "gosaMailHome: /var/vmail/$1"
) | ldapmodify -a -x -D "cn=manager,dc=trigo" -w x -h localhost -v
maildirmake /var/vmail/$1/
chown -R vmail:vmail /var/vmail/$1
chmod -R 2770 /var/vmail/$1

3. Gosa, Criação de Servidor e Usuário

Antes de começar a instalar e configurar o PostFix, vamos criar a estrutura na base LDAP para criação de usuário.

Crie o servidor de E-Mail utilizando o GOSA. Para isso acesse no menu do lado esquerdo do Gosa a opção "Systems", e em seguida um novo servidor com a opção "new server", como mostra a figura 1. A criação do servidor de e-mail no Gosa é apenas um cadastro que define um nome e um ip. Este cadastro não tem relação com a configuração do PostFix.


Figura 1 – Cadastro do Servidor de E-Mail no Gosa.

Preencha os dados na opção na aba "Generic", em seguida na aba "Services", habilite a opção "Mail server".

Após a criação do servidor no Gosa, vamos criar o usuário com os seguintes dados:

  • Dados da Conta Unix
  • Conta de Email
  • Conta do Samba

Para isso acesse no menu do lado esquerdo do Gosa a opção "Users", em seguida a opção "create new user" para criar um novo usuário. Na aba "Generic", preencha os dados, levando em consideração "Login", como mostra a figura2.


Figura 2 – Criação de um novo usuário

Antes de clicar em "save", preencha os dados da aba "Unix" preenchendo os dados inclusive a opção "Home directory" que define o path do diretório home do usuário

Figura3 – Cadastro da conta Unix.

Também preencha os dados da aba "Mail" inclusive a opção "Primary address" que define o email do usuário, conforme a figura 4.

Figura 4 – Cadastro da Aba Mail

Para preencha os dados da aba "Samba".

4. Postfix

Com os usuários criados pelo Gosa, vamos instalar e configurar o PostFix. No ubuntu-server, o PostFix pode ser instalado usando a ferramenta apt-get.  

#apt-get install postfix postfix-ldap

 Após a instalação, crie o usuário vmail. Este usuário que faz o gerenciamento das contas de email.  

# useradd -m -d /var/vmail vmail

 Utilize o arquivo main.cf abaixo como base para a configuração do postfix.

  • main.cf

Até este ponto, o LDAP deve estar configurado e a criação de usuário pelo Gosa deve estar pronta. Portanto vamos partir para instalação e configuração do PostFix. Utilize o arquivo main.cf abaixo como modelo. Lembre-se têm vários parâmetros que não estão definidos neste arquivo. Altere também as entradas do LDAP.

Altere as seguintes atributos do main.cf

  • Domínio de e-mail;
  • Endereço de rede;
  • Conexão com o servidor LDAP;
  • Altere o uid e gid do vmail (virtual_uid_maps)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
delay_warning_time = 4h
biff = no
myhostname = sunblack.trigo.net
mydomain = trigo.net
mynetworks = 10.0.0.0/24
myorigin = /etc/mailname
mydestination = $myhostname,localhost.$mydomain,localhost, $mydomain, mail.$mydomain, 
                www.$mydomain, ftp.$mydomain
alias_maps = hash:/etc/aliases
relay_domains           = $mydomain
relayhost               =
inet_interfaces = all
alias_database  = hash:/etc/aliases
mail_owner = postfix
default_privs = vmail
local_recipient_maps = $alias_maps $virtual_mailbox_maps
recipient_delimiter  = +
readme_directory  = no
html_directory   = no
mail_spool_directory = /var/spool/mail
unknown_local_recipient_reject_code = 500
home_mailbox = Maildir
mailbox_transport = virtual:
mailbox_command = /usr/bin/procmail
mailbox_command_maps = ldap:accounts
virtual_maps = ldap:accountsmap
virtual_mailbox_base = /
virtual_mailbox_maps = ldap:accounts
mailbox_size_limit = 51200000
Message_size_limit = 10240000
debug_peer_level = 2
debugger_command=PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/binxxgdb \
                     $daemon_directory/$process_name $process_id &amp; sleep 5
new_aliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = postdrop
sample_diretory = /etc/postfix/
smtpd_recipient_limit = 100
strict_rfc821_envelopes = yes
sendmail_path = /usr/sbin/sendmail
manpage_directory = /usr/local/man
virtual_uid_maps = static:1003
virtual_gid_maps = static:1003
virtual_maildir_extended = yes
accountsmap_server_host  = localhost
accountsmap_bind_dn  = cn=manager,dc=trigo
accountsmap_bind_pw  = x
accountsmap_search_base = dc=trigo
accountsmap_query_filter=(|(mail=%s)(gosaMailAlternateAdress=%s))
accountsmap_result_attribute = mail,gosaMailForwardingAddress
accountsmap_bind = yes
accounts_server_host= localhost
accounts_bind_dn = cn=manager,dc=trigo
accounts_bind_pw = x
accounts_search_base = dc=trigo
accounts_query_filter = (|(mail=%s)(gosaMailAlternateAdress=%s))
accounts_result_attribute = gosaMailHome
accounts_bind = yes

 Reinicie o servidor postfix e vamos fazer um teste para fazer se o servidor esta funcionando corretamente.  

#telnet 0 25
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.
220 sunblack.trigo.net ESMTP Postfix (Debian/GNU)
helo teste
250 sunblack.trigo.net
mail from:<raquel@trigo.net>
250 2.1.0 Ok
rcpt to:<ricardo@trigo.net>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Email de Teste
.
250 2.0.0 Ok: queued as 7AD62B363

 Neste teste estamos enviando um email através do telnet.Para verificar se o teste funcionou corretamente, verifique se o email esta dentro do diretório /var/vmail.

5. Courier-IMAP

Para a leitura do email vamos utilizar o courier-imap. Para isso instale os seguintes pacotes utilizando o apt-get.  

# apt-get install courier-authlib-ldap  courier-imap  courier-pop

 A configuração do courier-imap consiste na configuração do método de autenticação.

  • /etc/ courier/authdaemonrc

O arquivo authdaemonrc define o método de autenticação. Neste arquivo definimos que autenticação será feita através do LDAP.  

1
2
3
4
5
6
7
8
authmodulelist="authldap"
authmodulelistorig="authuserdb authpam authpgsql authldap authmysql \
                    authcustom authpipe"
daemons=5
authdaemonvar=/var/run/courier/authdaemon
DEBUG_LOGIN=0
DEFAULTOPTIONS=""
LOGGEROPTS=""
  • /etc/courier/authldaprc

No arquivo authldaprc são definidos os parâmetros de autenticação com o servidor LDAP. Ajuste os parâmetros com as suas configurações.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LDAP_PROTOCOL_VERSION   3
LDAP_URI		ldap://localhost
LDAP_BASEDN             ou=people,dc=trigo
LDAP_BINDDN             cn=manager,dc=trigo
LDAP_BINDPW             x
LDAP_TIMEOUT            5
LDAP_MAIL               mail
LDAP_FILTER             (objectClass=gosaMailAccount)
LDAP_DOMAIN             trigo.net
LDAP_GLOB_UID           vmail
LDAP_GLOB_GID           vmail
LDAP_HOMEDIR            gosaMailHome
LDAP_MAILDIR            gosaMailHome
LDAP_DEFAULTDELIVERY    defaultDelivery
LDAP_FULLNAME           cn
LDAP_CRYPTPW            userPassword
LDAP_DEREF              never
LDAP_TLS                0

6. Webmail – Squirrelmail

Após a configuração do postfix e courier também é necessário a instalação e configuração de um webmail. Utilizaremos o squirrelmail como o nosso webmail. O primeiro passo para termos o webmail é a instalação.  

#apt-get install squirrelmail

Após a instalação, copie o arquivo de configuração do apache para o squirrealmail para a configuração do apache.  

#cp /etc/squirrelmail/apache.conf /etc/apache2/sites-enabled/

 Em seguida rode a configuração do squirrelmail.  

#/etc/squirrelmail/conf.pl

 Este comando é utilizado para configurar o Squirrelmail, como mostra a figura 5.

Figura 5 – Configuração do Webmail

E por ultimo reinicie o servidor webmail e acesse o webmail pelo endereço: http://localhost/squirrelmail.

Para colocar o servidor de email em produção é recomendável turbinar o seu servidor de email com:

  • Autenticação smtp;
  • Anti-Virus
  • Antispam

Entre outros.

 


Fonte: http://www.nisled.org/?p=149

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.