Configuration pare-feu

Salut à tous,

Je m’intéresse aux fonctionnements des communications réseaux, et le sujet du “port knocking” m’a plu. Du coup, j’essaie de développer un outil un petit peu plus évolué que le démon knockd. J’implémente essentiellement deux améliorations :
[ul][li]la séquence de ports change selon divers paramètres (temps, adresse IP source, …)[/li]
[li]le contenu du paquet envoyé entre en jeu[/li][/ul]

Pour l’évolution de la séquence, il n’y a aucun souci. Par contre, pour analyser le contenu du paquet, il doit parvenir jusqu’à l’application qui écoute sur certains ports. Mais pour que le système de port knocking reste muet, un paquet “ICMP Destination Unreachable” doit être envoyé. Existe-t-il une règle (de préférence pour iptables) qui permettent de faire croire de l’extérieur à un REJECT, tout en transmettant le paquet à une application ?

Le plus simple à mon avis est d’utiliser nfqueue ça permet de demander à netfilter de déléguer la décision de quoi faire d’un paquet à un processus à part entière. Du coup tu peut avoir ton processus qui reçois les paquets depuis cette queue est qui agit comme bon te semble tout en refusant le paquet d’un point de vu netfilter.

unixgarden.com/index.php/gnu … plications

Ou bien utiliser libpcap pour capturer les paquets reçus à bas niveau, comme le font knockd et bien d’autres outils. Ainsi pas besoin de s’occuper des ICMP port unreachable, c’est la pile IP qui les envoie elle-même comme pour n’importe quel autre port UDP fermé.

Awesome \o/
Vos deux solutions me conviennent parfaitement. Pour le moment, j’opte pour NFQUEUE, mais libpcap me servira pour d’autres projets.

Merci à tous les deux :slightly_smiling: