Hálózati biztonsági csoport folyamatnaplóinak kezelése és elemzése az Azure-ban a Network Watcher és a Graylog használatával
Figyelemfelhívás
Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Ennek megfelelően fontolja meg a használatot és a tervezést. További információ: CentOS End Of Life útmutató.
A hálózati biztonsági csoport folyamatnaplói olyan információkat tartalmaznak, amelyek segítségével megismerheti az Azure hálózati adapterek bejövő és kimenő IP-forgalmát. A folyamatnaplók hálózati biztonsági csoportonkénti szabály alapján jelenítik meg a kimenő és bejövő folyamatokat, a folyamat által érintett hálózati adaptert, a folyamatról 5 rekordnyi információt (forrás/cél IP-cím, forrás/célport, protokoll), valamint hogy a forgalom engedélyezve vagy megtagadva volt-e.
A hálózatban számos olyan hálózati biztonsági csoport lehet, amelyeken engedélyezve van a folyamatnaplózás. Számos, a folyamatnaplózást engedélyező hálózati biztonsági csoport nehézkessé teheti a naplók elemzését és elemzését. Ez a cikk megoldást nyújt a hálózati biztonsági csoportok folyamatnaplóinak központi kezelésére a Graylog, egy nyílt forráskód naplókezelési és -elemző eszköz, valamint a Logstash, egy nyílt forráskód kiszolgálóoldali adatfeldolgozási folyamat használatával.
Figyelmeztetés
Az alábbi lépések a folyamatnaplók 1- es verziójával működnek. További információ: Bevezetés a hálózati biztonsági csoportok folyamatnaplózásába. Az alábbi utasítások módosítás nélkül nem működnek a naplófájlok 2. verziójával.
Eset
A hálózati biztonsági csoport folyamatnaplói engedélyezve vannak a Network Watcher használatával. A folyamatnaplók befolynak az Azure Blob Storage-ba. A Logstash beépülő modul a blobtárolóból származó folyamatnaplók csatlakoztatására és feldolgozására szolgál, és elküldi őket a Graylognak. Miután a folyamatnaplókat a Graylog tárolja, elemezhetők és megjeleníthetők testreszabott irányítópultokon.
A telepítés lépései
Hálózati biztonsági csoportok folyamatnaplózásának engedélyezése
Ebben a forgatókönyvben engedélyeznie kell a hálózati biztonsági csoportok folyamatnaplózását a fiók legalább egy hálózati biztonsági csoportján. A hálózati biztonsági csoportok folyamatnaplóinak engedélyezésével kapcsolatos utasításokért tekintse meg a következő cikket a hálózati biztonsági csoportok folyamatnaplózásának bemutatása című cikkben.
A Graylog beállítása
Ebben a példában a Graylog és a Logstash is egy Azure-ban üzembe helyezett Ubuntu-kiszolgálón van konfigurálva.
- A Graylog dokumentációjában részletes útmutatást talál az Ubuntu-ra való telepítésről.
- A dokumentációt követve konfigurálja a Graylog webes felületet is.
Ez a példa a minimális Graylog-beállítást (azaz egy Graylog egyetlen példányát) használja, de a Graylog úgy is létrehozható, hogy a rendszertől és az éles környezettől függően skálázza az erőforrásokat. Az architekturális szempontokról vagy a részletes architekturális útmutatóról további információt a Graylog dokumentációjában és az architekturális útmutatóban talál.
A Graylog számos módon telepíthető a platformtól és a beállításoktól függően. A lehetséges telepítési módszerek teljes listáját a Graylog hivatalos dokumentációjában találja. A Graylog kiszolgálóalkalmazás Linux-disztribúciókon fut, és az alábbi előfeltételekkel rendelkezik:
- Java Standard kiadás 8-at vagy újabb verziót – A JDK telepítési dokumentációja
- Elastic Search 2.x (2.1.0 vagy újabb) – Az Elasticsearch telepítési dokumentációja
- MongoDB 2.4 vagy újabb – A MongoDB telepítési dokumentációja
A Logstash telepítése
A Logstash a JSON formátumú folyamatnaplók folyamatszintre való simítására szolgál. A folyamatnaplók összesimítása megkönnyíti a naplók rendszerezését és keresését a Graylogban. A Logstash Ubuntu-ban való telepítéséhez az alábbi utasítások szolgálnak. A csomag RHEL/CentOS rendszerben való telepítésével kapcsolatos utasításokért tekintse meg a Csomagtárházakból való telepítést ismertető cikket – yum cikket.
A Logstash telepítéséhez futtassa a következő parancsokat:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg sudo apt-get install apt-transport-https echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list sudo apt-get update && sudo apt-get install logstash
Konfigurálja a Logstashet a folyamatnaplók elemzéséhez és a Graylogba való elküldéséhez. Hozzon létre egy Logstash.conf fájlt:
sudo touch /etc/logstash/conf.d/logstash.conf
Adja hozzá a következő tartalmat a fájlhoz. Módosítsa a
storage_account_name
,storage_access_key
éscontainer
az értékeket a tárfiók adatainak megfelelően:input { azureblob { storage_account_name => "mystorageaccount" storage_access_key => "NrUZmx7pJSKaRJzvQbeiZWi5nBRWOTr7Wwr9DrvK7YtDBrADYxT1y0oEExtSlkDnGRt7qcRiZzEBCCyRYND8SxSt" container => "insights-logs-networksecuritygroupflowevent" registry_create_policy => "start_over" codec => "json" file_head_bytes => 21 file_tail_bytes => 9 # Possible options: `do_not_break`, `with_head_tail`, `without_head_tail` break_json_down_policy => 'with_head_tail' break_json_batch_count => 2 interval => 5 } } filter { split { field => "[records]" } split { field => "[records][properties][flows]"} split { field => "[records][properties][flows][flows]"} split { field => "[records][properties][flows][flows][flowTuples]" } mutate { split => { "[records][resourceId]" => "/"} add_field =>{ "Subscription" => "%{[records][resourceId][2]}" "ResourceGroup" => "%{[records][resourceId][4]}" "NetworkSecurityGroup" => "%{[records][resourceId][8]}" } convert => {"Subscription" => "string"} convert => {"ResourceGroup" => "string"} convert => {"NetworkSecurityGroup" => "string"} split => { "[records][properties][flows][flows][flowTuples]" => ","} add_field => { "unixtimestamp" => "%{[records][properties][flows][flows][flowTuples][0]}" "srcIp" => "%{[records][properties][flows][flows][flowTuples][1]}" "destIp" => "%{[records][properties][flows][flows][flowTuples][2]}" "srcPort" => "%{[records][properties][flows][flows][flowTuples][3]}" "destPort" => "%{[records][properties][flows][flows][flowTuples][4]}" "protocol" => "%{[records][properties][flows][flows][flowTuples][5]}" "trafficflow" => "%{[records][properties][flows][flows][flowTuples][6]}" "traffic" => "%{[records][properties][flows][flows][flowTuples][7]}" } add_field => { "time" => "%{[records][time]}" "systemId" => "%{[records][systemId]}" "category" => "%{[records][category]}" "resourceId" => "%{[records][resourceId]}" "operationName" => "%{[records][operationName}}" "Version" => "%{[records][properties][Version}}" "rule" => "%{[records][properties][flows][rule]}" "mac" => "%{[records][properties][flows][flows][mac]}" } convert => {"unixtimestamp" => "integer"} convert => {"srcPort" => "integer"} convert => {"destPort" => "integer"} add_field => { "message" => "%{Message}" } } date { match => ["unixtimestamp" , "UNIX"] } } output { stdout { codec => rubydebug } udp { host => "127.0.0.1" port => 12201 } }
A megadott Logstash konfigurációs fájl három részből áll: a bemenetből, a szűrőből és a kimenetből. A bemeneti szakasz kijelöli a Logstash által feldolgozandó naplók bemeneti forrását – ebben az esetben egy Azure-blog bemeneti beépülő modult fog használni (a következő lépésekben telepítve), amely lehetővé teszi a hálózati biztonsági csoport folyamatnaplójának blobtárolóban tárolt JSON-fájljainak elérését.
A szűrőszakasz ezután simítja az egyes folyamatnapló-fájlokat, hogy az egyes folyamatok és a hozzá tartozó tulajdonságok külön Logstash-eseménysé alakulnak.
Végül a kimeneti szakasz minden Logstash-eseményt továbbít a Graylog-kiszolgálónak. Az igényeinek megfelelően szükség szerint módosítsa a Logstash konfigurációs fájlját.
Feljegyzés
Az előző konfigurációs fájl feltételezi, hogy a Graylog-kiszolgáló a 127.0.0.1 helyi gazdagép-visszacsatolási IP-címen lett konfigurálva. Ha nem, mindenképpen módosítsa a kimeneti szakaszban lévő gazdagépparamétert a megfelelő IP-címre.
A Logstash telepítésével kapcsolatos további utasításokért tekintse meg a Logstash dokumentációját.
Az Azure Blob Storage Logstash bemeneti beépülő moduljának telepítése
A Logstash beépülő modul lehetővé teszi a folyamatnaplók közvetlen elérését a kijelölt Blob Storage-fiókból. A beépülő modul telepítéséhez futtassa az alábbi parancsot az alapértelmezett Logstash telepítési könyvtárból (ebben az esetben /usr/share/logstash/bin):
cd /usr/share/logstash/bin
sudo ./logstash-plugin install logstash-input-azureblob
A beépülő modulról további információt a dokumentációban talál.
Kapcsolat beállítása a Logstash és a Graylog között
Most, hogy kapcsolatot létesített a folyamatnaplókkal a Logstash használatával, és beállította a Graylog-kiszolgálót, konfigurálnia kell a Graylogot a bejövő naplófájlok elfogadásához.
Keresse meg a Graylog Server webes felületét a hozzá konfigurált URL-cím használatával. A felületet úgy érheti el, hogy a böngészőt a
http://<graylog-server-ip>:9000/
A konfigurációs lapra való navigáláshoz válassza a jobb felső navigációs sáv Rendszer legördülő menüjét, majd kattintson a Bemenetek elemre. Másik lehetőségként lépjen a
http://<graylog-server-ip>:9000/system/inputs
Az új bemenet elindításához válassza a GELF UDP lehetőséget a Bemenet kiválasztása legördülő menüben, majd töltse ki az űrlapot. A GELF a Graylog Extended Log Format rövidítése. A GELF formátumot a Graylog fejlesztette ki. Az előnyeiről további információt a Graylog dokumentációjában talál.
Győződjön meg arról, hogy a bemenetet ahhoz az IP-címhez köti, amelyen a Graylog-kiszolgálót konfigurálta. Az IP-címnek meg kell egyeznie a Logstash konfigurációs fájl UDP-kimenetének gazdagépmezőjének . Az alapértelmezett portnak 12201-nek kell lennie. Győződjön meg arról, hogy a port megfelel a Logstash config fájlban kijelölt UDP-kimenet portmezőjének .
Miután elindította a bemenetet, látnia kell, hogy az megjelenik a Helyi bemenetek szakaszban, az alábbi képen látható módon:
A Graylog-üzenetbemenetekkel kapcsolatos további információkért tekintse meg a dokumentációt.
A konfigurációk elvégzése után elindíthatja a Logstash-et a folyamatnaplókban való olvasás megkezdéséhez a következő paranccsal:
sudo systemctl start logstash.service
.
Keresés a Graylog-üzenetekben
Miután engedélyezte, hogy a Graylog-kiszolgáló összegyűjtse az üzeneteket, kereshet az üzenetek között. A Graylog-kiszolgálónak küldött üzenetek ellenőrzéséhez a Bemenetek konfigurációs oldaláról kattintson a létrehozott GELF UDP-bemenet "Fogadott üzenetek megjelenítése" gombjára. A rendszer az alábbi képhez hasonló képernyőre irányítja:
A kék "%{Message}" hivatkozásra kattintva kibontja az egyes üzeneteket az egyes folyamatok paramétereinek megjelenítéséhez, ahogyan az az alábbi képen látható:
Alapértelmezés szerint az összes üzenetmező szerepel a keresésben, ha nem jelöl ki egy adott üzenetmezőt. Ha konkrét üzeneteket szeretne keresni (például egy adott forrás IP-címről származó folyamat-folyam-ra), használhatja a Graylog keresési lekérdezési nyelvét a dokumentált módon
Hálózati biztonsági csoport folyamatnaplóinak elemzése a Graylog használatával
Most, hogy beállította a Graylogot, használhatja annak néhány funkcióját a folyamatnapló adatainak jobb megértéséhez. Az egyik ilyen módszer az irányítópultok használata az adatok adott nézeteinek létrehozásához.
Irányítópult létrehozása
A felső navigációs sávon válassza az Irányítópultok lehetőséget, vagy lépjen a
http://<graylog-server-ip>:9000/dashboards/
Ezután kattintson a zöld Irányítópult létrehozása gombra, és töltse ki a rövid űrlapot az irányítópult címével és leírásával. Az új irányítópult létrehozásához nyomja le a Mentés gombot. Az alábbi képhez hasonló irányítópult jelenik meg:
Widgetek hozzáadása
Az irányítópult címére kattintva megtekintheti, de jelenleg üres, mivel nem adtunk hozzá widgeteket. Az irányítópulthoz egyszerűen és hasznosan felvehető típus widgetek a Gyors értékek diagramok, amelyek a kijelölt mező értékeinek listáját és azok eloszlását jelenítik meg.
Lépjen vissza a folyamatnaplókat fogadó UDP-bemenet keresési eredményeihez a felső navigációs sávOn a Keresés gombra kattintva.
A Keresés eredménypanelen, a képernyő bal oldalán keresse meg a Mezők lapot, amely felsorolja az egyes bejövő folyamatábra-üzenetek különböző mezőit.
Válassza ki a vizualizálandó kívánt paramétert (ebben a példában az IP-forrás van kiválasztva). A lehetséges widgetek listájának megjelenítéséhez kattintson a mező bal oldalán található kék legördülő nyílra, majd válassza a Gyors értékek lehetőséget a widget létrehozásához. A következő képhez hasonlót kell látnia:
Innen kiválaszthatja a widget jobb felső sarkában található Hozzáadás az irányítópulthoz gombot, és kiválaszthatja a hozzáadni kívánt irányítópultot.
Lépjen vissza az irányítópultra az imént hozzáadott widget megtekintéséhez.
Számos más widgetet, például hisztogramokat és darabszámokat is hozzáadhat az irányítópulthoz, így nyomon követheti a fontos metrikákat, például a következő képen látható minta irányítópultot:
Az irányítópultokkal és más típusú widgetekkel kapcsolatos további magyarázatért tekintse meg a Graylog dokumentációját.
A Network Watcher és a Graylog integrálásával mostantól kényelmes és központosított módon kezelheti és vizualizálhatja a hálózati biztonsági csoportok folyamatnaplóit. A Graylog számos más hatékony funkcióval rendelkezik, például streamekkel és riasztásokkal, amelyek a folyamatnaplók további kezelésére és a hálózati forgalom jobb megértésére is használhatók. Most, hogy beállította és csatlakoztatta a Graylogot az Azure-hoz, nyugodtan fedezze fel az általa kínált egyéb funkciókat.
Következő lépések
Megtudhatja, hogyan jelenítheti meg a hálózati biztonsági csoport folyamatnaplóit a Power BI-jal a hálózati biztonsági csoportok folyamatnaplóinak vizualizációjával a Power BI-ban.