In PowerShell Remote-Session auf UNC Netzwerkpfade zugreifen
Hat man Windows Remoting konfiguriert und Enter-PSSession als auch Invoke-Command klappen problemlos, fängt man an diese tollen Möglichkeiten rege zu nutzen. Ab und an will man dann aber vielleicht auch einmal aus so einer Remote-Session heraus auf einen Netzwerkpfad in Form von \\Servername\Freigabename zugreifen und man bekommt immer so nette Fehlermeldungen wie:
Get-ChildItem : Cannot find path ‚\\Servername\Freigabename‘ because it does not exist.
+ CategoryInfo : ObjectNotFound: (\\Servername\Freigabename:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Doch der Server ist online und wenn Sie am entfernten Computer lokal angemeldet versuchen darauf zuzugreifen ist alles fein. Was läuft hier schief? Das ist wieder einmal so ein „Sicherheitsfeature“.
Der Quick and Dirty Way ist einfach mit:
net use n: \\Servername\Freigabename
eine Netzlaufwerksverbindung herzustellen (tolle Sicherheit). New-PSDrive und andere Experimente können Sie sich sparen…habe ich alles schon ausprobiert. N: können Sie dann ganz normal ansprechen. Nun der offizielle Weg:
Mittels Gruppenrichtlinien müssen Sie unter Computer Configuration\Policies\Administrative Templates\Windows Components\Windows Remote Management (WINRM) bei den Unterpunkten WINRM Client als auch WINRM Service „Allow CredSSP authentication“ aktivieren. Des Weiteren müssen Sie unter Computer Configuration\Policies\Administrative Templates\System\Credentials Delegation die beiden Einträge Allow Delegating Fresh Credentials und noch einmal der Eintrag mit Allow Delegating Fresh Credentials with NTLM-only Server Authentication mit so einem Eintrag schmücken:
wsman/NameDesRechnersAufDenSieSichRemoteDraufSchaltenMöchten
Diese Policy muss an eine OU gehängt werden welche die Computer enthalten von denen aus Sie Enter-PSSession bzw. Invoke-Command ausführen möchten.
Haben Sie keine GPOs (z.B. weil kein AD) dann geht es auch in der PowerShell auf den einzelnen Systemen (aber nicht remote 😉 ) mit:
Enable-WSManCredSSP –Role Server
und
Enable-WSManCredSSP –Role Client -DelegateComputer NameDesServers
Um sich dann mit dem Server zu verbinden, müssen Sie die zusätzlichen Schalter -cred und -auth mit angeben. Zuvor sollten Sie sich allerdings die Anmeldeinformationen in einer Variablen hinterlegen, z.B. so:
$cred=get-credential
Dann können Sie Ihr eigentliches Enter-PSSession in dieser Form ausführen:
Enter-PSSession Remoteserver -cred $cred -auth credssp
Verrückte Welt! Ich nehme net use 😉
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).
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.
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.
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. 🙂
Firewalls
Sie brauchen eine gute, vielfältige und sichere Firewall, die trotz allem einfach zu bedienen ist und obendrein nichts kostet, weil GPL? Diese hier sind wie IPCop, nur besser und es gibt sie auch als virtuelle Appliance für die unterschiedlichen Virtualisierungsumgebungen (VMware,XEN,KVM-Quemu). Sind also auch ideal für Routing in Laborumgebungen geeignet:
IPfire Ableger von IPCop
pfSense Ableger von m0n0wall
Windows als CUPS Client
Wenn man unter UNIX/LINUX CUPS zum drucken verwendet ist es eigentlich recht einfach von Windows aus auf dem Linux Druckserver auszudrucken.
Installieren Sie zunächst die Druckerunterstützung für UNIX bzw. das IPP (Internet Printing Protokoll = IPP = CUPS). Das geht über Systemsteuerung/Software bzw. bei neueren Windowsversionen Systemsteuerung/Programme hinzufügen oder entfernen. Dort findet man dann unter Windowsfunktionen hinzufügen/aktivieren die Druckunterstützung für UNIX. Ein Mausklick und fertig ist die Verbereitung. Jetzt verwenden Sie den Assistenten um Drucker hinzuzufügen, wählen Sie Netzwerkdrucker (nicht lokaler Drucker) und klicken Sie dann auf Freigegebene Drucker über den Namen auswählen. Im darunterliegenden Feld tragen Sie dann http://IP-Adresse oder Name des Linuxdruckservers:631/printers/Name des Druckers (ohne die Erweiterung .ppd!). Das war’s dann auch schon.Immer gleich bleibt http:// und :631/printers/. http ist das entsprechende Protokoll, dass zum drucken benutzt wird und weil CUPS standardmäßig auf Port 631 und nicht 80, wie http vermuten lässt druckt muss dies hinter der IP-Adresse bzw. des Names des Rechners mit :631 angegeben werden.
Sharepoint 2010 sieht keine AD Konten
Wenn Sharepoint 2010 keine Benutzerkonten des Active Directory sieht liegt das wahrscheinlich daran, dass die virtuellen Maschinen einfach nur kopiert wurden. Auch bei Terminalservern bzw. Remotedesktopdiensten gibt es Probleme in der virtuellen Umgebung (egal ob VMware, VirtualBox oder Hyper-V) wenn die Computer einfach nur kopiert werden. Damit alles sauber funktioniert müssen Sie entweder sysprep -generalize (liegt im Verzeichnis C:\Windows\System32\Sysprep) oder den SID-Changer bei älteren Gastbetriebssystemen auf allen virtuellen Maschinen laufen lassen, bevor Sie diese in eine gemeinsame Domäne stecken. Der SID Wechsel beim Domänen bzw. Namenswechsel oder was durch die virtuelle Umgebung automatisiert geschieht reicht hier offenbar nicht aus. Dasselbe gilt natürlich auch bei physikalisch geklonten (Ghost, Dirve Image, etc…) Maschinen. Das Programm NewSID (SID-Changer) wird bei Microsoft nicht mehr zum Download angeboten, da es angeblich nicht notwendig ist. Daher hier der Download-Link der Zeitschrift Chip.
IPv6 Privacy Extensions
Die letzten 64 Bit der IPv6 Adresse sind die sogenannte Interface-ID. Diese Interface-ID wird aus der global eindeutigen MAC-Adresse einer Netzwerkkarte gebildet. Daher ist jeder PC und mehr oder weniger auch dessen Benutzer über IPv6 eindeutig im Internet anhand seiner Adresse zu identifizieren. Durch RFC 4941 kann man die „Privacy Extensions“ benutzen damit genau das nicht passiert.
Handys:
Bei iPhone, als auch Android Handys kann man die IPv6 Privacy Extensions nicht aktivieren (Stand heute: iOS 4 und Android bis 2.x und 3 wohl auch nicht.
Windows:
Bei Windows Clients ab XP sind die Privacy-Extensions automatisch aktiviert, nur bei Servern ab 2003 nicht. Für ältere Betriebssysteme stellt sich die Frage mangels IPv6 Unterstützung sowieso nicht. Daher haben Sie sich vielleicht schon immer gewundert, warum Sie nicht die MAC-Adresse in Ihrer IPv6-Adresse wieder finden, wenn das doch überall so geschrieben steht. Um bei Windows den Privacy Status abzufragen geben Sie an einer administrativen Kommandozeile (Im Suchfeld des Startmenüs cmd tippen und Strg+Shift+Enter bestätigen!):
netsh interface ipv6 show privacy
ein.
Mit den zwei Befehlsketten:
netsh interface ipv6 set global randomizeidentifiers=disabled
und
netsh interface ipv6 set privacy state=disabled
können Sie die Privacy Extensions ausschalten und bekommen demzufolge dauerhaft die MAC-Adresse im suffix der IPv6 Adresse. Raten Sie doch einmal was state=enabled macht ;-). Gerne können Sie auch die Mac gegen die IPv6 Adresse einmal mit ipconfig /all überprüfen.
Wenn jemand eine Idee hat, wie man das über Gruppenrichtlinien oder über die grafische Oberfläche regeln kann bitte einen Kommentar schreiben.
Linux:
Auf die Schnelle:
sysctl net.ipv6.conf.eth0.use_tempaddr=2; ifdown eth0; ifup eth0
Dauerhaft:
Am Ende der Datei /etc/udev/rules.d/70-persistent-net.rules tragen Sie die folgenden Zeilen ein:
SUBSYSTEM==“net“, ACTION==“add“, DRIVERS==“?*“, ATTR{dev_id}==“0x0″, ATTR{type}==“1″, KERNEL==“eth*“, RUN+=“sysctl net.ipv6.conf.eth0.use_tempaddr=2″
Sollten Sie noch eine WLAN0 Schnittstelle haben machen Sie dafür genau dasselbe, nur statt eth0 tragen Sie wlan0 beim jeweiligen Befehl ein.
IP-Einstellungen zurücksetzen
Hat wieder einmal so ein „tolles“ Tuningtool bei Ihnen gewerkelt und nun geht’s noch langsamer als vorher oder gar nicht mehr und selbst die Deinstallation nutzt nichts? Windows ist da gar nicht so nachtragend. Mit der folgenden Lösung in der Eingabeaufforderung können Sie alles wieder gut machen.
Bei Windows-Vista an aufwärts:
netsh interface ipv4 reset (Für IP Version 4)
netsh interface ipv6 reset (Falls Sie auch schon IP Version 6 nutzen)
Beim alten XP:
netsh interface ip reset resetlog.txt (Die resetlog.txt würde protokollieren was er beim reseten so treibt)