Waarvoor wordt SMTP gebruikt door Exchange 2010 – deel 2
Ingezonden door Anonymous op 17-10-2011 13:14Waarvoor wordt SMTP gebruikt door Exchange 2010 – deel 2?
In het eerste deel van dit artikel hebben we gekeken naar het SMTP protocol en de integratie met Exchange 2010. In dit deel kijken we eerst naar een stukje troubleshooting: hoe zet ik logging aan en wat betekenen deze meldingen. Vervolgens kijken we naar de instellingen die alleen via de Exchange Management Shell aangepast kunnen worden.
Troubleshooting SMTP in Exchange 2010
Zoals eerder besproken maakt Exchange gebruik van SMTP voor het verzenden en ontvangen van berichten. Wanneer je problemen hebt met het verzenden en ontvangen dan zul je in veel gevallen ook een blik moeten werpen op SMTP.
Logging inschakelen
Wanneer je SMTP problemen hebt en je wilt gaan troubleshooten zal je eerst logging aan moeten zetten. Afhankelijk van wat voor soort problemen er zijn zal je dit op de receive/send connector moeten configureren.
De logging wordt standaard opgeslagen in de TransportRoles\Logs\Protocollog directory. Deze directory is terug te vinden in de installatie directory van Exchange. Hierin is onderscheid gemaakt tussen verzenden en ontvangen.
Het inschakelen van logging kan zowel via de Exchange Management Console (EMC) of Exchange Management Shell (EMS). Logging kan ingesteld worden als none of als verbose.
EMC
![]()
Receive Connector (per connector):
· Server Configuration >Hub Transport
Send Connector (per Exchange organisatie):
· Organization Configuration > Hub Transport > Tab: Send Connectors
EMS
Set-SendConnector –Identity internet –ProtocolLoggingLevel verbose
Met bovenstaande cmdlet stellen we het logging niveau voor de send connector internet in op verbose.
Set-ReceiveConnector –Identity “EX1\Default EX1” –ProtocolLoggingLevel verbose
Met bovenstaande cmdlet stellen we het logging niveau voor de receive connector Default EX1 in op verbose.
Als vervolgstap kan het probleem gereproduceerd worden en kan de logging onderzocht worden.
Foutcodes
SMTP maakt gebruik van een aantal standaard foutcodes. Alle foutcodes beginnen met een 4 of 5 en zijn in totaal 3 cijfers lang:
· 4¸er is een tijdelijk probleem opgetreden, wanneer het commando wordt herhaald kan het zijn dat het commando wel wordt geaccepteerd. Sommige mail servers gebruiken deze techniek namelijk om spam te voorkomen. De verzendende partij zal later nogmaals proberen het bericht af te leveren.;
· 5, er is een permanent probleem opgetreden wat als gevolg een Non-Delivery Report (NDR) heeft.
In sommige gevallen kan het dus zo maar zijn dat je in het geval van een foutcode die begint met een 4 geen actie vereist.
Het tweede karakter kan een cijfer van 0 t/m 5 zijn:
· 0, er is een verkeerde syntax geconstateerd;
· 1, een antwoord met hierin extra informatie;
· 2, een verwijzing naar de status van de connectie;
· 3 en 4, worden niet gebruikt;
· 5, een verwijzing naar de status van de mail server;
Het laatste cijfer geeft meer informatie over de mail transfer status van een bericht.
In onderstaande tabel is een overzicht te zien van veel voorkomende foutcodes:
Foutcode
Betekenis
421
Het systeem is tijdelijk niet beschikbaar en de connectie wordt verbroken.
450
Het uitvoeren van het commando is mislukt omdat de mailbox van de ontvanger niet beschikbaar is.
451
Het commando is afgebroken vanwege een fout aan de server kant.
452
Het commando is afgebroken vanwege een gebrek aan resources aan de server kant.
500
Het opgegeven commando wordt niet herkend vanwege een incorrecte syntax.
501
Er is een ongeldige syntax geconstateerd in de gebruikte parameters.
502
Het commando is niet beschikbaar.
503
De server heeft een verkeerde volgorde van commando’s geconstateerd.
504
Een gebruikte parameter is niet beschikbaar.
550
Het commando kan niet uitgevoerd worden vanwege het niet beschikbaar zijn van de mailbox van de ontvanger.
551
De gebruiker is niet aanwezig op de server. De server zal een forward adres teruggeven waar de mail naar verstuurd moet worden.
552
De actie is afgebroken vanwege het overschrijden van de toegewezen storage.
553
Het commando is niet uitgevoerd vanwege een ongeldige mailbox naam.
554
De transactie is mislukt.
Een aantal voorbeelden uit de praktijk:
421/550
Deze meldingen kunnen voorkomen als de versturende partij op een Realtime Block List (RBL) staat. Eén van de tools die je hiervoor kunt gebruiken is de site Mx toolbox. De oorzaak dat een domein op deze lijst terecht komt is vaak het versturen van grote hoeveelheden spam. Enkele oorzaken hiervan kunnen zijn een virus binnen het netwerk en een verkeerd geconfigureerde mail omgeving.
452
Exchange bevat een mechanisme om te voorkomen dat de server in problemen terecht komt wegens een gebrek aan resources. Dit mechanisme heet back pressure. Enkele voorbeelden wanneer dit voor kan komen:
· Onvoldoende vrije ruimte op de disk waar de transport database queue staat;
· Het geheugen verbruik is te hoog;
· Onvoldoende vrije ruimte op de log disk van de mail databases.
Het gevolg hiervan het aantal connecties worden teruggeschroefd of zelfs geheel geblokkeerd.
Verborgen instellingen
Zoals bij veel configuratie items in Exchange 2010 kan niet alles geconfigureerd worden met de Exchange Management Console (EMC). Diverse instellingen dienen geconfigureerd te worden via de Exchange Management Shell (EMS). In principe hoeven deze instellingen vaak niet gewijzigd te worden maar toch kan het in specifieke scenario’s wel van belang zijn.
Een simpel voorbeeld, in Outlook Web App kun je op diverse plekken de SMTP configuratie zien. Misschien is dit voor sommige organisaties echter helemaal niet wenselijk. In dit geval kun je d.m.v. de parameter AdvertiseClientSettings configureren dat dit niet meer zichtbaar is:
Set-ReceiveConnector “EX1\Default EX1” –AdvertiseClientSettings:false
In Exchange 2003 kon je zaken als time-outs en het maximaal aantal connecties nog configureren via de GUI. Vanaf Exchange 2007 kun je dit echter nog alleen maar doen via de EMS. Exchange 2010 bevat de volgende parameters die hiervoor gebruikt kunnen worden:
· ConnectionInactivityTimeout, na hoeveel seconden/minuten waarin geen activiteit te zien is mag de connectie verbroken worden;
· ConnectionTimeout, na hoeveel seconden/minuten mag de connectie verbroken worden;
· MaxInboundConnection, hoeveel gelijktijdige inkomende connecties zijn toegestaan;
· MaxInboundConnectionPercentagePerSource, wat is het maximale percentage aan connecties van een bepaald IP-adres;
· MaxInboundConnectionPerSource, hoeveel connecties mogen er maximaal worden opgezet van een bepaald IP-adres;
· MaxLogonFailures, hoe vaak mag er een poging gedaan worden om te authenticeren;
· MaxProtocolErrors, het maximum aantal fouten dat tijdens het proces mag worden gemaakt;
· MessageRateLimit, het maximaal aantal berichten van een bepaald IP-adres wat tegelijkertijd mag worden verstuurd;
· TarpitInterval, hoeveel vertraging moet er worden ingebouwd tijdens het opzetten van de connectie en het accepteren van commandos.
Stel dat je bijvoorbeeld het maximaal aantal berichten van een bepaald IP-adres wat tegelijkertijd wordt afgehandeld naar 5 wilt verlagen:
Set-ReceiveConnector “EX1\Default EX1” –MessageRateLimit 5
Om spam te voor komen wordt standaard al gebruik gemaakt van tarpitting. SMTP antwoorden worden middels deze methode met 5 seconden vertraging verstuurd. Echter, je kunt er voor kiezen om naast tarpitting ook de protocol errors hiervoor te gaan gebruiken. Deze laatste parameter staat standaard ingesteld op maximaal 5 fouten, maar theoretisch zou je dit op 0 kunnen zetten. Een andere SMTP server zal namelijk hier als het goed is geen fouten maken:
Set-ReceiveConnector “EX1\Default EX1” –MaxProtocolErrors 0
Nu we de ins en outs van SMTP hebben bekeken, is het tijd voor wat praktijkvoorbeelden.
Praktijkvoorbeelden
Zoals besproken kijken we nu naar een aantal praktijkvoorbeelden van SMTP problemen.
Voorbeeld 1:
In onderstaand voorbeeld is te zien dat er geprobeerd wordt mail te relayen zonder dat hiervoor toestemming is:
4FD58,2,192.168.1.10:25,192.168.1.5:53225,>,"220 HUB01.CORP.LOCAL Microsoft ESMTP MAIL Service ready at Sat, 8 Oct 2011 06:48:53 +0200",
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,3,192.168.1.10:25,192.168.1.5:53225,<,EHLO CA01,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,4,192.168.1.10:25,192.168.1.5:53225,>,250-HUB01.CORP.LOCAL Hello [192.168.1.5],
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,5,192.168.1.10:25,192.168.1.5:53225,>,250-SIZE,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,6,192.168.1.10:25,192.168.1.5:53225,>,250-PIPELINING,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,7,192.168.1.10:25,192.168.1.5:53225,>,250-DSN,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,8,192.168.1.10:25,192.168.1.5:53225,>,250-ENHANCEDSTATUSCODES,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,9,192.168.1.10:25,192.168.1.5:53225,>,250-STARTTLS,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,10,192.168.1.10:25,192.168.1.5:53225,>,250-X-ANONYMOUSTLS,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,11,192.168.1.10:25,192.168.1.5:53225,>,250-AUTH NTLM,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,12,192.168.1.10:25,192.168.1.5:53225,>,250-X-EXPS GSSAPI NTLM,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,13,192.168.1.10:25,192.168.1.5:53225,>,250-8BITMIME,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,14,192.168.1.10:25,192.168.1.5:53225,>,250-BINARYMIME,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,15,192.168.1.10:25,192.168.1.5:53225,>,250-CHUNKING,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,16,192.168.1.10:25,192.168.1.5:53225,>,250-XEXCH50,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,17,192.168.1.10:25,192.168.1.5:53225,>,250-XRDST,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,18,192.168.1.10:25,192.168.1.5:53225,>,250 XSHADOW,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,19,192.168.1.10:25,192.168.1.5:53225,<,MAIL From:<ca01@corp.local>,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,20,192.168.1.10:25,192.168.1.5:53225,*,08CE5222FAC4FD58;2011-10-08T04:48:53.637Z;1,receiving message
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,21,192.168.1.10:25,192.168.1.5:53225,>,250 2.1.0 Sender OK,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,22,192.168.1.10:25,192.168.1.5:53225,<,RCPT To: <user01@domain.com>,
2011-10-08T04:48:53.637Z,HUB01\Default HUB01,08CE5222FAC4FD58,23,192.168.1.10:25,192.168.1.5:53225,*,Tarpit for '0.00:00:05',
2011-10-08T04:48:58.645Z,HUB01\Default HUB01,08CE5222FAC4FD58,24,192.168.1.10:25,192.168.1.5:53225,>,550 5.7.1 Unable to relay,
2011-10-08T04:48:58.645Z,HUB01\Default HUB01,08CE5222FAC4FD58,25,192.168.1.10:25,192.168.1.5:53225,<,QUIT,
2011-10-08T04:48:58.645Z,HUB01\Default HUB01,08CE5222FAC4FD58,26,192.168.1.10:25,192.168.1.5:53225,>,221 2.0.0 Service closing transmission channel,
Als we kijken naar de details zien we het volgende:
· Server CA01 probeert mail te versturen naar een extern adres user01@domain.com;
· Er wordt gebruik gemaakt van de Default connector van server HUB01.
Standaard staat Exchange geen relaying toe op receive connectors. In veel gevallen wordt hier dan ook een aparte connector voor aangemaakt waarop deze security settings worden aangepast.
In bovenstaand geval is te zien dat er blijkbaar geen relay connector bestaat of dat deze connector verkeerd geconfigureerd is. Exchange zoekt namelijk de correcte receive connector bij een sessie n.a.v. diverse parameters. Eén van deze parameters is het ip adres van de client die connectie maakt.
Om bovenstaand probleem op te lossen dient een aparte connector aangemaakt te worden. Op deze connector dienen de volgende parameters geconfigureerd te worden:
· 192.168.1.10 mag alleen gebruik maken van deze connector;
· De anonymous permission group moet rechten hebben om te verzenden.
Wanneer de connector is aangemaakt dienen de security settings nog aangepast te worden. Dit kan alleen gedaan worden d.m.v. de Exchange Management Shell:
Get-ReceiveConnector "Relay Connector" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"
Voorbeeld 2
In het tweede voorbeeld wordt er geprobeerd via mail te verzenden via een andere mailbox. Wanneer je dit weleens hebt geconfigureerd weet je dat dit standaard niet wordt toegestaan, zoals ook hier te zien is:
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,2,182.168.1.5:25,192.168.1.11:38849,>,"220 HUB01.CORP.LOCAL Microsoft ESMTP MAIL Service ready at Tue, 4 Oct 2011 09:47:20 +0200",
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,3,182.168.1.5:25,192.168.1.11:38849,<,EHLO afmdb09,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,4,182.168.1.5:25,192.168.1.11:38849,>,250-HUB01.CORP.LOCAL Hello [192.168.1.11],
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,5,182.168.1.5:25,192.168.1.11:38849,>,250-SIZE,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,6,182.168.1.5:25,192.168.1.11:38849,>,250-PIPELINING,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,7,182.168.1.5:25,192.168.1.11:38849,>,250-DSN,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,8,182.168.1.5:25,192.168.1.11:38849,>,250-ENHANCEDSTATUSCODES,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,9,182.168.1.5:25,192.168.1.11:38849,>,250-STARTTLS,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,10,182.168.1.5:25,192.168.1.11:38849,>,250-X-ANONYMOUSTLS,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,11,182.168.1.5:25,192.168.1.11:38849,>,250-AUTH NTLM,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,12,182.168.1.5:25,192.168.1.11:38849,>,250-X-EXPS GSSAPI NTLM,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,13,182.168.1.5:25,192.168.1.11:38849,>,250-8BITMIME,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,14,182.168.1.5:25,192.168.1.11:38849,>,250-BINARYMIME,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,15,182.168.1.5:25,192.168.1.11:38849,>,250-CHUNKING,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,16,182.168.1.5:25,192.168.1.11:38849,>,250-XEXCH50,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,17,182.168.1.5:25,192.168.1.11:38849,>,250-XRDST,
2011-10-04T07:47:20.895Z,HUB01\Default HUB01,08CE5076D3F82E25,18,182.168.1.5:25,192.168.1.11:38849,>,250 XSHADOW,
2011-10-04T07:47:20.911Z,HUB01\Default HUB01,08CE5076D3F82E25,19,182.168.1.5:25,192.168.1.11:38849,<,AUTH ntlm,
2011-10-04T07:47:20.911Z,HUB01\Default HUB01,08CE5076D3F82E25,20,182.168.1.5:25,192.168.1.11:38849,>,334 <authentication response>,
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,21,182.168.1.5:25,192.168.1.11:38849,*,SMTPSubmit SMTPAcceptAnyRecipient BypassAntiSpam AcceptRoutingHeaders,Set Session Permissions
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,22,182.168.1.5:25,192.168.1.11:38849,*,CORP\svc_sql,authenticated
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,23,182.168.1.5:25,192.168.1.11:38849,>,235 2.7.0 Authentication successful,
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,24,182.168.1.5:25,192.168.1.11:38849,<,MAIL FROM:<SVC_SQL_ALERTING@corp.local>,
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,25,182.168.1.5:25,192.168.1.11:38849,*,08CE5076D3F82E25;2011-10-04T07:47:20.895Z;1,receiving message
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,26,182.168.1.5:25,192.168.1.11:38849,>,250 2.1.0 Sender OK,
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,27,182.168.1.5:25,192.168.1.11:38849,<,RCPT TO:<user@corp.local>,
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,28,182.168.1.5:25,192.168.1.11:38849,>,250 2.1.5 Recipient OK,
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,29,182.168.1.5:25,192.168.1.11:38849,<,DATA,
2011-10-04T07:47:20.926Z,HUB01\Default HUB01,08CE5076D3F82E25,30,182.168.1.5:25,192.168.1.11:38849,>,354 Start mail input; end with <CRLF>.<CRLF>,
2011-10-04T07:47:20.942Z,HUB01\Default HUB01,08CE5076D3F82E25,31,182.168.1.5:25,192.168.1.11:38849,>,550 5.7.1 Client does not have permissions to send as this sender,
2011-10-04T07:47:20.958Z,HUB01\Default HUB01,08CE5076D3F82E25,32,182.168.1.5:25,192.168.1.11:38849,-,,Remote
2011-10-04T07:47:36.558Z,HUB01\Default HUB01,08CE5076D3F82E26,0,182.168.1.5:25,192.168.1.11:38861,+,,
Om dit probleem op te lossen zal het account corp\svc_sql send as permissions moeten krijgen op de mailbox van het account corp\svc_sql_alerting:
Get-User –identity “svc_sql_alerting” | Add-AdPermission –User “svc_sql” –ExtendedRights Send-As
Tot zover het tweede en laatste blog over SMTP en hoe dit dan gebruikt wordt door Exchange 2010. In deze blog hebben we specifiek gekeken naar hoe je SMTP problemen kunt troubleshooten en keken we naar enkele voorbeelden hiervan.
Mocht je nog vragen hebben stel ze gerust.