Hoe Snort IDS op Linux te installeren en in te stellen om uw netwerk te beveiligen

Als u serieus bezig bent met netwerkbeveiliging en het verbeteren van de beveiliging, dan is het installeren van Intrusion Detection and Prevention Systems (IPS of IDS) een must om de netwerkperimeter te versterken en ongewenst netwerkverkeer af te weren.

Snort is een populaire gratis en open source IPS/IDS-oplossing. Laten we eens kijken hoe u Snort op Linux kunt installeren en instellen om uw netwerk te beschermen tegen cyberaanvallen. Verifiëren Wat gebeurt er als je telefoon je bespioneert?

Wat is snuiven?

Snort is een open source Network Intrusion Detection and Prevention (NIDS/IPS)-toepassing die, zoals de naam al doet vermoeden, helpt bij het beveiligen van uw netwerkperimeter door regels en filters af te dwingen die schadelijke pakketten die in uw netwerk zijn geïnjecteerd, detecteren en verwijderen.

Met Snort kunt u geavanceerde netwerkverkeerregistratie, pakketsnuffelen en -analyse uitvoeren en een krachtig inbraakpreventiesysteem opzetten dat uw netwerk beschermt tegen ongewenst en mogelijk kwaadaardig verkeer.

Vereisten voor het installeren van Snort

Voordat u Snort installeert, moet u eerst een aantal instellingen uitvoeren. Dit omvat meestal het updaten en upgraden van uw systeem en het installeren van de afhankelijkheden die Snort nodig heeft om correct te functioneren.

Begin met het updaten en upgraden van uw systeem.

Op Ubuntu en op Debian gebaseerde Linux-distributies:

sudo apt update && apt upgrade -y

Op Arch Linux en de daarop gebaseerde distributies:

sudo pacman -Syu

Op RHEL en Fedora:

sudo dnf upgrade

Terwijl uw systeem wordt geüpgraded, blijft u de afhankelijkheden installeren die Snort nodig heeft. Dit zijn de opdrachten die u moet uitvoeren:

Voer op Ubuntu en Debian het volgende uit:

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 libjemalloc-dev libpcre++-dev

Voer op Arch Linux uit:

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

Geef voor RHEL en Fedora het volgende commando:

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

Daarnaast moet je ook handmatig de data-acquisitiebibliotheek installeren, LibDAQ voor Snort om correct te werken en ook gperftools om build-bestanden te genereren.

Download eerst de LibDAQ-bronbestanden van de officiële website met behulp van de opdracht wget. Pak vervolgens het zipbestand uit en ga naar de map met cd. Voer in de map het opstarten uit en configureer de scripts en ga vervolgens verder met het voorbereiden van de bestanden met de opdracht make install.

wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz tar -xzvf lib* cd lib* ./bootstrap ./configure make sudo make install

Als LibDAQ is geïnstalleerd, moet u nog een laatste afhankelijkheid installeren: gperftools. Begin met het ophalen van de bronbestanden uit de GitHub-repository. Pak de bestanden uit, navigeer naar de map en voer het configuratiescript uit. Installeer ten slotte het pakket met behulp van opdrachten make install.

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz tar -xvzf gper* && cd gper ./configure make sudo make install

Zodra deze afhankelijkheden zijn geïnstalleerd, kunt u doorgaan naar de volgende stappen om Snort te installeren.

Installeer Snort vanaf de bron op Linux

Nadat de eerste installatie is voltooid, kunt u zich nu concentreren op het installeren van de eigenlijke applicatie. U bouwt het vanuit de broncode, dus zorg eerst dat u de vereiste buildbestanden hebt.

Gebruik de opdracht wget of download de bestanden handmatig van de officiële downloadpagina:

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

downloaden: snuiven

Zodra het zip-bestand met de build-bestanden klaar is met downloaden, pak je het uit met de opdracht teer:

tar -xzvf snort*

Ga naar de uitgepakte map, voer het configuratiescript uit en gebruik de opdracht maken Om de bestanden voor te bereiden en deze uiteindelijk te installeren met make install:

cd snort* ./configure_cmake.sh — prefix=/usr/local — enable-tcmalloc cd build make sudo make install

Snort wordt nu met succes in uw systeem geïnstalleerd. Er is echter nog een stap die u moet voltooien. Wanneer u handmatig een nieuwe toepassing installeert, worden de installatiemap en vereiste bibliotheken mogelijk niet automatisch opgenomen in het standaardpad van het systeem. U kunt dus fouten tegenkomen bij het starten van de applicatie.

Om dit probleem te voorkomen, moet u de opdracht uitvoeren ldconfig. Het synchroniseert de gedeelde bibliotheekcache van het systeem met nieuw geïnstalleerde bibliotheken en binaire bestanden. Voer de opdracht uit ldconfig Met rootrechten of met een voorvoegsel sudo:

sudo ldconfig

Nu heb ik alle belangrijke stappen behandeld die nodig zijn om Snort te installeren. Voer de opdracht snort uit met een vlag om de installatie te controleren -V , en u zou een uitvoer moeten zien die de versienaam en andere gegevens retourneert.

snuiven -V

Zodra je hebt geverifieerd dat Snort is geïnstalleerd, doorloop je de volgende stappen om het in te stellen als een volledig functionerende IDS/IPS.

Eerste configuratie van Snort op Linux

De efficiëntie van Snort hangt bijna volledig af van de kwaliteit van de regelsets waarmee het wordt geleverd.

