Bonjour à tous,
Je suis en train de mettre en place pound pour rediriger le trafic https vers une machine en backend.
Le trafic arrive sur mon adresse public sur le port 443 et doit être redirigé vers l'adresse privée sur un port différent de 80 (déjà utilisé).
Pound décrypte le trafic et le certificat du serveur backend est situé dans le frontal. Le trafic arrive en clair dans la machine backend.
Voici mon fichier de configuration pound:
Lorsque je redirige le trafic vers le port 80, pas de soucis (mais je perd le service qui était sur ce port, et je ne peux pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 # ## user # User "www-data" Group "www-data" # ## Logging: (goes to syslog by default) ## 0 no logging ## 1 normal ## 2 extended ## 3 Apache-style (common log format) # LogLevel 3 # ## check backend every X secs: # Alive 30 # # poundctl control socket # Control "/var/run/pound/poundctl.socket" # ## redirect all requests from port 443 to port 2000 after uncryption # ListenHTTPS Address $PUBLIC_IP Port 443 Cert "/etc/pound/ssl/backend.pem" ## allow PUT and DELETE also (by default only GET, POST and HEAD)?: xHTTP 0 Service BackEnd Address 192.168.0.110 Port 2000 End End End
Voici les traces avec tshark
Apparement le serveur ne fait pas confiance au client en googlant les termes "Encrypted alert"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 0.000000 IP_CLIENT -> IP_SERVER TCP 59846 > https [SYN] Seq=0 Win=5840 Len=0 MSS=1416 TSV=4243365 TSER=0 WS=6 0.000114 IP_SERVER -> IP_CLIENT TCP https > 59846 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=624474572 TSER=4243365 WS=7 0.045507 IP_CLIENT -> IP_SERVER TCP 59846 > https [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=4243377 TSER=624474572 0.065402 IP_CLIENT -> IP_SERVER SSL Client Hello 0.065474 IP_SERVER -> IP_CLIENT TCP https > 59846 [ACK] Seq=1 Ack=396 Win=6912 Len=0 TSV=624474588 TSER=4243377 0.071344 IP_SERVER -> IP_CLIENT TLSv1 Server Hello, Certificate, 0.071408 IP_SERVER -> IP_CLIENT TLSv1 Server Key Exchange, Server Hello Done 0.139458 IP_CLIENT -> IP_SERVER TCP [TCP Dup ACK 4#1] 59846 > https [ACK] Seq=396 Ack=1 Win=5888 Len=0 TSV=4243400 TSER=624474588 SLE=1405 SRE=1463 0.317474 IP_SERVER -> IP_CLIENT TLSv1 [TCP Retransmission] Server Hello, Certificate, 0.382191 IP_CLIENT -> IP_SERVER TCP 59846 > https [ACK] Seq=396 Ack=1463 Win=8704 Len=0 TSV=4243461 TSER=624474652 0.400163 IP_CLIENT -> IP_SERVER TLSv1 Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message 0.404460 IP_SERVER -> IP_CLIENT TLSv1 Change Cipher Spec, Encrypted Handshake Message 0.467431 IP_CLIENT -> IP_SERVER TLSv1 Application Data 0.470665 IP_SERVER -> IP_CLIENT TLSv1 Application Data 0.471045 IP_SERVER -> IP_CLIENT TLSv1 Application Data 0.471161 IP_SERVER -> IP_CLIENT TLSv1 Encrypted Alert 0.520165 IP_CLIENT -> IP_SERVER TLSv1 Encrypted Alert 0.520376 IP_SERVER -> IP_CLIENT TCP https > 59846 [FIN, ACK] Seq=2049 Ack=1004 Win=9088 Len=0 TSV=624474702 TSER=4243495 0.523292 IP_CLIENT -> IP_SERVER TCP 59846 > https [FIN, ACK] Seq=1004 Ack=1767 Win=11456 Len=0 TSV=4243495 TSER=624474690 0.523330 IP_SERVER -> IP_CLIENT TCP https > 59846 [ACK] Seq=2050 Ack=1005 Win=9088 Len=0 TSV=624474703 TSER=4243495 0.528278 IP_CLIENT -> IP_SERVER TCP 59846 > https [RST] Seq=967 Win=0 Len=0
Du côté du backend voici ce que j'observe:
et rien dans les logs apache n'est utile, mais je peux les donner éventuellement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 0.000000 IP_POUND -> 192.168.0.110 TCP 48007 > 2000 [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=624524030 TSER=0 WS=7 0.000057 192.168.0.110 -> IP_POUND TCP 2000 > 48007 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=624524030 TSER=624524030 WS=7 0.000091 IP_POUND -> 192.168.0.110 TCP 48007 > 2000 [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=624524030 TSER=624524030 0.000293 IP_POUND -> 192.168.0.110 TCP 48007 > 2000 [PSH, ACK] Seq=1 Ack=1 Win=5888 Len=496 TSV=624524030 TSER=624524030 0.000346 192.168.0.110 -> IP_POUND TCP 2000 > 48007 [ACK] Seq=1 Ack=497 Win=6912 Len=0 TSV=624524030 TSER=624524030 0.002436 192.168.0.110 -> IP_POUND TCP 2000 > 48007 [PSH, ACK] Seq=1 Ack=497 Win=6912 Len=468 TSV=624524031 TSER=624524030 0.002666 192.168.0.110 -> IP_POUND TCP 2000 > 48007 [FIN, ACK] Seq=469 Ack=497 Win=6912 Len=0 TSV=624524031 TSER=624524030 0.002807 IP_POUND -> 192.168.0.110 TCP 48007 > 2000 [ACK] Seq=497 Ack=469 Win=6912 Len=0 TSV=624524031 TSER=624524031 0.003724 IP_POUND -> 192.168.0.110 TCP 48007 > 2000 [FIN, ACK] Seq=497 Ack=470 Win=6912 Len=0 TSV=624524031 TSER=624524031 0.003777 192.168.0.110 -> IP_POUND TCP 2000 > 48007 [ACK] Seq=470 Ack=498 Win=6912 Len=0 TSV=624524031 TSER=624524031
Quelqu'un pourrait me donner un début de piste sur ce qu'il se passe? J'avoue que je galère depuis quelques temps sans pouvoir m'en sortir :S
Merci pour vos réponses!
Partager