Kategorieauswahl

Netzwerk

Netzwerk Tipps.

PowerShell Cmdlet Test-Connection liefert falsche IP-Adresse zurück

Neulich hatte ich ein interessantes Phänomen.

Ping 10.8.10.12

Wer antwortet? 10.8.10.12!

Test-Connection 10.8.10.12. Wer steht unter IPv4Address? 10.8.10.13!

Scheinbar macht Test-Connection kein einfaches ICMP hin und zurück, sondern wertet PTR-Records im DNS aus. Da lag dann auch der Fehler. Es gab 2 PTR Einträge auf einen anderen Rechner den ich gar nicht erreichen wollte. 12+13 verwiesen beide auf ein anderes System. Nachdem ich den mit der 12 am Schluss im DNS gelöscht hatte und dafür einen auf das gewünschtes Zielsystem ein trug, lieferte auch Test-Connection unter IPv4Address die erwartete 10.8.10.12. Leider war die Zeit knapp und so habe ich leider keinen Netzwerkmitschnitt gemacht, um zu sehen wie Test-Connection auf die Idee kommt auf den fehlerhaften PTR-Eintrag zu schauen.

Windows OpenVPN Client als Dienst laufen lassen

Voraussetzung ist, dass OpenVPN bereits mit normaler Benutzer-Authentifizierung funktioniert. Dieses Tutorial richtet sich also an Fortgeschrittene und nicht an OpenVPN Einsteiger! Die allgemeine OpenVPN Konfiguration und Installation können Sie unter http://openvpn.net/index.php/open-source/documentation/howto.html nachlesen.

Nachdem Sie den OpenVPN Client und danach OpenVPN GUI for Windows installiert haben finden Sie bei den Windows-Diensten einen Service namens OpenVPN Service. Legen Sie die Startart auf Automatisch fest und setzen Sie den Registry-Key-Eintrag HKLM\SOFTWARE\OpenVPN-GUI\allow_service auf den Wert 1 (vorher 0). Des Weiteren verändern Sie in der Datei mit der Endung ovpn im C:\Programme\OpenVPN\config Verzeichnis die Zeile auth-user-pass indem Sie in dieser Zeile einen Dateinamen hinten dran schreiben, also z.B. so: auth-user-pass access.txt.

Erstellen Sie mit Notepad ebenfalls im config Verzeichnis die Datei access.txt mit dem Inhalt des gewünschten VPN-Benutzers für den Verbindungsaufbau, dessen Zertifikate Sie bereits hier im config Verzeichnis hinterlegt haben:

Benutzername
Kennwort

Damit da nicht gleich jeder dran kommt, sollten Sie auf die Datei nur dem Administrator und dem SYSTEM Zugriff geben und allen anderen die Berechtigungen entziehen. Für die ganz Paranodien ist dann noch eine Bitlockerverschlüsselung zu empfehlen (EFS geht an dieser Stelle nicht).

Wie anfällig sind Ihre Benutzer gegenüber Phising?

Alle Sicherheitsmechanismen sind machtlos, wenn der Endbenutzer (der Mitarbeiter in Ihrer Firma – nicht der Admin!!!) nicht in Sachen Sicherheit ausgebildet wurde. Mit dem Opensource-Projekt spt können Sie Ihre Anwender testen. spt erstellt Phisingwebsites, genauso wie es die „bösen Jungs“ auch tun würden, mit dem kleinen Unterschied, das sich das Tool nicht Ihre Kreditkartenangaben mitschreibt, sondern welche Ihrer Anwender auf der gefälschten Site bereitwillig Ihre Anmeldedaten eingegeben haben. Bei der heutigen Informationspolitik in Firmen (Anwender auf Sicherheitsschulungen zu schicken kostet Geld), denke ich mal dürfen 90% Ihrer Anwender auf die Phisingangriffe herein fallen. Aber vielleicht hilft dieses Tool dem IT-Leiter der Geschäftsführung endlich einmal die Augen zu öffnen, wie verwundbar die Firma ist, wenn Anwender mich Ach und Krach das Browser-Knöpfchen finden, um dann auf der Google Startseite „facebook“ einzutragen, wilde Links anzuklicken um sich anschließend (vielleicht tatsächlich) auf facebook einzuloggen.

