Ինչպես տեղադրել Zeek ցանցի անվտանգության մոնիտորինգի գործիքը Debian 12-ում


Այս էջում

  1. Նախադրյալներ
  2. Պահեստի ավելացում
  3. Zeek-ի տեղադրում
  4. Zeek-ի կազմաձևում
  5. Zeek տեղեկամատյանների ուղեցույց
  6. Zeek-cut-ի միջոցով Zeek տեղեկամատյանների վերլուծություն (Tab-անջատված արժեքներ):
  7. Zeek Log ֆայլերի կազմաձևումը JSON-ի
  8. Եզրակացություն

Zeek-ը (նախկինում Bro) անվճար և բաց կոդով հարթակ է ցանցի անվտանգության մոնիտորինգի համար: Այն հզոր պասիվ ցանցային երթևեկության անալիզատոր է՝ կասկածելի կամ վնասակար գործողությունները հետաքննելու համար: Zeek-ը կարող է օգտագործվել որպես ցանցային անվտանգության մոնիտոր (NSM) և աջակցում է երթևեկության վերլուծության լայն շրջանակին՝ սկսած անվտանգության տիրույթից մինչև կատարողականի չափում և անսարքությունների վերացում:

Այս ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես քայլ առ քայլ տեղադրել Zeek ցանցի անվտանգության մոնիտորինգը Debian 12 սերվերի վրա: Դուք կտեղադրեք Zeek-ը և կկարգավորեք Zeek-ը կլաստերային ռեժիմում, այնուհետև կսովորեք, թե ինչպես վերլուծել Zeek TSV log ձևաչափը zeek-cut հրամանի տողի միջոցով: Ավելին, դուք կսովորեք, թե ինչպես կարգավորել Zeek log-ի ելքը որպես JSON և վերլուծիչ Zeek JSON log jq հրամանի տողի միջոցով:

Նախադրյալներ

Նախքան սկսելը, հաստատեք, որ ունեք հետևյալը.

  • Debian 12 սերվեր:
  • Ոչ արմատական օգտվող, ադմինիստրատորի արտոնություններով:

Պահեստի ավելացում

Zeek-ը կարող է տեղադրվել Linux համակարգում՝ ձեռքով կամ երրորդ կողմի պահոց օգտագործելով: Այս ուղեցույցում դուք կտեղադրեք Zeek-ը՝ օգտագործելով երրորդ կողմի պահոցը APT-ի միջոցով:

Նախ, գործարկեք հետևյալ հրամանը՝ Zeek փաթեթի համար GPG բանալին և պահեստը ավելացնելու համար:

curl -fsSL https://download.opensuse.org/repositories/security:zeek/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null
echo 'deb http://download.opensuse.org/repositories/security:/zeek/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list

Այժմ թարմացրեք և թարմացրեք ձեր Debian պահոցը՝ կատարելով հետևյալ apt update հրամանը։

sudo apt update

Zeek-ի տեղադրում

Zeek պահեստը ավելացնելուց հետո այժմ կարող եք սկսել Zeek-ի տեղադրումը ձեր Debian մեքենայի վրա: Հետևյալ քայլում դուք կտեղադրեք Zeek-ը և կավելացնեք Zeek տեղադրման գրացուցակը համակարգի PATH-ում:

Կատարեք ներքևում գտնվող apt install հրամանը՝ Zeek-ը ձեր Debian մեքենայի վրա տեղադրելու համար: Կան Zeek-ի բազմաթիվ տարբերակներ, ինչպիսիք են վերջին թողարկումը, LTS-ը և գիշերային: Այս օրինակում դուք կտեղադրեք zeek-lts:

sudo apt install zeek-lts

Տեղադրումը շարունակելու համար մուտքագրեք y:

Zeek-ը տեղադրելուց հետո, որը լռելյայնորեն գտնվում է թիրախային գրացուցակում /opt/zeek: Կատարեք հետևյալ հրամանը՝ /opt/zeek/bin գրացուցակը PATH համակարգին ավելացնելու համար ~/.bashrc ֆայլի միջոցով:

echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc

Հաջորդը, վերաբեռնեք ~/.bashrc ֆայլը և ստուգեք համակարգի PATH փոփոխականը՝ օգտագործելով հետևյալ հրամանը: Դուք պետք է տեսնեք /opt/zeek/bin գրացուցակը համակարգի PATH-ում:

