Zusätzliche Neztwerke via Windows VPN erreichen, ohne „Standartgateway für das Remote Netzwerk verwenden“ (Route zu VPN hinzufügen)

Problem

Über einen Windows RRAS Server soll, beispielsweise über SSTP, nicht nur der Standort des VPN Routing und Ras Servers erreicht werden, sondern zusätzliche ein oder mehrere Netzwerke über andere Router.

Das ist, nachdem man die betreffenden Routen im VPN-Server eingetragen hat, auch kein Problem. Jedenfalls bis die Funktion „Standartgateway für das Remote Netzwerk verwenden“ auf dem Client deaktiviert wird.

Die Entfernung des Hakens sorgt zwar für einen direkten Internet-Zugang auf dem Client, verhindert aber den Zugang zu den weiteren Unternehmensnetzwerken.

Lösung

Seit Windows 8 kann man via PowerShell zusätzliche Routen außer der Einwahl-Standartroute weitere Routen für jede VPN-Verbindung hinzufügen.

Add-VpnConnectionRoute -ConnectionName "MEINE VPN VERBINDUNG" -DestinationPrefix 10.42.42.0/24

Beim Herstellen einer Verbindung wird die Route mit der selben Metrik wie die VPN „Standardroute“ aktiviert.

Solche neuen Routen lassen sich mit dem Befehl Remove-VpnConnectionRoute auch wieder entfernen. Leider kann man die Routen nicht auflisten, außer durch „route print“ nach dem Herstellen einer Verbindung.
Auflisten lassen sich die Routen mit

(Get-VpnConnection "MEINE VPN VERBINDUNG").Routes

oder auch

Get-VpnConnection "MEINE VPN VERBINDUNG" | Select-Object -ExpandProperty Routes

Debian 10 apt-get update „Hash-Summe stimmt nicht überein“

Problem

Es tritt „auf einmal“ der folgende Fehler auf:

Hash-Summe stimmt nicht überein
......
Es wurden 42,42 MB in 42 s geholt (42 MB/s).
Paketlisten werden gelesen... Fertig
E: Fehlschlag beim Holen von ..... Hash-Summe stimmt nicht überein
E: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt.

Lösung

Sofern die Eintröge in der /etc/apt/sources.list korrekt sind, kann es nur apt’s cache sein. Aufräumen hilft in der Regel:

sudo apt-get clean
sudo rm -R /var/lib/apt/lists
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

Ursache

Die möglichen Ursache sind zwar techinsch vielfältig, lassen sich aber in aller Regel auf eine dieser vier Möglichkeiten eingrenzen:

  1. APT hat andere Metadaten als der server. In den meisten Fällen ist das wegen der Verwendundung von TLS eher unwahrscheinlich, aber möglich.
  2. Der Metadatensatz stimmen aufgrund eines Fehlers beim kopieren/extrahieren/widerherstellen nicht (mehr) überein.
  3. Das Repository wurde von APT genau dann aktualisiert, wenn APT ein Update ausführen wollte, oder APT hat eine veraltete Metadatei zwischengespeichert (die wegen dieses Zugriffskonfliktes nicht entfernt werden konnt).
  4. Die Debian repositories wurden gehackt und der lokale, korrekte, Hash passt nicht zur gehackten Version (unwarscheinlich)

Aktivierung des ’sa‘ Benutzers auf SQL Server Express Edition

Problem

Auf neuen SQL Express Edition Installationen ist der sa-Benutzer meist noch nicht aktiviert. Per Default ist nur die Windows-Authentifizierung eingeschaltet, was die Nutzugn des SQL-Benutzer ’sa‘ verhindert.

Lösung

Zuerst aktivert man im SQL-Server die ‚gemischte Authentifizierung‘.

So ändert man den Authentifizierungsmodus des SQL Server (SQL-Authentifizierung zulassen)

  1. Ausführen des SQL Management Studio „Als Administrator“
  2. Verbindung mit der Instanz herstellen (Windows-Authentifizierung)
  3. Im Objekt-Explorer ganz oben auf das Wurzelelement (die SQL-Server Instanz) mit der rechten Maustaste die Eigenschaften öffnen
  4. Link unter dem Punkt Sicherheit unter der Serverauthentifizierung den neuen gemischten Serverauthentifizierungsmodus auswählen und mit OK bestätigen
  5. SQL-Dienst neu starten (Im Objekt-Explorer mit der rechten Maustaste auf den Server ganz oben und dann auf Neu starten)

