Linux: Uhrzeit abgleichen mit dem NTP-Deamon

Das NTP-Protokoll ist dazu da, um die Zeit des Systems mit einem zentralen Zeitserver abzugleichen. Dazu muss auf dem Server System sichergestellt werden, dass der NTP-Deamon installiert ist.

Installation des NTP-Deamon


~$ sudo apt-get install ntp

 
Konfigurieren des NTP-Deamon

Danach können in der Datei “/etc/ntp.conf” die zu verwendenden Zeitserver angegeben, sowie die benötigten Einstellungen gemacht werden. Damit die Änderungen in der “ntp.conf” auch verwendet werden, muss die Konfigurationsdatei neu geladen werden.


~$ sudo service ntp reload

 
Die Zeit manuell synchronisieren

Soll die Zeit manuell synchronisiert werden, kann man dies mit folgendem Befehl tun:


~$ ntpd -q

-q NTP-Deamon nach erstmaligem synchronisieren beenden
 
Nützliche Links

Uhrzeit-Abgleich mit NTP

C#: Prüfen ob die Datenbankverbindung auf den SQL – Server verschlüsselt wird

Muss die Datenbankverbindung von einer C#-Applikation zum SQL-Server verschlüsselt werden, muss der SQL-Server mit einem Zertifikat korrekt konfiguriert sein. Im weiteren müssen im ConnenctionString Parameter konfiguriert werden, damit eine verschlüsselte Verbindung hergestellt wird. Dazu wird der ConnenctionString mit folgenden Parametern versehen:

  • encrypt=true SSL Encryption aktivieren.
  • trustServerCertificate=false Zertifikat wird validiert. (Bei self-signed Zertifikaten auf “true” setzen)

Wird nun mit der C#-Applikation eine Verbindung auf den SQL-Server hergestellt, sollte die Verbindung verschlüsselt sein. Wie kann man sich jedoch sicher sein? Eine Möglichkeit ist die Verwendung eines “Sniffers”, wie WireShark, oder aber man prüft dies auf dem SQL-Server selber.

Auf dem SQL-Server kann man folgende SQL-Abfrage absetzen, um alle Verbindungen mit ihren Verschlüsselungsoptionen anzuzeigen:


SELECT session_id,encrypt_option
FROM sys.dm_exec_connections

session_id  encrypt_option
----------- ----------------------------------------
73          TRUE
73          TRUE
73          TRUE
75          FALSE
76          FALSE

Bei den Verbindungen mit der SessionId 73 sehen wir, dass die Verschlüsselung aktiviert und verwendet wird. (encryption_option = true)

Nützliche Links

SQL Server SSL Troubleshooting Steps
Connection Properties
TrustServerCertificate Property

Nginx: Alle http-Anfragen auf https umleiten

Soll eine Webseite nur noch über HTTPS zugänglich sein, müssen alle HTTP-Anfragen auf HTTPS umgeleitet werden. Dies kann bei Nginx mit rewrite oder return gemacht werden. Die Empfehlung der Nginx Community ist aber die Verwendung des return, wie hier in diesem Beispiel:


server {
listen 80;
server_name signup.mysite.com;
return 301 https://signup.mysite.com$request_uri;
}


Nützliche Links
Nginx Community: Pitfalls
Nginx Community: Converting rewrite rules
Server Fault: How to force or redirect to SSL

Remotedesktopverbindung: Nützliche Tastenkombinationen

Eine kleine Auflistung von nützlichen Tastenkombinationen, für die Arbeit mit Remotedesktopverbindungen:

  • CTRL + ALT + END: Entspricht auf einem lokalen Windows Desktop der Tastenkombination “CTRL + ALT + DEL”.
  • CTRL + ALT + BREAK: Wechselt die Anzeige der Remotedesktopverbindung zwischen Vollbildmodus und Fenstermodus.
  • CTRL + ALT + MINUS SIGN (-): Erstellt ein Screenshot des aktiven Fensters im RD Host. Funktioniert nicht im Vollbildmodus – Im Vollbildmodus ist “ALT + Print Screen” zu verwenden.
  • CTRL + ALT + PLUS SIGN (+): Erstellt ein Screenshot des gesamten Desktop im RD Host. Funktioniert nicht im Vollbildmodus – Im Vollbildmodus ist “Print Screen” zu verwenden.

Nützliche Links:

MSDN: Remote Desktop Services Shortcut Keys

Windows 7: Computer (Host) via Remote Desktop neustarten / herunterfahren

Wer seinen Computer laufen lässt, damit man von extern via Remote Desktop zugreifen kann und später seinen Rechner herunterfahren möchte, wird schnell feststellen, dass die üblichen Menüpunkte zum Herunterfahren und Neustarten im Startmenü verschwunden sind.

Startmenü bei einer Remote Desktop Verbindung
Startmenü bei einer Remote Desktop Verbindung

Das Neustarten und Herunterfahren ist aber dennoch möglich. Mann muss nur wissen wie! (Was ja meistens so ist 🙂 )

Möglichkeit 1

Die erste Möglichkeit ist mit der Tastenkombination “ALT + F4”. Wurde diese Tastenkombination gedrückt erscheint der Dialog zum Herunterfahren:

ALT + F4 - Dialog zum Herunterfahren oder Neustarten
ALT + F4 – Dialog zum Herunterfahren oder Neustarten

Möglichkeit 2

Im Startmenü, im rechten Balken, befindet sich ein neuer Menüpunkt “Windows-Sicherheit”.

Startmenü - Windows-Sicherheit
Startmenü – Windows-Sicherheit

Wird dieser ausgewählt erhält man folgende Funktionen:

