Ինչպես տեղադրել Zeek ցանցի անվտանգության մոնիտորինգի գործիքը Debian 12-ում
Այս էջում
- Նախադրյալներ
- Պահեստի ավելացում
- Zeek-ի տեղադրում
- Zeek-ի կազմաձևում
- Zeek տեղեկամատյանների ուղեցույց
- Zeek-cut-ի միջոցով Zeek տեղեկամատյանների վերլուծություն (Tab-անջատված արժեքներ):
- Zeek Log ֆայլերի կազմաձևումը JSON-ի
- Եզրակացություն
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 հրամանի տողերի միջոցով: