Script-Fehler

Forum zum Thema Firewall

Moderator: Lancom-Systems Moderatoren

Antworten
Alex
Beiträge: 11
Registriert: 09 Jan 2005, 15:37

Script-Fehler

Beitrag von Alex »

Hallo zusammen,

ein über readscript erzeugtes Script kann nicht wieder auf den Router hochgeladen werden. Es geht hier um Firewall-Regeln eines Lancom 1611 Routers, Firmware 5.06.

Im Attachment ist die Konfigurationsdatei enthalten. Es muß am add-Befehl für die Firewall-Regel "INTERNET_QOS" liegen. In dieser Regel gibt es zwei Aktionen: Verwerfen zu sendender Pakete ab 128 kbit/s global und Verwerfen zu empfangener Paketen ab 2016 kbit/s global.

Der Befehl readscript erzeugt folgende Zeile für die über LANconfig erstellte Firewall-Regel "INTERNET_QOS":
add "INTERNET_QOS" "TCP" "LOCALNET" "%S21,80,443,591,8008,8080 ANYHOST" "INTERNET_QOS0" No 0 Yes No Yes 0 ""

Auffällig ist der Wert für Spalte Action: "INTERNET_QOS0". Das kann nicht stimmen. Das Einlesen des Befehls führt zu Fehlermeldung "Script Error" unter telnet, im LANconfig sieht man, daß in die Aktiontabelle nur Zurückweisen erzeugt wurde.

Entfernt man über LANconfig die Aktion für zu sendende Pakete in obiger Firewall-Regel, wird mit readscript ein korrekter Befehl erzeugt:
add "INTERNET_QOS" "TCP" "LOCALNET" "%S21,80,443,591,8008,8080 ANYHOST" "%Qctds8 @i %Lgrwds2016 @i %D %N" No 0 Yes No Yes 0 ""

Entfernt man die Aktion für zu empfangene Pakete, wird folgender Befehl erzeugt:
add "INTERNET_QOS" "TCP" "LOCALNET" "%S21,80,443,591,8008,8080 ANYHOST" "%Qctds8 @i %Lgtwds128 @i %D %N" No 0 Yes No Yes 0 ""

Dieser Befehl ist ebenfalls korrekt. Weiß jemand, wie man die letzten beiden Befehle zu einem zusammenführt? Wendet man sie nacheinander an, wird nur jeweils eine Aktion übernommen. Ich würde gerne die Regeln für 4 Router per Scripting erzeugen und nicht fehleranfällig per Hand.

Folgendes funktioniert nicht:
add "INTERNET_QOS" "TCP" "LOCALNET" "%S21,80,443,591,8008,8080 ANYHOST" "%Qctds8 @i %Lgtwds128 %Lgrwds2016 @i %D %N" No 0 Yes No Yes 0

Gruß,
Alex
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
backslash
Moderator
Moderator
Beiträge: 7016
Registriert: 08 Nov 2004, 21:26
Wohnort: Aachen

Beitrag von backslash »

Hi Alex,

das Problem ist, daß "%Qctds8 @i %Lgtwds128 %Lgrwds2016 @i %D %N" mit 42 Zeichen zu lang ist für die Aktionsspalte, die maximal 40 Zeichen aufnehmen kann. Deshalb lagert LANconfig die Aktion in die Aktionstabelle aus (unter dem Namen "INTERNET_QOS0"). Wenn der Eintrag selbst auch nicht in eine Zeile der Aktionstabelle passt, dann splittet LANconfig diesen in weitere kleinere Einträge auf, die rekursiv aufeinander verweisen.

Da die notwendige Zeile zum Setzen des Eintrags in der Aktionstabelle in deinem Script nicht vorhanden ist, hast du nun eine ungültige Regel und bekommst beim Zurückschreiben die entsprechende Fehlermeldung

Gruß
Backslash
Alex
Beiträge: 11
Registriert: 09 Jan 2005, 15:37

Beitrag von Alex »

Hallo backslash,

welche Befehlszeilen muß ich dann verwenden oder wie erhalte ich sie?

Mit readscript erhalte ich Folgendes:

Code: Alles auswählen

# Head
lang English
flash No

cd /Setup/IP-Router/Firewall/Rules
del *
tab  Name                              Prot.       Source
             Destination                               Action
                 Linked  Prio   Firewall-  VPN-Rule   Stateful  Rtg-tag  Comment

add  "DNS_ALLOW"                       "UDP"       "%A192.168.1.10"
             "ANYHOST %S53"                            "%Lcds0 @i %A"
                 No      0      Yes        No         Yes       0        ""
add  "INTERNET_QOS"                    "TCP"       "LOCALNET"
             "%S21,80,443,591,8008,8080 ANYHOST"       "INTERNET_QOS0"
                 No      0      Yes        No         Yes       0        ""
add  "POP_ALLOW"                       "TCP"       "%A192.168.1.10"
             "ANYHOST %S110"                           "%Lcds0 @i %A"
                 Yes     0      Yes        No         Yes       0        ""
add  "POP_QOS"                         "TCP"       "%A192.168.1.10"
             "ANYHOST %S110"                           "%Lgrwds2016 @i %D %N %Qg
tds16 @i"        No      0      Yes        No         Yes       0        ""
add  "SMTP_ALLOW"                      "TCP"       "%A192.168.1.10"
             "ANYHOST %S25"                            "%Lcds0 @i %A"
                 Yes     0      Yes        No         Yes       0        ""
add  "SMTP_QOS"                        "TCP"       "%A192.168.1.10"
             "ANYHOST %S25"                            "%Qgrds16 @i %Qgtds16 @i"
                 No      0      Yes        No         Yes       0        ""
add  "ALOW_PING"                       "ICMP"      "LOCALNET"
             "ANYHOST %S0"                             "%Lcds0 @i %A"
                 No      0      Yes        No         Yes       0        ""
add  "DENY_ALL"                        "ANY"       "LOCALNET"
             "ANYHOST"                                 "%Lcds0 @i %R %N"
                 No      0      Yes        No         Yes       0        ""
add  "INTERNET_ALLOW"                  "TCP"       "LOCALNET"
             "%S21,80,443,591,8008,8080 ANYHOST"       "%Lcds0 @i %A"
                 Yes     0      Yes        No         Yes       0        ""
cd /
flash Yes

# done
exit
COMCARGRU
Beiträge: 1203
Registriert: 10 Nov 2004, 17:56
Wohnort: Hessen

Beitrag von COMCARGRU »

das Problem ist, daß "%Qctds8 @i %Lgtwds128 %Lgrwds2016 @i %D %N" mit 42 Zeichen zu lang ist für die Aktionsspalte, die maximal 40 Zeichen aufnehmen kann.
Jo und genau deswegen ist das ansich tolle Scripting etwas kastriert. Wäre das nicht der Fall, könnte man in Windeseile mal eben 200 MAC Adressen in eine FW Regel schreiben - so geht das leider nicht, weil man das ansich simple Script entsprechend bearbeiten muß...

*mitdemZaunpfahlwink* das sich da endlich mal was tut beim Regel Management... *BitteBitteBitteBitteBitte*


Gruß
COMCARGRU
Wann zum Teufel werden ALLE PCs grundsätzlich nur noch mit Hardware RAID 1 ausgestattet???
Antworten