Archiv der Kategorie: Windows Services

Windows Service Integrations

OpenSSH in Windows 10

Im aktuellen Windows-10-Build ist der OpenSSH-Client als Beta-Feature enthalten. Mit dem Build 1709 „Fall Creators Update“ hat Windows 10 auch ein paar versteckte Features eingeführt, die für Linux Admins und Poweruser interessant sind. Das beste für Linux- und Unix-Anwender ist vermutlich die Integration des SSH-Client und Server, wie bereits vor zwei Jahren angekündigt, der auf OpenSSH basierte SSH-Client.

Windows 10 SSH-Client

Um den SSH-Client auf Windows 10 zu aktivieren, gib man in der Eingabeaufforderung folgendes Command ein.

Anschließend kann der Client, der unter dem Pfad  „C:\WINDOWS\System32\OpenSSH“ installiert wurde, aus dem CLI wie von der Linux Shell gewohnt genutzt werden, beispielsweise auch ein lokales und Remote-Port-Forwarding steht zur Verfügung.

Die Windows-native OpenSSH-Implementierung, die Remote-Sitzungen in der Eingabeaufforderung „cmd“ und in der PowerShell ermöglicht, erlaubt nun ohne SSH-Tools auszukommen, wie es das Windows-Subsystem für Linux (WSL) mit bash on Windows, PuTTY oder KiTTY und dergleichen wäre.

Sollen Dienstprogrammen wie vi, top, man, multitail und weitere verwendet werden, macht man die besten Erfahrungen, in dem man die Windows SSH-Client Verbindung mit einem * nix-Server hat, das Terminal für einen xterm-ähnlichen Rendering-Modus konfiguriert.

TTY Support in Windows OpenSSH

Öffne hierzu die Eingabeaufforderung (cmd) und klicke mit der rechten Maustaste im Fenster oben links auf das kleine Icon    dann unten auf Eigenschaften.

Abbildung: Eigenschaften von Eingabeaufforderung

Stelle sicher dass Legacykonsole (erfordert Neustart) nicht deaktiviert ist.

Des Terminal Fenster sollte eine probate Größe haben, entsprechend zum gewählten Font und dessen Größe.

Abbildung: Eigenschaften von Eingabeaufforderung – Layout

Im Register Layout die Fensterbreite und Buffergrösse auf 110 setzen.

Für TTY und PTY wird der VT100 Terminal Emulator unterstützt, dazu benötigt es die Umgebungsvariable XTERM diese in der Windows MMC-Konsole mit +R  control sysdm.cpl,,3 gesetzt werden kann.

Unten auf Umgebungsvariablen klicken und im Abschnitt Systemvariablen auf Neu klicken und die Variable TERM=xterm eintragen.

Das Fenster schließen und wieder öffnen, nun ist das TTY Terminal in einer SSH Verbindung anwendbar.

Hinweis zur Implementierung

Windows verfügt über keine integrierte Unterstützung für ein Pseudoterminal.

Die Windows-Version des OpenSSH-Servers implementiert einen VT100 PTY, indem Windows Console-Ereignisse abgefangen werden. Dies ist in ssh-shellhost.exe implementiert, verbunden mit sshd über stdout input/output. Auf einer high-level Ebene fungiert ssh-shellhost.exe als Vermittler zwischen sshd und einer Windows-Konsole, die Folgendes ausführt:

Interpretiert eingehende VT100, Prozesse und Aufrufe von Windows Console IO.

Verarbeitet die Ereigniswarteschlange der Windows-Konsole (Ausgabe), übersetzt sie in VT100 und gibt sie auf stdout aus.

 

Ransomware WannaCry abwehren

Der weltweite Angriff des Verschlüsselungstrojaner (auch „Erpressungstrojaner“ genannt) „WannaCry“ auf Windows-Rechner ist noch nicht vorbei. Es dürfte sich um eine der grössten Attacken auf IT-Systeme bislang gehandelt haben.

