Skydda ditt nätverk från inkräktare och oönskade attacker genom att installera och konfigurera Snort IDS.

Om du menar allvar med nätverkssäkerhet är det ett måste att installera en IPS- eller IDS-lösning för att befästa nätverkets omkrets och avleda potentiellt oönskad nätverkstrafik.

Snort är en sådan berömd IPS/IDS-lösning som är gratis för personligt bruk och öppen källkod. Låt oss lära dig hur du kan installera och konfigurera Snort på Linux för att försvara ditt nätverk från cyberattacker.

Vad är Snort?

Snort är en öppen källkod System för upptäckt och förebyggande av nätverksintrång (NIDS/IPS) programvara som, som namnet antyder, hjälper till att säkra din nätverksperimeter genom att tillämpa regler och filter som upptäcker och släpper potentiellt skadliga paket som injiceras i ditt nätverk.

Med Snort kommer du att kunna utföra avancerad nätverkstrafikloggning, paketsniffning och analys och ställa in upp ett starkt intrångsskyddssystem som skyddar ditt nätverk från oönskade och potentiellt skadliga trafik.

instagram viewer

Förutsättningar för att installera Snort

Innan du installerar Snort finns det några preliminära inställningar att göra. Detta inkluderar oftast uppdatering och uppgradering av ditt system och installation av de beroenden som krävs av Snort för att fungera korrekt.

Börja med att uppdatera och uppgradera ditt system.

På Ubuntu- och Debian-baserade Linux-distros:

sudo apt update && apt upgrade -y

På Arch Linux och dess derivat:

sudo pacman -Syu

Om RHEL och Fedora:

sudo dnf uppgradering

Med ditt system uppgraderat, fortsätt att installera de beroenden som krävs av Snort. Här är kommandona du behöver köra:

På Ubuntu och Debian, kör:

sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool leefmalloc-dev libpcre++-dev

På Arch Linux, kör:

sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pulledporkxz zlib cmake pkgconf

För RHEL och Fedora, utfärda följande kommando:

sudo dnf installera gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y

Dessutom måste du också manuellt installera Data Acquisition Library, LibDAQ for Snort för att fungera korrekt och även gperftools för att generera byggfilerna.

Ladda först ner LibDAQ-källfilerna från den officiella webbplatsen med hjälp av kommandot wget. Extrahera sedan arkivet och flytta in i katalogen med cd. Kör inuti katalogen bootstrap och konfigurera skript fortsätt sedan för att förbereda filer med make och installera det med göra installera kommando.

wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
cd lib*
./bootstrap
./konfigurera
göra
sudo gör installera

Med LibDAQ installerat måste du installera ett sista beroende: gperftools. Börja med att ta tag i källfilerna från GitHub-repo. Extrahera filerna, flytta in i katalogen och kör konfigureringsskriptet. Slutligen, installera paketet med hjälp av kommandona make and make install.

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./konfigurera
göra
sudo gör installera

När dessa beroenden har installerats kan du gå vidare till nästa steg för att installera Snort.

Installera Snort From Source på Linux

Med den preliminära installationen ur vägen kan du nu fokusera på att installera själva programvaran. Du kommer att bygga den från källan, så ta de nödvändiga byggfilerna först.

Använd kommandot wget eller ladda ner filerna manuellt från den officiella nedladdningssidan:

wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz

Ladda ner:Fnysa

När arkivet som innehåller byggfilerna har laddats ned, extraherar du det med kommandot tar:

tar -xzvf snort*

Flytta till den extraherade mappen, kör konfigurationsskriptet, använd kommandot make för att förbereda filerna och installera dem slutligen med göra installera:

cd snort*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
cd bygga
göra
sudo gör installera

Snort kommer nu att installeras framgångsrikt i ditt system. Men det finns bara ett steg till du behöver slutföra. När ny programvara installeras manuellt, kanske installationskatalogen och nödvändiga bibliotek inte automatiskt inkluderas i systemets standardsökväg. Så du kan stöta på fel när du startar programmet.

För att undvika detta problem måste du köra kommandot ldconfig. Det kommer att synkronisera systemets delade bibliotekscache med nyinstallerade bibliotek och binärer. Kör antingen kommandot ldconfig från ett rotskal eller använd sudo-prefixet:

sudo ldconfig

Nu har du täckt alla viktiga steg som krävs för att installera Snort. För att verifiera installationen kör kommandot Snort med -V flagga, och du bör se en utdata som returnerar versionsnamnet och andra data.

fnysa -V

När du har verifierat Snort-installationen, gå vidare till nästa steg för att ställa in den som en fullvärdig IDS/IPS.

Initial konfiguration av Snort på Linux

Effektiviteten hos Snort beror nästan helt på kvaliteten på regeluppsättningar som den levereras med.

Men innan du kommer till att sätta upp regler måste du konfigurera nätverkskorten för att fungera med Snort och du måste även testa hur standardkonfigurationen hanteras av Snort. Börja med att konfigurera nätverkskorten.