Voordat u echter begint met het instellen van de regels, moet u uw netwerkkaarten configureren om met Snort te werken en moet u ook testen hoe de standaardconfiguratie door Snort wordt afgehandeld. Begin met het configureren van de netwerkkaarten.

U moet de netwerkinterface instellen op promiscue modus:

sudo ip link set dev interface_name promisc on

gebruik makend van ethtool , schakel globale ontvangst-offload (GRO) en grote ontvangst-offload (LRO) uit om te voorkomen dat grotere netwerkpakketten worden afgesneden:

sudo ethtool -K interface_name gro off lro off

Test hoe Snort presteert met de standaardconfiguratie:

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

Dit zou een succesvolle uitvoer moeten opleveren dat u Snort correct in uw systeem hebt geïnstalleerd en geconfigureerd. U kunt nu de functies aanpassen en verschillende configuraties uitproberen om de beste regels voor het beveiligen van uw netwerk te vinden.

Regels instellen en afdwingen met Snort

Met de basisinstellingen is Snort nu klaar om je perimeter te verdedigen. Zoals je weet, heeft Snort regelsets nodig om de geldigheid van dataverkeer te bepalen. Laten we een paar gratis door de community gemaakte regelsets voor Snort maken.

Snort leest regelsets en configuraties uit opgegeven mappen. Dus eerst, met behulp van commando's mkdir و   , maak enkele belangrijke mappen aan om regels en andere gerelateerde gegevens voor snort op te slaan:

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

Door deze handleidingen te maken, kunt u de community-regelset downloaden van de officiële website met behulp van de opdracht wget:

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

Zodra de regelset is gedownload, pakt u deze uit en kopieert u deze naar de directory /usr/local/etc/rules/.

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

Voer deze opdracht uit om een ​​snort uit te voeren met de set regels:

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

commando uitleg:

  1. -c Specificeert het pad naar het standaardconfiguratiebestand.
  2. -R Specificeert het pad naar de regel die wordt afgedwongen.
  3. -i Definieert de interface.
  4. -s negeert de snaplen-limiet.
  5. -k Het negeert de checksum.

Dit zou de configuratie moeten valideren en alle regelsets naar Snort dwingen. Zodra het een netwerkverstoring opmerkt, zal het u waarschuwen met een consolebericht.

Als u uw eigen set regels wilt maken en implementeren, kunt u er meer over lezen op Officiële documentatiepagina's. Verifiëren Beste webapplicatie-firewallservices om de website te beveiligen.

Records vestigen met Snor

Standaard voert Snort geen logboeken uit. U moet specificeren met behulp van de tag -L Om Snort in logmodus te starten, geeft u het logbestandstype en een tag op -l Stelt de registerdirectory voor Snort in om logboeken te dumpen.

Hier is de opdracht om Snort te starten met logboeken ingeschakeld:

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 file_type -l /var/log/snort

commando uitleg:

  1. -c Specificeert het pad naar het standaardconfiguratiebestand.
  2. -R Specificeert het pad naar de regel die wordt afgedwongen.
  3. -i Definieert de interface.
  4. -s negeert de snaplen-limiet.
  5. -k Het negeert de checksum.
  6. -L Schakelt de opnamemodus in en specificeert het logbestandstype.
  7. Hij specificeert -l Records opslagpad.

Merk op dat in het vorige opdrachtvoorbeeld de registerdirectory is ingesteld op /var/log/snort. Hoewel dit een aanbevolen praktijk is, staat het u vrij om uw gegevens elders op te slaan.

U kunt de logbestanden van Snort lezen uit de map die u hebt opgegeven of ze doorgeven aan een SIEM-toepassing zoals Splunk voor verdere analyse.

Voeg Snort toe als een daemonproces om het met het systeem te starten

Ook al heb je Snort geïnstalleerd en ingesteld, je moet ervoor zorgen dat het wordt uitgevoerd bij het opstarten en draait als een achtergrondserver. Als u het toevoegt als een automatisch startende systeemservice, zorgt u ervoor dat Snort actief is en uw systeem verdedigt wanneer het online is.

Hier leest u hoe u het daemon-proces toevoegt om Snort op Linux te starten:

  • Begin met het maken van een servicebestand systemd nieuw:
touch /lib/systemd/system/snort.service
  • Open het bestand in een teksteditor naar keuze en vul het met de volgende gegevens. U kunt de tags aanpassen aan uw behoeften:
[Unit] Description=Snort Daemon After=syslog.target network.target [Service] Type=simple 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 [Install] WantedBy=multi-user.target
  • Sla het bestand op en sluit het af. Daarna met behulp van de twee commando's service و systemctl , schakel in en start het script:
sudo systemctl enable snort.service sudo snort start

De Snort-daemon zou nu moeten draaien. U kunt de status van het script controleren met behulp van de opdracht. Het zou een positieve output moeten opleveren.

systemctl status snort

Nu weet u hoe u uw netwerk kunt beschermen met Snort IDS

Hoewel IDS een goede praktijk is, is het meer een passieve actie dan een actieve. De beste manier om de beveiliging van uw netwerk te verbeteren en te waarborgen, is door het voortdurend te testen en te zoeken naar fouten die moeten worden verholpen.

Penetratietesten zijn een geweldige manier om exploiteerbare kwetsbaarheden te vinden en te patchen. U kunt nu bekijken Beste penetratietesttools voor cyberbeveiligingsprofessionals.

Ga naar de bovenste knop