Für die abwehr von WannaCry sind folgende Schritte empfohlen:

  1. Umgehend den Patch MS17-010 installieren. Wer noch Windows XP, Windows 8, oder Windows Server 2003 einsetzt, findet im Blog-Post von Microsoft TechNet zusätzliche Informationen.
  2. Folgende Ports auf der Firewall blockieren:
    TCP-Ports 137, 139, 445 und UDP-Port 137 und 138. Über diese kommuniziert WannaCry mit den Backend-Services auf den Servern der Angreifer.
  3. Das Tor-Protokoll blockieren: Der Schadcode kommuniziert mit den Command&Control-Servern der Angreifer anhand des Tor-Protokolls. Dieses muss am Sicherheits-Perimeter unterbrochen werden. Ausgehende Kommunikation blockieren, zu den bisher bekannten C&C-Server:
    cwwnhwhlz52ma.onion
    gx7ekbenv2riucmf.onion
    xxlvbrloxvriy2c5.onion
    57g7spgrzlojinas.onion
    76jdd2ir2embyv47.onion
  4. Das Protokoll Server Message Block (SMB) Version 1 (SMBv1) deaktivieren:  Es wird von Microsoft empfohlen SMBv1 zu deaktivieren, SMBv2 und SMBv3 sollte in produktiven Umgebungen nicht deaktiviert werden.

Bei Windows 8 und Windows Server 2012

Für Windows 7, Windows Server 2008 R2, Windows Vista, und Windows Server 2008

Ein Reboot des Systems ist erforderlich zur Aktivierung.

Die Deaktivierung von SMBv1 kann auch mittels Regedit vorgenommen werden.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ParametersRegistry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled

Weitere Informationen über die Malware selbst beschreibt Microsoft im Malware Protection Center auf dem Windows Security Blog WannaCrypt ransomware worm targets out-of-date systems.

WannaCry Entschlüsseln:
Von Benjamin Delp stammt das Tool WannaKiwi. Er stützte sich auf Vorarbeiten von Adrien Guinet. Mit dem Tool lässt sich aus dem Speicher des befallenen Systems der private User-Key auslesen, der zur Verschlüsselung der Daten auf der Festplatte verwendet wurde.

OpenSSH on Windows

OpenSSH ist das führende Konnektivitätstool für die Remote-Anmeldung mit dem SSH-Protokoll in Unix/Linux Umgebungen. OpenSSH verschlüsselt den Datenverkehr, darüber hinaus bietet OpenSSH eine große Auswahl an sicheren Tunneling-Funktionen, mehrere Authentifizierungsmethoden und anspruchsvolle Konfigurationsoptionen.

Für die Remoteverwaltung in heterogenen Netzwerken, haben Windows und Unix/Linux nicht viel gemeinsames. Unter Unix/Linux ist der Remote-Zugriff per SSH ein Standard für Datentransfer, Remote-Terminal sowie Port-Forwarding für Remote-X. Unter Windows ist ein wirklicher Standard noch nicht erreicht, neben WinRM, PowerShell-Remote, RDS und RSAT gibt es einige mehr. Hinzugekommen ist nun auch ein Port des freien OpenSSH Client/Server Tools, dies ermöglicht weitere Integration und Verwaltung von Windows und Linux/Unix Umgebungen.

Die OpenSSH Suite ist auf Github verfügbar und besteht aktuell aus folgenden Tools:

  • Remote-Operationen werden mit ssh, scp und sftp durchgeführt
  • Key Management mit ssh-add, ssh-keygen
  • Die Service-Seite besteht aus sshd, sftp-server und ssh-agent
Win32 OpenSSH Installation

Nach dem Download das Zip-Archive in C:\Program Files\OpenSSH entpacken.

Starte PowerShell als Administrator und wechsle in den Pfad C:\Program Files\OpenSSH und führe folgende Aktion aus.

Die SSH-Host-Schlüssel generieren mit allen Schlüssel die sshd für Key-auth erwartet.

Die Firewall auf Windows Server für SSH erweitern.

Bei der Windows Workstation werden eingehende SSH Verbindungen wie folgt erlaubt.

Der SSH-Agent hält den privaten Schlüssel im Arbeitsspeicher.

Nun können SSH Verbinden aufgebaut werden.

openSSH-client

Den SSH Daemon Auto-start (Boot) aktivieren.

Ein Schlüsselpar wird wie folgt generiert.

 

 

Outlook Junk E-Mail auf Smarthost

Niemand mag SPAM, um die Flut unerwünschter E-Mails einzudämmen, müssen eingehende E-Mails mehrere Filter und sogenannte Milter durchlaufen. Eine effiziente Filter Lösung bietet der Mail Transfer Agent – Postfix, das Open Source Programm wurde 1998 von Wietse Zweitze Venema entwickelt. Postfix ist ein leistungsfähiger Mail Transfer Agent für Unix und Unix-Derivate. Die Software sollte zum Entwicklungszeitpunkt eine kompatible Alternative zu Sendmail sein. Dabei wurde bei der Entwicklung insbesondere auf Sicherheitsaspekte geachtet. Der Quellcode von Postfix steht unter der IBM Public License. Postfix MTA’s werden von vielen Internet Providern und in Großunternehmen eingesetzt.

Die Architektur von Postfix erlaubt es eine Vielzahl an Filter einzubinden, wie das unter der Apache-Lizenz stehende SpamAssassin, um unerwünschte E-Mails herauszufiltern und zu markieren, oder Greylisting um das verhalten eines Senders zu überprüfen. Zum Schutz gegen Viren und Schadcode kann Clam AntiVirus eingebunden werden – ClamAV steht unter der GNU General Public License.

Workaround

Als E-Mail Client Software in Unternehmen ist MS Outlook im Exchange betrieb weit verbreitet. Für SPAM der nicht in einem Filter abgefangen wurde, bietet Outlook die Möglichkeit unerwünschte Absender zu sperren, hierbei ist die Bezeichnung nicht gerade zutreffend, denn die sogenannten Junk E-Mails werden auf dem Server nicht gesperrt, sondern sie werden beim Empfang viel mehr in den Outlook Ordner Junk-E-Mail verschoben. Besser wäre es aber wenn der vermeintliche Absender es gar nicht schafft es zuzustellen, also es zurückgewiesen wird.

outlook-junk-emails

Hier gibt es eine Möglichkeit einzugreifen, wenn der Exchange Server wie oft die E-Mails nicht direkt aus dem Internet empfängt, sondern über einen Smarthost abwickelt. Smarthosts sind meist Linux basierte Server die mit dem Postfix MTA arbeiten.

Abbildung: Junk-E-Mail Optionen: Blockierte Abesnder
Abbildung: Junk-E-Mail Optionen: Blockierte Abesnder
Installation

Der folgende PowerShell Script ruft die Junk-E-Mail Einträge aus der Outlook Sperrliste Blockierte Absender von allen Mailboxen aus und extrahiert die formatierte Ausgabe als Windows-ANSI Text und in eine ACSII-Text Datei. Anschliessend wird die erzeugte Datei extracted_JunkEmails.asc auf den Smarthost übertragen. Die Whitelist wird in der Datei extracted-TrustedEmails.asc angelegt.

Der Script wird auf dem Exchange Server in der Exchange Management Shell als Administrator ausgeführt, geeigneterweise als Job in der Aufgabenplanung zu jeder Stunde. Bei Zeile 8 soll anstelle des Platzhalters der Benutzername gefolgt vom Name des Smarthost stehen, dies als FQDN oder host IP.

Auf dem Exchange Server wird PuTTY benötigt, nach der Installation von PuTTY 64bit dient pscp.exe (PuTTY Secure Copy) zur Übertragung der Sperrliste Blockierte Absender auf den Smarthost. Damit es zu keiner Passwort abfrage kommt, muss mit PuTTY Key Generator (puttygen.exe) ein Schlüsselpar erzeugt werden, der erzeugte Public Key wird auf dem Smarthost unter das home Verzeichnis des Benutzers in das Verzeichnis .ssh in die Datei authorized_keys kopiert. Damit ist der Script mit pscp in der lage sich beim Smarthost zu authentifizieren.

Auf dem Linux Smarthost dient ein Shell Script um die Zeilen in das Unix (LF) Format zu konvertieren. Dieser Einzeiler erzeugt die passende Ausgabe in das Postfix Verzeichnis über pipe in die Datei junkbl_access und trusted_access.

Code in eine Datei junkbl.sh einfügen und unter dem Pfad /usr/bin/ speichern.

Der Shell Script wird ausführbar gemacht.

Der stream-editor – sed konvertiert die Zeilenumbrüche, entfernt leer Zeichen und fügt am ende jeder Zeile den SMTP Error Code 550 ein, damit werden die beim versuch der Zustellung nicht erwünschten E-Mails der Sperrliste Blockierte Absender zurückgewiesen.

Die Postfix lookup tables erstellen und aktualisieren.

In der Postfix Hauptkonfiguration werden die restriction checks hinzugefügt.

Nach einem postfix reload wird die Outlook Sperrliste von Postfix angewandt.

Per cronjob soll die Sperrliste laufend aktualisiert werden, zu jeder Stunde +5 min.

Anmerkung

Bei CentOS 7 ist es erforderlich den user zur Group sftp_users hinzuzufügen, mit usermod -G sftp_users {username}, in der sshd_config muss die direktive Match Group sftp_users angewandt werden.

Wie ein Script für die Exchange Management Shell aus der Aufgabenplanung ausgeführt wird, erklärt der Beitrag Exchange MailboxStatistics Mail-Report

OpenSSH Key Bereitstellung für Auto-login PuTTY Key Generator

Eine weitere SSH Lösung bietet OpenSSH on Windows

Release Update und Bugfix auf Github

IIS7 WebSite Export – Import

Der IIS-Manager ist die Verwaltungskonsole der Windows Internet Informationsdienste und ermöglicht die Verwaltung von Sites und Anwendungspools. Der IIS-Manager (inetmgr) unter Windows Server 2008 R2 und Server 2012 bietet jedoch mehr als die per GUI bereitgestellten Funktionen, einige für die Verwaltung wichtige Funktionen stehen nur als CLI Version zur Verfügung, unter %windir%\system32\inetsrv\ befindet sich das Utility appcmd.exe, mit diesem es möglich ist die Konfiguration, oder teile davon zu exportieren und zu importieren. Dadurch bietet sich die Möglichkeit Applicationpool und Sites auf andere IIS-Hosts zu übertragen, beispielsweise für IIS im Load-Balanced Betrieb, sollte keine SharePoint Farm zur Anwendung kommen.

Eine weitere Anwendungsmöglichkeit ist das Clonen von WebSites, dabei können einzelne WebSites und die dazugehörenden Anwendungspools exportiert werden, nach dem Export muss lediglich der SITE NAME und SITE ID in einem Editor geändert werden.

Hier in diesem Beispiel werden die WebServices des AIF Connectors für Dynamics AX kopiert um eine weitere Business Connector Instanz zu erstellen, hier mit neuem SITE.NAME=“AifWebServiceProd“ und mit der SITE.ID=“3″, die Site Id kann eine beliebige Zahl sein, darf jedoch in applicationHost.config noch nicht existieren.

Hierzu öffnet man eine Eingabeaufforderung mit +R=cmd und lässt nach dem beenden des WWW-Publishingdienst folgende appcmd Befehle ausführen.

Zeile 4  exportiert den Anwendungspool MicrosoftDynamicsAXAif50 in Datei myapppool.xml im Temp Ordner des aktuellen Benutzers.
Zeile 6 exportiert die Site AifWebServices in aifwebservices.xml.
Zeile 8 öffnet aifwebservices.xml in den Editor um Site Name und Site Id zu ändern. Zeile 10 und 12 importiert die angepassten XML Dateien.

Nach dem Start von W3SVC und aktualisieren des IIS-Managers erscheint die Site und der AppPool im Bereich Features, der Anwendungspool der neuen Site kann im Fenster Aktionen bei Grundeinstellungen über den Button Auswählen zugewiesen werden. Auch der Physikalische Pfad des Virtuellen Verzeichnis kann jetzt ggf. angepasst werden. Bei Bindungen sollte ein noch nicht genutzter Port gewählt werden, oder man verwendet ein hostheader Name.

Folgende Übersicht zeigt die von appcmd unterstützten Optionen