Para instalar o servidor de e-mail é necessário que os seguintes pré-requisitos estejam instalados.
Pré-requisito:
- Instalar e Configurar o LDAP;
- Instalar e configurar o Gosa;
- Instalar e configurar o libnss-ldap (nsswitch.conf);
- Ubuntu Server (pode ser outro)
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 & 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.
0sem comentários ainda