Bescherm uw netwerk tegen indringers en ongevraagde aanvallen door Snort IDS te installeren en in te stellen.
Als u netwerkbeveiliging serieus neemt, is het installeren van een IPS- of IDS-oplossing een must om de netwerkperimeter te versterken en potentieel ongewenst netwerkverkeer af te leiden.
Snort is zo'n beroemde, gratis voor persoonlijk gebruik 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.
Wat is snuiven?
Snort is een open-source Detectie- en preventiesysteem voor netwerkinbraak (NIDS/IPS) software die, zoals de naam al doet vermoeden, helpt bij het beveiligen van uw netwerkperimeter door regels en filters af te dwingen die potentieel schadelijke pakketten die in uw netwerk zijn geïnjecteerd, detecteren en verwijderen.
Met Snort kunt u geavanceerde netwerkverkeerregistratie, pakketsnuffelen en -analyse uitvoeren en instellen een sterk inbraakpreventiesysteem opzetten dat uw netwerk verdedigt tegen ongewenste en potentieel kwaadaardige verkeer.
Vereisten voor het installeren van Snort
Voordat u Snort installeert, moet u eerst wat instellen. 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 zijn derivaten:
sudo pacman -Syu
Op RHEL en Fedora:
sudo dnf-upgrade
Nadat uw systeem is geüpgraded, gaat u door met het installeren van de afhankelijkheden die Snort vereist. Dit zijn de opdrachten die u moet uitvoeren:
Voer op Ubuntu en Debian het volgende uit:
sudo apt install -y build-essentiële 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-wachtrij-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev
Voer op Arch Linux het volgende 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
Bovendien moet u ook handmatig de Data Acquisition Library, LibDAQ for Snort installeren om correct te functioneren en ook gperftools om de build-bestanden te genereren.
Download eerst de LibDAQ-bronbestanden van de officiële website met behulp van de wget-opdracht. Pak vervolgens het archief uit en ga naar de map met behulp van cd. Voer in de directory het bootstrap En configureren scripts gaan vervolgens verder met het voorbereiden van bestanden met make en installeren het met de maak installeren commando.
wkrijg https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
cd lib*
./bootstrap
./configuratie
maken
sudo maken installeren
Als LibDAQ is geïnstalleerd, moet u nog een laatste afhankelijkheid installeren: gperftools. Begin met het pakken van de bronbestanden uit de GitHub-repo. Pak de bestanden uit, ga naar de map en voer het configuratiescript uit. Installeer ten slotte het pakket met behulp van de opdrachten make en make install.
wkrijg https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./configuratie
maken
sudo maken installeren
Zodra deze afhankelijkheden zijn geïnstalleerd, kunt u doorgaan naar de volgende stappen om Snort te installeren.
Installeer Snort From Source op Linux
Met de voorbereidende installatie achter de rug, kunt u zich nu concentreren op het installeren van de eigenlijke software. Je bouwt het vanaf de bron, dus pak eerst de vereiste build-bestanden.
Gebruik de wget-opdracht of download de bestanden handmatig van de officiële downloadpagina:
wkrijg https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz
Downloaden:snuiven
Zodra het archief met de buildbestanden klaar is met downloaden, pakt u het uit met de opdracht tar:
tar -xzvf snort*
Ga naar de uitgepakte map, voer het configuratiescript uit, gebruik de opdracht make om de bestanden voor te bereiden en installeer ze uiteindelijk met maak installeren:
cd snuiven*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
cd bouwen
maken
sudo maken installeren
Snort wordt nu met succes in uw systeem geïnstalleerd. Er is echter nog één stap die u moet voltooien. Wanneer nieuwe software handmatig wordt geïnstalleerd, 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 ldconfig uitvoeren. Het zal de gedeelde bibliotheekcache van het systeem synchroniseren met nieuw geïnstalleerde bibliotheken en binaire bestanden. Voer de opdracht ldconfig uit vanuit een root-shell of gebruik het sudo-voorvoegsel:
sudo ldconfig
Nu heb je alle belangrijke stappen doorlopen die nodig zijn om Snort te installeren. Om de installatie te verifiëren, voert u de opdracht Snort uit met de -V vlag, en u zou een uitvoer moeten zien die de versienaam en andere gegevens retourneert.
snuiven -V
Zodra je de Snort-installatie hebt geverifieerd, ga je verder met de volgende stappen om het in te stellen als een volwaardige 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 regels, moet u de 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.
Stel de netwerkinterface in op promiscue modus:
sudo ip link set dev interface_name promisc aan
Schakel met behulp van ethtool Generic Receive Offload (GRO) en Large Receive Offload (LRO) uit om te voorkomen dat grotere netwerkpakketten worden afgekapt:
sudo ethtool -K interfacenaam gro uit lro uit
Test hoe Snort presteert met de standaardconfiguratie:
snort -c /usr/local/etc/snort/snort.lua
Dit zou een succesvolle uitvoersignalering moeten opleveren dat u Snort correct in uw systeem hebt geïnstalleerd en ingesteld. Nu kunt u sleutelen aan de functies en experimenteren met verschillende configuraties om de beste regelset te vinden voor het beveiligen van uw netwerk.
Stel regels op en dwing ze af 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 het verkeer te bepalen. Laten we een paar door de gemeenschap gemaakte, gratis regelsets voor Snort opzetten.
Snort leest regelsets en configuraties uit specifieke mappen. Dus maak eerst met behulp van de opdrachten mkdir en touch een paar belangrijke mappen om regels en andere relevante gegevens voor Snort op te slaan:
sudo mkdir -p /usr/local/etc/{lijsten, so_rules, regels}
sudo touch /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist
Als deze mappen zijn gemaakt, kun je de community-regelset downloaden van de officiële website met behulp van de wget-opdracht:
wkrijg https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
Zodra de regelset klaar is met downloaden, pakt u deze uit en kopieert u deze naar het /usr/local/etc/rules/ map.
tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/
Voer deze opdracht uit om Snort uit te voeren met de regelset:
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k geen
Verdeling van de opdracht:
- -C stelt het pad in naar het standaardconfiguratiebestand
- -R stelt het pad in naar de regelset die moet worden afgedwongen
- -i stelt de interface in
- -S gooit snaplen limiet weg
- -k negeert controlesommen
Dit zou de configuratie moeten valideren en alle regelsets op Snort moeten afdwingen. Zodra het een netwerkstoring opmerkt, zal het u waarschuwen met een consolebericht.
Als u uw eigen regelset wilt maken en afdwingen, kunt u er meer over lezen in de officiële documentatiepagina's.
Logboekregistratie instellen met Snort
Standaard voert Snort geen logboeken uit. U moet opgeven met de -L flag om Snort in logmodus te starten, het type logbestand te definiëren, en -l flag om de logboekmap voor Snort in te stellen om de logboeken te dumpen.
Hier is de opdracht om Snort te starten met logboekregistratie 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 /snuiven
Verdeling van de opdracht:
- -C stelt het pad in naar het standaardconfiguratiebestand
- -R stelt het pad in naar de regelset die moet worden afgedwongen
- -i stelt de interface in
- -S gooit snaplen limiet weg
- -k negeert controlesommen
- -L schakelt de logmodus in en definieert het logbestandstype
- -l definieert het pad om logboeken op te slaan
Merk op dat in de voorbeeldopdracht de logboekmap is ingesteld op /var/log/snort. Hoewel dit wordt aanbevolen, staat het u vrij om uw logboeken elders op te slaan.
U kunt de logbestanden van Snort lezen uit de map die u hebt gedefinieerd of ze doorgeven aan SIEM-software zoals Splunk voor verdere analyse.
Voeg Snort toe als een systeemstart-daemon
Hoewel je Snort hebt geïnstalleerd en ingesteld, moet je ervoor zorgen dat het wordt uitgevoerd bij het opstarten en wordt uitgevoerd als een achtergronddaemon. Door het toe te voegen als een automatisch startende systeemservice, zorgt u ervoor dat Snort actief is en uw systeem te allen tijde verdedigt als het online is.
Ga als volgt te werk om een Snort-opstartdaemon op Linux toe te voegen:
- Begin met het maken van een nieuw systemd-servicebestand:
tik op /lib/systemd/system/snort.service
- Open het bestand in een teksteditor naar keuze en vul het met de volgende gegevens. U kunt de vlaggen aanpassen aan uw behoeften:
[Eenheid]
Beschrijving=Snort Daemon
After=syslog.target netwerk.target
[Dienst]
Typ=eenvoudig
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
[Installeren]
WantedBy=multi-user.target - Sla het bestand op en sluit het af. Gebruik vervolgens de service en systemctl-opdrachten, schakel in en start het script:
sudo systemctl zet snort.service aan
sudo snort start
De achtergronddaemon van Snort zou nu actief moeten zijn. U kunt de status van het script controleren met behulp van de systemctl status snort commando. Het zou een positieve output moeten opleveren.
Nu weet u hoe u uw netwerk kunt beschermen met Snort IDS
Hoewel het implementeren van IDS een goede gewoonte is, is het eerder een passieve dan een actieve maatregel. De beste manier om de beveiliging van uw netwerk te verbeteren en te garanderen, is door het continu te testen en te zoeken naar fouten die kunnen worden verholpen.
Penetratietesten zijn een geweldige manier om exploiteerbare kwetsbaarheden te vinden en te patchen.