MICROLINC - Probleme suchen Lösung
Zurück   Home

PowerShell SMTP Client StartTLS Tester

  -  08.12.2018 - 00:22
Menü

Home
Microsoft Small Business Server 2011 Standard
Hardware
Windows
MS Office
Projekte

Mehrwertsteuerrechner

Gästebuch

Pingtool

Warenwirtschaft

Password Expiration Reminder

Java Update Disabler

Briefkopf in PDF kombinieren FreePDF

Microsoft Exchange Management Shell Skripte

php-Tipps

3G-Failover Lösungen (mit Webserveranbindung & Exchange)

KeepProcessAlive

ActiveSync User und Devices über Active Directory auslesen

PowerShell SMTP Client TLS Tester

PowerShell Postfix Transport Log Parser

Auslesen der Allow-List aus KEMP-Loadbalancer via PowerShell

Backup Script Stotax-Datenbanken nach Hidrive

PowerShell - Active Directory Schema GUIDs und Ldap-Namen

PowerShell - Active Directory Access Control List exportieren

Support
Download
Peripherie
Sonstiges (Off-Topic)
Telefonie
Windows 8
Windows Mobile
Security-Software
DATEV
Virtualisierung Oracle virtualbox
nginx
Kryptographie
hMailServer
Android
Novell
Exchange
Server 2012 R2
AD Certificate Service (PKI) / Zertifizierungsstelle
System Center
Blackberry
Microsoft Flow
Virtualisierung Microsoft Hyper-V
Ubiquiti
3CX
OneDrive
PowerShell
Azure/Entra
HAProxy
Defender
Teams
ESET Protect
BookStack


 
Autor:Thomas Windscheif last edit:19.04.2024 16:51

Link zu diesem Beitrag:


[Druckansicht]

PowerShell
SMTP Client Test
TLS Protokoll Test

getestet unter:
Windows 7,10
Windows Server 2012 R2
ab PowerShell V3, .NET 4.5.x

Da ich bisher kein Tool unter Windows gefunden habe, welches die Auswahl von TLS-Protokollen im SMTP-Kontext ermöglicht, habe ich nun auf Basis von PowerShell und der nativen .NET Mail-Klasse ein kleines Skript gebaut.
Es handelt sich hierbei nur um StartTLS-basierte TLS-Verbindungen, d. h. die Verbindung wird erst nachträglich verschlüsselt, zu Beginn ist die Verbindung unverschlüsselt.

Zum Download

Was deckt das Skript ab


  • Die folgenden Protokolle werden gegen SMTP-Test getestet:
    • Keine Verschlüsselung (None)
    • TLS 1.3 (Tls13)
    • TLS 1.2 (Tls12)
    • TLS 1.1 (Tls11)
    • TLS 1.0 (Tls)
    • SSL 3.0 (Ssl3)
  • Der Zielserver kann mittels IP oder FQDN angesprochen werden
  • Der SMTP-Port kann gewählt werden
  • Die Absenderadresse und die Zieladresse können angegeben werden
  • Anmeldedaten für die SMTP-Sitzung werden unterstützt
  • Das Rückgabeobjekt ist ein PSCustomObject, welches problemlos weiterverarbeitet werden kann (z. B. Export via CSV etc.)
  • Betreff der Testnachricht kann angepasst werden
  • Selbstsignierte Zertifikate am Server werden unterstützt

Voraussetzungen


  • PowerShell ab Version 3.0
  • .NET Framework 4.5.x

Funktionsweise des Scripts


  1. Zunächst werden die zu testenden TLS-Protokolle im Array aufgelistet. Für den jeweiligen Test wird nachher immer ein bestimmtes TLS-Protokoll aktiviert und dem "System.Net.ServicePointManager" als SecurityProtocol (System.Net.SecurityProtocolType) zugewiesen.
  2. Die einzelnen Array-Elemente werden nun in einer Foreach-Schleife abgearbeitet.
  3. Der letzte Teil des Strings des Arrayelements wird mittels einer Regex-Expression extrahiert und in der Folge verwendet, um anzuzeigen, welches Protokoll gerade getestet wird.
  4. Mittels der Klasse "Net.Mail.SmtpClient" wird ein Objekt erstellt.
  5. Die als Scriptparameter übergebenen Werte werden nun als Attribute entsprechend in dem Objekt gepflegt
  6. Sofern der Parameter "MailServerUsername" gesetzt wurde, wird dieses entweder gemeinsam mit dem Passwort über den Parameter "MailServerPassword" als Credentials hinterlegt oder das Script fordert zur Eingabe des Passworts auf.
  7. Wenn das aktuelle Array-Element "None" entspricht, wird der Verschlüsselungsanteil des Scripts übersprungen, andernfalls wird TLS für das Mailobjekt aktiviert.
  8. Sofern der Parameter "MailIgnoreTLSValidation" auf true gesetzt wurde, wird der ServicePointManager angewiesen invalide Zertifikate zu akzeptieren.
  9. Das Mailobjekt wird abschließend veranlasst den Sendevorgang durchzuführen.
  10. Die Ergebnisse werden zunächst in einer Hashtable und anschließend als PowerShell-Objekt in ein Array geschrieben. Dies ermöglicht eine einfache Weiterverarbeitung und Filterung.

Anwendung des Scripts


