Seil ist ein "Spiel-Modul" für Linux iptables, die Pakete so zusammengelegt werden können durch Verwendung hochflexibler Regeln in einem einfachen Zweck konzipierte Skriptsprache geschrieben. Es wurde ursprünglich geschrieben, um Unterstützung für die nächste Phase des P2PWall Projekt zur Steuerung verschiedener Arten von Peer-to-Peer-Anwendungsdatenverkehr bieten, ist aber viel breiter als dies in seiner Einsatzmöglichkeiten. Siehe die Basics Seite für ein Tutorial-style Überblick.
Die Match-Module von iptables-Regeln ermöglichen die Aktionen je nachdem, ob Pakete entsprechen bestimmten Kriterien oder nicht. Die Standard-Distribution von netfilter / iptables bietet eine Reihe von nützlichen Modulen dieses Typs. Diese in der Regel erlauben Protokolltypen (TCP oder UDP), Quell- und Ziel-Adressen und Ports etc überprüft werden.
Es gibt auch eine Reihe von interessanten "Extras", als sie in den Kernel eingebunden werden, um einige erweiterte Paketpassenden Features bereitzustellen. Ein solches Beispiel ist die "string" -Modul, der Pakete auf der Grundlage des Vorhandensein (oder anderweitig) angegebenen Zeichen irgendwo in der Datenladebereich der Pakete angepaßt werden kann. Es gibt eine Reihe von anderen verborgenen Schätze, die verwendet werden, um die Funktionen des Systems signifikant zu verlängern.
Um Seil benutzen, um eine Übereinstimmung der Regel zu bauen, müssen Sie zuerst, um das Seil scriptlet, dass Ihre Übereinstimmungskriterien kodiert schreiben. Als Beispiel haben wir für die "Content-length" Kopfzeile einer HTTP-Download aussehen könnten und überprüfen Sie, dass die Länge nicht 1000000 bytes mit dem folgenden Skript überschreiten ..
Dieses Skript hat die folgenden Schritte, um es Arbeit zu bilden:
1. Suchen der Nutzdaten des Pakets nach der Zeichenfolge "Content-length", aber ignoriert Groß- und Kleinschreibung, da es durchsucht.
2. Wenn der String nicht gefunden wird, stoppt das Skript und gibt eine "nicht zugeordnet" Status auf netfilter.
3. Wenn die Zeichenfolge gefunden wird, übernimmt das Skript die Ziffern, die ihm folgen, und speichert sie als String in das Register $ n.
4. Der String in $ n wird auf eine ganze Zahl mit der Anzahl 1000000 umgewandelt und verglichen Wenn $ n groß als 1.000.000 beendet dann das Skript und gibt eine "abgestimmte" Status auf iptables.
5. Andernfalls endet das Skript mit einem "nicht zugeordnet" Status.
Die Sprache, in der Skripts wie folgt geschrieben werden basiert auf der Idee der ReversePolish Notation sondern erweitert das Konzept der AnchorBrackets behandeln. Die Sprache wird im Detail in LanguageReference dokumentiert.
Softwarebeschreibung:
Version: 20051223
Upload-Datum: 3 Jun 15
Lizenz: Frei
Popularität: 50
Kommentare nicht gefunden