Bygg en egen nätverkstapp med en Raspberry Pi

Att köpa en nätverkstapp från företag såsom Ixia (tidigare Net Optics), Gigamon eller Datacom Systems kan vara kostsamt. Vissa switchar stödjer även span-portar som möjliggör tappning av datatrafik och den som är riktigt snål kan använda en gammal hubb.

På eBay går det att hitta begagnade nätverkstappar aningens billigare men frakten kan ibland bli en dyr historia.

Därför kan ett val vara att bygga en egen nätverkstapp av en Raspberry Pi som du ansluter ett extra nätverkskort till samt hårddisk till, ungefär enligt följande bild:

På ovan setup så ser du en svart Raspberry Pi med två nätverkskablar anslutna. Det ena i ett USB-nätverkskort och den andra i inbyggda nätverksporten. Även har jag anslutit en extern hårddisk där jag lagrar ner pcap-filer.

Installation

Installera Raspbian på ett SD-kort som du ansluter och startar upp din Raspberry Pi på. Hur du installerar Raspbian är utanför denna guide men raspberrypi.org har en bra guide.

När du sedan anslutit via ssh och sett till att din extra hårddisk fungerar så rekommenderar jag att använda Luks eller liknande för att kryptera hårddisken där du kommer att lagra dina pcap-filer.

Du måste även kontrollera att insida och utsida av det nätverket du vill tappa av har anslutning till din Raspberry Pi. ifconfig, mii-tool samt tcpdump är tre bra kommandon för att kontrollera detta.

För att trafik ska flöda fritt mellan de två interfacen så måste du installera paketet bridge-utils genom att skriva:

# apt install bridge-utils

Sedan skapar du upp en brygga på följande sätt:

# brctl addbr br0
# brctl addif br0 eth0
# brctl addif br0 eth1

Och för att inställningarna ska sparas och aktiveras vid en omstart så bör du lägga in följande i filen /etc/network/interfaces

auto br0
  iface br0 inet manual
  bridge_ports eth0 eth1
  bridge_stp off
  bridge_fd 0
  bridge_maxwait 0

Toppen, då var vi nästan färdiga. Det sista men viktigaste steget är att skriva ner all trafikdata som flödar genom vår Raspberry Pi till disk.

Verifiera att hårddiskrypteringen ser bra ut för den externa disken:

Sedan monterar vi på disken och ställer oss i rätt katalog där vi vill skriva ner pcap-filer:

mkdir /u0/pcap/
cd /u0/pcap/
nohup tcpdump -i eth0 -G 86400 -w 'trace_%Y-%m-%d_%H:%M:%S.pcap' -Z pi &

Och efter ett tag så har du förhoppningsvis en bra samling med filer som du kan börja att analysera med diverse verktyg:

Rekommenderat är dock att du gör analys på ett fristående system. Är du extra paranoid kan du även begränsa utgående anslutningar från nätverkstappen.

Prestanda

När jag testar med Bredbandskollen och kör före och efter tester så är skillnaden mycket liten. Ungefär 1% skillnad ser jag i resultatet när jag mäter på en förbindelse på 100 Mbit/s.

Detta är testat med en Raspberry Pi 3 modell b.

Jonas Lejon

Om Jonas Lejon

En av sveriges främsta cybersäkerhetsexperter med nästan 20 års erfarenhet inom området och en bakgrund från FRA och Försvarsmakten. Kontakta mig gärna på telefonnummer 010 1889848 eller [email protected] om Er organisation behöver hjälp med cybersäkerhet. LinkedIn Twitter

One comment

  1. Jonas

    Hur ”stealth” blir denna setup på ett nätverk? Anta att man vill sätta nätverkstappen mellan switchport och endpoint och lyssna av trafik till och från klientutrustningen. Risk finns att tappen kan detekteras på nätverket om uppslag görs mot någon av NIC:arnas MAC-adresser (om dessa inte spoofas till något som normalt ska finnas på nätverket). Att addera en passiv tappningsenhet som OSI-mässigt blir en del av segmentet/kabeln kan ta hand om detta och sedan ansluts Raspberry:n (eller motsvarande utrustning) till den tappningsenheten. På så vis avslöjar sig inte Raspberry:n i nätverket. I övrigt sätts Raspberry:n upp precis på det sätt som anges i artikeln, d.v.s. brygga två interface (tx samt rx vid användning av passiv LAN tap) och lyssna av bryggan. Exempel på gångbar passiv LAN tap är Great Scott Gadgets ”Throwing Star LAN Tap”. En passiv tappningsenhet borde heller inte ha inverkan på nätverksprestanda eftersom det inte begränsas av att det ska passera via aktiva NIC:ar som fallet blir om man kör trafiken direkt genom Raspberry:n. Det är helt upp till Raspberry:n att hinna med att logga trafiken vilket den passiva LAN-tappen struntar fullkomligt i (eller ens är medveten om då det är en ”dum” enhet som bara flödar trafiken rakt igenom som om det vore en kabel).
    https://greatscottgadgets.com/throwingstar/

Skriv en kommentar

Du kan använda följande HTML HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>