Pesquisa de site

Como configurar e integrar serviços iRedMail ao Samba4 AD DC - Parte 11


Neste tutorial aprenderemos como modificar os daemons principais do iRedMail que fornecem serviços de correio, respectivamente, Postfix usado para transferência de correio e Dovecot que entrega correio para caixas de correio de contas, a fim de integrá-los ambos no Samba4 Active Directory Domain Controller.

Ao integrar o iRedMail a um Samba4 AD DC você se beneficiará dos seguintes recursos: autenticação, gerenciamento e status de usuário via Samba AD DC, criação de listas de e-mail com a ajuda de grupos AD e catálogo de endereços LDAP global no Roundcube.

Requisitos

  1. Instale iRedMail no CentOS 7 para integração Samba4 AD

Etapa 1: Preparar o sistema iRedMail para integração Sama4 AD

1. Na primeira etapa, você precisa atribuir um endereço IP estático para sua máquina caso esteja usando um endereço IP dinâmico fornecido por um servidor DHCP.

Execute o comando ifconfig para listar os nomes das interfaces de rede da sua máquina e editar a interface de rede adequada com suas configurações de IP personalizadas emitindo o comando nmtui-edit na NIC correta.

Execute o comando nmtui-edit com privilégios de root.

ifconfig
nmtui-edit eno16777736

2. Assim que a interface de rede for aberta para edição, adicione as configurações de IP estático adequadas, certifique-se de adicionar os endereços IP dos servidores DNS do seu Samba4 AD DC e o nome do seu domínio para consultar o reino da sua máquina. Use a captura de tela abaixo como guia.

3. Depois de concluir a configuração da interface de rede, reinicie o daemon de rede para aplicar as alterações e emitir uma série de comandos ping nos FQDNs do nome de domínio e dos controladores de domínio samba4.

systemctl restart network.service
cat /etc/resolv.conf     # verify DNS resolver configuration if the correct DNS servers IPs are queried for domain resolution
ping -c2 tecmint.lan     # Ping domain name
ping -c2 adc1            # Ping first AD DC
ping -c2 adc2            # Ping second AD DC

4. Em seguida, sincronize o horário com o controlador de domínio samba instalando o pacote ntpdate e consulte o servidor NTP da máquina Samba4 emitindo os comandos abaixo:

yum install ntpdate
ntpdate -qu tecmint.lan      # querry domain NTP servers
ntpdate tecmint.lan          # Sync time with the domain

5. Talvez você queira que a hora local seja sincronizada automaticamente com o servidor de horário samba AD. Para obter essa configuração, adicione um trabalho agendado para ser executado a cada hora, emitindo o comando crontab -e e anexe a seguinte linha:

0   */1	  *   *   *   /usr/sbin/ntpdate tecmint.lan > /var/log/ntpdate.lan 2>&1

Etapa 2: Preparar o Samba4 AD DC para integração com iRedMail

6. Agora, mude para uma máquina Windows com ferramentas RSAT instaladas para gerenciar o Active Directory Samba4 conforme descrito neste tutorial aqui.

Abra o Gerenciador DNS, vá para as Forward Lookup Zones do seu domínio e adicione um novo registro A, um registro MX e um registro PTR para apontar para o endereço IP do seu sistema iRedMail. Use as capturas de tela abaixo como guia.

Adicione o registro A (substitua o nome e o endereço IP da máquina iRedMail de acordo).

Adicione o registro MX (deixe o domínio filho em branco e adicione uma prioridade 10 para este servidor de e-mail).

Adicione o registro PTR expandindo para Zonas de pesquisa reversa (substitua o endereço IP do servidor iRedMail adequadamente). Caso você ainda não tenha configurado uma zona reversa para seu controlador de domínio, leia o seguinte tutorial:

  1. Gerenciar a política de grupo DNS do Samba4 no Windows

7. Depois de adicionar os registros DNS básicos que fazem um servidor de e-mail funcionar corretamente, vá para a máquina iRedMail, instale o pacote bind-utils e consulte o pacote recém-adicionado. registros de correio conforme sugerido no trecho abaixo.

O servidor DNS Samba4 AD DC deve responder com os registros DNS adicionados na etapa anterior.