source ~/.bashrc
echo $PATH

Վերջապես, ստուգեք Zeek-ը՝ կատարելով հետևյալ հրամանը. Դրանով դուք կստուգեք Zeek երկուական ֆայլի գտնվելու վայրը, կստուգեք Zeek տարբերակը և կտպեք Zeek օգնության հաղորդագրությունը:

which zeek
zeek --version
zeek --help

Հետևյալ ելքում դուք պետք է տեսնեք, որ zeek 5.0 տեղադրված է /usr/zeek/bin/zeek հասցեում: Բացի այդ, դուք պետք է տարբերակներ Zeek հրամանի համար:

Zeek-ի կազմաձևում

Այժմ, երբ Zeek-ը տեղադրված է, հաջորդ քայլը Zeek-ի տեղադրման կարգավորումն է: Դուք կարող եք Zeek-ը գործարկել մի քանի ռեժիմներով, ինչպիսիք են հրամանի տող ռեժիմը, ինքնուրույն ռեժիմը և կլաստերային ռեժիմը:

Հետևյալ օրինակում դուք կսովորեք, թե ինչպես գործարկել Zeek-ը կլաստերային ռեժիմում՝ օգտագործելով մեկ սերվեր:

Նախքան Zeek-ը կարգավորելը, կատարեք հետևյալ հրամանը՝ ձեր ցանցի միջերեսները և IP հասցեն ստուգելու համար:

ip a

Դուք պետք է ցուցակագրեք ձեր համակարգի հասանելի ինտերֆեյսները՝ մանրամասն տեղեկություններով սերվերի IP հասցեի վերաբերյալ, ինչպիսին է հետևյալը.

Բացեք Zeek /opt/zeek/etc/networks.cfg ցանցի կոնֆիգուրացիան՝ օգտագործելով հետևյալ նանո խմբագրիչի հրամանը:

sudo nano /opt/zeek/etc/networks.cfg

Տեղադրեք ձեր ներքին ցանցի ենթացանցը հետևյալ կերպ. Դուք կարող եք նաև ավելացնել բազմաթիվ ենթացանցեր դրան:

10.0.0.0/8          Private IP space
172.16.0.0/12       Private IP space
192.168.0.0/16      Private IP space

Պահպանեք ֆայլը և ավարտեք խմբագրիչը:

Այժմ բացեք zeek կոնֆիգուրացիան /opt/zeek/etc/node.cfg՝ օգտագործելով ստորև բերված նանո խմբագրիչի հրամանը:

sudo nano /opt/zeek/etc/node.cfg

Լռելյայնորեն, Zeek-ը աշխատում է ինքնուրույն ռեժիմով: Ավելացրեք #՝ Zeek-ի ինքնուրույն ռեժիմն անջատելու համար:

#[zeek]
#type=standalone
#host=localhost
#interface=eth0

Տեղադրեք հետևյալ կոնֆիգուրացիան՝ Zeek-ը կլաստերի ռեժիմում մեկ սերվերով գործարկելու համար: Համոզվեք, որ փոխեք սերվերի IP հասցեն ձեր տեղեկություններով:

Հետևյալ կազմաձևով դուք կաշխատեք Zeek-ը կլաստերային ռեժիմում, որն ունի բազմաթիվ բաղադրիչներ, ինչպիսիք են zeek-logger, zeek-manager, zeek-proxy և zeek-worker:

# logger
[zeek-logger]
type=logger
host=192.168.10.15
# manager
[zeek-manager]
type=manager
host=192.168.10.15
# proxy
[zeek-proxy]
type=proxy
host=192.168.10.15
# worker
[zeek-worker]
type=worker
host=192.168.10.15
interface=eth0
# worker localhost
[zeek-worker-lo]
type=worker
host=localhost
interface=lo

Պահպանեք և ավարտեք տուգանքը:

Հաջորդը, գործարկեք հետևյալ հրամանը՝ Zeek կառավարման վահանակ մուտք գործելու համար:

zeekctl

Գործարկեք ստուգման հրամանը՝ ձեր Zeek կոնֆիգուրացիան վավերացնելու համար:

check

