Von Nutzergegend am Mi, 11. Dezember 2013 um 20:01 #
Aber kann man das nicht auch ins Userland verlegen? Warum muss alles im Kernel sein? Ich erinnere mich an den HTTP server im kernel, ka wieso Linus sowas zugelassen hatte.
Du kannst die Behandlung von SYN-Paketen nur sehr schwierig ins Userland verlegen, weil zu diesem Zeitpunkt die Verbindung ja nicht existiert. Der Listen-Socket des Serverprozesses hat noch gar nicht mitbekommen, dass es eine Verbindung gibt. Man könnte sicher mit einem Netlink-Socket irgendwas bauen, aber der dafür nötige Kernelpatch wäre größer und fehleranfälliger als die vorgeschlagene Implementierung.
Im übrigen findet die eigentliche Authentifizierung des Clients ja tatsächlich nur im Userspace statt. Der Kernelpatch stellt durch verwendung der Options des SYN-Paketes als Token nur sicher, dass die Verbindung nicht zwischen Portknocking und Tokenübermittlung gehijackt wurde.
Aber kann man das nicht auch ins Userland verlegen? Warum muss alles im Kernel sein? Ich erinnere mich an den HTTP server im kernel, ka wieso Linus sowas zugelassen hatte.
Du kannst die Behandlung von SYN-Paketen nur sehr schwierig ins Userland verlegen, weil zu diesem Zeitpunkt die Verbindung ja nicht existiert. Der Listen-Socket des Serverprozesses hat noch gar nicht mitbekommen, dass es eine Verbindung gibt. Man könnte sicher mit einem Netlink-Socket irgendwas bauen, aber der dafür nötige Kernelpatch wäre größer und fehleranfälliger als die vorgeschlagene Implementierung.
Im übrigen findet die eigentliche Authentifizierung des Clients ja tatsächlich nur im Userspace statt. Der Kernelpatch stellt durch verwendung der Options des SYN-Paketes als Token nur sicher, dass die Verbindung nicht zwischen Portknocking und Tokenübermittlung gehijackt wurde.