5 votes

Hybride gmail MX + postfix pour les comptes locaux

Voici l'installation :

Nous avons un domaine, mondomaine.com. Tout est sur notre propre serveur, sauf les comptes de messagerie générale qui passent par gmail.

Actuellement, gmail est défini comme l'enregistrement MX.

Le serveur a également divers alias de courrier électronique qu'il doit prendre en charge pour les traqueurs de bogues et autres. Par exemple, bugs@mydomain.com |/path/to/issuetracker.script.

J'ai du mal à mettre en place une configuration qui permet ce qui suit, à la fois localement et à partir des clients de messagerie des utilisateurs.

  1. guser1 - a un compte gmail et un compte local
  2. guser2 - possède uniquement un compte gmail
  3. bugs - a un alias "pipe" dans /etc/aliases pour le traqueur de problèmes

Scénarios

  • le courrier adressé à guser1@mydomain.com à partir de l'hôte local (crons et autres) doit aller au compte gmail
  • courrier à guser2@mydomain.com à partir de l'hôte local
  • le courrier adressé à bugs@mydomain.com doit être acheminé vers le gestionnaire de problèmes local script.

La première étape a donc consisté à créer une carte des transports. Dans ce scénario, notre serveur est défini comme MX et les emails destinés à l'utilisateur* sont envoyés à gmail. Mettez les utilisateurs de gmail dans une carte comme ceci :

guser1@mydomain.com smtp:gmailsmtp:25
guser2@mydomain.com smtp:gmailsmtp:25

Problèmes :

  • Ignore les extensions telles que guser1+extension@mydomain.com
  • Ne fonctionne que si append_at_myorigin = no (si défini à yes, gmail refuse de se connecter avec : E4C7E3E09BA3 : to=, relay=none, delay=0.05, delays=0.02/0.01/0.02/0, dsn=4.4.1, status=deferred (connect to gmail-smtp-in.l.google.com [209.85.222.57]:25 : Connection refused))
  • depuis que append_at_myorigin est réglé sur no, tous les emails reçus ont (expéditeur inconnu)

La deuxième étape a consisté à définir des alias explicites pour localhost dans /etc/aliases et à effectuer une redirection à l'échelle du domaine sur mydomain. Cela nécessite également de définir le serveur local comme MX :

root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25

Problèmes : * Si je crée une carte de transport pour un domaine qui correspond à "$myhostname", le fichier d'alias n'est jamais analysé. Ainsi, lorsqu'un utilisateur local (ou un démon) envoie un courrier électronique du type :

mail -s "testing" root < text.txt

Postfix ignore l'entrée /etc/alias et établit une correspondance avec root@mydomain.com et tente de l'envoyer à la correspondance de transport gmail.

Troisième coup de couteau :

Créez un sous-domaine pour les bogues, quelque chose comme bugs.mondomaine.com. Définissez le MX de ce domaine sur le serveur local et laissez le MX de mydomain.com sur le serveur Gmail.

Problèmes : * Ne résout pas le problème des comptes locaux. Ainsi, lorsque le bug tracker répond à un courriel de guser1@mydomain.com, il utilise un transport local et l'utilisateur ne reçoit jamais le courriel.

% postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_at_myorigin = no
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$myhostname, localhost
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = 
smtp_tls_cert_file = /etc/ssl/certs/kspace.pem
smtp_tls_enforce_peername = no
smtp_tls_key_file = /etc/ssl/certs/kspace.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_scert_verifydepth = 5
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks,   reject_invalid_hostname,   reject_non_fqdn_sender,   reject_non_fqdn_recipient,   reject_unknown_sender_domain,   reject_unknown_recipient_domain,   reject_unauth_destination
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport

2voto

AndreasM Points 1063

Passez au virtuel. Lisez les docs VIRTUAL par postfix. Vous avez beaucoup plus de contrôle de cette façon.

main.cf :

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtualmailboxmap
virtual_mailbox_domains = mydomain.com
virtual_transport = local:

virtuel, listez tous les utilisateurs que vous avez

localuser  localuser
somealias  localuser
guser1     guser1@gmail.mydomain.com,guser1
bugs       issuetracker@issuetracker.mydomain.com

virtualmailboxmap, liste tous les utilisateurs locaux, la partie droite n'a pas d'importance !

 localuser   rhsunused
 guser1      rhsunused

transport :

 mydomain.com      local:
 gmail.mydomain.com smtp:gmailsmtp:25
 issuetracker.mydomain.com smtp:[issuetracker ip]:25

J'ai eu ce problème avec un cyrus : transport pour les comptes locaux. Je sais que ce n'est pas une réponse complète à toutes vos questions, mais cela peut être un début.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X