yum install bind-utils
host tecmint.lan
host mail.tecmint.lan
host 192.168.1.245

Em uma máquina Windows, abra uma janela do Prompt de comando e emita o comando nslookup nos registros do servidor de e-mail acima.

8. Como pré-requisito final, crie uma nova conta de usuário com privilégios mínimos no Samba4 AD DC com o nome vmail, escolha uma senha forte para este usuário e certifique-se a senha deste usuário nunca expira.

A conta de usuário vmail será usada pelos serviços iRedMail para consultar o banco de dados LDAP Samba4 AD DC e extrair as contas de e-mail.

Para criar a conta vmail, use a ferramenta gráfica ADUC de uma máquina Windows associada ao realm com ferramentas RSAT instaladas conforme ilustrado nas capturas de tela abaixo ou use a linha de comando do samba-tool diretamente de um controlador de domínio conforme explicado no tópico a seguir.

  1. Gerencie o Samba4 Active Directory a partir da linha de comando do Linux

Neste guia, usaremos o primeiro método mencionado acima.

9. No sistema iRedMail, teste a capacidade do usuário vmail de consultar o banco de dados LDAP Samba4 AD DC emitindo o comando abaixo. O resultado retornado deve ser um número total de entradas de objetos para o seu domínio, conforme ilustrado nas capturas de tela abaixo.

ldapsearch -x -h tecmint.lan -D '[email ' -W -b 'cn=users,dc=tecmint,dc=lan'

Nota: Substitua o nome de domínio e o dn base LDAP no Samba4 AD ('cn=users,dc=tecmint,dc=lan' ) de acordo.

Etapa 3: Integrar os serviços iRedMail ao Samba4 AD DC

10. Agora é hora de mexer nos serviços iRedMail (Postfix, Dovecot e Roundcube) para consultar o Controlador de Domínio Samba4 em busca de contas de e-mail.

O primeiro serviço a ser modificado será o agente MTA, Postfix. Emita os comandos a seguir para desabilitar uma série de configurações de MTA, adicione seu nome de domínio ao domínio local Postfix e aos domínios de caixa de correio e use o agente Dovecot para entregar e-mails recebidos localmente nas caixas de correio dos usuários.

postconf -e virtual_alias_maps=' '
postconf -e sender_bcc_maps=' '
postconf -e recipient_bcc_maps= ' '
postconf -e relay_domains=' '
postconf -e relay_recipient_maps=' '
postconf -e sender_dependent_relayhost_maps=' '
postconf -e smtpd_sasl_local_domain='tecmint.lan'	#Replace with your own domain
postconf -e virtual_mailbox_domains='tecmint.lan'	#Replace with your own domain	
postconf -e transport_maps='hash:/etc/postfix/transport'
postconf -e smtpd_sender_login_maps='proxy:ldap:/etc/postfix/ad_sender_login_maps.cf'  # Check SMTP senders
postconf -e virtual_mailbox_maps='proxy:ldap:/etc/postfix/ad_virtual_mailbox_maps.cf'  # Check local mail accounts
postconf -e virtual_alias_maps='proxy:ldap:/etc/postfix/ad_virtual_group_maps.cf'  # Check local mail lists
cp /etc/postfix/transport /etc/postfix/transport.backup	# Backup transport conf file
echo "tecmint.lan dovecot" > /etc/postfix/transport		# Add your domain with dovecot transport
cat /etc/postfix/transport					# Verify transport file
postmap hash:/etc/postfix/transport

11. Em seguida, crie o arquivo de configuração Postfix /etc/postfix/ad_sender_login_maps.cf com seu editor de texto favorito e adicione a configuração abaixo.

server_host     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email 
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,dc=lan
scope           = sub
query_filter    = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= userPrincipalName
debuglevel      = 0

12. Crie /etc/postfix/ad_virtual_mailbox_maps.cf com a seguinte configuração.

server_host     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email 
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,dc=lan
scope           = sub
query_filter    = (&(objectclass=person)(userPrincipalName=%s))
result_attribute= userPrincipalName
result_format   = %d/%u/Maildir/
debuglevel      = 0

13. Crie /etc/postfix/ad_virtual_group_maps.cf com a configuração abaixo.