Pagerank durch mehr Geschwindigkeit verbessern

U. a. bewertertet Google die Geschwindigkeit mit der Websites ausgeliefert werden. Es gibt einen Haufen Verbesserungen um die Geschwindigkeit der Website zu steigern. Welches Tuningpotential in Ihrer Website steckt finden Sie unter:

https://developers.google.com/pagespeed

heraus. Um das CMS/Blogsystem Wordpress zu tunen schauen Sie in diesen Artikel.

Linux Firewall Tipp gegen SYN-Flood Attacken

Bei SYN-Flood Attacken werden von einem bösen Client mehrere Verbindungsanfragen an einen Server geschickt und einfach offen stehen gelassen. Irgendwann schafft der Server es nicht mehr so viele Verbindungen zu erhalten. Um solcher Attacken Herr zu werden tragen Sie in Ihre Linux-Firewall die folgenden beiden Regeln ein:

iptables -I INPUT -m state --state NEW -m recent --set
iptables -I INPUT -m state --state NEW -m recent --update --seconds 60 --hitcount 11 -j DROP

Damit können nur noch 10 Verbindungsversuche von einer einzelnen IP-Adresse innerhalb einer Minute durchgeführt werden. Alle Weiteren werden verworfen, wodurch dem Server viel Arbeit erspart wird.

IIS 7.5 Webserverkennung ändern

Im Internet gibt es unzählige Beiträge wie man den HTTP-Responseheader beim IIS verändert, oder abschaltet. Diese Tipps funktionieren aber nur bei ältern IIS Webservern. Die Beispiele die ich für IIS 7.5 unter Windows Server 2008 R2 gefunden habe sind entweder wirkungslos oder produzieren nur Fehler. Hier die Lösung!

Installieren Sie, falls noch nicht vorhanden, den Rollendienst ASP.NET mit dem Servermanager. Legen Sie in Ihrem Webverzeichnis einen Ordner namens App_Code an ( keine Verhandlungen – das Verzeichnis muss so heißen!). In diesem Verzeichnis erstellen Sie eine Datei Namens Martins.ServerModules.RemoveServerHeaderModule.cs. In die Datei schreiben Sie mit Notepad folgenden Text:

using System;
using System.Text;
using System.Web; 
namespace Martins.ServerModules 
 { 
  public class RemoveServerHeaderModule : IHttpModule 
  { 
   public void Init(HttpApplication context) 
   { 
     context.PreSendRequestHeaders += OnPreSendRequestHeaders; 
   } 
   public void Dispose() 
   { } 
   private void OnPreSendRequestHeaders(object sender, EventArgs e)
   {
    HttpContext.Current.Response.Headers.Set("Server", "Apache");
   }
  }
 }

Dann fügen Sie in der IIS-Verwaltungskonsole für die Website in der Sie vorhin den Ordner App_Code erstellt haben ein verwaltetes Modul hinzu. Unter Name schreiben Sie etwas was Sie wiedererkennen also z. B. MartinsModul und unter Typ schreiben Sie den Dateinamen ohne die Dateinamenerweiterung, also: Martins.ServerModules.RemoveServerHeaderModule. Dämliche Rückfragen mit Ja beantworten und schon ist Ihr IIS angeblich ein Apache. Das was er da anmotzt behebt er automatisch.

Mit einem Netzwerksniffer sehen Sie nun in der Rückantwort vom Server statt:

Server: Microsoft-IIS/7.0\r\n

Server: Apache\r\n

Den Eintrag: X-Powered-By: ASP.NET\r\n werden Sie ganz einfach über HTTP-Antwortheader in der IIS-Verwaltungskonsole los. Das kann ja jeder ;-), aber etwas löschen was nicht da steht ist gar nicht so einfach!

 

OpenSource NAS System mit iSCSI Unterstützung

FreeNAS ist ein Opensourcesystem für die Verwaltung eines NAS basierend auf FreeBSD. Unterstützt werden alle gängigen Filetransferprotokolle wie CIFS, NFS, FTP, HTTP aber auch iSCSI. Die Konfiguration findet mittels Webinterface statt.

Windows 7 Firewall Control

Windows 7 Firewall Control erleichtert die Benutzung der Windows 7 Firewall vor allem wenn man auch die ausgehenden Verbindungen blockieren möchte. Das Programm erkennt einen neuen nicht zugelassenen Verbindungsversuch und fragt den Benutzer ob eine entsprechende Ausnahme eingetragen werden soll. Das Programm unterstützt auch Windows Vista und XP.

Website von IIS 7 auf UNC Freigabe Share bereitstellen

So lange man auf der lokalen Festplatte mit IIS 7 arbeitet ist das mit dem Zugriff ja alles noch relativ unkompliziert. Beim IIS 6 stellt eine Freigabe im Netzwerk auch kein Problem dar um als Speicherort für Websites zu dienen. IIS 7 bekommt das aber nur mit einigen Verrenkungen auf die Reihe. Wie Sie IIS 7 dazu überreden können erfahren Sie hier.

Unter dem Punkt Nachtrag weiter unten finden Sie noch eine Methode mit der es bei Windows Server 2008 R2 möglich ist anonyme und authentifizierte Freigabe in einem Share und Anwendungspool bereit zu stellen.

Anonymer Zugriff auf eine Website auf einem Fileserver mit IIS 7

Erstellen Sie im AD einen Benutzer für den Zugriff auf die Freigabe. Beachten Sie dabei bitte, dass das Kennwort nicht abläuft und der Benutzer es nicht beim ersten Anmelden ändern muss, ansonsten klappt es nur einen gewissen Zeitraum bzw. gar nicht.

Diesem AD-Benutzer geben Sie die NFTS- und Freigabeberechtigung Lesen. Wenn Sie es benötigen auch mehr, aber der Sicherheit zuliebe würde ich anonymen Benutzern nie mehr als Lesen einräumen. Auf keinen Fall vergessen dürfen Sie dem Verwalter der Website Vollzugriff (NTFS+Share, wie beim User auch) einzuräumen. In meinem Fall der Domänenadmin. Wenn Sie das vergessen, können Sie keine Einstellungen an der Website vornehmen, da wir nur lesenden Zugriff auf die web.config Datei hätten, welche die Einstellungen der Website enthält.

Klicken Sie mit der rechten Maustaste in der Webserververwaltung im linken Abschnitt auf den Knoten Sites und dann auf „Website hinzufügen“. Geben Sie dem Kind einen Namen und weisen Sie den UNC-Pfad (\\Server\Freigabe – die Sie zuvor erstellt haben) zum Dateiserver an. Klicken Sie auf „Verbinden als“ und geben Sie Ihren ebenfalls zuvor erstellten AD Benutzer und sein Kennwort (2x) an. Bindungen nach Ihren Vorstellungen einstellen und schon sollte der anonyme Zugriff klappen (es sollten natürlich korrekte html Dokumente im Share liegen, die abgerufen werden können).

Die Einstellungen des Application-Pools (ob integriert, oder klassisch – Netzwerkdienst oder ApplicationPoolIdentity spielt keine Rolle). Wenn es jetzt immer noch nicht klappt, haben Sie schon einmal Ihre Firewalleinstellungen gecheckt? Sind alle Module und Handler in der Website standardmäßig eingestellt?

Authentifizierter Zugriff auf eine Website auf einem Fileserver mit IIS 7

Erstellen Sie wie oben im blauen Abschnitt beschrieben Ihre Website. Der Unterschied besteht darin nun keinen Benutzer anzugeben, sondern die Pass-Through-Authentifizierung zu nutzen.

Aktivieren Sie die Standardauthentifizierung, installieren Sie ggf. das Modul über Rollendienste hinzufügen im Servermanager nach. Windows oder Digestauthentifizierung funktionieren nicht!!! Wenn Sie die Standardauthentifizierung sicher machen möchten, weil Kennwörter im Klartext übertragen werden müssen Sie SSL einsetzen. Aber das ist eigentlich nicht wirklich tragisch, wenn man überlegt, dass bei den anderen Authentifizierungsvarianten ja auch nur die Anmeldung verschlüsselt wird und nachfolgend alle Daten im Klartext über die Leitung spazieren!

Nun brauchen wir aber auch noch einen AD-Benutzer und einen freigegebenen Ordner auf einem Dateiserver. Den Benutzer weisen wir nun dem Anwendungspool der mit unserer eben erstellten Website verknüpft ist zu indem wir ihn unter Anwendungspools mit der linken Maustaste anklicken und dann auf der rechten Seite auf „erweiterte Einstellungen“ klicken. Dort sehen wir eine Zeile die mit Identität beginnt. Je nach Version steht dort standardmäßig Netzwerkdienst oder ApplicationpoolIdentity. Klicken Sie rechts den Eintrag an und es tauchen 3 Punkte auf. Da auch noch einmal drauf klicken und den unteren Eintrag Benutzerdefiniertes Konto anklicken und dort unseren AD-User mit Kennwort eintragen.

Auf dem Fileserver geben wir dem Verwalter der Website (meist der Admin) Vollzugriff und unserem selbst gebastelten AD-User Ändern Berechtigung (nur wenn unbedingt notwendig Vollzugriff) sowohl in den Freigabeberechtigungen als auch unter dem Reiter Sicherheit. Auf die im Verzeichnis enthaltene web.config bekommt wieder nur der Websiteverwalter (meist der Admin) Vollzugriff und unser AD-User bekommt Lesen. Schalten Sie ggf. die Vererbung der Berechtigungen bei NTFS aus. Alle anderen Dateien und Verzeichnisse geben Sie nur den Benutzern die gewünschten Berechtigungen die auch entsprechend darauf zugreifen sollen.

Interessanter Weise müssen Sie beim Zugriff unbedingt „http://“ vorne dran schreiben. Vergisst man das, klappt der Zugriff kurioser Weise nicht!

 

Nachtrag:

Auf aktuellen Windows Server 2008 R2 Systemen ist es mir geglückt, einen UNC-Share mit kombiniertem anonymen und authentifiziertem Zugriff (Standard-Authentifizierung) bereit zu stellen.

Erstellen Sie im AD einen Benutzer für den Zugriff von IIS auf die Freigabe. Beachten Sie dabei bitte, dass das Kennwort nicht abläuft und der Benutzer es nicht beim ersten Anmelden ändern muss, ansonsten klappt es nur einen gewissen Zeitraum bzw. gar nicht.

Diesem AD-Benutzer geben Sie die NFTS-Berechtigung „Ändern“ auf den freizugebenden Ordner. Benutzer bekommen „Lesen“ und Administratoren natürlich „Vollzugriff“. Bei der Freigabeberechtigung selbst tragen Sie der Einfachheit halber Jeder=“Ändern“ ein (dies tut der Sicherheit, dank der Kombination mit NTFS keinen Abbruch). Dies sorgt bei den darin enthaltenen Unterordnern und Dateien für eine gute Ausgangsbasis. Alle nun enthaltenen Dateien und Unterordner stehen somit zunächst einmal jedem Besucher anonym zur Verfügung.

An der Datei web.config müssen Sie die Berechtigungen für Ihren IIS-Benutzer auf „Ändern“ aufbohren, damit Ihr Webserver die Einstellungen bearbeiten kann, falls dies nicht automatisch bei Anlegen der Website/Anwendung geschieht.

Wenn Sie paranoid veranlagt sind können Sie auch noch die Berechtigungsvererbung abschalten und der Gruppe der Benutzer den Zugriff komplett entziehen und entsprechend die von Ihnen gewünschten Benutzer/Gruppen mit Ihren speziellen Berechtigungen versehen.

Dateien/Ordner die nur bestimmten Benutzern nach einer Authentifizierung zur Verfügung stehen sollen schalten Sie die Vererbung aus und entziehen der Gruppe der Benutzer den Zugriff komplett. Dafür tragen Sie die Benutzer und Gruppen ein, die dann den Zugriff darauf erhalten sollen.