Windows-Sicherheit
Windows-Sicherheit
Roter Knopf zum Herunterfahren
Roter Knopf zum Herunterfahren

Möglichkeit 3

Die dritte Möglichkeit ist mit dem Konsolenbefehl “shutdown”.

shutdown /r /t 0
  • /r – neu starten
  • /s – herunterfahren
  • /t – zeit bis zum Neustart

Eine detaillierte Beschreibung zum Konsolenbefehl “shutdown” findet man im Blogbeitrag Windows: Nützliche Konsolenbefehle.

VBScript: Standard Pingabfrage mit WMI

Um zu überprüfen ob ein Host im Netzwerk erreichbar ist, kann man eine standard Pingabfrage verwenden.

Mit der “Win32_PingStatus WMI CLASS” bietet Microsoft die Möglichkeit eine solche standard Pingabfrage in einem VBScript zu verwenden.


Dim hostToPingFrom: hostToPingFrom= "localhost"
Dim targetIP: targetIP = 8.8.8.8

Dim cPingResults: Set cPingResults = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
hostToPingFrom & "/root/cimv2"). ExecQuery("SELECT * FROM Win32_PingStatus " & _
"WHERE Address = '" + targetIP + "'")

For Each oPingResult In cPingResults
    If oPingResult.StatusCode = 0 Then
       wscript.echo "Host is reachable"
    End if
Next

  • Zeilen 4,5,6: Verschickt die Pingabfrage
  • Zeile 8: Iterieren über die Ping-Resultate
  • Zeile 9: Ist der Statuscode 0 war das Pingkommando erfoglreich. Weitere Statuscodes werden in der Dokumentation zur “Win32_PingStatus class” beschrieben.

ping-checker.vbs

Ein kleines VBScript, das ein Ping sendet und bei einem Fehler eine Benachrichtigung als Email, über einen SMTP-Server, verschickt oder in der Windows Konsole anzeigt. Je nach Konfiguration. Dieses einfache Skript kann als Grundlage dienen, um sich ein eigenes, den Bedürfnissen angepasstes Skript zu erstellen.

ping-checker.vbs als 7zip herunterladen

ping-checker.vbs output
Der Konsolen-Output des Skriptes, da der Host 192.168.88.55 nicht erreichbar war.

Nützliche Links

Microsoft: Win32_PingStatus class
Wikipedia: Ping

Arbeiten mit MSI-Paketen in der Kommandozeile

Die Abkürzung MSI ist für die Bezeichnung “MicroSoft Installer”. MSI-Pakete können mit dem Kommando “msiexec” installiert, deinstalliert oder repariert werden. Windows Betriebssysteme bieten für diese Operationen eine Laufzeitumgebung mit dem Namen “Windows Installer” an. Dieser Systemdienst entpackt die MSI-Pakete und führt diese aus.

Um die Installation eines Paketes zu starten, wird der Parameter “/i” verwendet. Möchte man verhindern, dass die Installation angezeigt wird, kann dies mit den Paramter “/qn” verhindert werden.

msiexec.exe /i mySetup.msi /qn

Um ein Paket zu deinstallieren, wird der Parameter “/x” verwendet.

msiexec.exe /x mySetup.msi

Weitere Parameter sind in der msiexec Dokumentation zu finden.

Nützliche Links

msiexec Dokumentation
Wikipedia: Windows Installer
Windows Installer XML (WiX)

Windows Installer XML (WiX)

Wurde eine neue Software entwickelt, muss diese Software noch paketiert werden. Mit Hilfe dieses Installationspaketes kann diese Software dann an die verschiedenen Windows-Clients verteilt werden. Um ein solches Installationspaket, auch Setup bezeichnet, zu erstellen gibt es verschiedene gratis und Open Source – Applikationen.

Zwei weitverbreitete Programme zum Erstellen von Windows Installationsprogramme sind NSIS und Inno Setup. Beide erstellen eine ausführbare EXE-Datei, um die Software zu installieren. Nachteil beider Installationsprogramme ist, dass sie kein standardisiertes Installationsformat verwenden. Somit ist vor der Installation nicht ersichtlich was genau installiert, beziehungsweise welche Einstellungen vorgenommen werden. Daher verwenden viele Grossfirmen lieber ein standardisiertes Format wie das „Windows Installer XML“ das durch den „Windows Installer“ bereitgestellt wird.

Der Windows Installer (vormals Microsoft Installer) stellt eine Laufzeitumgebung für Installationsroutinen unter Microsoft-Windows-Betriebssystemen bereit. Er besteht aus einem Windows-Systemdienst, welcher Paketdateien im msi-Format (Microsoft Software Installation), sowie Dateien mit den Dateiendungen mst für Transform-Dateien und msp für Patches interpretieren, entpacken und ausführen kann. [1]

Eine Programmsammlung zum Erstellen von MSI-Paketen wurde intern bei Microsoft entwickelt und später als erstes Open-Source Produkt der Firma veröffentlicht. Der Name dieser Programmsammlung ist „WiX-Toolset“. Das gesamte Installationspaket wird mit Hilfe von XML definiert. Die Einarbeitung in das „Windows Installer XML“ braucht zwar seine Zeit, wird aber durch ein praktisches GUI-Tool „WixEdit“ oder dem Visual Studio Template „Votive“ vereinfacht. Auch sehr nützlich ist das Buch von Nick Ramirez mit dem Titel „A Developer’s Guide to Windows Installer XML“.

Nützliche Links

Webseite des WiX Toolset
Webseite des WiX Edit GUI
Wikipedia: WiX
Webseite von Inno Setup
Webseite des NSIS Installer

Referenzen
[1] Wikipedia: Windows Installer