Internetsperre über Port 80

  • Hi an @lle,

    ich hab ein kleines Skript gebastelt, welches mit Hilfe von NAI den Port 80 dicht macht. Da ich an Schulen tätig bin ist das sehr gefragt :)
    Ihr benötigt eine Freigabe und NAI 8 um das Tool zu nutzen, bzw. zu testen. Ich bin über jede Verbesserung froh, ich bin relativ frisch in AutoIT was sicherlich an manch einem Umständlich Programmierten Teil festgestellt wird.

    Sporatischer Installer

    Spoiler anzeigen
    [autoit]


    ;EDU Pad GUI
    ;(c) Copyright 2006 by hessebou
    ;-----------------------------------------------------
    ;Dieses Programm ermöglicht das Sperren des Internets. Dies wird über die Blockierung des Ports 80 im McAfee Virenscanner realisiert
    ;-----------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    $version = "BETA 1.0"

    [/autoit] [autoit][/autoit] [autoit]

    ;Einbinden der Dateien
    #include <GUIConstants.au3>
    #include <file.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;EDU Pad GUI Anfang
    GUICreate("EDU Pad",600,420)
    ;========================================= IBLOCKER =============================================
    ;================================================================================================
    ;Tab für IBlocker
    $tabi=GUICtrlCreateTab (1,1, 600,417)

    [/autoit] [autoit][/autoit] [autoit]

    $tab0=GUICtrlCreateTabitem ("IBlocker")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;Beginn der Eingabemaske
    GUICtrlCreateLabel("Installationspfad",10,35)
    $ipfad = GUICtrlCreateInput("",100,30,200,20);Dient für FileCopy weiter unten
    GUICtrlCreateLabel("UNC-Pfad",10,65)
    $unc = GUICtrlCreateInput("",100,60,200,20);Dient für FileCopy weiter unten
    GUICtrlCreateLabel("Raum",10,95)
    $raum = GUICtrlCreateInput("",100,90,100,20);Dient zur Namensgebung der txt-Datei und anlegen eines Unterorndners
    GUICtrlCreateLabel("PCs",10,125)
    $pcs = GUICtrlCreateEdit("",100,120,200,200);Eingabe der Computernamen welcher betroffen sind
    ;GUICtrlCreateLabel("LoginSkript Pfad",10,435)
    ;$login = GUICtrlCreateInput("",100,430,200,20);Pfad und Dateiname des LoginScriptes welches editiert werden soll
    GUICtrlCreateLabel("Account",400,35)
    $account = GUICtrlCreateInput("",480,30,100,20);Account der Zugriff auf REG und Share hat
    GUICtrlCreateLabel("Passwort",400,65)
    $passwort = GUICtrlCreateInput("",480,60,100,20);Passwort für Account
    GUICtrlCreateLabel("Domäne",400,95)
    $domaene = GUICtrlCreateInput("",480,90,100,20);Mitgliedsdomäne des Accounts
    ;Radiobuttons für OS Auswahl
    GUICtrlCreateLabel("Zielbetriebssystem",400,140)
    $winxp = GUICtrlCreateRadio ("Windows XP", 400, 180, 120, 20)
    GUICtrlSetState ($winxp,$GUI_CHECKED)
    $win2k = GUICtrlCreateRadio ("Windows 2000", 400, 200, 120, 20)
    $winnt = GUICtrlCreateRadio ("Windows NT4", 400, 220, 120, 20)

    ;Explorermenu
    $filemenu = GUICtrlCreateMenu ("Datei")
    $infomenu = GUICtrlCreateMenu ("?")
    $infoitem = GUICtrlCreateMenuitem ("Info",$infomenu)
    $exititem = GUICtrlCreateMenuitem ("Exit",$filemenu)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetState(-1,$GUI_CHECKED)
    $okbutton = GUICtrlCreateButton ("Einrichten",400,330,70,20)
    GUICtrlSetState(-1,$GUI_FOCUS)
    $cancelbutton = GUICtrlCreateButton ("Abbrechen",490,330,70,20)
    ;========================================= KLASSENARBEITSMODUS===================================
    ;================================================================================================

    $tab1=GUICtrlCreateTabitem ("Klausurmodus")
    ;======================== AUSLESEN DER GUI ================================
    ;==========================================================================
    GUISetState ()
    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton Or $msg = $exititem Then ExitLoop
    If $msg = $infoitem Then Msgbox(0,"Info","IBlocker V. " & $version & @CRLF & "(C) Copyright by XXX")
    If $msg = $okbutton Then


    ;Auslesen der Variablen aus der Eingabemaske
    $ipfad_read = GUICtrlRead($ipfad)
    $unc_read = GUICtrlRead($unc)
    $raum_read = GUICtrlRead($raum)
    $pcs_read = GUICtrlRead($pcs)
    ;$login_read = GUICtrlRead($login)
    $account_read = GUICtrlRead($account)
    $passwort_read = GUICtrlRead($passwort)
    $domaene_read = GUICtrlRead($domaene)
    $winxp_read = GUICtrlRead($winxp)

    ;Anlegen der Unterordner für den Raum und kopieren der Files aus .\bin
    DirCreate($ipfad_read)
    DirCreate($ipfad_read & "\IBlocker\aktivieren")
    DirCreate($ipfad_read & "\IBlocker\deaktivieren")
    DirCreate($unc_read & "\" & $raum_read)
    FileCopy(".\bin\IBlocker_ak.reg", $unc_read & "\" & $raum_read &"\")
    FileCopy(".\bin\IBlocker_de.reg", $unc_read & "\" & $raum_read &"\")
    FileCopy(".\bin\EDU_Pad.exe", $ipfad_read & "\")
    FileCopy(".\bin\103.ico", $ipfad_read & "\")
    ;FileCopy(".\bin\IBlocker_ak.reg", $unc_read & "\bin");REG für LoginScript auf Share legen
    ;FileCopy(".\bin\IBlocker_de.reg", $unc_read & "\bin")


    ;Kopieren der PsExec Datei in das jeweilige OS Verzeichnis
    If $winxp_read = 1 Then
    FileCopy (".\bin\psexec.exe", "C:\Windows\System32\psexec.exe")
    FileCopy (".\bin\MachLink.exe", "C:\Windows\System32\MachLink.exe")
    FileCopy (".\bin\cmdow.exe", "C:\Windows\System32\cmdow.exe")
    Else
    FileCopy (".\bin\psexec.exe", "C:\Winnt\System32\psexec.exe")
    FileCopy (".\bin\MachLink.exe", "C:\Winnt\System32\MachLink.exe")
    FileCopy (".\bin\cmdow.exe", "C:\Winnt\System32\cmdow.exe")
    EndIf

    ;Erzeugen der computer.txt Datei für PsExec
    $file = FileOpen($ipfad_read & "\" & $raum_read &".txt",1)
    FileWrite($file, $pcs_read)
    If $file = -1 Then
    MsgBox(0, "Error", "Konnte Datei nicht öffnen.")
    Exit
    Else
    FileClose($file)

    EndIf

    ;Erzeugen der Batch Dateien für PsExec


    ;IBlocker_ak.cmd
    $iblocker_ak = FileOpen($unc_read & "\" & $raum_read &"\IBlocker_ak.cmd",1)
    FileWrite($iblocker_ak, "REGEDIT /S "& $unc_read & "\"& $raum_read & "\IBlocker_ak.reg")

    ;IBlocker_de.cmd
    $iblocker_de = FileOpen($unc_read & "\" & $raum_read &".\IBlocker_de.cmd",1)
    FileWrite($iblocker_de, "REGEDIT /S "& $unc_read & "\"& $raum_read & "\IBlocker_de.reg")

    ;Aktivieren der Sperre
    dim $array
    _FileReadToArray($ipfad_read & "\" & $raum_read &".txt",$array) ;Alles in ein Array einlesen
    for $i=1 to $array[0]
    $remote_ak=FileOpen($ipfad_read & "\IBlocker\aktivieren\" & $array[$i] & "_ak.cmd",2) ;Für jede enthaltenes Element im Array ein File erzeugen mit desen Namen
    FileWriteLine($remote_ak, "cmdow @ /HID"&@CRLF&"cd "& $ipfad_read &"\" & @CRLF & "psexec.exe \\"& $array[$i] & " -u " & $domaene_read &"\"& $account_read & " -p " & $passwort_read & " -i -c -f " & $unc_read & "\" & $raum_read &"\IBlocker_ak.cmd"&@CRLF&"exit")
    FileClose($remote_ak)
    Next


    ;Deaktivieren der Sperre
    dim $array
    _FileReadToArray($ipfad_read & "\" & $raum_read &".txt",$array) ;Alles in ein Array einlesen
    for $i=1 to $array[0]
    $remote_de=FileOpen($ipfad_read & "\IBlocker\deaktivieren\" & $array[$i] & "_de.cmd",2) ;Für jede enthaltenes Element im Array ein File erzeugen mit desen Namen
    FileWriteLine($remote_de, "cmdow @ /HID"&@CRLF&"cd "& $ipfad_read &"\" & @CRLF & "psexec.exe \\"& $array[$i] & " -u " & $domaene_read &"\"& $account_read & " -p " & $passwort_read & " -i -c -f " & $unc_read & "\" & $raum_read &"\IBlocker_de.cmd"&@CRLF&"exit")
    FileClose($remote_de)
    Next

    ;Erzeugen der Startdatei zum Aufrufen der Sperrfunktion
    ;Aktivieren
    dim $array
    _FileReadToArray($ipfad_read & "\" & $raum_read &".txt",$array) ;Alles in ein Array einlesen
    for $i=1 to $array[0]
    $start_ak=FileOpen($ipfad_read & "\IBlocker\start_ak.cmd",2) ;Für jede enthaltenes Element im Array ein File erzeugen mit desen Namen
    FileWriteLine($start_ak, "start " & $ipfad_read & "\IBlocker\aktivieren\" & $array[$i] & "_ak.cmd")
    FileClose($start_ak)
    Next

    ;Deaktivieren
    dim $array
    _FileReadToArray($ipfad_read & "\" & $raum_read &".txt",$array) ;Alles in ein Array einlesen
    for $i=1 to $array[0]
    $start_ak=FileOpen($ipfad_read & "\IBlocker\start_de.cmd",2) ;Für jede enthaltenes Element im Array ein File erzeugen mit desen Namen
    FileWriteLine($start_ak, "start " & $ipfad_read & "\IBlocker\deaktivieren\" & $array[$i] & "_de.cmd")
    FileClose($start_ak)
    Next
    Exit
    EndIf


    WEnd

    ;Desktop Shortcut
    FileCreateShortcut($ipfad_read & "\EDU_Pad.exe", @DesktopDir & "\EDU Pad.lnk", $ipfad_read, "", "", $ipfad_read & "\103.ico")


    GUIDelete()
    Exit

    [/autoit]

    EDU Pad

    Spoiler anzeigen
    [autoit]


    ;IBlocker GUI
    ;(c) Copyright 2006 by hessebou
    ;-----------------------------------------------------
    ;Dieses Programm ermöglicht das Sperren des Internets. Dies wird über die Blockierung des Ports 80 im McAfee Virenscanner realisiert
    ;-----------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    $version = "BETA 1.0"

    [/autoit] [autoit][/autoit] [autoit]

    ;Einbinden der Dateien
    #include <GUIConstants.au3>
    #include <file.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;IBlocker GUI Anfang
    GUICreate("EDU Pad",200,200)

    [/autoit] [autoit][/autoit] [autoit]

    ;Explorermenu
    $infomenu = GUICtrlCreateMenu ("?")
    $infoitem = GUICtrlCreateMenuitem ("Info",$infomenu)
    ;Label zur Statusabfrage

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateLabel("Internet ent-/sperren",10,20)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetState(-1,$GUI_CHECKED)
    $sperren = GUICtrlCreateButton ("Internet sperren",3,80,95,50)
    GUICtrlSetState(-1,$GUI_FOCUS)
    $entsperren = GUICtrlCreateButton ("Internet entsperren",103,80,95,50)

    GUISetState ()
    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    If $msg = $infoitem Then Msgbox(0,"Info","IBlocker V. " & $version & @CRLF & "(C) Copyright by XXX")
    If $msg = $sperren Then
    ;$i = 1
    ;While $i > 0
    run("IBlocker\start_ak.cmd")
    ;WEnd
    EndIf

    If $msg = $entsperren Then
    ;While
    ;$i = 1
    run("IBlocker\start_de.cmd")
    ;WEnd

    EndIf
    WEnd

    [/autoit]

    Bin über jeden Tipp froh. Das Pad soll noch ausgeweitet werden (Trennen von Netzlaufwerken, Sperren von Wechseldatenträgern etc.)
    Ich hoffe es findet jemand Zeit und hat Lust mir tipps zugeben :)
    Danke
    Gruß
    Marc

    edit by Gun-Food: [ autoit] Tags eingefügt, zur besseren Lesbarkeit.

    2 Mal editiert, zuletzt von hessebou (28. Mai 2009 um 08:11)

    • Offizieller Beitrag

    Hallo!

    Gut :) Sieht gut aus! Weiter so ;)

    zu Deinen Fragen:
    Zum "Drive Lock" (so nennt es das englische Forum) gibt es hier was:
    http://www.autoitscript.com/forum/index.php?showtopic=30674

    Zum "Network Lock" (so nenne ich es einfach mal^^) werde ich gleich mal ein Skript ins Forum posten, was ich schon vor langer langer zeit geschrieben habe (ca vor 1-2 monate(n) )

    Mfg Spider

  • Hi,

    danke für das Lob *lol*
    Könntest du mal deine Sachen posten?
    Ich brauch was um Netzlaufwerke zu trennen und zu verbinden. Irgendwie sowas. Wechseldatenträger sperren ist nicht so das Problem, zudem der link klasse ist. Danke

    Gruß

  • Um netzlaufwerke zu trennen und einzubinden gibt es in AutoIt den Befehl
    DriveMapDel
    DriveMapAdd


    einfach mal inder Hilfe gucken wird dir sicherlich weiter helfen...
    gruss Tam0r

  • arghh...hab mir mal das programm angeschaut genau sowas haben wir in der schule auch -.- ich bin schüler ich mag das programm überhaupt nicht^^ des ganze heißt lcserver.exe(beim lehrer) und lchelper.exe(beim schüler)
    hihi aber nicht schlecht sowas in autoit umzusetzen *daumen*


    mehr zu dem programm:
    http://www.dr-kaiser2.de/