server_host     = tecmint.lan
server_port     = 389
version         = 3
bind            = yes
start_tls       = no
bind_dn         = [email 
bind_pw         = ad_vmail_account_password
search_base     = dc=tecmint,dc=lan
scope           = sub
query_filter    = (&(objectClass=group)(mail=%s))
special_result_attribute = member
leaf_result_attribute = mail
result_attribute= userPrincipalName
debuglevel      = 0

Em todos os três arquivos de configuração, substitua os valores de server_host, bind_dn, bind_pw e search_base para refletir seu próprio domínio personalizado configurações.

14. Em seguida, abra o arquivo de configuração principal do Postfix e pesquise e desative iRedAPD check_policy_service e smtpd_end_of_data_restrictions adicionando um comentário # na frente das seguintes linhas.

nano /etc/postfix/main.cf

Comente as seguintes linhas:

#check_policy_service inet:127.0.0.1:7777
#smtpd_end_of_data_restrictions = check_policy_service inet:127.0.0.1:7777

15. Agora, verifique a ligação do Postfix ao Samba AD usando um usuário de domínio existente e um grupo de domínio emitindo uma série de consultas conforme apresentado nos exemplos a seguir.

O resultado deve ser semelhante ao ilustrado na imagem abaixo.

postmap -q [email  ldap:/etc/postfix/ad_virtual_mailbox_maps.cf
postmap -q [email  ldap:/etc/postfix/ad_sender_login_maps.cf
postmap -q [email  ldap:/etc/postfix/ad_virtual_group_maps.cf

Substitua as contas de usuário e grupo do AD adequadamente. Além disso, certifique-se de que o grupo AD que você está usando tenha alguns membros de usuários AD atribuídos a ele.

16. Na próxima etapa, modifique o arquivo de configuração do Dovecot para consultar o Samba4 AD DC. Abra o arquivo /etc/dovecot/dovecot-ldap.conf para edição e adicione as seguintes linhas.

hosts           = tecmint.lan:389
ldap_version    = 3
auth_bind       = yes
dn              = [email 
dnpass          = ad_vmail_password
base            = dc=tecmint,dc=lan
scope           = subtree
deref           = never
user_filter     = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_filter     = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_attrs      = userPassword=password
default_pass_scheme = CRYPT
user_attrs      = =home=/var/vmail/vmail1/%Ld/%Ln/Maildir/,=mail=maildir:/var/vmail/vmail1/%Ld/%Ln/Maildir/

A caixa de correio de uma conta Samba4 AD será armazenada no local /var/vmail/vmail1/your_domain.tld/your_domain_user/Maildir/ no sistema Linux.

17. Certifique-se de que os protocolos pop3 e imap estejam ativados no arquivo de configuração principal do dovecot. Verifique se os plug-ins de email quota e acl também estão ativados abrindo o arquivo /etc/dovecot/dovecot.conf e verifique se esses valores estão presentes.

18. Opcionalmente, se você quiser definir uma cota fixa global para não exceder o máximo de 500 MB de armazenamento para cada usuário de domínio, adicione a seguinte linha em /etc/dovecot/dovecot. conf arquivo.

quota_rule = *:storage=500M 

19. Finalmente, para aplicar todas as alterações feitas até agora, reinicie e verifique o status dos daemons Postfix e Dovecot emitindo os comandos abaixo com privilégios de root.

systemctl restart postfix dovecot
systemctl status postfix dovecot

20. Para testar a configuração do servidor de e-mail a partir da linha de comando usando o protocolo IMAP, use o comando telnet ou netcat conforme apresentado no exemplo abaixo.

nc localhost 143
a1 LOGIN ad_user@your_domain.tld ad_user_password
a2 LIST “” “*”
a3 LOGOUT

Se você puder realizar um login IMAP a partir da linha de comando com uma conta de usuário Samba4, o servidor iRedMail parecerá pronto para enviar e receber mensagens para contas do Active Directory.

No próximo tutorial discutiremos como integrar o webmail Roundcube com Samba4 AD DC e habilitar o catálogo de endereços LDAP global, personalizar o Roudcube, acessar a interface web do Roundcube a partir de um navegador e desabilitar alguns serviços iRedMail desnecessários.