17 Dec. 29, 2024, 1:11 p.m.

Настройка PROXYPROTOCOL для почтового сервиса (dovecot + postfix)

Задача: настроить proxyprotocol для почтовой связки и traefik.

В Traefik нужно открыть порты 993 465 25 В настройках postfix внести правки

smtp inet n - y - - smtpd
  -o smtpd_upstream_proxy_protocol=haproxy

smtps inet n - y - - smtpd
-o smtpd_upstream_proxy_protocol=haproxy
-o smtpd_tls_wrappermode=yes

В Dovecot /etc/dovecot/conf.c/10-master.conf сделать правку

haproxy_trusted_networks = 0.0.0.0/0 ::/0
  inet_listener imaps {
    haproxy = yes
    #port = 993
    #ssl = yes
  }

Создать манифест для Traefik

---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
  name: smtp
spec:
  entryPoints:
    - smtp
  routes:
    - match: HostSNI(`*`)
      services:
        - name: <ваш под>
          port: 25
          proxyProtocol:
            version: 2
---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
  name: smtps
spec:
  entryPoints:
    - smtps
  routes:
    - match: HostSNI(`mail.example.com`)
      services:
        - name: <ваш под>
          port: 465
          proxyProtocol:
            version: 2
  tls:
    passthrough: true
---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
  name: imaps
spec:
  entryPoints:
    - imaps
  routes:
    - match: HostSNI(`mail.example.com`)
      services:
        - name: <ваш под>
          port: 993
          proxyProtocol:
            version: 2
  tls:
    passthrough: true