68 votes

Est-ce que tcpdump contourne iptables ?

J'ai installé par erreur un serveur DNS de type "resolver" ouvert, qui a rapidement été utilisé pour une série d'attaques DDoS provenant de / vers la Russie. Pour cette raison, j'ai complètement bloqué le port 53 sur les deux serveurs DNS pour tout le monde, sauf pour les IP de confiance. Cela fonctionne, en ce sens que je ne peux plus me connecter à eux, mais ce qui me semble bizarre, c'est que lorsque j'exécute tcpdump sur eth1 (qui est une interface sur le serveur avec l'Internet public) Je vois beaucoup de paquets entrants de l'attaquant au port 53.

Est-il normal que tcpdump affiche ces paquets même si iptables les rejette ? Ou ai-je mal configuré iptables ?

D'un autre côté, je ne vois pas de paquets sortants de mon serveur, ce qui était le cas avant, donc je suppose que le pare-feu fonctionne en quelque sorte. Je suis simplement surpris que le noyau ne supprime pas entièrement les paquets ? Ou est-ce que tcpdump connecté au noyau de telle sorte qu'il voit les paquets avant même qu'ils n'arrivent à iptables ?

94voto

MariusMatutiae Points 45233

C'est une bonne question.

En fait, tcpdump est le premier logiciel que l'on trouve après le câble (et la carte réseau, si vous voulez) sur la route. DANS et le dernier sur le chemin OUT .

Wire -> NIC -> tcpdump -> netfilter/iptables

iptables -> tcpdump -> NIC -> Wire

Ainsi, il voit tous les paquets atteignant votre interface, et tous les paquets quittant votre interface. Puisque les paquets destinés au port 53 ne reçoivent pas de réponse, comme le montre tcpdump, vous avez vérifié avec succès que vos règles iptables ont été correctement configurées.

EDIT

Je devrais peut-être ajouter quelques détails. tcpdump est basé sur libpcap une bibliothèque qui crée un prise de paquets . Lorsqu'un paquet régulier est reçu dans la pile réseau, le noyau premièrement vérifie s'il existe une socket de paquet intéressée par le paquet nouvellement arrivé et, s'il y en a une, elle transmet le paquet à cette socket de paquet. Si l'option ETH_P_ALL est choisi, alors tous les protocoles passent par la prise de paquets.

libpcap implémente un tel socket de paquets avec l'option activée, en garde une copie pour son propre usage, et duplique le paquet sur la pile réseau, où il est traité par le noyau de la manière habituelle, y compris en le passant d'abord à netfilter la contrepartie de l'espace noyau de iptables . Même chose, dans l'ordre inverse ( c'est-à-dire , d'abord le netfilter puis le dernier le passage par le socket du paquet), à la sortie.

Est-ce que c'est sujet au piratage ? Mais bien sûr. Il y a certainement des rootkits de preuve de concept utilisant libpcap pour intercepter les communications destinées au rootkit. avant le pare-feu peut mettre la main dessus. Mais même cela n'est rien comparé au fait qu'une simple requête sur Google permet de trouver travail code cachant le trafic, même de libpcap . Pourtant, la plupart des professionnels pensent que les avantages l'emportent largement sur les inconvénients, dans le débogage des filtres de paquets réseau.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X