Ställ in nätverksgränssnittet till promiskuöst läge:

sudo ip-länk ställ in dev interface_name promisc på

Använd ethtool, inaktivera Generic Receive Offload (GRO) och Large Receive Offload (LRO) för att förhindra att större nätverkspaket trunkeras:

sudo ethtool -K interface_name gro av lro av

Testa hur Snort presterar med standardkonfigurationen:

snort -c /usr/local/etc/snort/snort.lua

Detta bör returnera en lyckad utsignal som visar att du har installerat och ställt in Snort korrekt i ditt system. Nu kan du mixtra med dess funktioner och experimentera med olika konfigurationer för att hitta den bästa uppsättningen regeluppsättning för att säkra ditt nätverk.

Ställ in regler och upprätthåll dem med Snort

Med grundinställningarna på plats är Snort nu redo att försvara din omkrets. Som ni vet behöver Snort regeluppsättningar för att avgöra trafikens giltighet, låt oss sätta upp några community-made, gratis regeluppsättningar för Snort.

Snort läser regeluppsättningar och konfigurationer från specifika kataloger. Så först, med hjälp av kommandona mkdir och touch, skapa några viktiga kataloger för att lagra regler och annan relevant data för Snort:

sudo mkdir -p /usr/local/etc/{lists, so_rules, rules} 
sudo touch /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist

Med dessa kataloger skapade kan du ladda ner communityregeluppsättningen från den officiella webbplatsen med kommandot wget:

wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz

När regeluppsättningen har laddats ned, extrahera den och kopiera den till /usr/local/etc/rules/ katalog.

tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/

För att köra Snort med regeluppsättningen, kör detta kommando:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none

Uppdelning av kommandot:

  • -c ställer in sökvägen till standardkonfigurationsfilen
  • -R anger sökvägen till regeluppsättningen som ska tillämpas
  • -jag ställer in gränssnittet
  • -s kasserar snaplen limit
  • -k ignorerar kontrollsummor

Detta bör validera konfigurationen och genomdriva alla regeluppsättningar på Snort. Så snart den upptäcker eventuella nätverksstörningar kommer den att varna dig med ett konsolmeddelande.

Om du vill skapa och tillämpa din egen regeluppsättning kan du lära dig mer om det från officiella dokumentationssidor.

Ställ in loggning med snor

Som standard matar Snort inte ut några loggar. Du måste specificera med -L flagga för att starta Snort i loggningsläge, definiera loggfiltypen och -l flagga för att ställa in loggningskatalogen för Snort att dumpa loggarna.

Här är kommandot för att starta Snort med loggning aktiverad:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k none -L filtyp -l /var/log /fnysa

Uppdelning av kommandot:

  • -c ställer in sökvägen till standardkonfigurationsfilen
  • -R anger sökvägen till regeluppsättningen som ska tillämpas
  • -jag ställer in gränssnittet
  • -s kasserar snaplen limit
  • -k ignorerar kontrollsummor
  • -L aktiverar loggningsläge och definierar loggfiltypen
  • -l definierar sökvägen för att lagra loggar

Observera att i exempelkommandot är loggningskatalogen inställd på /var/log/snort. Även om detta rekommenderas, är du fri att lagra dina loggar någon annanstans.

Du kan läsa loggfilerna från Snort från den katalog du definierade eller skicka dem till SIEM-programvara som Splunk för vidare analys.

Lägg till Snort som en systemstartdaemon

Även om du har installerat och ställt in Snort, måste du se till att det börjar köras vid uppstart och körs som en bakgrundsdemon. Om du lägger till den som en automatisk startsystemtjänst säkerställer du att Snort är uppe och försvarar ditt system när det är online.

Så här lägger du till en Snort-startdemon på Linux:

  1. Börja med att skapa en ny systemd servicefil:
    tryck på /lib/systemd/system/snort.service
  2. Öppna filen i en valfri textredigerare och fyll i den med följande data. Du kan ändra flaggorna för att passa dina behov:
    [Enhet]
    Description=Snort Daemon
    After=syslog.target network.target
    [Service]
    Typ=enkel
    ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k none -l /var /log/snort -D -L pcap -i ens33
    [Installera]
    WantedBy=multi-user.target
  3. Spara och avsluta filen. Använd sedan tjänsten och systemctl-kommandon, aktivera och starta skriptet:
    sudo systemctl aktivera snort.service
    sudo snort start

Snort-bakgrundsdemonen bör nu vara igång. Du kan verifiera skriptets status med hjälp av systemctl status snort kommando. Det bör returnera en positiv utgång.

Nu vet du hur du skyddar ditt nätverk med Snort IDS

Även om implementering av IDS är en bra praxis, är det en passiv åtgärd än en aktiv. Det bästa sättet att förbättra och garantera ditt nätverks säkerhet är att kontinuerligt testa det och leta efter brister att åtgärda.

Penetrationstestning är ett utmärkt sätt att hitta exploaterbara sårbarheter och korrigera dem.