Puncte:0

haproxy SSL/TLS Passthrough Proxy nu funcționează?

drapel gb

Vreau să configurez haproxy ca simplu tcp-proxy. Mai jos este configurația mea.Când încerc să trimit e-mail prin Thunderbird (indicând smtp către ip_of_my_host:8123) sau prin script python simplu, primesc o eroare despre certificat invalid sau eroare de certificat. Credeam că stratului 4 nu-i pasă deloc de asta. SSL/TLS nu este o caracteristică L7? Deci, cum se configurează corect?

 frontend smtp
  lega*:8123
  modul tcp
  default_backend smtp-backend

  backend smtp-backend
  modul tcp
  server s1 smtp.gmail.com:465

https://serversforhackers.com/c/using-ssl-certificates-with-haproxy

Cu SSL Pass-Through, nu este nevoie să creați sau să utilizați certificate SSL în cadrul HAproxy. Serverele backend pot gestiona conexiunile SSL la fel ar face-o dacă ar fi fost un singur server folosit în stivă fără a echilibrarea greutății.

EDITAȚI | ×:

  1. script python (https://realpython.com/python-send-email/) nu funcționează deloc. Primesc eroarea „ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] verificarea certificatului eșuat: nepotrivire nume de gazdă, certificatul nu este valid pentru „jenkins”. (_ssl.c:1131)”
  2. Thunderbird întreabă despre certificat, după ce am permis pot trimite e-mail prin haproxy
  3. eMClient la fel ca Thunderbird
  4. Mailbird funcționează ca un farmec fără să alerteze despre nimic. Trimite doar e-mailuri prin haproxy.

Deci, pot recunoaște că trecerea funcționează, dar depinde de aplicație.

Aici este rezultatul: openssl s_client -connect 192.168.1.116:8124

CONECTAT(00000003)
Nu se poate folosi SSL_get_servername
adâncime=2 C = SUA, O = Google Trust Services LLC, CN = GTS Root R1
verifica returnarea:1
adâncime=1 C = SUA, O = Google Trust Services LLC, CN = GTS CA 1C3
verifica returnarea:1
adâncime=0 CN = smtp.gmail.com
verifica returnarea:1
---
Lanț de certificate
 0 s:CN = smtp.gmail.com
   i:C = SUA, O = Google Trust Services LLC, CN = GTS CA 1C3
 1 s:C = SUA, O = Google Trust Services LLC, CN = GTS CA 1C3
   i:C = SUA, O = Google Trust Services LLC, CN = GTS Root R1
 2 s:C = SUA, O = Google Trust Services LLC, CN = GTS Root R1
   i:C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root CA
---
Certificat de server
-----ÎNCEPE CERTIFICAT-----
MIIFUTCCBDmgAwIBAgIQSRYB+y12VG0SAAAAAAWnWjANBgkqhkiG9w0BAQsFADBG
MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM
QzETMBEGA1UEAxMKR1RTIENBIDFDMzAeFw0yMjAzMTcxMTE5MzFaFw0yMjA2MDkx
MTE5MzBaMBkxFzAVBgNVBAMTDnNtdHAuZ21haWwuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAwoXST3b7VMOyFK4HgPcsnwBRZXjb0ZRHZK1LrFJn
kPQpzn/R41Q6YGaWhWd7EdF7fM4ufDiPLQeLER59sX6charYaUQ3XQEk9K8SHBvN
2eIP6ZjLb8GK/xq9dK2aaWWVARDciAIllp1IK+gsiLVMNCJWfVayw+4jPAfbIoe/
KqOXz5TdK/p2/PGdgil21f5EpScGLJpi9Vs/RbDg/oJpRfGKcSzzcxSfVvJjrQQo
q/facRtzjIa5fn2rLwOYS+HGdMOkIIGKAlwVUch6FgYfKmg+JNPGaq5M4PAicLYC
andcj63NQgvbPd67Si1gaHoCE75wZln1nwv/zJb8Hzu7NwIDAQABo4ICZjCCAmIw
DgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQC
MAAwHQYDVR0OBBYEFHS2ZnkMI1DpD4xSgXjLUmX8jhRiMB8GA1UdIwQYMBaAFIp0
f6+Fze6VzT2c0OJGFPNxNR0nMGoGCCsGAQUFBwEBBF4wXDAnBggrBgEFBQcwAYYb
aHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMWMzMDEGCCsGAQUFBzAChiVodHRwOi8v
cGtpLmdvb2cvcmVwby9jZXJ0cy9ndHMxYzMuZGVyMBkGA1UdEQQSMBCCDnNtdHAu
Z21haWwuY29tMCEGA1UdIAQaMBgwCAYGZ4EMAQIBMAwGCisGAQQB1nkCBQMwPAYD
VR0fBDUwMzAxoC+gLYYraHR0cDovL2NybHMucGtpLmdvb2cvZ3RzMWMzL3pkQVR0
MEV4X0ZrLmNybDCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB1ACl5vvCeOTkh8FZz
n2Old+W+V32cYAr4+U1dJlwlXceEAAABf5fRoMMAAAQDAEYwRAIgTH4pY6FHZHdo
mlC7sDEEGlVQKHZOWv0V5qX4fA9Tph4CIHdaggWPpGFZIBDLe4dmRjAr0DwWmwny
gQ1JjsTG6q5+AHYAQcjKsd8iRkoQxqE6CUKHXk4xixsD6+tLx2jwkGKWBvYAAAF/
l9Gg8gAABAMARzBFAiBghHDhRWJ8a0jA72hxlRfFUNrQaKqwloW5rltsuRp1E4wIh
AOeFjPUuzL82QRgMzzZ/xA9JtiLM16CTMnFkSmMEmc9BMA0GCSqGSIb3DQEBCwUA
A4IBAQD0JS9BZ+M0kltH4suc75AKXIwPU7qvdf4pYQLeYr0SQb2tV3wBukPpzS/U
3rZIWhxw09Pl9/AmT+Zq2jlZSlhsOMUy+G/k8YXKXgubmqxshbzT20WZrfbwjMxU
wEkDqUulDCwAp6foHRmq4Fpev2jfyw5YiES4ckgwbVfYSoX4+KcSZJo8FNgP83r/
66wsNSR8SP9Irb2bXdsyS0VYh9XkuFyNiA21YAajfJe67i5zDKRWHqwfIBTRgd+J
uOMxobxHDFksjSa6/jrA5meI2k549uraj3C8kvF0H7gQmj4gC7T+BIgZNC8ktkop
/gNu7ubTqU/7jBt/TxvAQRnQASZN
-----CERTIFICAT FINAL-----
subiect=CN = smtp.gmail.com

emitent=C = SUA, O = Google Trust Services LLC, CN = GTS CA 1C3

---
Nu s-au trimis nume de CA de certificat de client
Rezumat peer signing: SHA256
Tip semnătură peer: RSA-PSS
Cheie Temp Server: X25519, 253 de biți
---
SSL handshake a citit 4681 de octeți și a scris 363 de octeți
Verificare: OK
---
Nou, TLSv1.3, Cipher este TLS_AES_256_GCM_SHA384
Cheia publică a serverului este de 2048 biți
Renegocierea sigură NU ESTE acceptată
Compresie: NIMIC
Extindere: NIMIC
Nu s-a negociat ALPN
Datele timpurii nu au fost trimise
Verificați codul de returnare: 0 (ok)
---
---
A sosit noua sesiune după strângere de mână:
Sesiune SSL:
    Protocol: TLSv1.3
    Cifrare: TLS_AES_256_GCM_SHA384
    ID sesiune: B92656EA56305FBE58002428D4E3A798D6E2C771989210B180A04AA8956ADFD6
    ID-ul sesiunii-ctx:
    PSK de reluare: E35D5877C3D7768E597B3E977E6699ABE845D0B0F1EEF12C59914BAA062E7B1BFD523C9E2C89D13EAE4F691FB4A755A9
    Identitate PSK: Niciuna
    Sugestie de identitate PSK: Niciuna
    Nume de utilizator SRP: niciunul
    Sugestie pentru durata de viață a biletului de sesiune TLS: 172800 (secunde)
    Tichet sesiune TLS:
    0000 - 01 5f fd b4 ca df f2 bc-32 6e 8b 6b 4c 91 2a c2 ._......2n.kL.*.
    0010 - d1 3f a5 73 2c 56 6f e0-ce 0d 33 39 c1 21 f1 42 .?.s,Vo...39.!.B
    0020 - 29 73 14 4c 1e e4 ce 9d-a5 0f 5a 65 49 72 b6 0f )s.L......ZeIr..
    0030 - 6b d5 f4 68 cd ba 7c 46-71 f2 e6 8e f9 54 49 5b k..h..|Fq....TI[
    0040 - 1a 71 fd 6e 8e 19 a5 93-80 30 38 28 6d db 27 57 .q.n.....08(m.'W
    0050 - a6 86 aa 6c 4d ab 01 1a-2b a9 62 d0 a5 d5 94 58 ...lM...+.b....X
    0060 - 02 62 8a c1 89 46 ea bc-53 57 92 c5 b7 72 11 32 .b...F..SW...r.2
    0070 - e6 05 22 e2 88 6c 46 4a-bf 5d 06 17 2f 49 86 aa .."..lFJ.]../I..
    0080 - 89 37 4e 48 88 1f 57 32-61 ac ea d6 91 d6 07 85 .7NH..W2a.......
    0090 - 18 63 0e bd bb f2 25 03-05 8c 4e bb 90 8e 3f 12 .c....%...N...?.
    00a0 - 69 54 97 e9 23 64 7c 26-91 39 f1 05 db 92 2a f7 iT..#d|&.9....*.
    00b0 - eb 6f 42 51 19 73 33 29-92 52 1d a9 99 60 a8 f8 .oBQ.s3).R...`..
    00c0 - 14 78 21 50 d0 37 36 62-3c 70 2f c7 41 cf cd 5d .x!P.76b<p/.A..]
    00d0 - a3 b0 d7 1a 0f b5 b2 7a-7b dc 2b 10 af ae 68 94 .......z{.+...h.
    00e0 - 8d 59 d3 7d a7 dd fb 2e-8a ff c2 9e .Y.}........

    Ora de începere: 1648990924
    Timeout: 7200 (sec)
    Verificați codul de returnare: 0 (ok)
    Secret principal extins: nu
    Date maxime timpurii: 0
---
citeste R BLOC
---
A sosit noua sesiune după strângere de mână:
Sesiune SSL:
    Protocol: TLSv1.3
    Cifrare: TLS_AES_256_GCM_SHA384
    ID sesiune: 19DC37EC5E7DC298C40A28812BACBBAF30D53BEB2B53EDC681BB32847542F93E
    ID-ul sesiunii-ctx:
    PSK de reluare: 13A0BEF271F8B729BBC484EA4DB724F3D28EE3A225D210B9C7EC5056EE86656B234BBD45E405CF7791EB5E1F45A48366
    Identitate PSK: Niciuna
    Sugestie de identitate PSK: Niciuna
    Nume de utilizator SRP: niciunul
    Sugestie pentru durata de viață a biletului de sesiune TLS: 172800 (secunde)
    Tichet sesiune TLS:
    0000 - 01 5f fd b4 ca df f2 bc-32 6e 8b 6b 4c 91 2a c2 ._......2n.kL.*.
    0010 - c1 f4 fe 02 6c 1e ab ​​8d-e6 a4 6a 16 d8 eb c6 d7 ....l.....j.....
    0020 - 2f 9b e4 87 ed 76 73 ae-2b c7 a7 36 81 a0 64 1a /....vs.+..6..d.
    0030 - 58 39 67 9c 2d bd be 74-b4 05 6a d8 a4 73 02 81 X9g.-..t..j..s...
    0040 - a5 13 2f 3f 83 f6 9f 57-49 61 41 b3 64 52 e2 8f ../?...WIaA.dR..
    0050 - 2d 0c 36 af b2 bb c8 3d-21 77 9b 0f 06 8d 55 c2 -.6....=!w....U.
    0060 - 6b 02 d1 05 dd 7c 51 70-f3 ee c2 66 07 1c 53 d9 k....|Qp...f..S.
    0070 - b7 6d 52 28 8e 5b 76 53-3d 07 3c 3c 4c ab f6 31 .mR(.[vS=.<<L..1
    0080 - 76 f9 a9 a2 ee a2 65 24-7d 2e 9a 6c 9a 4d 5d bd v.....e$}..l.M].
    0090 - 80 4f 37 32 b8 59 d3 b7-e1 ae 54 15 61 0a d6 e3 .O72.Y....T.a...
    00a0 - b8 7c bf 0f c6 47 74 64-71 42 fe 03 13 3b 0c 87 .|...GtdqB...;..
    00b0 - 0c 7f e7 3c 10 93 b9 d9-33 26 6b 6c f1 c4 c2 89 ...<....3&kl....
    00c0 - 18 75 b2 c7 11 8a 64 1b-09 36 56 00 27 9e d0 30 .u....d..6V...'...0
    00d0 - 7e f1 1e e5 f4 cc 15 ba-0c 41 ee 28 13 3b c8 33 ~........A.(.;.3
    00e0 - 79 d6 a0 e5 59 61 03 53-da 91 7b 32 y...Ya.S..{2

    Ora de începere: 1648990924
    Timeout: 7200 (sec)
    Verificați codul de returnare: 0 (ok)
    Secret principal extins: nu
    Date maxime timpurii: 0
---
citeste R BLOC
220 smtp.gmail.com ESMTP a3-20020a195f43000000b0044a997dea6bsm821316lfj.288 - gsmtp
vidarlo avatar
drapel ar
Ce certificat este trimis de fapt? Ce certificat este folosit de backend? Puteți verifica acest lucru folosind `openssl s_client -connect ip:port`. Vă rugăm să [editați] întrebarea dvs. pentru a include aceste informații.
Puncte:1
drapel in

Deoarece treceți conexiunea la Gmail, clientul primește și certificatul Gmail, care, evident, este valabil doar pentru gazda Gmail.

Certificatul trebuie să conțină numele de gazdă la care vă conectați, altfel nu este valid.

Deoarece certificatul Gmail nu conține nici adresa dvs. IP, nici numele dvs. de gazdă, este invalid din punctul de vedere al clienților.

Fie trebuie să configurați serverul DNS local pentru a rezolva smtp.gmail.com la propria adresă IP, fie trebuie să implementați terminarea SSL pe haproxy.

Joshua avatar
drapel gb
Ar trebui să implementez terminarea SSL cu certificat autosemnat?
drapel in
Dacă nu vă deranjează că trebuie să aveți încredere în certificat pentru toți clienții... pe de altă parte, să criptăm este gratuit și configurarea propriei CA nu este dificilă. Depinde de cazul dvs. de utilizare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.