Եթե ամեն ինչ լավ է ընթանում, դուք պետք է տեսնեք, որ Zeek սցենարի յուրաքանչյուր բաղադրիչ լավ է.

Հաջորդը, գործարկեք deploy հրամանը՝ Zeek-ը ձեր մեքենայի վրա սկսելու և գործարկելու համար: deploy հրամանը համարժեք է Zeek-ում install և start հրամանին:

deploy

Դուք պետք է տեսնեք, որ Zeek կլաստերի յուրաքանչյուր բաղադրիչ սկսվում է.

Վերջապես, ստուգեք ձեր Zeek կլաստերի յուրաքանչյուր բաղադրիչ՝ ստորև նշված կարգավիճակի հրամանը կատարելով:

status

Եթե ձեր տեղադրումը հաջող է, դուք պետք է տեսնեք, որ Zeek կլաստերի բաղադրիչներից յուրաքանչյուրն աշխատում է:

Մուտքագրեք ելք՝ Zeek կառավարման վահանակից դուրս գալու համար:

Այս պահին Zeek կլաստերը աշխատում է: Այն նաև վերահսկում է թիրախային ցանցի ինտերֆեյսը և ենթացանցը և ստեղծում է գրանցամատյանների ֆայլեր /opt/zeek/logs գրացուցակում:

Zeek տեղեկամատյանների ուղեցույց

Zeek-ը կազմաձևելուց հետո հաջորդ քայլն է ուսումնասիրել տեղեկամատյանների ֆայլերը, որոնք ստեղծվում են Zeek-ի կողմից, որը գտնվում է /opt/zeek/logs/current գրացուցակում: Լռելյայնորեն, zeek-ը ստեղծում է գրանցամատյանների ֆայլեր TSV (Tab-separated values) ձևաչափով:

Երբ Zeek-ը աշխատում է, այն կվերահսկի ձեր համակարգի թիրախային ցանցի միջերեսը և կստեղծի գրանցամատյանների ֆայլեր /opt/zeek/logs/current/ գրացուցակում:

Տեղափոխեք ձեր աշխատանքային գրացուցակը /opt/zeek/logs/current/ գրացուցակ և գործարկեք ստորև նշված ls հրամանը:

cd /opt/zeek/logs/current/
ls -ah

Դուք պետք է տեսնեք Zeek-ի կողմից ստեղծված բազմաթիվ մատյան ֆայլեր: Դուք կարող եք տեսնել, որ որոշ մատյան ֆայլեր բացակայում են ձեր համակարգում, քանի որ թիրախային ծառայությունը հասանելի չէ:

Ստորև բերված են որոշ կարևոր մատյան ֆայլեր, որոնք դուք պետք է իմանաք.

  • conn.log. կապի գրանցամատյան ինչպես TCP-ի, այնպես էլ UDP-ի համար: Այս գրանցամատյանի ֆայլը տրամադրում է ամենաօգտակար տեղեկությունները, ինչպիսիք են ժամադրոշմը, կապի տևողությունը, ծառայությունը և շատ ավելին:
  • dns.log. DNS (Դոմեն Անվան Համակարգ) մատյան:
  • http.log. HyperText Transfer Protocol (HTTP) մատյան:
  • ssh.log. Secure Shell (SSH) մատյան՝ SSH կապերը հետևելու համար:
  • ssl.log. Secure Socket Layer (SSL) մատյան, որը պարունակում է նաև HTTPS մատյան:

Zeek-cut-ի միջոցով Zeek տեղեկամատյանների վերլուծություն (Tab-անջատված արժեքներ):

Լռելյայնորեն, zeek-ը ստեղծում է գրանցամատյանների ֆայլեր TSV (Tab-separated values) ձևաչափով: Հետևյալ քայլում դուք կվերլուծեք Zeek log ֆայլերը TSV ձևաչափով zeek-cut հրամանի տողի միջոցով:

Կատարեք ստորև բերված cat հրամանը՝ dns.log log ֆայլը դիտելու համար:

cat dns.log

Հետևյալ ելքում դուք պետք է տեսնեք բազմաթիվ դաշտեր, ինչպիսիք են ts, uid, id.orig_p, id.resp_h, id.resp_p, proto և շատ ավելին:

