Firewall maximale Anzahl möglicher IPs pro Firewall Regel auslesen

08/27/2018 23:48 saixo#1
Huhu Leute. Ich habe mit C# in Verbindung mit der NetFwTypeLib einen IP-Mass-Blacklister geschrieben, welcher auch gut funktioniert. Nun man kann in eine Windows Firewall Regel 5.000 IP's eintragen (Win10). Also aus einer Liste mit 15.000 IP's werden 3 Firewall-Rules mit jeweils 5.000 IP's.

Auf diese 5.000 maximum IP's per Regel bin ich nur durch Probieren draufgekommen. 5001 waren schon zuviel.

Das Problem nun: Auf Windows 7 Professional sind es nur 1.000 erlaubte IP's .

Da ich im Programm aber 5.000 reinpacken will, bekommt man dann auf Windows 7 einen Error dass es die Datenfeldgrenze überschreiten würde.

Ich habe es auch auf Windows 10 Pro versucht, dort passen selbst 10000 IP's in eine Firewall Regel o.O


Wie kann ich dieses Limit dynamisch auslesen? Möchte immer die größtmöglichen Blöcke eintragen, aber nicht zu große da sonst das Programm crasht.

Ich finde leider nach Tage langen googlen nicht viel passende Info.

Hat jemand Rat? ^^

PS: Den Source-Code findet man unter WaGi-Coding auf Github
08/28/2018 07:57 Ludder231#2
Dann lies doch einfach die Windows Version aus und mach ne Case/If Abfrage.
08/28/2018 14:05 saixo#3
Quote:
Originally Posted by Ludder231 View Post
Dann lies doch einfach die Windows Version aus und mach ne Case/If Abfrage.
Dann müsste ich erst bei jeder Version und Edition via Trial & Error versuchen was das Limit ist, das wäre also eine sehr schmutzige Lösung, ist aber der weg wie ich es gerade mache, das ist aber sehr "unsauber" da ich nun alles was nicht das system ist auf dem ich es schon getestet hatte nur 1000er Blöcke verwendet, sprich die performance des Tools ist fürn arsch wo eigentlich mehr möglich wäre
08/28/2018 17:33 Serraniel#4
Was ich kurz auf Stackoverlow gesehen habe ist, dass 1000 wohl der Standard ist (war aber schon was älter vor Windows 10 Zeiten).

Spricht etwas dagegen IP Ranges zu nutzen? Eine Ränge entspricht einem Eintrag sodass du pro Regel 1000 IP Ranges blockieren können müsstest, bzw. In deinem Fall halt 5000.
08/28/2018 17:48 saixo#5
Quote:
Originally Posted by Serraniel View Post
Was ich kurz auf Stackoverlow gesehen habe ist, dass 1000 wohl der Standard ist (war aber schon was älter vor Windows 10 Zeiten).

Spricht etwas dagegen IP Ranges zu nutzen? Eine Ränge entspricht einem Eintrag sodass du pro Regel 1000 IP Ranges blockieren können müsstest, bzw. In deinem Fall halt 5000.
Huhu, danke für deine Antwort. Ja das hatte ich auch gesehen mit den 1000 unter Win 7.
Ich habe auch schon in den letzten staubigen, dunklen Ecken des Internets Fragen gesehen die dasselbe wissen wollten. Jedoch konnte niemand wirklich antworten. Und nur wenige haben überhaupt bemerkt/erwähnt dass dies wohl von Version und Edition total unterschiedlich sein kann

Und ja falls einzelne IP's zu einem Range eintrag zusammengefasst werden können, tue ich das auch (bei aktuellen release noch nicht aber das ist schon in Planung um Einträge zu sparen)

Es würde es auf jedenfall minimieren, je nach Anwendung. Wenn keine Ranges bzw. einzelne IP's die zu einer Range zusammengefasst werden könnten auf der Liste sind erspart man sich auch nichts.

Ich habe auch irgendwo gelesen dass bei einer Business Server Edition (oder so sorry kenne mich mit den Editionen bei Win Server kaum aus) bis zu 25000 per Rule möglich sind. Und das ist genau das Problem: Es ist besser umso mehr in einer Rule zulässig sind, und wenn man das 20 Fache verwenden könnte, will ich den User nicht auf 1000 beschränken.

Zurzeit checke ich nur ob eine Windows Version genutzt wird, bei der ich mir sicher bin dass 10k möglich sind, alle anderen versionen müssen sich mit 1k zufrieden geben, selbst wenn sie 10k schaffen würden. Dafür müsste ich aber alle Versionen und Editionen checken um das auch fair für den User zu gestalten. Das ist der Grund warum ich dieses Limit irgendwie auslesen möchte :/

In einem Discord meinte jemand dass man dies evtl. in der Registry finden könnte. Ich finde jedoch nur die Firewall Einträge und ein paar Einstellungen, jedoch nichts konkretes über dieses Limit an IP Einträgen in einer einzelnen Regel

Grüße aus Wien


//EDIT:

Ich glaube mir wird nicht viel mehr übrig bleiben als mit try/catch zu loopen und somit das limit zu ermitteln. Evtl. nur beim ersten Start der Software und diesen wert dann selbst zu speichern.

Bessere Ideen sind gerne erwünscht, da das evtl. den User beim ersten Start abschrecken kann, da dieser Prozess länger dauern würde.