So, nun brauchen wir natürlich noch die Einstellungen am IIS. Legen Sie eine Website, oder eine Anwendung an, je nachdem ob Sie es für eine komplette Website einsetzen möchten oder nur für einen Teilbereich. Lassen Sie dabei einen neuen Anwendungspool erstellen…um den kümmern wir uns gleich. Beim physikalischen Pfad tragen Sie Ihren UNC-Pfad ein (Beispiel: \\Servername\Freigabename). Unter „Verbinden als…“ lassen Sie bitte die Standardeinstellung „Anwendungsbenutzer“ stehen. Die Bindungseinstellungen können Sie nach Ihren Wünschen wie gewohnt festlegen.

Nun wechseln Sie zu den Anwendungspools und wählen Sie Ihren eben mit der Website erstellten aus. Klicken Sie im rechten Bereich auf „Erweiterte Einstellungen“. Auf dem sich öffnenden Popup unter „Prozessmodell/Identität“ tragen Sie Ihren Benutzer aus dem AD ein (Beispiel: Domänenname\IISBenutzer).

Jetzt zurück zu Ihrer Website. Unter „IIS/Authentifizierung“ bitte nur „Anonyme Authentifizierung“ und „Standardauthentifizierung“ aktivieren. Wenn die Standardauthentifizierung nicht vorhanden ist müssen Sie im Servermanager erst das Modul nachinstallieren. Bei der Standardauthentifizierung können Sie noch Ihre Domäne als Standarddomäne und Bereich vorgeben. Die Anonyme Authentifizierung benutzt standardmäßig die Identität IUSR *. Alle anderen möglicher Weise angebotenen Authentifizierungsvarianten müssen dabei deaktiviert sein!!! Da Sie für die Authentifizierung Standard einsetzen müssen, sollten Sie sich darüber im Klaren sein, dass die Anmeldeinformationen im Klartext übertragen werden, wenn Sie den Zugriff nicht mit SSL absichern. Bei den anderen verschlüsselten Authentifizierungsverfahren frage ich mich aber auch warum ich die Authentifizierung verschlüssele und die nachfolgend übertragenen Daten im Klartext über die Leitung spazieren. Mit SSL stellt die Klartextvariante also kein Sicherheitsproblem dar, verglichen mit sog. sichern Authentifizierungsverfahren ohne SSL!

* Mit dieser Einstellung hätten dann aber auch anonyme Benutzer potentiell Schreibzugriff auf die web.config. Dies ist wohl weniger wünschenswert. Für die Sicherheit empfehle ich daher im AD noch einen weiteren Benutzer für den anonymen Zugriff zu erstellen. Dann geht man in die Authentifizierungseinstellungen unter IIS und wählt die „anonyme Authentifizierung“ aus und klickt rechts auf „Bearbeiten“. Hier gibt man nun unter „Bestimmter Benutzer“ statt IUSR den eben erstellten Benutzer für anonymen Zugriff aus dem AD an (Beispiel: Domänenname\IISAnonymous“). Die ApplicationPool ID würde ich hier nicht einsetzen, um den Zugriff nun mit ACLs beim NTFS genau steuer zu können.

 

Wenn jemand diese Anleitung unter Server 2008 ausprobiert hat würde ich mich über einen Kommentar, ob es bei W2k8 auch funktioniert sehr freuen. 🙂

Webplattforminstaller 3.0 von Microsoft

Den Webplattforminstaller von Microsoft gibt es nun inzwischen schon in der Version 3.0 und dennoch kennt diese fabelhafte Programm kaum ein Webserver Administrator.

Mit dem Webplattforminstaller lassen sich automatisch alle kostenlosen Microsoft Webservererweiterungen ohne Fummeleien am System installieren. Egal ob Sie .NET und php Erweiterungen installieren möchten oder gar Joomla!, Drupal, Moodle oder Wordpress. 5 Mausklicks und Sie sind fertig!!! Sollte die ein oder andere Webanwendung einen Datenbankserver benötigen…kein Problem, entweder wird MYSQL oder SQL Express automatisch mitinstalliert und sicher konfiguriert.

Älteste unterstützen Betriebssystemplattformen sind Windows XP ab SP2 (auch Clients haben einen IIS!) und Windows Server 2003 SP1.