ROPE er en "match-modul" for Linux iptables der tillader pakker skal matches ved hjælp meget fleksible regler, skrevet i et enkelt formål-designet scriptsprog. Den blev skrevet i første omgang at yde støtte til den næste fase af P2PWall projekt til styring af forskellige stilarter af peer-to-peer program trafik, men er meget bredere end dette i det mulige anvendelser. Se siden Basis for en tutorial stil overblik.
De kamp moduler af iptables tillader regler til at træffe foranstaltninger afhængigt af, om pakkerne matcher bestemte kriterier eller ej. Standard fordeling af netfilter / iptables giver en række nyttige moduler af denne type. Disse tillader typisk protokol typer (TCP eller UDP), kilde og destination adresser og porte osv, der skal kontrolleres.
Der er også et sæt af interessante "extras", end der kan kompileret ind i kernen til at give nogle udvidede pakke matchende funktioner. Et sådant eksempel er den "streng" modul, der giver pakker at blive matchet på grundlag af eksistensen (eller andet) af angivne strenge overalt i datanyttelasten del af pakkerne. Der er en række andre skjulte skatte, der kan anvendes til betydeligt udvide funktionerne i systemet.
For at kunne bruge reb til at bygge en match regel, skal du først skrive ROPE scriptlet der koder dine match kriterier. Som et eksempel, kunne vi se efter "Content-længde" overskriften på en HTTP download og kontrollere, at længden ikke overstiger 1000000 bytes ved hjælp af følgende script ..
Dette script har følgende skridt for at gøre det arbejde:
1. Søgninger data nyttelast af pakken for strengen "Content-længde:", men ignorerer små bogstaver, som den søger.
2. Hvis strengen ikke findes, scriptet stopper og returnerer en "ikke modsvares" status til netfilter.
3. Hvis strengen er fundet, scriptet tager cifrene, der følger det, og gemmer dem som en streng i registeret $ n.
4. streng i $ n omdannes til et heltal og sammenlignes med antallet 1000000. Hvis $ n er stort end 1000000 derefter scriptet afsluttes og returnerer en "matches" status til IPtables.
5. Ellers scriptet afsluttes med et "ikke modsvares" status.
Det sprog, som scripts som denne er skrevet er baseret på ideen om ReversePolish notation men udvidet til at håndtere begrebet AnchorBrackets. Sproget er dokumenteret i detaljer i LanguageReference.
Software detaljer:
Kommentarer ikke fundet