Router basato su Linux
In Linux lo scambio di chiavi (generalmente ISAKMP) viene eseguito nello spazio utente, mentre le politiche di sicurezza, le chiavi e la crittografia / decrittografia vengono eseguite a livello del kernel. Quando arriva un pacchetto, il kernel prima elabora questo pacchetto controllando se SPI e IP corrispondono a un criterio di sicurezza. Se lo fa, il pacchetto viene elaborato utilizzando le chiavi memorizzate della politica e il promotore aumenta lo stack di rete per l'elaborazione. Questo viene comunque eseguito a livello di kernel.
Ora, dove Snort si trova nell'implementazione dello stack di rete è importante. Poiché si tratta di un programma spaziale utente, riceve pacchetti dal kernel. Questo viene generalmente eseguito dal filtro di rete del kernel. Quindi i pacchetti dal netfilter del kernel vengono passati ai programmi dello spazio utente come snort [1] ( ricerca Snort) .
Cosa significa per te
- Il kernel vede i pacchetti crittografati
- Il kernel determina se ha una politica di sicurezza che corrisponde a questi pacchetti
- Se sì, il kernel decrittografa i pacchetti e li promuove sullo stack di rete
- Netfilter li elabora e spinge i pacchetti decrittografati nello spazio utente
- Snort vede i pacchetti decifrati e li elabora.
Questo non è il processo completo, e potrei aver sorvolato un po 'dello stack di rete del kernel di Linux. Ma davvero non vuoi quei dettagli comunque.
O forse lo fai ...
Dettagli sporchi sullo stack di Kernel Linux
Dettagli sullo sporco su Netfilter
Filtraggio dei pacchetti IPSec dopo decrittografia usando iptables
Una nota laterale interessante:
Se stai sniffando pacchetti sul Router 1 con Snort o anche con Wireshark. Effettua il ping attraverso la VPN. Dal Router 1 dovresti vedere sia il pacchetto ESP criptato che arriva, e la risposta decrittografata in Snort / Wireshark. Come verifica che in effetti vedrà entrambi i pacchetti.