Հաջորդը, կատարեք հետևյալ հրամանը՝ Zeek TSV մատյան ձևաչափը վերլուծելու համար: Դրանով դուք ելքը կուղարկեք «|» խողովակի միջոցով: zeek-cut հրամանին:

Այս օրինակում դուք կտեսնեք մատյան ֆայլից երեք դաշտ, ինչպիսիք են id.orig_h, հարցումը, ևպատասխանները:

cat dns.log | zeek-cut id.orig_h query answers
cat dns.log | zeek-cut query answers id.orig_h

Դուք պետք է տեսնեք նմանատիպ արդյունքը հետևյալի նման.

Կարող եք նաև օգտագործել վերահղման նշանը՝ TSV log ֆայլը zeek-cut-ի միջոցով մշակելու համար, ինչպես հետևյալ հրամանը։

zeek-cut id.orig_h query answers < dns.log

Արդյունքը պետք է նման լինի:

Zeek Log ֆայլերի կազմաձևումը JSON-ի

Հետևյալ քայլում դուք կկարգավորեք Zeek-ը JSON ձևաչափով ելքային մատյան ֆայլեր ստեղծելու համար: Դրան հասնելու համար դուք պետք է փոփոխեք local.zeek ֆայլը և բեռնեք zeek script tuning/json-logs-ը ձեր zeek տեղադրման մեջ:

Բացեք ֆայլը /opt/zeek/share/zeek/site/local.zeek՝ օգտագործելով հետևյալ նանո խմբագրիչի հրամանը:

sudo nano /opt/zeek/share/zeek/site/local.zeek

Տեղադրեք հետևյալ կոնֆիգուրացիան տողի ներքևի մասում:

@load tuning/json-logs

Պահպանեք և փակեք ֆայլը, երբ ավարտեք:

Այժմ գործարկեք ներքևում գտնվող zeekctl հրամանը՝ ձեր zeek տեղադրումը վերատեղակայելու համար:

zeekctl deploy

Դուք պետք է տեսնեք, որ zeek-ն այժմ նորից տեղադրվում է: Գործընթացն ավարտելուց հետո zeek-ը կստեղծի JSON log ֆայլեր:

Նախքան JSON log-ի ձևաչափը վերլուծելը, տեղադրեք jq ձեր սարքում՝ կատարելով հետևյալ apt հրամանը:

sudo apt install jq -y

Երբ jq-ը տեղադրվի, անցեք /opt/zeek/logs/current/ գրացուցակ: /opt/zeek/logs/current գրացուցակը պարունակում է zeek log ֆայլեր JSON ձևաչափով, և այն ավտոմատ կերպով ստեղծվում է zeek-ի կողմից:

cd /opt/zeek/logs/current/

Գործարկեք ստորև բերված cat հրամանը՝ dns log ֆայլը դիտելու համար:

cat dns.log

JSON ելքը կցուցադրվի ձեր տերմինալի էկրանին:

Հաջորդը գործարկեք jq հրամանը՝ JSON log dns.log-ը մշակելու համար:

jq . dns.log

Կամ դուք կարող եք ցուցադրել կոմպակտ ձևաչափը -c տարբերակի միջոցով, ինչպես հետևյալը:

jq . -c dns.log

Վերջապես, կատարեք հետևյալ հրամանը՝ dns.log JSON ֆայլից հատուկ բանալի/արժեք ցուցադրելու համար:

jq -c '[."id.orig_h", ."query", ."answers"]' dns.log

Դուք պետք է տեսնեք արդյունքը հետևյալ կերպ.

Եզրակացություն

Շնորհավորում եմ: Դուք այժմ հաջողությամբ տեղադրել եք Zeek ցանցի մոնիտորինգի գործիքը Debian 12 սերվերի վրա: Դուք տեղադրել եք Zeek-ը, գործարկել եք Zeek-ը կլաստերի ռեժիմում, սովորել եք zeek log ֆայլեր, ինչպես նաև սովորել եք, թե ինչպես վերլուծել zeek log ֆայլերը TSV ձևաչափով zeek-cut-ի միջոցով: Բացի այդ, դուք նաև փոխել եք zeek log-ը JSON-ի և սովորել եք, թե ինչպես վերլուծել Zeek log JSON ձևաչափը jq հրամանի տողերի միջոցով: