Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Blacklisten für ISA2006 generieren und importieren

Anleitung Sicherheit Firewall

Mitglied: manuel-r

manuel-r (Level 2) - Jetzt verbinden

09.08.2010, aktualisiert 10.08.2010, 12028 Aufrufe, 3 Kommentare, 2 Danke

Ich hab im Internet gesucht und wie so oft beim Thema ISA mehr oder weniger nichts gefunden. Also hab ich mich schnell hingesetzt und selbst gescriptet.

Um was geht es?
Der ISA ist unter anderem ein Proxy für das Firmennetzwerk und kann als solcher natürlich auch Webseiten anhand von Black-/Whitelisten filtern. Schade, um nicht zu sagen blöd, ist nur, dass es keine (oder nur sehr eingeschränkte) Downloadquellen gibt bei denen man sich mit fertigen Blacklisten versorgen kann. Und wenn man mal was findet, dann kann man drauf wetten, dass es Plaintext ist. Damit kann der ISA aber nicht umgehen

Was brauchen wir?
Zuerst brauchen wir mal die Blacklisten von blacklist.com. Die sind sehr schön strukturiert, was sehr nützlich ist, wenn man nicht auf alles und jedes sondern nur bestimmte Themen filtern will. Außerdem brauchen wir in einem beliebigen Verzeichnis eine Ordnerstruktur die wie folgt aussieht
  • <irgeneinpfad>\ISA-Blacklist\templates
  • <irgeneinpfad>\ISA-Blacklist\bigblacklist

bcb2cf20e21b67caf0a18c821b6393d9 - Klicke auf das Bild, um es zu vergrößern

Während dem Download widmen wir uns dem ISA.
Wie schon angesprochen kann der leider nicht einfach Plaintext einlesen und verarbeiten sondern hätte gerne XML-Files. Und damit es nicht zu einfach wir will er auch noch ganz bestimmte ClassIDs da drin sehen. Wenn die nicht da sind weigert er sich zu importieren.
Also legen wir für jedes zu filternde Thema erstmal unter Domänennamensätze eine Liste an. Dabei geben wir uns keine große Mühe, weil wir die gleich exportieren und nur noch als Template für die zukünftig per Script erstellten Blacklist brauchen.

Also
  • rechte Maustaste auf Domänennamensätze und Neuer Domänennamensatz.../ anklicken
  • als Name die Kategoriebezeichnung aus den heruntergeladenen Blacklisten verwenden (bspw. porn, adult, drugs,...). Das ist wichtig, weil das Script später diese Namen benötigt
  • Domänennamen und Beschreibung geben wir keine ein.
  • Mit O k speichern
  • rechte Maustaste auf den gerade erzeugen Namenssatz und Auswahl exportieren.. . auswählen. Wenn nach dem Dateinamen gefragt wird geben wir widerum das Kürzel für die entsprechende Blacklist (porn, adult, drugs,...) ein
  • die einzelnen Schritte für jede gewünschte Blacklist wiederholen

b32ea8cc063acd451c1f0084dcbf77bc - Klicke auf das Bild, um es zu vergrößern

Als Ergebnis haben wir dann irgendwann viele XML-Dateien, die in etwa so aussehen
01.
<?xml version="1.0" encoding="UTF-8"?> 
02.
<fpc4:Root xmlns:fpc4="http://schemas.microsoft.com/isa/config-4" xmlns:dt="urn:schemas-microsoft-com:datatypes" StorageName="FPC" StorageType="0"> 
03.
	<fpc4:Build dt:dt="string">5.0.5723.514</fpc4:Build> 
04.
	<fpc4:Comment dt:dt="string"/> 
05.
	<fpc4:Edition dt:dt="int">16</fpc4:Edition> 
06.
	<fpc4:ExportItemClassCLSID dt:dt="string">{61A8568E-53C1-4D6D-BBD8-4F7150EB3093}</fpc4:ExportItemClassCLSID> 
07.
	<fpc4:ExportItemScope dt:dt="int">0</fpc4:ExportItemScope> 
08.
	<fpc4:ExportItemStorageName dt:dt="string">{4B02B25F-98C6-4873-8E7E-FF8246525961}</fpc4:ExportItemStorageName> 
09.
	<fpc4:IsaXmlVersion dt:dt="string">5.30</fpc4:IsaXmlVersion> 
10.
	<fpc4:OptionalData dt:dt="int">12</fpc4:OptionalData> 
11.
	<fpc4:Upgrade dt:dt="boolean">0</fpc4:Upgrade> 
12.
	<fpc4:Arrays StorageName="Arrays" StorageType="0"> 
13.
		<fpc4:Array StorageName="{22BF6710-D466-4CDA-8622-9197783C59BE}" StorageType="0"> 
14.
			<fpc4:Components dt:dt="int">-1</fpc4:Components> 
15.
			<fpc4:DNSName dt:dt="string"/> 
16.
			<fpc4:Name dt:dt="string"/> 
17.
			<fpc4:RuleElements StorageName="RuleElements" StorageType="0"> 
18.
				<fpc4:DomainNameSets StorageName="DomainNameSets" StorageType="0"> 
19.
					<fpc4:DomainNameSet StorageName="{4B02B25F-98C6-4873-8E7E-FF8246525961}" StorageType="1"> 
20.
						<fpc4:DomainNameStrings> 
21.
						</fpc4:DomainNameStrings> 
22.
						<fpc4:Name dt:dt="string">porn</fpc4:Name> 
23.
					</fpc4:DomainNameSet> 
24.
				</fpc4:DomainNameSets> 
25.
			</fpc4:RuleElements> 
26.
		</fpc4:Array> 
27.
	</fpc4:Arrays> 
28.
</fpc4:Root>
Diese Dateien dienen nachher als Templates für die automatische Erstellung der Blacklists und müssen unter
\templates \ abgelegt werden.

Zwischenzeitlich sollte der Download der Blacklisten abgeschlossen sein. Wir entpacken die Datei in
\bigblacklist \ und zwar so, dass darin ein Ordner namens blacklist s vorhanden ist und unterhalb dessen die einzelnen Listen.

Jetzt kommen wir zu meinem Script, dass die einzelnen Listen erzeugt:
01.
'Quelle für die Blacklists ist http://urlblacklist.com/?sec=download 
02.
'Damit dieses Script funktioniert müssen im ISA zuerst für jede Liste Vorlagen ohne Inhalt erstellt und danach exportiert werden. 
03.
'Diese exportierten XML-Files bilden dann die Templates für die zu erstellenden Dateien. 
04.
'Nach durchlaufen des Scripts werden die erstellten Dateien im ISA importiert und die Konfig übernommen. 
05.
 
06.
Set objExplorer = CreateObject("InternetExplorer.Application") 
07.
objExplorer.TheaterMode = False 
08.
objExplorer.AddressBar = False 
09.
objExplorer.MenuBar = False 
10.
objExplorer.StatusBar = False 
11.
objExplorer.ToolBar = False 
12.
objExplorer.Resizable = False 
13.
objExplorer.Height = 480 
14.
objExplorer.Width = 640 
15.
objExplorer.Left = 100 
16.
objExplorer.Top = 100 
17.
objExplorer.Silent = False 
18.
objExplorer.Visible = True 
19.
objExplorer.Navigate "about:blank" 
20.
objExplorer.document.writeln("<html>") 
21.
objExplorer.document.writeln("<head>") 
22.
objExplorer.document.writeln("<title></title>") 
23.
objExplorer.document.writeln("</head>") 
24.
objExplorer.document.writeln("<span style='font-family:Courier; font-size:10pt'>") 
25.
Set fsObject = CreateObject("Scripting.FileSystemObject") 
26.
 
27.
'scriptpfad ermitteln 
28.
strScriptPath = Replace(WScript.ScriptFullName ,WScript.ScriptName, vbNullString) 
29.
strTempFile = strScriptPath & "rule_temp.xml" 
30.
 
31.
'zu erstellende blacklist angeben 
32.
strBlacklistName = inputbox ("Welche Blacklist soll erstellt werden?" ,"Blacklist erstellen","") 
33.
strBlacklistName = lcase(strBlacklistName) 
34.
If strBlacklistName = "" Then 
35.
  objExplorer.document.writeln("Es wurde keine zu erstellende Blacklist angegeben. Scriptverarbeitung wurde abgebrochen.<br><br>") 
36.
  WScript.Quit 
37.
End If 
38.
If Not fsObject.FileExists(strScriptPath & "\templates\" & strBlacklistName & ".xml") Then 
39.
  objExplorer.document.writeln("Es wurde kein passendes Template gefunden. Scriptverarbeitung wurde abgebrochen.<br><br>") 
40.
  WScript.Quit 
41.
End If 
42.
 
43.
'info ausgeben 
44.
objExplorer.document.writeln("Die Verarbeitung wird nun gestartet. Je nach Größe der angegebenen Blacklist kann dieser Vorgang mehrere Minuten, in Ausnahmefällen bis zu einer Stunde, dauern. Ihr Arbeitsplatz wird in dieser Zeit wahrscheinlich stark ausgelastet sein.<br><br>") 
45.
strTimerStart = int(timer()) 
46.
 
47.
'template öffnen und verarbeiten 
48.
strTplSource = strScriptPath & "templates\" & strBlacklistName & ".xml" 
49.
Set fsObject = CreateObject("Scripting.FileSystemObject") 
50.
Set TplFile = fsObject.OpenTextFile(strTplSource, 1, false) 
51.
strTplFile = TplFile.ReadAll 
52.
strTplFile = replace(strTplFile,chr(13),"") 
53.
arrTplFile = split(strTplFile,chr(10)) 
54.
TplFile.Close 
55.
 
56.
'ausgabeordner und datei erstellen 
57.
strBlacklistFolder = strScriptPath & replace(date,".","-") 
58.
strBlacklistFile = strBlacklistFolder & "\" & strBlacklistName & ".xml" 
59.
If Not fsObject.FolderExists(strBlacklistFolder) Then 
60.
  fsObject.createfolder(strBlacklistFolder) 
61.
End If 
62.
 
63.
'einleitungszeilen in ausgabedatei schreiben 
64.
Set TgtFile = fsObject.OpenTextFile(strBlacklistFile, 2, true, 0) 
65.
For Count = 1 to 19 
66.
  TgtFile.Writeline arrTplFile(Count) 
67.
  if instr(arrTplFile(Count),"fpc4:DomainNameSet") > 0 then 
68.
    TgtFile.Writeline "						<fpc4:Description dt:dt=" & chr(34) & "string" & chr(34) & ">Blacklist erstellt am " & date() & " um " & time() & " Uhr auf Basis der Blacklisten von http://urlblacklist.com/?sec=download</fpc4:Description>" 
69.
  end if 
70.
Next 
71.
 
72.
'quelldatei öffnen und verarbeiten 
73.
strBlacklistSource = strScriptPath & "bigblacklist\blacklists\" & strBlacklistName & "\domains" 
74.
Set SrcFile = fsObject.OpenTextFile(strBlacklistSource, 1, false) 
75.
strFileComplete = SrcFile.ReadAll 
76.
objExplorer.document.writeln(time() & ": Quelldatei wurde vollständig eingelesen<br>") 
77.
arrFileComplete = split(strFileComplete,chr(10)) 
78.
strLineCount = UBound(arrFileComplete) 
79.
objExplorer.document.writeln(time() & ": Quelldatei mit " & strLineCount & " Zeilen in Array eingelesen<br>") 
80.
strTimerRun = timer() + 5 
81.
For Count = 0 to strLineCount - 1 
82.
  strIsaRule = "						  <fpc4:Str dt:dt=" & chr(34) & "string" & chr(34) & ">" & arrFileComplete(Count) & "</fpc4:Str>" 
83.
  TgtFile.WriteLine strIsaRule 
84.
  if timer() > strTimerRun then 
85.
    objExplorer.document.writeln(time() & ": " & Count & "/" & strLineCount & "(" & int(Count / strLineCount * 100) & "%) Zeilen verarbeitet<br>") 
86.
    strTimerRun = timer() + 10 
87.
  End If 
88.
Next 
89.
 
90.
'einleitungszeilen in ausgabedatei schreiben 
91.
For Count = 21 to 28 
92.
  TgtFile.Writeline arrTplFile(Count) 
93.
Next 
94.
TgtFile.Close 
95.
 
96.
strTimerEnd = int(timer()) 
97.
 
98.
objExplorer.document.writeln("<br>Die Blacklist wurde unter " & chr(34) & strBlacklistFile & chr(34) & " erstellt und kann jetzt im ISA-Server importiert werden.<br>Die Liste umfasst " & Count & " Domains und die Verarbeitung dauerte " & strTimerEnd - strTimerStart & " Sekunden.<br>Script beendet.")
Das speichern wir unter beliebigem Namen im Verzeichnis
ISA-Blacklis t also bspw. blacklist-erzeugen.vb s.
Das war an Vorarbeit vorerst alles. Wir können zur Tat schreiten und machen einen beherzten Doppelklick auf die Scriptdatei. Nach kurzer Zeit sollte ein Eingabefenster erscheinen in dem wir die zu erstellende Blacklist eingeben sollen; also bspw. einfach nur
ad s.

5aae6256441100b38b5e5094e84f66d4 - Klicke auf das Bild, um es zu vergrößern

Je nach Rechenleistung unseres PCs/Servers können wir uns jetzt getrost zurücklehnen und den einen oder anderen Kaffee trinken. Für die adult-Liste braucht mein PC etwa 250 Sekunden; einer meiner DCs ist in knapp 15 Sekunden fertig.

d33ed62f2a7a503bdbc5290fff7d45fa - Klicke auf das Bild, um es zu vergrößern

Im Ergebniss erhalten wir im Verzeichnis des aktuellen Datums unterhalb von
\ISA-Blacklist \ eine XML-Datei die etwa so aussieht
01.
<fpc4:Root xmlns:fpc4="http://schemas.microsoft.com/isa/config-4" xmlns:dt="urn:schemas-microsoft-com:datatypes" StorageName="FPC" StorageType="0"> 
02.
	<fpc4:Build dt:dt="string">5.0.5723.514</fpc4:Build> 
03.
	<fpc4:Comment dt:dt="string"/> 
04.
	<fpc4:Edition dt:dt="int">16</fpc4:Edition> 
05.
	<fpc4:ExportItemClassCLSID dt:dt="string">{61A8568E-53C1-4D6D-BBD8-4F7150EB3093}</fpc4:ExportItemClassCLSID> 
06.
	<fpc4:ExportItemScope dt:dt="int">0</fpc4:ExportItemScope> 
07.
	<fpc4:ExportItemStorageName dt:dt="string">{B79A3EB0-A6DD-4F9C-A843-A5A95BA325B5}</fpc4:ExportItemStorageName> 
08.
	<fpc4:IsaXmlVersion dt:dt="string">5.30</fpc4:IsaXmlVersion> 
09.
	<fpc4:OptionalData dt:dt="int">12</fpc4:OptionalData> 
10.
	<fpc4:Upgrade dt:dt="boolean">0</fpc4:Upgrade> 
11.
	<fpc4:Arrays StorageName="Arrays" StorageType="0"> 
12.
		<fpc4:Array StorageName="{22BF6710-D466-4CDA-8622-9197783C59BE}" StorageType="0"> 
13.
			<fpc4:Components dt:dt="int">-1</fpc4:Components> 
14.
			<fpc4:DNSName dt:dt="string"/> 
15.
			<fpc4:Name dt:dt="string"/> 
16.
			<fpc4:RuleElements StorageName="RuleElements" StorageType="0"> 
17.
				<fpc4:DomainNameSets StorageName="DomainNameSets" StorageType="0"> 
18.
						<fpc4:Description dt:dt="string">Blacklist erstellt am 09.08.2010 um 11:59:23 Uhr auf Basis der Blacklisten von http://urlblacklist.com/?sec=download</fpc4:Description> 
19.
					<fpc4:DomainNameSet StorageName="{B79A3EB0-A6DD-4F9C-A843-A5A95BA325B5}" StorageType="1"> 
20.
						<fpc4:Description dt:dt="string">Blacklist erstellt am 09.08.2010 um 11:59:23 Uhr auf Basis der Blacklisten von http://urlblacklist.com/?sec=download</fpc4:Description> 
21.
						<fpc4:DomainNameStrings> 
22.
						  <fpc4:Str dt:dt="string">02pmnzy5eo29bfk4.com</fpc4:Str> 
23.
						  <fpc4:Str dt:dt="string">209.151.89.106</fpc4:Str> 
24.
						  <fpc4:Str dt:dt="string">abetterinternet.com</fpc4:Str> 
25.
						  <fpc4:Str dt:dt="string">accessoveloce.com</fpc4:Str> 
26.
						  <fpc4:Str dt:dt="string">cellularmania.info</fpc4:Str> 
27.
						  <fpc4:Str dt:dt="string">cliparts-bereich.de</fpc4:Str> 
28.
						  <fpc4:Str dt:dt="string">dialxs.nl</fpc4:Str> 
29.
						  <fpc4:Str dt:dt="string">directplugin.com</fpc4:Str> 
30.
Ganz viele Zeilen raus geschnitten 
31.
						</fpc4:DomainNameStrings> 
32.
						<fpc4:Name dt:dt="string">dialers</fpc4:Name> 
33.
					</fpc4:DomainNameSet> 
34.
				</fpc4:DomainNameSets> 
35.
			</fpc4:RuleElements> 
36.
		</fpc4:Array> 
37.
	</fpc4:Arrays> 
38.
</fpc4:Root>
Diese Datei importieren wir jetzt in den ISA in dem wir unter
Dömennamensätz e rechts klicken und Alle importieren// auswählen. Danach will der ISA die Quelle wissen. An der Stelle geben wir die gerade eben erzeugte Datei an. Der ISA überprüft die Datei und sollte sie ohne zu meckern importieren.

279a91b325fbe795692504780e2b15d5 - Klicke auf das Bild, um es zu vergrößern

Danach öffnen wir den gerade importieren Namensatz mit Doppelklick. Wenn alles funktioniert hat sehen wir dort jetzt alle Domänen der Filterliste.
Das wiederholen wir für alle gewünschten Blacklists.

e7c35ec243a046e99df95d0243276fcc - Klicke auf das Bild, um es zu vergrößern

Ganz zum Schluss nicht vergessen den ISA die neue Konfiguration übernehmen zu lassen. Je nach Rechenleistung des Servers trinken wir in dem Moment den Rest der Kanne Kaffee von vorhin. Auf meinem ISA (virtuell, 2 CPUs, 2 GB RAM) gehen da mehrere Minuten ins Land.

Natürlich müssen wir die Blacklisten auch noch an Firewallregeln binden. Wie das geht setze ich aber einfach mal als bekannt voraus.

Manuel

PS:
Wenn jetzt noch jemand eine Idee hat, wie man den ISA (vielleicht per Script) dazu bekommt regelmäßig und automatisch aktuelle Blacklisten zu importieren schreibe ich dass Script glatt auf komplette automatische Erstellung für geplanten Task um. Dann wäre das eine prima Fire&Forget-Lösung. Bisher hab ich dafür aber noch keine Lösung gefunden.
Mitglied: Pjordorf
09.08.2010 um 14:07 Uhr
Hallo Manuel,

Klasse Beitrag. das hilft schon ungemein viel.

Peter
Bitte warten ..
Mitglied: nEmEsIs
10.08.2010 um 18:16 Uhr
Hi

Also ich verwende schon des längerem diese Anleitung für den ISA 2006.

http://www.thiele.ch/index.php/blacklists-for-isa-2006

Mit freundlichen Grüßen Nemesis
Bitte warten ..
Mitglied: manuel-r
11.08.2010 um 08:43 Uhr
Das Script kenne ich auch. Was mich persönlich daran gestört hat ist die Tatsache, dass nur eine riesengroße Blacklist erzeugt wird. Ich wollte es aber gerne in getrennte Listen verpacken, damit ich die Regeln granularer gestalten kann.

Bei uns ist es bspw. so, dass in der Pause privates Surfen erlaubt ist. Demzufolge ist es also sinnvoll etwa die Filterung von shopping, vacation, audio-video und socialnetworking in der entsprechenden Zeit abzuschalten. Gleichzeitig sollen bspw. porn und adult weiterhin gefiltert werden. Außderm gelten für Azubis andere Regeln als für "normale" Benutzer und die Geschäftsleitung hat nochmal andere Regeln. Denen kann ich ja etwa schlecht verbieten während der Arbeitszeit vielleicht Xing aufzurufen.
Zusätzlich kann ich beim Greifen einer Regel auf eine beliebige Webseite umleiten. Die User werden dann also je Regel auf eine Fehlerseite umgeleitet, die in dem Fall dann als Sperrgrund die entsprechende Liste aufführt. Das vermeidet in den meisten Fällen schon mal unnötige Anrufe im Support, weil der User im Klartext lesen kann "Du kommst hier net rein. Guggsdu Porno zu Hause."
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Verschlüsselung & Zertifikate
Muss ich eine Intermediate CA importieren? (3)

Frage von ketanest112 zum Thema Verschlüsselung & Zertifikate ...

Datenbanken
gelöst 1GB phpMyAdmin SQL Datei in SQL Server 2008 R2 importieren (7)

Frage von Himpke zum Thema Datenbanken ...

Microsoft Office
Word Dokument (vorausgefüllte Formulare) aus Excel Tabelle generieren (1)

Frage von Server4Alle zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...