GNU/Linux >> Linux Esercitazione >  >> Linux

Come interpretare i messaggi sorgente marziani di Linux

Cos'è un pacchetto marziano?

Lo IANA definisce un pacchetto marziano come quello che arriva su un'interfaccia in cui l'interfaccia non utilizza quella rete. Per Linux, è qualsiasi pacchetto che arriva su un'interfaccia che non è configurata in alcun modo per quella sottorete.

Qualsiasi avviso di pacchetto marziano dovrebbe essere indagato. Pacchetti marziani:

  • Sono usati frequentemente nelle intrusioni di hacking.
  • Potrebbe essere un sintomo di un server mal configurato altrove sulla rete.
  • Può indicare un problema con l'infrastruttura di rete.

Se elementi di configurazione nel tuo /etc/sysctl.conf file disabilita questo rilevamento, dovrebbero essere abilitati e il programma sysctl rieseguito. Alcuni esempi di voci da controllare sono:

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

In questo post, illustreremo come interpretare i messaggi di origine marziana con alcuni esempi del mondo reale.

Esempio 1 – Come interpretare il messaggio sorgente marziano

Usiamo l'esempio di seguito riportato:

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

Significa che il server riceve un pacchetto sull'interfaccia bondib0, l'origine del pacchetto (mittente) era 192.168.12.198 e la destinazione del pacchetto (destinatario) era 192.168.12.197. Tuttavia, senza ulteriori informazioni, non sappiamo perché il pacchetto sia stato segnalato come pacchetto marziano.

Esempio 2 – Trasmissione non valida

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...

Qui eth1 ha ricevuto un pacchetto di trasmissione dal mittente 10.140.249.4 e il destinatario 255.255.255.255 è una trasmissione limitata, il pubblico di destinazione è tutti gli host in "rete locale" (ecco il segmento 10.140.249.4 con maschera di rete sconosciuta) e il il traffico non dovrebbe mai essere inoltrato da un router.

Tuttavia, in questo caso, eth1 ha l'indirizzo IP 10.168.252.8/16, non era la stessa rete del mittente 10.140.249.4. Quindi non dovrebbe ricevere tale pacchetto di trasmissione da questo mittente e il pacchetto è stato rifiutato come fonte marziana. Un problema del genere può essere causato da un router configurato in modo errato.

Esempio 3:filtraggio del percorso inverso

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

Qui nell'esempio 3, eth0 ha ricevuto un pacchetto da 10.255.1.140 e il destinatario è 10.255.16.101. Per capire perché è stato rifiutato, dobbiamo ispezionare la configurazione di rete dei 2 host, come illustrato di seguito:

Il server example3 ha 2 interfacce eth0 (10.255.16.101) e bond0 (10.255.1.101), erano collegati a Switch L3 e Switch L2, separatamente. Lo switch L3 collegato a 2 segmenti di rete:10.255.16.0/24 e 10.255.1.0/24. Il mittente era collegato direttamente allo switch L2 e lo switch L2 era collegato allo switch L3.

Qui il mittente ha cercato di raggiungere l'eth0 nell'esempio3, il pacchetto passerà attraverso l'interruttore L2 e l'interruttore L3 e raggiungerà la destinazione 10.255.16.101. Ciò sarebbe consentito normalmente. Tuttavia, Linux moderno di solito ha abilitato il filtro del percorso inverso:

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

In modalità con restrizioni, il kernel testa i pacchetti in entrata con RFC3704, se l'interfaccia non è il miglior percorso inverso il controllo dei pacchetti fallirà. In questo caso, il mittente avrebbe dovuto essere in grado di raggiungere il server example3 tramite bond0 poiché si trovava nello stesso segmento. Il controllo non è riuscito e il pacchetto è stato rifiutato.

La soluzione più semplice è invece collegare bond0 (10.255.1.101). Se ciò non è fattibile per qualche motivo speciale, disabilita il filtro del percorso di riserva o usa la modalità loose su eth0.


Linux
  1. Come configurare MySQL Multi-Master Replication su Oracle Linux

  2. Come installare phpMyAdmin in Linux usando il codice sorgente

  3. Come installare e configurare Nginx dal sorgente su Linux

  4. Come compilare e installare software dal codice sorgente su Linux

  5. Come installare MongoDB dal sorgente (e usando YUM) su Linux

Come aggiungere manualmente messaggi ai file di registro del sistema Linux

Come installare il software dal sorgente in Linux

Che cos'è il comando sorgente in Linux e come funziona?

Cos'è BusyBox in Linux? Come usarlo?

Come compilare il kernel Linux dal sorgente per creare un kernel personalizzato

Come installare il software dal codice sorgente nel tuo sistema Linux