Belaaschtung an der Zimbra Open-Source Edition mat HAProxy

Eng vun den Haaptaufgaben beim Bau vun enger grousser Zimbra OSE Infrastruktur ass déi richteg Laaschtbalancéierung. ZousÀtzlech zu der Tatsaach datt et d'Fehlertoleranz vum Service erhéicht, ouni Belaaschtung ass et onméiglech déi selwecht ReaktiounsfÀegkeet vum Service fir all Benotzer ze garantéieren. Fir dëse Problem ze léisen, gi Lastbalancer benotzt - Software an Hardwareléisungen déi Ufroen tëscht Serveren ëmverdeelen. Dorënner ginn et zimlech primitiv, wéi RoundRobin, déi einfach all uschléissend Ufro un den nÀchste Server an der Lëscht schéckt, an et ginn och méi fortgeschratt, zum Beispill HAProxy, dee vill an héichbelaaschte Recheninfrastrukturen benotzt gëtt wéinst engem Zuel vu bedeitende Virdeeler. Loosst eis kucken wéi Dir den HAProxy Loadbalancer an den Zimbra OSE zesumme maache kënnt.

Belaaschtung an der Zimbra Open-Source Edition mat HAProxy

Also, laut de Problemspezifikatioune kréie mir eng Zimbra OSE Infrastruktur, déi zwéi Zimbra Proxien, zwéi LDAP Serveren, eng LDAP Replica, véier Mailbox SpÀicher mat jee 1000 Mailboxen an drÀi MTAen enthÀlt. Well mir et mat engem Mailserver ze dinn hunn, kritt en drÀi Zorte vu Verkéier, déi ausgeglach musse ginn: HTTP fir de Web Client ze lueden, souwéi POP an SMTP fir d'E-Mail Weiderleitung. Den HTTP Verkéier gëtt geschéckt un Serveren Zimbra Proxy mat IP Adressen 192.168.0.57 an 192.168.0.58, an den SMTP Traffic geet op MTA Server mat IP Adressen 192.168.0.77 an 192.168.0.78.

WĂ©i virdru scho gesot, benotze mir den HAProxy Load Balancer, fir eng glĂ€ichmĂ©isseg Verdeelung vun Ufroen tĂ«scht de Serveren ze garantĂ©ieren, deen um Ingress-Knuet vun der Zimbra-Infrastruktur leeft. Ubuntu 18.04. D'Installatioun vun Haproxy an dĂ«sem Betribssystem gĂ«tt mat dem Kommando duerchgefouert. sudo apt-get install haproxy. No dĂ«ser braucht Dir am Fichier /etc/default/haproxy Ă€nneren Parameter AKTIVÉIERT = 0 op AKTIVÉIERT = 1. Elo, fir sĂ©cherzestellen datt Haproxy funktionnĂ©iert, gitt just de Kommando Service haproxy. Wann dĂ«se Service leeft, ass dĂ«st kloer aus dem Output vum Kommando.

Ee vun den Haaptnodeeler vun HAProxy ass, datt et d'IP-Adress vum Client, deen sech verbĂ«nnt, net standardmĂ©isseg iwwerdroe gĂ«tt, mĂ€ duerch seng eegen ersetzt. DĂ«st kann zu Situatiounen fĂ©ieren, wou E-Maile vun Attacker net identifizĂ©iert kĂ«nne ginn. IP Adressfir et op d'SchwaarzlĂ«scht ze setzen. DĂ«se Problem kann awer gelĂ©ist ginn. Fir dĂ«st ze maachen, musst Dir d'Datei Ă€nneren /opt/zimbra/common/conf/master.cf.in op Serveren mat Postfix a fĂŒĂŒgt dĂ©i folgend Zeilen derbĂ€i:

26      inet  n       -       n       -       1       postscreen
        -o postscreen_upstream_proxy_protocol=haproxy
 
466    inet  n       -       n       -       -       smtpd
%%uncomment SERVICE:opendkim%%  -o content_filter=scan:[%%zimbraLocalBindAddress%%]:10030
        -o smtpd_tls_wrappermode=yes
        -o smtpd_sasl_auth_enable=yes
        -o smtpd_client_restrictions=
        -o smtpd_data_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_recipient_restrictions=
        -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        -o syslog_name=postfix/smtps
        -o milter_macro_daemon_name=ORIGINATING
        -o smtpd_upstream_proxy_protocol=haproxy
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_filter=[%%zimbraLocalBindAddress%%]:10027
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_options=speed_adjust
 
588 inet n      -       n       -       -       smtpd
%%uncomment SERVICE:opendkim%%  -o content_filter=scan:[%%zimbraLocalBindAddress%%]:10030
        -o smtpd_etrn_restrictions=reject
        -o smtpd_sasl_auth_enable=%%zimbraMtaSaslAuthEnable%%
        -o smtpd_tls_security_level=%%zimbraMtaTlsSecurityLevel%%
        -o smtpd_client_restrictions=permit_sasl_authenticated,reject
        -o smtpd_data_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_recipient_restrictions=
        -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
        -o syslog_name=postfix/submission
        -o milter_macro_daemon_name=ORIGINATING
        -o smtpd_upstream_proxy_protocol=haproxy
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_filter=[%%zimbraLocalBindAddress%%]:10027
%%uncomment LOCAL:postjournal_enabled%% -o smtpd_proxy_options=speed_adjust