Bei dem nachfolgenden Beispiel versucht das Script die TLS-Tests mit dem Server "mail01.domain.local" unter Verwendung des TCP-Ports 25. Der Absender ist "yourname@yourdomain.com" und der Empfänger "anothername@yourdomain.com". Eine Authentifizierung wird mit dem Benutzernamen "yourname@yourdomain.com" durchgeführt:

C:\Skripte>.\Check-SMTPTLSProtocols.ps1 -MailServer smtp.office365.com -MailSender yourname@yourdomain.com -MailRecipient anothername@foreigndomain.com -MailServerUsername yourname@yourdomain.com

Das Ergebnis sieht dann beispielsweise so aus:



Um die zurückgegebenen Daten in eine CSV-Datei zu schreiben, kann man diese zum Cmdlet Export-Csv pipen:

C:\Skripte>.\Check-SMTPTLSProtocols.ps1 -MailServer smtp.office365.com -MailSender yourname@yourdomain.com -MailRecipient anothername@foreigndomain.com -MailServerUsername yourname@yourdomain.com | Export-Csv TLSTest.csv -Delimiter ";" -Encoding Default -NoTypeInformation

aktuelle Downloads

Download
-> Check-SMTPTLSProtocolsV1.1.zip (Version 1.1) ~ 3 KB
-> Check-SMTPTLSProtocols.zip (Version 1.0) ~ 2,8 KB



Über den Autor
Thomas Windscheif arbeitet bei excITe Consulting und ist langjähriger Berater im Bereich IT-Infrastruktur und Groupware. Sowohl Kleinunternehmen z. B. im Handwerk als auch der größere fertigende Mittelstand gehören zu seinem Projektumfeld. Im Wesentlichen gehören die Planung von Infrastruktur-Migrationen, Cloud-Lösungen (Microsoft 365), Groupware-Umgebungen (z. B. Exchange) und deren Umsetzung zu seinen Aufgaben. Insbesondere im Umfeld hybrider Identitätsumgebungen mit Entra Connect und den Möglichkeiten zur Härtung der IT-Landschaft konnte er in vielen Projekten Erfahrungen sammeln. Neues begeistert ihn aber ebenso und so unterstützt Thomas Windscheif auch bei themenfremden IT-Systemen, überall da wo er helfen kann.

Sein Ziel: Die Mehrwerte der heutigen IT-Lösungen für einfacheres und modernes Arbeiten beim Kunden einbringen.


Login


QuickTag:  

 
Sie haben ein ungelöstes Problem in Ihrer Exchange Server/Microsoft-Infrastruktur oder unter Microsoft 365?
Treten Sie gerne mit mir in Kontakt. Sowohl bei einfachen Umgebungen, als auch bei komplexen Multisite/Cloud-Topologien unterstütze ich Sie -auch kurzfristig- sehr gerne.

Nutzen Sie den Live Chat, xing, LinkedIn, das Kontaktformular oder den Mailkontakt

[News als RSS-Feed abonnieren]
News

vom 22.09.2024 - 14:29


- Spontaner Administrationsverlust unter Exchange Online - Und wie man es behebt! -

Zweimal in diesem Jahr hatte ich bei Kunden das Phänonem, dass spontan bestimmte Administrationsrechte unter Exchange Online fehlten, trotz der Rollenmitgliedschaft "Globaler Administrator" bzw. "Exchange Administrator".

Aus ungeklärten Gründen waren verschiedene RBAC-Rechte unter Exchange Online für "Organization Management" spontan verschwunden.

Im folgenden Artikel löse ich das Problem mit Skripten und erläutere das Vorgehen

https://www.microlinc.de/index.php?lev1=25&lev2=41&id=475


Weitere News:

UPDATE - PowerShell Exchange Vererbung Postfachordnerberechtigungen


vom 28.07.2024 17:18


Safe Sender List unter Outlook leeren - Praktische Umsetzung


vom 06.11.2023 18:05


Exchange Online Protection und die Safe Sender List


vom 26.10.2023 15:06


Exchange Online - Abschaltung Remote PowerShell Session (RPS)


vom 25.08.2023 14:37


Tool zum Konvertieren von Agfeo-Adressbüchern nach 3CX


vom 01.05.2023 16:47


Das Ende der Standardauthentifizierung - Wie bereite ich mein Unternehmen vor?


vom 03.08.2022 15:19


Sharepoint-Kalender unter Team freigeben


vom 17.07.2022 17:41


Exchange Update HAFNIUM-Exploit


vom 09.03.2021 09:27


Windows Server 2019 - LDAP out of memory exception


vom 16.09.2019 17:48


3CX V16 Call Control API mit PowerShell Core


vom 25.04.2019 11:41


Exchange Online SMTP TLS Report


vom 15.02.2019 18:04


TLS-Test für SMTP mit PowerShell


vom 10.12.2018 11:47


3CX Secure SIP via DIRECT-STUN mit yealink T46S


vom 08.09.2018 15:35


Exchange 2016 CU10


vom 25.06.2018 15:21


Apple iCloud Addin stört Outlook Kalenderfunktionen


vom 18.10.2017 13:24


.NET 4.7 released - Bitte nicht auf Exchange Servern installieren


vom 13.06.2017 21:52


Troubleshooting Exchange Health Manager Sensoren


vom 16.05.2017 21:06


Exchange 2016 - ActiveSync-Lesebestätigungen können nun unterdrückt werden


vom 09.03.2017 18:28


Exchange - Informationen an Dritte einschränken


vom 20.02.2017 01:53



[alle News auflisten]
Sitemap - Kontakt - Datenschutz & Disclaimer - Impressum