2017-02-23 3 views
0

Um einige URLs zu blockieren, mit netfilter 's Kette, wenn ich NF_DROP für einige Pakete zurückgebe, bekomme ich mehrere Pakete für die gleiche Anfrage. Ich möchte nachfolgende Pakete stoppen, um unerwünschte Blockierung derselben URL zu vermeiden.Wie stoppe nachfolgende Pakete nach der Rückgabe von NF_DROP mit netfilter?

Gibt es einen Wert wie NF_DROP, dass ich diesen Prozess zu stoppen zurückkehren können, so dass die Anforderer - das heißt Web-Browser in meinem Fall - stattdessen eine Fehlerseite angezeigt wird Anfrage für gleiche URL zu wiederholen?

Kann ich die angeforderte URL im Paket ersetzen und dann NF_ACCEPT zurückgeben, damit der Anforderer eine Seite erhält und nicht mehr anfordert?

Antwort

0

Der Client (in Ihrem Fall - der Browser) weiß nicht, warum was er gesendet hat, wurde nicht vom Server akzeptiert. Der Kunde erwartete eine Bestätigung, und das tat es nicht. Also sendet er die Anfrage erneut. Sie sollten ein Reset-Paket an den Client senden (mit der IP-Adresse des Servers), um die Anfragen zu stoppen. Zum Anzeigen einer Fehlerseite ist es komplizierter, aber möglich.

+0

Danke. Ich löste das, indem ich Pakete vom Kernelraum in den Benutzerbereich durch "netfilter" einreihte, und dann eine Fehler-HTML-Seite nach der Verarbeitung an die Clients sandte. –

+0

Das ist gut, aber Sie können das Paket stehlen, die IP-Adressen und die Ports neu schreiben, das RST-Flag erhöhen, die Prüfsumme von IP und TCP fixieren und NF_ACCEPT zurückgeben. –

Verwandte Themen