Dofir wÀerte mir d'Ports 26, 466 an 588 opmaachen, déi erakommen Traffic vun HAProxy kréien. Nodeems d'Fichier'en gespÀichert sinn, sollt Dir Postfix op all Server nei starten mat dem zmmtactl Restart Kommando.

Duerno fÀnke mer HAProxy opzestellen. Fir dëst ze maachen, erstellt als éischt eng Backupkopie vun der Astellungsdatei cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak. Da öffnen d'Quelldatei an engem Texteditor /etc/haproxy/haproxy.cfg a fÀnkt un déi néideg Astellunge Schrëtt fir Schrëtt derbÀi. Den éischte Block wÀert e Server bÀidroen deen d'Logbicher hëlt, déi maximal erlaabt Zuel vu simultane Verbindungen festleeën, souwéi den Numm a Grupp vum Benotzer spezifizéieren, zu deem den Ausféierungsprozess gehéiert.

global
    user daemon
    group daemon
    daemon
    log 127.0.0.1 daemon
    maxconn 5000
    chroot /var/lib/haproxy

D'Figur vu 5000 simultan Verbindungen ass aus engem Grond opgetaucht. Well mir 4000 Mailboxen an eiser Infrastruktur hunn, musse mir d'MĂ©iglechkeet berĂŒcksichtegen datt se all glĂ€ichzĂ€iteg op hir Aarbechts-E-Mail kommen. ZousĂ€tzlech ass et nĂ©ideg eng kleng Reserve ze verloossen am Fall wou hir Zuel eropgeet.

Loosst eis elo e Block mat Standardastellungen derbÀi:

defaults
        timeout client 1m
        log global
        mode tcp
        timeout server 1m
        timeout connect 5s

Dëse Block setzt de maximalen Timeout fir de Client an de Server fir d'Verbindung zouzemaachen wann se ofleeft, a setzt och den Operatiounsmodus vun HAProxy. An eisem Fall funktionnéiert de Lastbalancer am TCP Modus, dat heescht, et iwwerdréit einfach TCP PÀckchen ouni hiren Inhalt ze analyséieren.

Als nĂ€chst wĂ€erte mir Regele fir Verbindungen op verschiddene Ports addĂ©ieren. Zum Beispill, wann den Hafen 25 fir SMTP Verbindungen a Mail benotzt gĂ«tt, da mĂ©cht et SĂ«nn fir Verbindungen dohinner op d'MTAs, dĂ©i an eiser Infrastruktur verfĂŒgbar sinn, weiderzebrĂ©ngen. Wann d'Verbindung um Hafen 80 ass, dann ass dĂ«st eng http-Ufro dĂ©i op Zimbra Proxy weidergeleet muss ginn.

Regel fir Port 25:

frontend smtp-25
bind *:27
default_backend backend-smtp-25
 
backend backend-smtp-25
server mta1 192.168.0.77:26 send-proxy
server mta2 192.168.0.78:26 send-proxy

Regel fir Port 465:

frontend smtp-465
bind *:467
default_backend backend-smtp-465

backend backend-smtp-465
server mta1 192.168.0.77:466 send-proxy
server mta2 192.168.0.78:466 send-proxy

Regel fir Port 587:

frontend smtp-587
bind *:589
default_backend backend-smtp-587
 
backend backend-smtp-587
server mail1 192.168.0.77:588 send-proxy
server mail2 192.168.0.78:588 send-proxy

Regel fir Port 80:

frontend http-80
bind    *:80
default_backend http-80
 
backend http-80
mode tcp
server zproxy1 192.168.0.57:80 check
server zproxy2 192.168.0.58:80 check

Regel fir Port 443:

frontend https
bind  *:443
default_backend https-443
 
backend https-443
mode tcp
server zproxy1 192.168.0.57:80 check
server zproxy2 192.168.0.58:80 check

NotĂ©iert w.e.g. datt an de Regele fir TCP-PĂ€ckchen op d'MTA weiderginn, nieft hiren Adressen gĂ«tt et e Parameter schĂ©cken-Proxy. DĂ«st ass nĂ©ideg fir datt, am Aklang mat den Ännerungen, dĂ©i mir virdru gemaach hunn an de Postfix-Astellungen, dĂ©i ursprĂ©nglech IP Adress vu sengem Sender zesumme mat TCP PĂ€ck geschĂ©ckt gĂ«tt.

Elo datt all dĂ©i nĂ©ideg Ännerungen op HAProxy gemaach goufen, kĂ«nnt Dir de Service mat dem Kommando nei starten Service haproxy Restart an ufĂ€nken et ze benotzen.

Fir all Froen am Zesummenhang mat der Zextras Suite, kënnt Dir d'Zextras Vertrieder Ekaterina Triandafilidi per E-Mail kontaktéieren katerina@zextras.com

Source: will.com

Kaaft zouverlĂ€sseg Hosting fir Site mat DDoS Schutz, VPS VDS Server đŸ”„ Kaaft zouverlĂ©issegt WebsĂ€ithosting mat DDoS-Schutz, VPS VDS Server | ProHoster