Wednesday, November 4, 2009

Netasq - pb proxy smtp antivirus

==> Problème:

Les mail en sortie ne sont pas envoyé, en utlisant le proxy smtp avec check antivirus (clamav)

Le message d'erreur reporter:
Error during data transmission

Erreur SMTP:
421 mwinf2f03.orange.fr Error: timeout exceeded


==> Solution:

un keep-alive de 5 secondes au lieu des 20 secondes par defaut.

ConfigFiles/SMTPProxy/01
[Postprocessing]
Policy=Pass
Size=51607
KeepAlive=5


==> Explications:

La problématique vient du fait que le proxy gère deux connexions. Ces deux connexions n'ont pas le meme debit, il y a un ordre de grandeur de différence : ethernet = 100Mbps, ADSL = 10Mbps par exemple. De plus, s'ajoute une latence a cause de l'analyse anti-virus.
Ces deux aspects induisent le comportement suivant :
- le client SMTP envoie rapidement le mail (ethernet) comme suit :

C: DATA
S: 354 End data with .
C: From: "Bob Example"
C: To: Alice Example
C: Cc: theboss@example.com
C: Date: Tue, 15 Jan 2008 16:02:43 -0500
C: Subject: Test message
C:
C: Hello Alice.
C: This is a test message with 5 headers and 4 lines in the body.
C: Your friend,
C: Bob
C: .

En parallèle, cote serveur, la commande DATA est transmise et le temps que le mail soit reçu par le proxy et analyse par l'AV, des faux champs d'en-tête sont transmis pour faire patienter le serveur :

C: DATA
S: 354 End data with .
C: X-Keep-Alive: 1
C: X-Keep-Alive: 1
...
C: X-Keep-Alive: 1
C: X-Keep-Alive: 1
C: From: "Bob Example"
C: To: Alice Example
C: Cc: theboss@example.com
C: Date: Tue, 15 Jan 2008 16:02:43 -0500
C: Subject: Test message
C:
C: Hello Alice.
C: This is a test message with 5 headers and 4 lines in the body.
C: Your friend,
C: Bob
C: .

A partir du moment ou le serveur a reçu le mail complet, il retourne sa réponse, qui est directement transmise au client :

S: 250 Ok: queued as 12345


No comments: