Forums Neueste Beiträge
 

[XP] Windows-Firewall überwachen

23/09/2008 - 17:54 von Rüdiger Rösler | Report spam
Tach,

In einem vorhergehenden Faden wurde die Möglichkeit einer Überwachung
der Aktivitàt der Windows-Firewall besprochen. Das Sicherheitszànta von
Windows ist nervig und unzuverlàssig. So habe ich nun ein Skript
fertiggestellt, dass diese Aufgabe erledigen soll.

Das Skript kann im Autostart über eine Verknüpfung mit der Kommandozeile
WScript [Pfad\]Feuerwache.vbs
gestartet werden. Wird die Firewall deaktiviert oder der mit ihr
verbundene Dienst beendet, so erfolgt eine Warnung. Möge dieses Skript
all jenen eine Beruhigung ihrer Nerven sein, die sich direkt mit dem
Internet über ein Modem verbinden müssen.
[\Ende des Worts zum Sonntach]

Anregungen und Kritik zu diesem Skript sind natürlich willkommen.

'########################## Feuerwache.vbs ############################
Rem von h.r.roesler
Option Explicit
' Das Skript ueberwacht den Paketfilter von Windows.
' Wird der Paketfilter ausgeschaltet, so wird eine Warnung ausgegeben.

Const FW = "Windows-Firewall/Gemeinsame Nutzung der Internetverbindung"
Const CMD = "RunDLL32 Shell32.dll,Control_RunDLL Firewall.cpl,,1"

Dim fwMgr, fwProf, lngPause, wsh, xpShell, dtm

Set xpShell = CreateObject("Shell.Application")
Set wsh = CreateObject("WScript.Shell")
lngPause = 5000

If StartService("SharedAccess", FW) Then
Set fwMgr = CreateObject("HNetCfg.FwMgr")
dtm = Now
Do
On Error Resume Next
Set fwProf = fwMgr.LocalPolicy.CurrentProfile
On Error GoTo 0
If IsEmpty(fwProf) Then Err.Clear: WScript.Sleep lngPause
If DateDiff("n", dtm, Now) >= 10 Then ' Abbruch nach 10 min
MsgBox "Das lokale Profil konnte nicht geladen werden!", _
vbExclamation Or vbSystemModal, "Windows-Firewall"
WScript.Quit
End If
Loop Until TypeName(fwProf) = "INetFwProfile"
wsh.PopUp "Das Profil wurde geladen und ist aktiv.", 10, _
"Windows-Firewall", vbInformation Or vbSystemModal
Else
WScript.Quit
End If

Do
If Not(xpShell.IsServiceRunning("SharedAccess")) Then
Select Case MsgBox("Der zugehoerige Dienst" & vbCRLF & FW & _
vbCRLF & "wurde beendet. Soll der " & _
"Dienst wieder gestartet werden?", _
vbYesNoCancel Or vbQuestion Or _
vbSystemModal, "Windows-Firewall")
Case vbCancel: WScript.Quit
Case vbYes:
If StartService("SharedAccess", FW) Then wsh.Run CMD
Case vbNo: lngPause = lngPause * 10 * 10
End Select
ElseIf Not(fwProf.FirewallEnabled) Then
wsh.Run CMD
WScript.Sleep 500
MsgBox "Windows-Firewall wurde deaktiviert." & vbCRLF & _
"Trennen Sie sofort alle Netzwerk-Verbindungen!", _
vbOKOnly Or vbCritical Or vbSystemModal, _
"Achtung! Wichtige System-Warnung"
If fwProf.FirewallEnabled Then
If lngPause <> 5000 Then lngPause = 5000
Else
If lngPause < 5000 * 10 * 10 Then lngPause = lngPause * 10
End If
ElseIf lngPause <> 5000 Then
lngPause = 5000
End If
WScript.Sleep lngPause
Loop

Function StartService(strSvc, strName)
If Not(xpShell.IsServiceRunning(strSvc)) Then
If xpShell.CanStartStopService(strSvc) Then
Dim i
Do Until xpShell.ServiceStart(strSvc, True) Or i > 9
i = i + 1
WScript.Sleep 10000 * i
Loop
WScript.Sleep 1000
If Not(xpShell.IsServiceRunning(strSvc)) Then
Display strName, "Unbekannter Fehler"
End If
Else
Call Display(strName, "Mangelnde Benutzerrechte")
End If
End If

StartService = xpShell.IsServiceRunning(strSvc)
End Function

Sub Display(strName, strTitle)
MsgBox "Der Dienst" & vbCRLF & strName & vbCRLF & "kann " & _
"nicht gestartet werden. Informieren Sie den " & _
"Administrator!", vbExclamation Or vbSystemModal, strTitle
End Sub
'######################################################################

Ciao, Rüdiger
ЯR
 

Lesen sie die antworten

#1 Radbert Grimmig
23/09/2008 - 18:55 | Warnen spam
Rüdiger Rösler schrieb:

In einem vorhergehenden Faden wurde die Möglichkeit einer Überwachung
der Aktivitàt der Windows-Firewall besprochen. Das Sicherheitszànta von
Windows ist nervig und unzuverlàssig. So habe ich nun ein Skript
fertiggestellt, dass diese Aufgabe erledigen soll.



Und wieso nimmt man nicht einfach die Symantec SPF und gut?


Gruß
Radbert

Ähnliche fragen