SharePoint Webveröffentlichung mit Sophos UTM

In Zeiten wo das Microsoft Forefront Threat Management Gateway als Auslaufmodell betrachtet wird und die Preise für ein Microsoft Unified Access Gateway gegen eine SharePointveröffentlichung über dieses sprechen, ist es wichtig sich nach anderen Anbietern um zusehen. Mit der Beta 9.2 des Sophos UTM ist ein kleiner Schritt in die richtige Richtung unternommen wurden.

1. Vorraussetzungen

  • Funktionierende SharePoint Farm inklusive mindestens einer Webanwendung mit Sitecollection
  • Authentication Provider für Webanwendung steht auf NTLM und Basisauthentifizierung ist angehakt
  • Active Directory inkl. interner Domain
  • SharePoint Server ist teil der Domain
  • Installiertes und konfiguriertes Sophos UTM 9.2 mit mindestens zwei Netzkarten für das Domain-Netzwerk (bei mir 192.168.8….) und den externen Zugriff (bei mir 192.168.1….)
  • Eingerichteter Authentifizierungsserver im UTM inkl. SSO

2. Durchführung im Sophos UTM Webinterface

Als erstes erstellt man unter dem Punkt „Webserver Protection“ –> „Web Application Firewall“  –> Registerkarte „Echte Webserver“ einen neuen echten Webserver.

Echter Webserver

Dabei ist zu beachten, dass unter Host der SharePoint Server angelegt und eingetragen wird . Auch sollte man angeben über welche Schnittstelle der Host erreichbar ist. In unserem Fall ist das die interne (das Domain-Netzwerk).

SharePoint Host

 

Im zweiten Schritt legt man unter „Webserver Protection“ –> „Umkehrauthentifizierung“ –> Registerkarte  „Profile“ ein neues Authentifizierungsprofil an.

Umkehrauthentifizierung

Dabei ist zu beachten, dass unter Frontend-Bereich die externe IP bzw. die externe URL angegeben wird. Auch sollten unter Benutzer/Gruppen die Active Directory Users stehen, damit gegen das AD authentifiziert werden kann.

 Im dritten Schritt richtet man nun unter „Webserver Protection“ –> „Web Application Firewall“  –> Registerkarte „Virtuelle Webserver“ einen neuen virtuellen Webserver.

Virtueller Webserver

Dabei werden die externe IP bzw. Domain angegeben und der echte Webserver zugeordnet. Außerdem sollte man bei den Firewall-Profil aufpassen und eventuell ein neues Anlegen, da die Standardprofile von Sophos UTM mit SharePoint Probleme machen.

Im letzen Schritt ordnet man unter „Webserver Protection“ –> „Web Application Firewall“  –> Registerkarte „Site-Path-Routing“ das erstellte Umkehrauthentifizierungsprofil zu.

Umkehrauthetifizierungsprofil

 

 

 

 

 

 

 

Nun wird beim Aufruf der externen IP bzw. Domain das Loginformular des Sophos UTM angezeigt.

Login Formular

 

Damit nun auch noch der Login am SharePoint klappt müssen noch zwei weitere Schritte durchgeführt werden.

Zu ersten muss die externe Domain bzw. IP in der SharePoint Zentraladministration unter den Alternativen Zugriffspfaden für die Webanwendung eingetragen werden.

Zum zweiten muss im IIS des SharePoint WebFrontend Servers für die genutzte Webanwendung die interne Domain als default Domain in der Standartauthentifizierung hinterlegt werden.

Nun klappt der Login am SharePoint über die externe IP bzw. Domain mit dem Nutzernamen ohne Domainprefix und Passwort.

Fehlende oder falsche alternative Zugriffspfade im SharePoint

Ein Problem was immer wieder zu beobachte ist, ist das Fehlen oder falsche Eintragen von alternativen Zugriffspfaden in der SharePoint Zentraladministration. Gerade bei der Umstellung von nicht SSL auf SSL verschlüsselte Anwendungen treten mitunter seltsame Phänomene auf. So kann es zu Beispiel passieren, dass obwohl die SharePoint Webseite sich noch aufrufen lässt, Links zu Bibliotheken oder Liste nicht mehr richtig arbeiten.  Dies äußert sich durch eine Fehlermeldung, dass die Liste oder Bibliothek gelöscht wurden wäre, obwohl sie nicht gelöscht wurde.  Nach erfolgreichen Eintragen der richtigen alternativen Zugriffspfade ist das Problem aber schnell behoben.

Exchange 2013 Kalender in SharePoint 2013 anzeigen

Exchange 2013 Kalender anzeigen

Der nachfolgende Artikel beschäftigt sich mit der Erstellung eines Webparts zur Anzeige von Ressourcenkalendern aus dem Exchange 2013 auf einer SharePointwebseite.

Voraussetzung:

Funktionsumfang:

  • Anzeige von Exchange 2013 Kalender im SharePoint
  • Ansicht als Liste oder/und Kalender ist frei wählbar
  • Zugriffskonto auf den Exchange 2013 Kalender ist frei wählbar
  • Verwaltung mittels Webparteigenschaften

Screenshots:

Exchange 2013 Kalender Webparteigenschaften

Webparteigenschaften

 

Kalender - Ansicht

Kalendernsicht des Ressourcenkalender im SharePoint

Listenansicht

Listenansicht des Ressourcenkalender im SharePoint

 

Anleitung:

  1. Als ersten Schritt erstell man ein leeres SharePoint 2013 Projekt in VisualStudio. Dabei ist zu beachten, dass dieses Projekt als Farmlösung bereitgestellt wird. Außerdem muss der Link zu einer SharePoint 2013 Testumgebung angegeben werden.
  2. Diesem Projekt fügt man im zweiten Schritt ein neues Element (Webpart) hinzu.
  3. Anschließend öffnet man die .cs Datei des Webparts
  4. Code einfügen (bitte dem Projekt entnehmen): Exchange-Calendar
  5. Bereitstellen

Hinweis: Nutzungsrecht: frei und kann uneingeschränkt genutzt werden.

Backup-SPSite mit Powershell

Das nachfolgende Script erstellt eine SiteBackup (Backup-SPSite) einer SharePoint SiteCollection abwechselnd in zwei verschiedene Dateien. Dabei wird immer die Datei neu geschrieben welche älter ist.

Backup-SPSite

spSite-Full.ps1

Aufrufen kann man das Script dann mittels PowerShell

 

.\script.ps1 -WebApplication Link zur Webapplikation -source Pfad -file1 Datei1 -file2 Datei2

Abschließen kann der Befehl  in der Aufgabenplanung automatisiert werden.

Automatisches Löschen von Dateien nach X Wochen

In manchen Fällen ist es notwendig, dass Dateien nach Erreichen eines bestimmten Alters gelöscht werden. Dazu bietet Windows verschiedene Möglichkeiten. Eine davon wird nachfolgend vorgestellt.

Für das automatische Löschen verschiebt man erst die gewünschten Dateien mittels robocopy in der PowerShell.

robocopy Quelle Ziel /E /R:1 /W:20 /MOV /MINAGE:20
 

Dabei steht “ /E“ dafür, dass alle Unterverzeichnisse mit berücksichtigt werden.

Die Option „/R:1″ steht für die Wiederholung der Versuche beim Scheitern des Kopiervorganges.

Die Option „/W:20“ steht für die Wartezeit, welche beim Auftreten eines Fehlers eingehalten wird.

/MOV“ verschiebt die Dateien von der Quelle zum Ziel.

/MINAGE:20“ bedeutet, dass nur Dateien berücksichtigt werden, welche älter als 20 Tage sind.

Anschließend löscht man das Zielverzeichnis oder leert es.

rd /s /q Ziel

 oder

Remove-Item Ziel\* -Recurse

in der PowerShell.

 

 

 

DisableLoopBackCheck SharePoint

Mittels DisableLoopBackCheck ist es möglich die SharePoint gehosteten Seiten auch von dem Host selbst zu erreichen.

Hierzu muss in der Registry ein neuer Eintrag erstellt werden.

Das kann entweder mittels der PowerShell oder native mittels des Registryeditors erfolgen.

Bei der ersten Methode wird in der PowerShell nachfolgender Befehl ausgeführt:

New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name „DisableLoopbackCheck“ -value „1“ -PropertyType dword

Für die zweite Methode öffnet man als erstes den Registryeditor. Das erfolgt über das Anklicken des

Start-Buttons

und anschließende Eingabe von

regedit

 Anschließend navigiert man im linken Baum zum Ordner

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

und erstellt dort ein neues

dword32

welches

DisableLoopBackCheck

heißt und als

value=1

als Wert besitzt.

Wichtig!!! Der LoopBackCheck verhindert DoS Attacken auf den Server. Deshalb ist es wichtig diese Funktion nur auf einem Testsystem zu deaktivieren!

 

Als Alternative in Produktivsystemen sollte man BackConnectionHostNames nutzen.

New-ItemProperty HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0 -Name “BackConnectionHostNames” -value “HostHeader” -PropertyType multivalue

Erstellen einer Sitecollection mit PowerShell

Nachfolgend wird die Erstellung einer Sitecollection mit Powershell Schritt für Schritt beschrieben.

Vorrausetzungen:

  • Installierter und Konfigurierter SharePoint Server
  • mindestens eine erstellte Webanwendung
  • Zugriff auf den SharePoint via Powershell auf den SharePoint

 

Vorgehensweise:

Im ersten Schritt öffnen man die Powershell als Administrator. Dies geschieht mittels recht klick mit der Maus auf das Powershell Symbol und anschließendem Klick auf als Administrator ausführen. Danach läd man das SharePoint SnapIn mit

Add-PSSnapin Microsoft.SharePoint.PowerShell

Zu besseren Übersicht sollte nun eine separate Contentdatenbank für die zu erstellende Sitecollection angelegt werden. Das kann mit dem Befehl

New-SPContentDatabase „Datenbankname“ -DatabaseServer „SQL-Server-Instanz“ -WebApplication http(s)://webapplication

erfolgen.

Als nächstes lässt man sich die Namen der installierten Site Templates ausgeben. Das geschieht mit nachfolgendem Befehl

Get-SPWebTemplate | Sort-Object “Name”

Daraus kann man nun das benötigte Template z.B. Teamsite „STS#0“ herauslesen. Das wird zu Erstellen der Sitecollection später benötigt.

Im letzten Schritt erstellt man nun die Sitecolletion.

New-SPSite http(s)://Sitecollectionname -OwnerAlias „Domain\erster Sitecollectionadmin“ -Template „Templatename aus vorherigem Schritt“ -ContentDatabase „Datenbankname

Abschließend ist noch zu Erwähnen, dass die Erstellung mittels Powershell einen großen Vorteil bietet. Man kann genau angeben in welche Datenbank diese Sitecollection geht. Das ist theoretisch auch mit der Zentraladministration möglich, klappt aber nicht immer. Quota der Datenbanken spielen dabei eine Rolle.

 

 

Automatisierung von SQL Scripten

In manchen Fällen ist es wichtig SQL Scripte automatisch auszuführen. Das kann ganz einfach mittels einer kleinen Batch Datei und der Windows Aufgabenplanung erfolgen. Hierzu sind folgen Schritte notwendig:

Schritt 1:

Man legt unter einem frei wählbaren Pfad zwei Ordner an „scripts“ und „logs“. Außerdem erstellt man eine Batch Datei. (Bild)

Exploreransicht

Exploreransicht der Batchdateien

Schritt 2:

Im Ordner „scripts“ legt man nun die entsprechenden SQL Script Dateien ab. (Bild)

Exploereransicht der Script Dateien

Exploereransicht der Script Dateien

Schritt 3:

Als nächstes ändert man die Batch Datei und fügt nachfolgende Befehle ein.

@echo off
setlocal ENABLEDELAYEDEXPANSION
sqlcmd -i scripts\Datei1.sql -o logs\Datei1.log
sqlcmd -i scripts\Datei2.sql -o logs\Datei2.log
endlocal
 

Schritt 4:

Als Abschluss nimmt man die Batch Datei in die Windows Aufgabenplanung. Hierbei ist zu beachten, dass ein Nutzer gewählt wird, welcher zum Ausführen der Scripte berechtigt ist.

Verkleinern von mehreren Log-Dateien im SharePoint

Das Verkleinern der Log-Dateien der einzelnen SharePoint-Content Datenbanken kann mittels dieses kleinen SQL-Scripts erfolgen

Exec sp_msforeachdb ‚
BEGIN
declare @LogFile nvarchar(2000)
USE [?]
Select @LogFile=Name From sys.database_files
where sys.database_files.type = 1 and sys.database_files.name LIKE “WSS_%“
if @LogFile IS NOT NULL
Begin
PRINT @LogFile
EXEC(“ALTER DATABASE [?] SET RECOVERY SIMPLE“)
DBCC SHRINKFILE (@LogFile, 1)
EXEC(“ALTER DATABASE [?] SET RECOVERY FULL“)
END
END‘
GO
 

Hierbei ist zu beachten, dass sys.database_files.name LIKE “WSS_%“ nur die Log-Dateien von Content-Datenbanken selektiert, welche mit „WSS_“ beginnen.

Sollen auch Log-Dateien anderer Datenbanken beachtet werden, muss diese Anweisung entsprechend angepasst werden.

 

[Update]

der Fehler:

Ein Sortierungskonflikt zwischen ‚Latin1_General_CI_AS_KS_WS‘ und ‚Latin1_General_CI_AS‘ im is not-Vorgang kann nicht aufgelöst werden.

kann mit einer Collate Anweisung behoben werden.

Farm-Backup mit PowerShell

Voraussetzung für ein Farm-Backup:

  • Administrativer Zugriff am SharePoint
  • UNC Freigabe zur Sicherung der Daten
  • optional Zugriff auf die Aufgabenplanung am Server zur Automatisierung

Durchführung:

Als erstes muss der SharePoint Service Account und SQL Service Account auf der UNC Freigabe berechtigt werden.
Anschließend führt man die PowerShell auf einem SharePoint Server der Farm als Administrator aus und führt man das PowerShell SnapIn für SharePoint mit nachfolgendem Befehl.

add-pssnapin microsoft.sharepoint.powershell

Danach kann das Backup durchgeführt werden.

backup-spfarm -Directory UNC-Freigabe -BackupMethod Full

Abschließend sollte die Logfile auf der UNC Freigabe geprüft werden.