GNU/Linux >> Tutoriels Linux >  >> Linux

Comment interpréter les messages de la source martienne Linux

Qu'est-ce qu'un paquet martien ?

L'IANA définit un paquet martien comme celui qui arrive sur une interface où l'interface n'utilise pas ce réseau. Pour Linux, il s'agit de tout paquet qui arrive sur une interface qui n'est en aucun cas configurée pour ce sous-réseau.

Toute notification de paquet martien doit être étudiée. Paquets martiens :

  • Sont fréquemment utilisés dans les intrusions de piratage.
  • Peut être le symptôme d'un serveur mal configuré ailleurs sur le réseau.
  • Peut indiquer un problème d'infrastructure réseau.

Si les éléments de configuration dans votre /etc/sysctl.conf désactiver cette détection, ils doivent être activés et le programme sysctl réexécuté. Voici quelques exemples d'entrées à vérifier :

net.ipv4.conf.all.log_martians=1
net.ipv4.conf.default.log_martians=1
net.ipv4.conf.bondib0.log_martians=1

Dans cet article, nous illustrerons comment interpréter les messages de source martienne avec quelques exemples concrets.

Exemple 1 – Comment interpréter le message source martien

Utilisons l'exemple ci-dessous :

Aug 22 11:08:21 server kernel: martian source 192.168.12.197 from 192.168.12.198, on dev bondib0
Aug 22 11:08:21 server kernel: ll header: 08:00:00:00:45:00:01:00:00:00:40:00:40:11:9f:11:c0:a8:0c:c6:c0:a8:0c:c5

Cela signifie que le serveur reçoit un paquet sur l'interface bondib0, la source du paquet (expéditeur) était 192.168.12.198 et la destination du paquet (destinataire) était 192.168.12.197. Cependant, sans informations supplémentaires, nous ne savons pas pourquoi le paquet a été signalé comme paquet martien.

Exemple 2 – Diffusion invalide

May 22 03:40:37 example2 kernel: IPv4: martian source 255.255.255.255 from 10.140.249.4, on dev eth1
May 22 03:40:37 example2 kernel: ll header: 00000000: ff ff ff ff ff ff 00 50 56 ad 59 09 08 00 .......PV.Y...

Ici eth1 a reçu un paquet de diffusion de l'expéditeur 10.140.249.4, et le destinataire 255.255.255.255 est une diffusion limitée, le public cible est tous les hôtes du 'réseau local' (voici le segment 10.140.249.4 avec un masque de réseau inconnu), et le le trafic ne doit jamais être transféré par un routeur.

Cependant, dans ce cas, eth1 a l'adresse IP 10.168.252.8/16, ce n'était pas le même réseau que l'expéditeur 10.140.249.4. Il n'est donc pas prévu de recevoir un tel paquet de diffusion de cet expéditeur, et le paquet a été rejeté en tant que source martienne. Un tel problème peut être causé par un routeur mal configuré.

Exemple 3 - Filtrage de chemin inverse

May 25 16:46:04 example3 kernel: martian source 10.255.16.101 from 10.255.1.140, on dev eth0
May 25 16:46:04 example3 kernel: ll header: 00:10:e0:3b:1b:8a:00:1f:27:3f:34:00:08:00

Ici, sur example3, eth0 a reçu un paquet de 10.255.1.140, et le destinataire est 10.255.16.101. Pour comprendre pourquoi il a été rejeté, nous devons inspecter la configuration réseau des 2 hôtes, comme illustré ci-dessous :

L'exemple de serveur3 a 2 interfaces eth0 (10.255.16.101) et bond0 (10.255.1.101), ils ont été connectés au commutateur L3 et au commutateur L2, séparément. Le commutateur L3 est connecté à 2 segments de réseau :10.255.16.0/24 et 10.255.1.0/24. L'expéditeur était directement connecté au commutateur L2 et le commutateur L2 était connecté au commutateur L3.

Ici, l'expéditeur a essayé d'atteindre eth0 sur example3, le paquet passera par le commutateur L2 et le commutateur L3 et atteindra la destination 10.255.16.101. Cela serait autorisé normalement. Cependant, Linux moderne a généralement activé le filtrage de chemin inverse :

# sysctl -a | grep eth0.rp_filter
net.ipv4.conf.eth0.rp_filter = 1

En mode restreint, le noyau teste les paquets entrants avec RFC3704, si l'interface n'est pas le meilleur chemin inverse, la vérification des paquets échouera. Dans ce cas, l'expéditeur aurait dû pouvoir atteindre le serveur example3 via bond0 puisqu'ils étaient dans le même segment. La vérification a échoué et le paquet a été rejeté.

La solution la plus simple consiste à connecter bond0 (10.255.1.101) à la place. Si cela n'est pas possible pour une raison particulière, désactivez le filtrage Reserve Path ou utilisez le mode lâche sur eth0.


Linux
  1. Comment configurer MySQL Multi-Master Replication sur Oracle Linux

  2. Comment installer phpMyAdmin sous Linux en utilisant le code source

  3. Comment utiliser iMessage d'Apple sous Linux (en quelque sorte)

  4. Comment installer MongoDB à partir de la source (et en utilisant YUM) sous Linux

  5. Comment installer TBB à partir de la source sur Linux et le faire fonctionner

Comment ajouter manuellement des messages aux fichiers journaux du système Linux

Comment installer un logiciel à partir de la source sous Linux

Qu'est-ce que la commande source sous Linux et comment ça marche ?

Qu'est-ce que BusyBox sous Linux ? Comment l'utiliser?

Comment compiler le noyau Linux à partir de la source pour créer un noyau personnalisé

Comment installer un logiciel à partir du code source dans votre système Linux