Door Anoniem: Weten wat je doet helpt. Als ik
bijvoorbeeld de handleiding voor ipfw erbij pak, dan zien ik:
established
Matches TCP packets that have the RST or ACK bits set.
Lijkt me dat je dat redelijk triviaal kan namaken. Verder is het mischien ook leuk om even te vertellen welke filtersoftware we het hier over hebben.
Mijn voorbeeld heeft niet echt betrekking tot specifieke filtersoftware maar op de logica te begrijpen van de TCP implementatie (die vendor afhankelijk blijkt). Een poos geleden heb ik een Cisco compatible extended ACL gemaakt en als alternatief voor established, set ACK gebruikt. Nu blijkt dat daar na verloop van tijd de verbindingen trager worden en/of wegvallen. Dit zou dus kunnen omdat het aantal TCP connecties te hoog oploopt, daar ze niet gesloten kunnen worden in het geval de implementatie voor het sluiten een exclusieve RST vereist.
Hier was ik al bang voor; dit gaat dus niet in een enkele regel. Omdat de ACL uitsluitend een AND (match-all) functie toepast zal [ set ACK AND set RST ] alleen verkeer toelaten waarbij zowel ACK en RST true zijn, terwijl established een OR functie betreft en RST ook zonder ACK toegelaten is.
Dus als ik het goed begrijp is het onderstaande voorbeeld het enige correcte:
allow ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.252
deny ip 192.168.2.0 255.255.255.252 192.168.1.0 255.255.255.0 match[all] set SYN [AND] unset URG, ACK, PSH, RST, FIN
allow ip 192.168.2.0 255.255.255.252 192.168.1.0 255.255.255.0 match[all] set ACK
allow ip 192.168.2.0 255.255.255.252 192.168.1.0 255.255.255.0 match[all] set RST
Dat zijn 4 regels voor 1 connectie. Ik vraag me nu af of dat niet efficiënter kan.