Modoboa : serveur postfix relais

modoboa.png Par défaut la configuration psql de modoboa n'écoute pas sur le réseau (et c'est une bonne pratique au niveau sécurité), nous devons cependant modifier celà pour que notre postfix relais puisse faire des requêtes sur le serveur central

su - postgres
psql
-- creer l'utilisateur
CREATE USER remotepostfix WITH PASSWORD 'xxxxxxxxxxxx' NOCREATEDB;
-- on passe sur la base modoboa
\c modoboa
-- donner les droits en lecture aux tables ...
GRANT SELECT ON TABLE admin_alias,modoboa_admin_aliasrecipient,admin_alias,modoboa_admin_aliasrecipient, postfix_autoreply_transport, admin_domain, admin_domainalias, admin_mailbox, admin_mailboxoperation, postfix_relay_domains_relaydomain, postfix_relay_domains_service, modoboa_admin_aliasrecipient, admin_senderaddress, core_user TO remotepostfix;
-- verification des droits
\dp
exit

Ensuite, en tant que postgres on ajoute l'autorisation de se connecter sur le réseau local a la base modoboa pour l'utilisateur remotepostfix

cat >> /etc/postgresql/9.6/main/pg_hba.conf << EOF
host	 modoboa	 remotepostfix	 192.168.12.1/24	 md5
EOF

Enfin il faut ajouter ou modifier la ligne suivante dans le fichier /etc/postgresql/9.6/main/postgresql.conf

listen_addresses = '*'

Maintenant sur le serveur postfix relais nous pouvons faire un test après avoir installé le minimum

apt install postfix-pgsql postgresql-client
psql -h 192.168.12.1 -U remotepostfix -W modoboa

Il faut ensuite configurer le serveur postfix pour qu'il s'appuie sur la base de données de modoboa, pour celà il suffit de s'inspirer des fichiers de configuration du postfix de modoboa, par exemple:

  • main.cf
## Proxy maps
proxy_read_maps =
	proxy:unix:passwd.byname
        proxy:pgsql:/etc/postfix/sql-domains.cf
        proxy:pgsql:/etc/postfix/sql-domain-aliases.cf
        proxy:pgsql:/etc/postfix/sql-aliases.cf
        proxy:pgsql:/etc/postfix/sql-relaydomains.cf
        proxy:pgsql:/etc/postfix/sql-relaydomains-transport.cf
        proxy:pgsql:/etc/postfix/sql-relaydomain-aliases-transport.cf
        proxy:pgsql:/etc/postfix/sql-autoreplies-transport.cf
        proxy:pgsql:/etc/postfix/sql-maintain.cf
        proxy:pgsql:/etc/postfix/sql-relay-recipient-verification.cf
        proxy:pgsql:/etc/postfix/sql-sender-login-mailboxes.cf
        proxy:pgsql:/etc/postfix/sql-sender-login-aliases.cf
        proxy:pgsql:/etc/postfix/sql-sender-login-mailboxes-extra.cf
        proxy:pgsql:/etc/postfix/sql-spliteddomains-transport.cf
## Relay domains
#oui on demande a modoboa quels sont les domaines qu'on gere
relay_domains =
        proxy:pgsql:/etc/postfix/sql-relaydomains.cf

#on laisse faire le serveur principal de modoboa pour ca
transport_maps =
        proxy:pgsql:/etc/postfix/sql-relaydomains-transport.cf
#        proxy:pgsql:/etc/postfix/sql-spliteddomains-transport.cf
#	 proxy:pgsql:/etc/postfix/sql-autoreplies-transport.cf
# Recipient restriction rules
#serveur de mail entrant, on refuse donc ce qui est du reseau local
smtpd_recipient_restrictions =
      permit_mynetworks
      check_recipient_access
          proxy:pgsql:/etc/postfix/sql-maintain.cf
          proxy:pgsql:/etc/postfix/sql-relay-recipient-verification.cf
      reject_unauth_destination
      reject_non_fqdn_sender
      reject_non_fqdn_recipient
      reject_non_fqdn_helo_hostname

#liste des adresses mails existantes
relay_recipient_maps =
        proxy:pgsql:/etc/postfix/sql-sender-login-mailboxes.cf
        proxy:pgsql:/etc/postfix/sql-sender-login-aliases.cf
        proxy:pgsql:/etc/postfix/sql-sender-login-mailboxes-extra.cf
  • exemple d'un fichier SQL (tous les autres sont modifiés de la même manière par rapport aux fichiers livrés sur modoboa) /etc/postfix/sql-maintain.cf
user = remotepostfix
password = xxxxxxxxxxxx
dbname = modoboa
hosts = 192.168.12.1
query = SELECT '450 Requested mail action not taken: mailbox unavailable' FROM admin_mailbox mb INNER JOIN admin_domain dom ON mb.domain_id=dom.id INNER JOIN admin_mailboxoperation mbop ON mbop.mailbox_id=mb.id WHERE dom.name='%d' AND mb.address='%u' LIMIT 1
QR code
Send to friend

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

URL de rétrolien : http://e.garluche.fr/trackback/794