SA-Benutzer einschalten

An der SQL-Konsole, sofern man als Administrator vernbunde ist, reichen diese beiden schnellen Befehle:

ALTER LOGIN sa ENABLE ;  
GO  
ALTER LOGIN sa WITH PASSWORD = '123NEUES_SA_KENNWORT12343' ;  
GO  

vCenter Update „“Error in method invocation Timeout happens while sending message to microservice“

Problem

Die Aktualisierung des VMware vCenter Servers (VCSA) kann bei der Lizenzanzeige (EULA) nicht fortgesetzt werden. Nach einem Klick auf „Next“ landet man immer im selben Bildschirm, der die Fehlermeldung „Error in method invocation Timeout happens while sending message to microservice“ zeigt.

Zudem findet man in /var/log/vmware/applmgmt/applmgmt.log mehrere Meldung wie:

DEBUG:vmware.appliance.update.update_functions: Exception happens  while sending message to microservice: ConnectionRefusedError(111,  'Connection refused')

INFO:vmware.appliance.update.update_functions:Timeout happens  while sending message to microservice

ERROR:vmware.vapi.provider.local:Error in invoking  com.vmware.appliance.update.pending in precheck - Timeout happens while sending message to microservice 

Lösung

Der Update-Micrososervice vergisst manchmal, sein PID-file zu entfernen. Das verhindert den korrekten neustart des Prozesses. Das lässt sich an der SSH-Konsole der VCSA (SSH öffnne, mit ’shell‘ eine Shell starten) aber schnell beheben.

Prüfen ob die PID noch da ist

 ls /var/run/vmware/applmgmt/update_microservice.pid 

Wenn dem so ist, diese PID File entfernen

rm /var/run/vmware/applmgmt/update_microservice.pid

Danach läuft da sUpdate sofort fehlerfrei weiter.

IIS reverse Proyxy HTTP-Header setzen zeigt nur „Fehler 500“ Seiten

Problem

Eine Webanwendung beötigt bestimmt Header aus dem IIS (URL-Rewrite) Revese-Proxy. Oft gesehene Kandidaten sind beispielsweise:

  • HTTP_X_FORWARDED_HOST
  • HTTP_X_FORWARDED_PROTO
  • HTTP_X_FORWARDED_FOR

Konfiguriert man das nur innerhalb der URL-Rewrite-Regel, ist die Site sofort mit einem Serverfehler 500 nicht mehr erreichbar. Kann der IIS etwa keine Header hinzufügen oder ersetzen?

Lösung

Die Servervariablen, oder auch HTTP-Header, müssen vorher im IIS, beispielsweise auf Serverebene oder Siteebene, definiert werden. Nicht-Definierte Servervariablen können durch Regeln im nachhinein nicht ge- oder ersetzt werden. Das ist aus Sicherheitsgründen ja auch sinnvoll, nur vielleicht etwas irritierend umgesetzt.

1. Servervariablen definieren

Beispiel: Links die höchste Ebene (<SERNAME>) auswählen und im rechten Fenster doppelt auf „URL Rewrite“ klicken. Das ist natürlich auch auf Site-Ebene möglich, wir definieren dieses Beispiel aber im Server, damit die Variablen für alle Sites des Server gelten können. Danach gibt es rechts in der „Action Pane“ einen Link „Servervariablen anzeigen …“

… und schlussendlich kann man dort über „Hinzufügen“ die Variablen die man nutzen oder ändern möchte hinzufügen. Der Titel der pane „Zulässige Servervariablen“ weist auch deutlich in die richtige Richtung. Was hier nicht definiert ist, ist Serverseitig nicht zulässig. Serverseitig, weil eine Anwendung selbst natürlich Header senden und setzen kann, wie sie das möchte.

2. Servervariablen setzen oder ersetzen

Danach kann man in jeder Rewrite-Regel besagte Variablen (=Header) setzen oder ersetzen, ohne das der Server über einen „Error 500“ stolpert.