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

3 Skripts zur Erstellung von ACL für einen 3COM 4500G

Tipp Netzwerke Router & Routing

Mitglied: Edi.Pfisterer

Edi.Pfisterer (Level 2) - Jetzt verbinden

07.10.2010, aktualisiert 01:38 Uhr, 4854 Aufrufe, 1 Kommentar

Weil ich gerade mit einem 3COM 4500G und seinen Eigenheiten herumkämpfe und meine Lösung vielleicht mal jemand anders auch brauchen kann....

Allgemeines zu ACLs auf einem 3COM 4500G gibts hier nachzulesen...

Hier nun 3 selbstgebastelte Tipps, die bei der Erstellung von ACLs hilfreich sein können (speziell, wenn man eine große Menge von VLANs hat...)

Script 1:
3COM_ACL_fuer_1_VLAN_anlegen.vbs
Anmerkung: es wird eine txt-Datei mit den jeweiligen Rules erstellt...
in die CLI kopieren muss man sie noch selber ;-(
01.
VLAN=InputBox ("ACL für welche VLAN?","Input","VLAN")*1 
02.
datei= "H:\ADMINISTRATOR\3com\ACLs\3com_VLAN_" & VLAN & ".txt" 
03.
 
04.
'Annahme: Die Server haben 172.16.0.0/24 er Adressen 
05.
 
06.
Anzahl_der_VLANs = 25 
07.
'Annahme: ich möchte 25 VLANs 
08.
 
09.
AdminNetz = 19 
10.
'Annahme: Die Admins sitzen in 172.16.19.0/24 er Netz 
11.
 
12.
    n=0 
13.
    for i = 1 to Anzahl_der_VLANs 
14.
    if i = VLAN then i=i+1 
15.
    if i = AdminNetz then i=i+1 
16.
       Zeile = zeile & "rule " & n & " deny ip source any destination 172.16." & i & ".0  
17.
 
18.
0.0.0.255"  & vbcrlf 
19.
    n=n+1 
20.
    Next 
21.
 
22.
'bei Bedarf in folgender Zeile das Hochkomma entfernen: 
23.
'Zeile = zeile & "rule permit ip source any destination any" & vbcrlf& vbcrlf 
24.
 
25.
Set fs = CreateObject("Scripting.FileSystemObject") 
26.
set dateineu = fs.createtextfile(datei, true) 
27.
dateineu.write Zeile 
28.
dateineu.close 
29.
 
30.
wscript.echo "Datei erstellt für das VLAN " & VLAN
Script 2:
Alle_ACLs_als_txt_generieren.vbs
Anmerkung: es werden n- txt-Dateien mit den jeweiligen Rules erstellt...
in die CLI kopieren muss man sie noch selber ;-(
01.
Anzahl_der_VLANs=InputBox ("ACL für wie viele VLANs?","Input","VLAN")*1 
02.
'Annahme: Die Server haben 172.16.0.0/24 er Adressen 
03.
 
04.
AdminNetz = 19 
05.
'Annahme: Die Admins sitzen in 172.16.19.0/24 er Netz 
06.
 
07.
Set fs = CreateObject("Scripting.FileSystemObject") 
08.
 
09.
for k = 1 to Anzahl_der_VLANs 
10.
datei= "H:\ADMINISTRATOR\3com\ACLs\3com_VLAN_" & k & "_ACL.txt" 
11.
 
12.
 
13.
 
14.
    n=0 
15.
        for i = 1 to Anzahl_der_VLANs 
16.
 
17.
               if i = k then i=i+1 
18.
               if i = AdminNetz then i=i+1 
19.
 
20.
            if i <= Anzahl_der_VLANs Then 
21.
            Zeile = zeile & "rule " & n & " deny ip source any destination 172.16." & i &  
22.
 
23.
".0 0.0.0.255"  & vbcrlf 
24.
            end if 
25.
            'bei Bedarf in folgender Zeile das Hochkomma entfernen: 
26.
            'Zeile = zeile & "rule permit ip source any destination any" & vbcrlf& vbcrlf 
27.
            n=n+1 
28.
        next 
29.
 
30.
            set dateineu = fs.createtextfile(datei, true) 
31.
            dateineu.write Zeile 
32.
            dateineu.close 
33.
            Zeile = "" 
34.
 
35.
Next 
36.
 
37.
wscript.echo "Dateien erstellt für " & Anzahl_der_VLANs & " VLANs erstellt"
Script 3:
Die Königsklasse - wenn man sich dem Real Men dont click-Karma verschrieben hat

ACLs_per_telnet_auf_3COM_4500G_erstellen.vbs
Anmerkungen:

Dieses Tool
- verbindet Euch mit dem Switch per Telnet auf die CLI
- zeigt Euch die bestehenden ACLs an
- fragt nach einer kurzen Pause, für wieviel VLANs eine ACL erstellt werden soll
- legt anschließend mit ACL Number 300n beginnend die jeweiligen ACLs an (es bleibt die
deny-Regel für das jeweilige Netz ausgespart)
- zeigt Euch abschließend alle vorhandenen ACLs an

Achtung: bestehende ACLs mit der selben Nummer werden überschrieben - daher die Anzeige aller bestehenden ACLs zu Beginn
daher: genau prüfen, bevor ihr die Anzahl der anzulegenden ACLs angebt
Die Auswahl der Schaltfläche "abbruch" legt KEINE ACLs an, dh, der Switch bleibt unverändert...

01.
 
02.
set oShell = CreateObject("WScript.Shell") 
03.
oShell.run "cmd.exe" 
04.
WScript.Sleep 1000 
05.
06.
07.
08.
oShell.SendKeys"telnet 172.16.19.254" 
09.
oShell.SendKeys("{Enter}") 
10.
WScript.Sleep 1000 
11.
oShell.SendKeys"admin" 
12.
oShell.SendKeys("{Enter}") 
13.
WScript.Sleep 1000 
14.
15.
16.
17.
oShell.SendKeys"password"             'HIER MUESST IHR EUER ADMIN-PASSWORT EINTRAGEN 
18.
oShell.SendKeys("{Enter}") 
19.
WScript.Sleep 500 
20.
oShell.SendKeys"system-view" 
21.
oShell.SendKeys("{Enter}") 
22.
WScript.Sleep 500 
23.
24.
25.
26.
oShell.SendKeys"display acl all" 
27.
oShell.SendKeys("{Enter}") 
28.
WScript.Sleep 5000 
29.
 
30.
 
31.
Anzahl_der_VLANs=InputBox ("ACL für wie viele VLANs?","Input","VLAN")*1 
32.
'Annahme: Die Server haben 172.16.0.0/24 er Adressen 
33.
 
34.
AdminNetz = 19 
35.
'Annahme: Die Admins sitzen in 172.16.19.0/24 er Netz 
36.
 
37.
Set fs = CreateObject("Scripting.FileSystemObject") 
38.
 
39.
for k = 1 to Anzahl_der_VLANs 
40.
 
41.
oShell.SendKeys"acl number " & 3000+k 
42.
oShell.SendKeys("{Enter}") 
43.
WScript.Sleep 500 
44.
 
45.
 
46.
    n=0 
47.
        for i = 1 to Anzahl_der_VLANs 
48.
 
49.
               if i = k then i=i+1 
50.
               if i = AdminNetz then i=i+1 
51.
 
52.
            if i <= Anzahl_der_VLANs Then 
53.
                 oShell.SendKeys"rule " & n & " deny ip source any destination 172.16." & i  
54.
 
55.
& ".0 0.0.0.255" 
56.
                 oShell.SendKeys("{Enter}") 
57.
                 WScript.Sleep 500 
58.
            end if 
59.
 
60.
            n=n+1 
61.
        next 
62.
 
63.
oShell.SendKeys"quit" 
64.
oShell.SendKeys("{Enter}") 
65.
WScript.Sleep 5000 
66.
 
67.
Next 
68.
 
69.
oShell.SendKeys"display acl all" 
70.
oShell.SendKeys("{Enter}") 
71.
WScript.Sleep 500
Falls etwas nicht so ist, wie ihr es wollt, könnt ihr in der CLI mit
01.
undo acl number [nummer der ACL]
die entsprechende wieder löschen


have fun
lg
Edi Pfisterer
Mitglied: Edi.Pfisterer
07.10.2010 um 09:40 Uhr
So, hier nun der Abschluss...

folgendes Script wendet die oben erstellten ACL auf das jeweilige VLAN an
Prämissen:
VLAN-ID und IP hängen wie folgt zusammen:

VLAN ID 10 --> 172.16.0.0/24
VLAN ID 11 --> 172.16.1.0/24
VLAN ID 12 --> 172.16.2.0/24
...
VLAN ID 19 --> 172.16.9.0/24
VLAN ID 110 --> 172.16.10.0/24
VLAN ID 111 --> 172.16.11.0/24

sprich: die erste Ziffer der VLAN ID ist Schall und Rauch, die restlichen Ziffern geben Aufschluss über das IP-Subnetz

Anmerkung: es wird KEINE ACL für VLAN ID 119 angewendet, weil dieses ja das Admin-Netz ist bzw. KEINE ACL für VLAN ID 10, da dort die Server stehen...

01.
 
02.
set oShell = CreateObject("WScript.Shell") 
03.
oShell.run "cmd.exe" 
04.
WScript.Sleep 1000 
05.
06.
07.
08.
oShell.SendKeys"telnet 172.16.19.254" 
09.
oShell.SendKeys("{Enter}") 
10.
WScript.Sleep 1000 
11.
oShell.SendKeys"admin" 
12.
oShell.SendKeys("{Enter}") 
13.
WScript.Sleep 1000 
14.
15.
16.
17.
oShell.SendKeys"Urobe" 
18.
oShell.SendKeys("{Enter}") 
19.
WScript.Sleep 500 
20.
oShell.SendKeys"system-view" 
21.
oShell.SendKeys("{Enter}") 
22.
WScript.Sleep 500 
23.
24.
25.
26.
 
27.
 
28.
Anzahl_der_VLANs=InputBox ("ACL für wie viele VLANs?","Input","VLAN")*1 
29.
'Annahme: Die Server haben 172.16.0.0/24 er Adressen 
30.
AdminNetz = 19 
31.
 
32.
 
33.
Set fs = CreateObject("Scripting.FileSystemObject") 
34.
 
35.
for k = 1 to Anzahl_der_VLANs 
36.
if k <> AdminNetz then 
37.
 
38.
        oShell.SendKeys"traffic classifier CL" & k 
39.
        oShell.SendKeys("{Enter}") 
40.
        WScript.Sleep 1000 
41.
 
42.
        oShell.SendKeys"if-match acl " & 3000+k 
43.
        oShell.SendKeys("{Enter}") 
44.
        WScript.Sleep 1000 
45.
 
46.
        oShell.SendKeys"quit" 
47.
        oShell.SendKeys("{Enter}") 
48.
        WScript.Sleep 1000 
49.
 
50.
        oShell.SendKeys"qos policy p" & k 
51.
        oShell.SendKeys("{Enter}") 
52.
        WScript.Sleep 1000 
53.
 
54.
        oShell.SendKeys"classifier CL" & k & " behavior deny" 
55.
        oShell.SendKeys("{Enter}") 
56.
        WScript.Sleep 1000 
57.
 
58.
        oShell.SendKeys"quit" 
59.
        oShell.SendKeys("{Enter}") 
60.
        WScript.Sleep 1000 
61.
 
62.
        oShell.SendKeys"qos vlan-policy p" & k & " VLAN 1" & k & " inbound" 
63.
        oShell.SendKeys("{Enter}") 
64.
        oShell.SendKeys("{Enter}") 
65.
        oShell.SendKeys("{Enter}") 
66.
        oShell.SendKeys("{Enter}") 
67.
        WScript.Sleep 5000 
68.
 
69.
 
70.
 
71.
end if 
72.
Next 
73.
 
Mensch, bin ich froh, dass ich mich jetzt wieder mit Betriebssystemen abgeben darf, die a) gut dokumentiert sind (von wegen, Redmond verschweigt da was ...) und b) zumindest großteils logisch aufgebaut sind...

lg
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...