← Prehľad cvičení · Predchádzajúce cvičenie · Nasledujúce cvičenie
Vyhľadať, sledovať a vyhodnotiť systémové logy v Linuxe.
Alternatívna topológia pre Cisco
GNS3 alebo VirtualBox
Internet a pripojenie na školskú VPN (ak pracuješ mimo laboratória KIS a na remote serveri v GNS3)
Operačný systém Linux je nevyhnutná súčasť sveta informačných systémov a sietí. Praktické poznatky Linux-u a logovania sú nevyhnutnou súčasťou práce každého kybernetického analytika, preto je ich potrebné predstaviť a uviesť reálne využitie. Cvičenie bude zamerané na prácu so zariadeniami v našej topológii v GNS3 alebo vo VirtualBox-e (podľa toho akú alternatívu ste si vybrali na prvom cvičení), ale aj napriek tomu sa tieto poznatky ľahko uplatnia všade tam, kde sa pracuje s operačným systémom Linux.
zoznámime sa so základmi logovania, zistíme kde a ako sú uložené logy
budeme analyzovať logy webového servera
nakonfigurujeme syslog server a syslog klientov pre centrálne logovanie
zoznámime sa s Linux Filesystem-om
Toto laboratórne cvičenie vzniklo na základe týchto oficiálnych Netacad labov a ich doplnením:
4.4.4 – Locating Log Files
17.2.7 – Reading Server Logs
4.5.4 - Navigating the Linux Filesystem and Permission Settings (tento lab nie je integrovaný do zadania, odkazujeme sa naň a budete ho otvárať z Teamsu, kde sme ho pre vás stiahli)
Názov |
Meno |
Heslo |
Kali Linux * |
<kali user> |
<kali password> |
Metasploitable |
msfadmin |
msfadmin |
SecurityOnion-Realtime * |
<securityonion user> |
<securityonion password> |
SecurityOnion-Cyberops |
analyst |
cyberops |
OpenWRT |
root |
|
OpenvSwitch |
root |
|
GVM |
admin |
admin |
Cisco 2691 |
(bez mena) |
(bez hesla) |
* - zariadenie má používateľa a heslo ktorého vytvoril študent počas cvičenia 1 v časti Zmena username
2 Nastavenie a synchronizácia času
Toto nastavenie je povinné kvôli tomu aby nám zobrazovalo logy so správnou časovou pečiatkou
Pracujete na zariadení Kali
zobrazte nastavenie času
spustite zariadenie
otvorte desktop klienta (VNC alebo SPICE)
prihláste sa do zariadenia
otvorte terminál
zadajte príkaz
timedatectl
Skontrolujte získaný výpis
Je čas a časová zóna (TZ) nastavená správne?
Ak je nesprávne, aký to môže mať dopad na systém?
zobrazte si možnosti príkazu timedatectl
zadajte príkaz
timedatectl --help
zobrazte dostupné časové zóny
zadajte príkaz
timedatectl list-timezones
pomocou pipe a príkazu grep vylistujte len zóny pre Europe
timedatectl list-timezones | grep Europe
použite timedatectl + grep pre zobrazenie časovej zóny pre Slovensko
pre vyhľadanie použite Bratislava
zapíšte si názov časovej zóny, budeme to potrebovať nižšie
nastavenie časovej zóny
nastavte časovú zónu pomocou príkazu timedatectl
timedatectl set-timezone <timezone_name>
Pozn.: jedná sa o zásah do systémových nastavení, preto treba vykonať príkaz ako root
overte či je nastavenie času správne
REPORT: Spravte screenshot správneho času na zariadeniach KALI a SecurityOnion (nastavíte rovnako ako Kali), ďalej odpovedzte na otázky:
Pozn.: Pre Kali sa používa ntpsec ktorý je zapnutý by default, pri výpise timedatectl sa síce píše bez synchronizácie a ntp zapnuté, ale samotný čas synchronizovaný je, len iným spôsobom. Pre overenie či beží NTP služba, overte príkazom
Pozn.: Pre SecurityOnion je by default zapnutý NTP klient na debian NTP adresy, ktoré nájdu najbližší server podľa latencie (oneskorenia).
nastavte zariadenie SecurityOnion-Realtime
zopakujte kroky 1 a 4 pre SecurityOnion-Realtime
2 Nastavenie a synchronizácia času
zobrazte čas na zariadení
spustite zariadenie
otvorte klienta (virtualbox alebo putty/moba)
prihláste sa do zariadenia
zadajte príkaz
date
Čo urobil daný príkaz?
Je čas a časová zóna (TZ) nastavená správne?
skontrolujte nastavenie systému
vypíšte súbor /etc/config/system
cat /etc/config/system
Aké nastavenia môžeme vidieť?
Je časová zóna nastavená správne?
zmeňte časovú zónu
zadajte príkazy
uci set system.@system[0].timezone='CET-1CEST,M3.5.0,M10.5.0/3'
uci commit
Pozn.: OpenWRT obsahuje systém UCI (Unified Control Interface) pomocou ktorého možno nakonfigurovať celý systém pomocou príkazov s jednonou syntaxou (viac na The UCI system)
Pozn.: OpenWRT nepodporuje zadanie časových zón v IANA formáte (Europe/Bratislava) ale iba POSIX.1 a poreto treba zadať našu časovú zónu ako 'CET-1CEST,M3.5.0,M10.5.0/3'
Pozn.: príkaz commit slúži ako explicitné potvrdenie zmeny konfigurácie, po zadaní príkazu sa cachované zmeny zapíšu do konfiguračných systémov
reštartujte init.d system pre prejavenie zmien
zadajte príkaz
/etc/init.d/system restart
skontrolujte čas pomocu príkazu
date
Je čas aktuálny?
Akú časovú zónu ukazuje?
2 Nastavenie a synchronizácia času
zobrazte čas na zariadení
spustite zariadenie
otvorte klienta (virtualbox alebo putty/moba)
prihláste sa do zariadenia
zadajte príkaz
date
Čo urobil daný príkaz?
Je čas a časová zóna (TZ) nastavená správne?
vytvorenie skriptu na nastavenie časovej zóny
aby sme nasledovné príkazy na nastavenie časovej zóny nemuseli zadávať vždy po reštarte switcha, vytvoríme si na to skript, ktorý sa bude spúšťať sám.
vytvorte súbor pomocou príkazu: nano /etc/network/if-up.d/set_time.sh
do neho skopírujte následovný obsah a súbor uložte(ctrl+O):
#!/bin/sh
apk update
apk add tzdata
cp /usr/share/zoneinfo/Europe/Bratislava /etc/localtime
echo "Europe/Bratislava" > /etc/timezone
nasledovne je potrebné zmeniť oprávnenia pre súbor:
chmod +x /etc/network/if-up.d/set_time.sh
chown root:root /etc/network/if-up.d/set_time.sh
ako posledné je potrebné zabezpečiť aby sa skript spúšťal sám, v našom prípade po aktivovaní rozhrania br0
pomocou editoru nano otvorte súbor /etc/network/interfaces
nano /etc/network/interfacesna koniec konfigurácie rozhrania br0, ktoré ste si nakonfigurovali na 1. cvičení, pridajte riadok:
post-up /etc/network/if-up.d/set_time.sh
súbor by mal vypadať následovne:
# Static config for br0
auto br0
iface br0 inet static
address <ip adresa sw>
netmask 255.255.255.0
gateway <gateway ip>
up echo nameserver 8.8.8.8 > /etc/resolv.conf
post-up /etc/network/if-up.d/set_time.sh
súbor uložte
switch reštartujte
je dôležité počkať kým sa dokončí nastavovanie a bootovanie routera skôr ako sa prejde na spustenie switch-a, inak sa neaplikujú sieťové nastavenia a bude nutné ho v GNS simulácií stopnúť a opätovne spustiť, potom by to už ale malo fungovať.
Skontrolujte časovú zónu
Pracujeme so všetkými zariadeniami.
**Súbory logov webových serverov **
Príklad súboru logov
Otvorte Kali Linux
Použite príkaz (v časti teams - laboratory exercies-lab03 je postup ako sa dostať k týmto logom)
cat /var/log/tutorial/logstash-tutorial.log
~~**Súbory logov operačného systému ** ~~
~~Linux používa priečinok /var/log na ukladanie rôznych log súborov ~~
~~Otvorte súbor /var/log/tutorial/messages ~~
sudo nano /var/log/tutorial/messages
~~Podľa čoho sú uložené logy v priečinku? ~~
~~O aké typ logov sa jedná? ~~
~~Má zmysel prezerať tieto logy aj na iných zariadeniach? ~~
Lokalizácia súborov logov neznámeho softvéru
Otvorte dokumentáciu nginx na zistenie podrobností o tomto softvéry
Zadajte príkaz
man nginx
Predtým ako prejdeme k hľadaniu nginx súborom overíme, či nginx beží
pomocou ps
ps ax | grep nginx
alebo pomocou systemctl
systemctl status nginx
Ak zistíme, že nginx nebeží, tak ho zapneme
spustením servisu
sudo systemctl start nginx
alebo pomocou spustenia nginx priamo z sbin
sudo /usr/sbin/nginx
alebo sbin skrátene cez
sudo nginx
Ak potrebujeme reštartovať server
použijeme restart service
sudo systemctl restart nginx
alebo zrušíme process nxinx a opätovne spustíme nginx
sudo pkill nginx sudo nginx
~~Ak chcete zapnúť nginx s vlastnou konfiguráciou, ktorú ste vytvorili na prvom cvičení ~~
použijeme nginx z sbin s prepínačom -c pre špecifikvoanie konfiguračného súboru
sudo nginx -c /etc/nginx/sites-available/custom_server.conf
~~Otvorte webový prehliadač na adrese 127.0.0.1:8080 pre overenie funkčnosti servera ~~
Ak chceme zapnúť nginx s default konfiguráciou
pomocou spustenia nginx priamo z sbin
sudo /usr/sbin/nginx
alebo spustením servisu
systemctl start nginx
Následne vo webovom prehliadači choďte na URL 127.0.0.1
Pozn.: Ak ste počas cv1 menili konfiguráciu nginx v /etc/sites-available/default z protu 80 na 8080 tak choďte na URL 127.0.0.1:8080
Vyhľadajte nginx konfiguračné priečinky
prehľadáme priečinok /etc
ls /etc/
prehľadáme priečinok /etc/nginx
ls -l /etc/nginx/
Otvorte konfiguračný súbor nginx
Použijeme napr.
more /etc/nginx/nginx.conf
Môžeme použiť aj nano na edit, alebo cat, alebo less na lepší výpis
Riadky, ktoré začínajú s # sú komentáre ignorované nginx
Skontrolujme priečinok
ls -l /var/log
Vidíme tento priečinok logov vo výpise?
Zapíšte si názov
Vypíšeme obsah logovacieho priečinka pre nginx
použijeme ls
ls -l /var/log/<názov>
Na monitorovanie využijeme jednoduchý príkaz tail, ktorý je dostupný vo všetkých Unixovo založených systémoch.
Použitie tail príkazu
V termináli VM použime tail príkaz na zobrazenie konca logovacieho súboru
sudo tail /var/log/nginx/access.log
REPORT: Spravte screenshot s použitými prepínačmi -n a -f a odpovedzte na otázku:
- Čo ovplyvnili prepínače a na čo slúžia
Necháme príkaz bežať v terminály a otvoríme webový prehliadač
Prejdeme na adresu 127.0.0.1
Nástroj Journalctl
Nástroj journalctl slúži ako logovacia služba systémových udalostí
Zobrazíme logovacie správy zo systému pomocou journalctl
journalctl
Zobrazte správy, ktoré sa týkajú bootovania systému
sudo journalctl -b
Zobrazte správy, ktoré boli relevantné k posledným dvom bootovaniam systému
sudo journalctl -b -2
Vyskúšajte ďalšie prepínače
--list-boots na zobrazenie predchádzajúcich bootovacích procesov
--since „<time range>“ napr. --since „2 hours ago“ alebo „1 day ago“ alebo „today“
-u nginx.service na zobrazenie logov generovaných serverom nginx
-k na zobrazenie správ generovaných iba kernelom
-f pre „real-time“ monitorovanie
–utc na zobrazenie časov v UTC formáte
-u nginx.service -f
REPORT: Vlastnými slovami opíšte čo príkaz s danými prepínačmi vykoná
Otvor webový prehliadač a zadaj 127.0.0.1 (predvolená konfigurácia pre nginx) alebo 127.0.0.1:8080 (vlastná konfigurácia pre nginx) do adresného riadku.
REPORT: Aký nový log zobrazil journalctl?
Vyskúšajte rôzne kombinácie prepínačov
zistite či Journalctl funguje aj na iných zariadeniach
Otvoríme VM Metasploitable
Nájdite adresár pre ukladanie logov webového servera
Pozn.: Okrem nginx existujú aj iné webové servery ako ktoré sú preferované podľa možnosti použitia programovacích jazykov napr Apache (PHP), node (JS), alebo TomCat (Java).
Aké logy sa v týchto priečinkoch ukladajú?
REPORT: zistite a porovnajte štruktúru súborov logov jednotlivých webserverov (napr nginx má access a error.log) - môžete využiť porovnanie v reporte cez screenshoty s vyznačenými zmenami, alebo slovný popis vlastnými slovami
REPORT: Vypíšte logy súborov a preskúmajte, aké IP adresy žiadali o prístup k webovému serveru
Nájdite logy pre prístup k databáze
Pozn.: Okrem MySQL existujú aj iné databázy ktoré majú iné použitie/implementáciu ako napr PostgreSQL, alebo MongoDB.
Existujú nejaké súbory logov pre databázu? (/var/log/postgresql)
Ak nájdete súbory, skúste popísať, čo obsahujú
Otvoríme VM SecurityOnion-Realtime
Vyhľadajte súbory logov pre nástroje a zistite aké typy logov obsahujú tieto nástroje a v akom formáte
Sguil (/var/log/sguild)
Logstash (/var/log/logstash)
ElasticSearch (var/log/elasticsearch)
Kibana (/var/log/kibana)
zeek
Otvorte terminál a v adresári /home/<username> spustite zeek na monitorovacom rozhraní príkazom:
zeek -i eth0
Počkajte dokým vám zeek niečo nezachytí (uvidíte v termináli)
Vypnite zeek (klávesová skratka ctrl+c v termináli)
Zobrazte si obsah adresára /home/<username>. Zeek vám jeho výstupy z monitorovania zaznamenal do niekoľkých súborov, ktoré vám pribudli v adresári.
REPORT: Spravte screenshot relevantných súborov s krátkym popisom, čo vidíme - reporter.log
6 Konfigurácia vlastného syslog servera
Logovacie súbory a Syslog
Syslog je systém navrhnutý tak, aby umožnil zariadeniam odosielať svoje logovacie súbory na centralizovaný server, známy ako syslog server. Klienti komunikujú so serverom syslog pomocou protokolu syslog. Syslog je bežne nasadený a podporuje prakticky všetky počítačové platformy.
SecurityOnion-Realtime VM generuje logovacie súbory na úrovni operačného systému a odovzdá ich na syslog.
V nasledujúcich krokoch si nakonfigurujeme syslog server na zariadení Security Onion. Taktiež si nakonfigurujeme smerovač R1,prepínač SW a zariadenie Kali ako klientov, aby posielali svoje logy na syslog server Security Onion-u.
Vytvoríme nový konfiguračný súbor pre syslog-ng
Otvoríme zariadenie Security Onion
Presunieme sa do priečinka konfigurácie pre syslog
cd /etc/syslog-ng/
Premenujeme starý syslog-ng.conf súbor
sudo mv syslog-ng.conf syslog-ng.conf.BAK
Vytvoríme nový syslog-ng.conf súbor
sudo nano syslog-ng.conf
Súbor bude mať nasledujúci obsah
@version: 3.22
source s_network { udp(port(514)); };
destination d_syslog { file("/var/log/remotelogs/syslog"); };
log { source(s_network); destination(d_syslog); };
Vytvoríme priečinok a súbor pre logy
sudo mkdir /var/log/remotelogs
sudo touch /var/log/remotelogs/syslog
Spustíme a povolíme syslog-ng server
spustíme servis syslog-ng
sudo systemctl start syslog-ng
zabezpečíme automatický štart servisu
sudo systemctl enable syslog-ng
Povolíme vstup pre syslog
sudo ufw allow 514
Zapneme sledovanie logovacieho súboru
sudo tail -f /var/log/remotelogs/syslog
Pri veľkom množstve dát v súbore syslog (po určitom čase od zaznamenávania logov) je vhodné ho vymazať a vytvoriť nanovo
6 Konfigurácia vlastného syslog servera
Pre cvičenie RBI (rok 2026) - túto kapitolu preskočíme, nakoľko pracujeme so smerovačom OpenWRT
Pripojíme sa na Cisco smerovač cez konzolu a zadáme príkazy
RT#configure terminal
RT(config)#logging host <destination ip>
RT(config)#logging trap informational
pričom parameter <destination ip> nahraďte podľa konfigurácie syslog servera, pozn.: dopĺňa sa bez <> (napr logging host 10.0.1.3)
Uložíme konfiguráciu pomocou
RT#copy running-config startup-config
Možné levely logovania si môžete pozrieť príkazom:
logging trap ?
6 Konfigurácia vlastného syslog servera
nastavíme remote logging
Otvoríme smerovač OpenWrt a zadáme príkazy
uci set system.@system[0].log_ip=<destination ip>
uci set system.@system[0].log_port=<destination port>
uci set system.@system[0].log_proto=<tcp or udp>
uci commit
pričom miesto <destination ip>, <destination port>, <tcp or udp> nahraďte parametre podľa konfigurácie syslog servera
Pozn.: dopĺňa sa bez <> (napr log_ip=10.0.0.3)
reštartujeme system service
/etc/init.d/system restart
vyskúšame logovanie
zadáme príkaz logger + správa
logger "openwrt log"
alternatívne možno pridať aj prepínač -p a pridať facility.level podľa https://www.real-world-systems.com/docs/logger.1.html
napr.:
logger -p syslog.warning "openwrt log"
REPORT: Spravte screenshot logu v SecurityOnion
6 Konfigurácia vlastného syslog servera
nastavíme siet (túto časť treba urobiť vždy po novom spustení prepínača)
Otvoríme prepínač OpenvSwitch a zadáme príkazy
ip addr add <IP adresa pre OpenvSwitch>/24 dev br0
ip route add default via <IP adresa pre GW siete DMZ>
echo "nameserver 8.8.8.8" > /etc/resolv.conf
nastavíme syslogd na remote server
použijeme príkaz
syslogd -R <IP adresa remote syslog>
Pozn.: miesto <IP adresa remote syslog> zadajte IP adresu SecurityOnion-Realtime (syslog server)
alternatívne možno použiť príkaz
ovs-vswitchd --syslog-target=<IP adresa remote syslog>:514 --detach
vyskúšame logovanie
zadáme príkaz logger + správa
logger "openvswitch log"
alternatívne možno pridať aj prepínač -p a pridať facility.level podľa https://www.real-world-systems.com/docs/logger.1.html
napr.:
logger -p syslog.warning "openvswitch log"
6 Konfigurácia vlastného syslog servera
Logovanie na Kali je výhradne pre toto cvičenie a slúži ako dodatočná stanica ktorá bude posielať svoje logy na syslog server.
Inštalácia Syslog-ng
Otvoríme Kali Linux
Otvoríme terminál
pridáme kľúč (key), repozitár (repository) pre syslog-ng
Pozn.: tieto krokry vykonávame pretože Kali apt repozitár nezahŕňa syslog-ng
pridáme key a repository
wget -qO - https://ose-repo.syslog-ng.com/apt/syslog-ng-ose-pub.asc | sudo apt-key add -
echo "deb https://ose-repo.syslog-ng.com/apt/ stable ubuntu-focal" | sudo tee -a /etc/apt/sources.list.d/syslog-ng-ose.list
pridáme manuálne potrebné knižnice
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/main/j/json-c/libjson-c4_0.13.1+dfsg-7_amd64.deb
sudo dpkg -i libjson-c4_0.13.1+dfsg-7_amd64.deb
aktualizujeme apt
sudo apt update
nainštalujeme syslog-ng a subbalíčky
sudo apt install syslog-ng-core syslog-ng-scl
Nastavenie logovania na remote syslog
Tak isto ako na zariadení Security Onion, najskôr premenujeme starý syslog-ng.conf súbor a následne vytvoríme nový
Otvoríme nový syslog-ng.conf súbor a zapíšeme doň obsah nižšie
@version: 3.22
source s_local {
system();
internal();
};
destination d_syslog_udp {
syslog("<IP adresa syslog servera>" transport("udp") port(514));
};
log {
source(s_local);
destination(d_syslog_udp);
};
Pozn.: miesto <IP adresa syslog servera> vložte IP adresu SecurityOnion-Realtime
Skontrolujte, či máte pravidlo v iptables pre OUTPUT chain nastavené na ACCEPT
sudo iptables -L
Ak nie, zadajte príkaz
sudo iptables -P OUTPUT ACCEPT
Zapnite službu syslog-ng
sudo /usr/sbin/syslog-ng
Syslog defaultne rotuje logy každý týždeň a zanecháva si 4 týždne backup logov. Aby sme zaručili že logy zostanú na našom zariadení po dobu celého semestra, pre prípad že sa k ním budeme potrebovať vrátiť, je potrebné toto nastavenie zmeniť.
otvorte si terminál v SecurityOnione
otvorte si súbor /etc/logrotate.conf v editore nano. (sudo nano /etc/logrotate.conf)
prezrite si nastavenia ktoré sa vygenerovali počas securityOnion setupu (sosetup)
otvorte súbor /etc/nsm/securityonion.conf v editore nano alebo použite príkaz cat
V tomto cvičení sa zoznámite so súborovými systémami Linuxu.
Táto časť slúži na prípravu testovacích súborov.
Vytvorenie testovacích súborov - vytvorte na začiatku vypracovania tejto kapitoly
mkdir -p ~/lab.support.files/scripts
mkdir -p ~/lab.support.files/malware
touch ~/lab.support.files/scripts/cyops.mn
touch ~/lab.support.files/mininet_services
chmod 644 ~/lab.support.files/scripts/cyops.mn
chmod 644 ~/lab.support.files/mininet_services
chmod 755 ~/lab.support.files/malware
**Príprava virtuálneho disku - vytvorte až keď vás na to upozorní veta v zadaní typu: Ak vaše zariadenie neobsahovalo druhý disk, vytvorte si ho pomocou..***.
*
cd ~ – presunie študenta do domovského adresára.
truncate -s 1G second_disk.img – vytvorí súbor s veľkosťou 1 GB, ktorý bude simulovať druhý disk.
mkfs.ext4 ~/second_disk.img – vytvorí v tomto súbore súborový systém ext4.
mkdir -p ~/second_drive – vytvorí adresár second_drive, do ktorého neskôr pripojíme virtuálny disk.
postup príkazov na vytvorenie virtuálneho disku
Vykonáva sa iba raz, ak súbor second_disk.img ešte neexistuje.
cd ~
truncate -s 1G second_disk.img
mkfs.ext4 ~/second_disk.img
mkdir -p ~/second_drive
Upozornenie: mkfs.ext4 vymaže pôvodný obsah súborového systému v danom obraze. Po prvotnej príprave ho už nespúšťajte.
Súborový systém Linuxu je jednou z jeho najobľúbenejších funkcií. Hoci Linux podporuje mnoho rôznych typov súborových systémov, toto laboratórium sa zameriava na skupinu ext, ktorá je jedným z najbežnejších súborových systémov v Linuxe.
Získanie prístupu k príkazovému riadku.
Spustite Kali VM a otvorte okno terminálu.
Zobrazenie aktuálne pripojených súborových systémov.
Súborové systémy musia byť pripojené, aby bolo možné k nim pristupovať a používať ich. V informatike znamená pripojenie súborového systému jeho sprístupnenie operačnému systému. Pripojenie súborového systému je proces prepojenia fyzického oddielu na blokovom zariadení (pevný disk, SSD disk, USB, atď.) s adresárom, prostredníctvom ktorého je možné pristupovať k celému súborovému systému. Keďže uvedený adresár sa stáva koreňovým adresárom novo pripojeného systému súborov, je známy aj ako montážny bod.
Na zobrazenie všetkých blokových zariadení použite príkaz lsblk:
Vyššie uvedený výstup ukazuje, že virtuálny počítač Kali má nainštalované tri blokové zariadenia: sr0, sda a sdb. Výstup v tvare stromu zobrazuje aj diskové oddiely pod sda a sdb. Zvyčajne sa v Linuxe používa /dev/sdX na reprezentáciu pevných diskov, pričom koncové číslo predstavuje číslo oddielu vo vnútri tohto zariadenia. Počítače s viacerými pevnými diskami by pravdepodobne zobrazovali viac zariadení /dev/sdX. Ak by bol Linux spustený napríklad na počítači so štyrmi pevnými diskami, štandardne by ich zobrazoval ako /dev/sda, /dev/sdb, /dev/sdc a /dev/sdd. Z výstupu vyplýva, že sda a sdb sú pevné disky, z ktorých každý obsahuje jeden oddiel. Výstup tiež ukazuje, že sda je 80 GB disk, zatiaľ čo sdb má 1 GB.
Poznámka: Linux často zobrazuje USB flash disky aj ako /dev/sdX, v závislosti od typu ich firmvéru..
Pomocou príkazu mount zobrazíte podrobnejšie informácie o aktuálne pripojených súborových systémoch v Kali VM.
Mnohé z uvedených súborových systémov sú mimo rozsahu tohto kurzu a pre laboratórium sú irelevantné. Zamerajme sa na koreňový súborový systém, súborový systém uložený v zariadení /dev/sda1. V koreňovom súborovom systéme je uložený samotný operačný systém Linux; všetky programy, nástroje, konfiguračné súbory sú štandardne uložené v koreňovom súborovom systéme.
Znova spustite príkaz mount, ale tentoraz použite pipe | na odoslanie výstupu príkazu mount do príkazu grep, aby sa výstup filtroval a zobrazil len koreňový súborový systém::
Vo filtrovanom výstupe vyššie nám mount ukazuje, že koreňový súborový systém sa nachádza v prvom oddiele blokového zariadenia sda (/dev/sda1). Vieme, že ide o koreňový súborový systém, pretože je použitý bod pripojenia: „/“ (symbol lomítka). Výstup nás informuje aj o type formátovania použitého v oddiele, v tomto prípade ext4. Informácie v zátvorkách sa týkajú možností pripojenia oddielu.
V Kali VM zadajte nasledujúce dva príkazy:
Ručné pripojenie a odpojenie súborového systému
Príkaz mount možno použiť aj na pripojenie a odpojenie súborového systému. Ako je vidieť v kroku 1, Kali VM má nainštalované dva pevné disky. Prvý z nich jadro rozpoznalo ako /dev/sda, zatiaľ čo druhý ako /dev/sdb. Predtým, ako je možné blokové zariadenie pripojiť, musí mať prípojný bod.
Poznámka: Ak adresár second_drive neexistuje, vytvorte ho pomocou príkazu mkdir second_drive.
Poznámka: V závislosti od stavu vášho virtuálneho počítača bude mať váš zoznam pravdepodobne iné súbory a adresáre.
Na vypísanie obsahu novovytvoreného adresára second_drive použite opäť príkaz ls -l.
Všimnite si, že adresár je prázdny.
Ak vaše zariadenie neobsahuje druhý disk teda nevidíte (dev/sdb1), je potrebné vytvoriť virtuálny disk, postup vytvorenie máte uvedený vyššie v **časti príprava prostredia - 2. príprava virtuálneho disku
**
Pomocou príkazu mount pripojte pripravený virtuálny súborový systém second_disk.img na adresár second_drive. Keďže Kali VM neobsahuje samostatný druhý disk, použijeme loop zariadenie, ktoré umožňuje pripojiť súbor ako súborový systém. Ak zariadenie Kali neobsahovalo druhý disk je potrebné túto úlohu vypracovať iným príkazom **sudo mount -o loop ~/second_disk.img ~/second_drive
**Ak zariadenie Kali obsahovalo druhý disk pokračujte týmto príkazom - mount pripojte /dev/sdb1 na novovytvorený druhý_disk. Syntax príkazu mount je: mount [options] <device to be mounted> <mounting point>.
Neposkytuje sa žiadny výstup, čo znamená, že proces pripojenia prebehol úspešne.
Teraz, keď bol /dev/sdb1 pripojený na /home/analyst/second_drive,
Použite ls -l na opätovné vypísanie obsahu adresára.
Ak zariadenie Kali neobsahovalo druhý disk je potrebné túto úlohu skontrolovať iným príkazom **mount \| grep second_drive
**Ak zariadenie Kali obsahovalo v úvode druhý disk pokračujte tu: Znovu zadajte príkaz mount bez volieb, aby ste zobrazili podrobné informácie o /dev/sdb1 Rovnako ako predtým použite príkaz grep, aby ste zobrazili iba systémy súborov /dev/sdX:
Ak zariadenie Kali neobsahovalo druhý disk je potrebné túto úlohu skontrolovať iným príkazom **sudo umount ~/second_drive
**Ak zariadenie Kali obsahovalo v úvode druhý disk pokračujte tu: Odpojenie súborového systému je rovnako jednoduché. Uistite sa, že ste zmenili adresár na niečo mimo miesta pripojenia a použite príkaz umount, ako je uvedené nižšie:
V našej úprave súbor second_disk.img predstavuje samostatný súborový systém ext4, nie diskový oddiel /dev/sdb1. Preto sa vo výstupe môže objaviť /dev/loop0 alebo iné loop zariadenie.
Linuxové súborové systémy majú zabudované funkcie na kontrolu možnosti používateľov prezerať, meniť, prechádzať a vykonávať obsah súborového systému. V podstate každý súbor v súborových systémoch nesie vlastnú sadu oprávnení, ktorá vždy obsahuje súbor definícií o tom, čo môžu používatelia a skupiny so súborom robiť.
Prejdite do adresára /home/analyst/lab.support.files/scripts/.
**V prípade, že ste súbory pridávali manuálne je potrebné sa do adresára dostať nasledovne
**
cd ~/lab.support.files/scripts/
Na zobrazenie oprávnení súborov použite príkaz ls -l.
Príkaz touch je veľmi jednoduchý a užitočný. Umožňuje rýchle vytvorenie prázdneho textového súboru. Pomocou nasledujúceho príkazu vytvorte prázdny súbor v adresári /mnt
REPORT Spravte screenshot a odpovedzte na otázky:
Príkaz chmod sa používa na zmenu oprávnení súboru alebo adresára.
Prejdite do adresára second_drive a vypíšte jeho obsah::
Pomocou príkazu chmod zmeňte oprávnenia k súboru txt.
Otázka: Zmenili sa oprávnenia? Aké sú oprávnenia súboru myFile.txt?
Príkaz chmod preberá oprávnenia v osmičkovom formáte. Týmto spôsobom je rozdelenie 665 nasledovné:
6 v osmičkovej sústave je 110 v binárnej. Za predpokladu, že každá pozícia oprávnení súboru môže byť 1 alebo 0, 110 znamená rw- (čítanie=1, zápis=1 a vykonanie=0).
Preto príkaz chmod 665 myFile.txt zmení oprávnenia na:
Vlastník: rw- (6 v osmičkovej alebo 110 v binárnej sústave)
Skupina: rw- (6 v osmičkovej alebo 110 v binárnej sústave)
Iné: r-x (5 v osmičkovej alebo 101 v binárnej sústave)
REPORT: Opovedzte na otázku: Aký príkaz by zmenil oprávnenia súboru myFile.txt na rwxrwxrwx, čím by sa poskytol plný prístup k súboru ktorémukoľvek používateľovi v systéme?
Príkaz chown sa používa na zmenu vlastníctva súboru alebo adresára. Zadaním nižšie uvedeného príkazu urobíte vlastníka txt root::
Poznámka: Ak chcete súčasne zmeniť vlastníka aj skupinu na analyst, použite formát sudo chown [názov skupiny]:[názov vlastníka] myFile.txt.
Teraz, keď je vlastníkom súboru analytik, skúste na koniec txt pridať slovo „test“.
Vráťte sa do adresára /home/analyst/lab.support.files a príkazom ls -l vypíšte všetky súbory s podrobnosťami:
**Ak ste pridávali súbory manuálne treba vojsť dovnútra príkazom **
cd ~/lab.support.files
REPORT: Spravte screenshot a odpovedzte na otázku: Porovnajte oprávnenia priečinka malware so súborom mininet_services. Aký je rozdiel medzi začiatočnou časťou riadku malware a riadkom mininet_services?
Písmeno „d“ na začiatku riadku znamená, že typ súboru je adresár a nie súbor. Ďalším rozdielom medzi oprávneniami na súbor a adresár je bit na vykonávanie. Ak má súbor zapnutý vykonávací bit, znamená to, že ho systém môže vykonávať. Adresáre sa líšia od súborov s nastaveným bitom vykonávania (súbor s nastaveným bitom vykonávania je spustiteľný skript alebo program). Adresár s nastaveným bitom vykonávania určuje, či môže používateľ do tohto adresára vstúpiť.
Príkazy chmod a chown pracujú pre adresáre rovnakým spôsobom ako pre súbory.
Teraz ste sa zoznámili s niektorými typmi súborov v systéme Linux. Prvý znak v každom súbore, ktorý je uvedený v príkaze ls -l, ukazuje typ súboru. Tri rôzne typy súborov v Linuxe vrátane ich podtypov a znakov sú:
Prejdite do domovského priečinka
Pomocou príkazu ls -l zobrazte súbory v priečinku /home/analyst. Všimnite si, že prvé znaky každého riadku sú buď „-“ označujúce súbor, alebo „d“ označujúce adresár.
Vytvorte výpis pre /dev. Potom prejdite do stredu výstupu a všimnite si, ako blokové súbory začínajú písmenom „b“, súbory znakových zariadení začínajú písmenom ‚c‘ a súbory symbolických odkazov začínajú písmenom „l“:
Symbolické odkazy v Linuxe sú ako skratky v systéme Windows. V Linuxe existujú dva typy odkazov: symbolické odkazy a pevné odkazy. Rozdiel medzi symbolickými odkazmi a pevnými odkazmi je v tom, že súbor so symbolickým odkazom ukazuje na názov iného súboru a súbor s pevným odkazom ukazuje na obsah iného súboru. Vytvorte dva súbory pomocou príkazu echo:
Pomocou ln -s vytvoríte symbolický odkaz na súbor1.txt a pomocou ln vytvoríte pevný odkaz na súbor2.txt:
Použite príkaz ls -l a preskúmajte výpis adresárov:
Všimnite si, že súbor file1symbolic je symbolický odkaz s l na začiatku riadku a ukazovateľom -> na file1.txt. File2hard sa javí ako bežný súbor, pretože v skutočnosti je to bežný súbor, ktorý náhodou ukazuje na rovnaký inód na jednotke pevného disku ako file2.txt. Inými slovami, file2hard ukazuje na rovnaké atribúty a umiestnenie bloku disku ako file2.txt. Číslo 2 v piatom stĺpci výpisu pre file2hard a file2.txt znamená, že existujú 2 súbory pevne prepojené na rovnaký inode. V prípade výpisu adresára piaty stĺpec označuje počet adresárov v adresári vrátane skrytých adresárov.
Zmeňte názvy pôvodných súborov: file1.txt a file2.txt a všimnite si, ako to ovplyvní prepojené súbory.
Všimnite si, že súbor file1symbolic je teraz nefunkčný symbolický odkaz, pretože sa zmenil názov súboru, na ktorý ukazoval file1.txt, ale súbor s pevným odkazom file2hard stále funguje správne, pretože ukazuje na inode súboru file2.txt, a nie na jeho názov, ktorý je teraz file2new.txt.
Oprávnenia a vlastníctvo súborov sú dva najdôležitejšie aspekty systému Linux. Sú tiež častou príčinou problémov. Súbor, ktorý má nesprávne nastavené oprávnenia alebo vlastníctvo, nebude dostupný programom, ktoré k nemu potrebujú pristupovať. V takomto prípade sa program zvyčajne pokazí a vyskytnú sa chyby.
Počas cvičenia sme sa naučili základy logovania a našli sme rôzne spôsoby ako prezerať logy na rôznych distriobúciách Linuxu. Ďalej sme vytvorili centrálny syslog-ng server ktorý zbieral logy z dalších zariadení ktoré sme mohli ďalej sledovať centrálne z jedného zariadenia.
Zistenia:
Súbory logov sú mimoriadne dôležité pri riešení problémov.
Umiestnenie súboru logov sa riadi konvenciami, ale v konečnom dôsledku je to voľba vývojára.
Informácie o súbore logov (umiestnenie, názvy súborov, a pod.) sú častejšie zahrnuté v dokumentácii. Ak dokumentácia neposkytuje dostatočné informácie o logovacích súboroch, je potrebné sa obrátiť na užitočné fóra na webe a prieskum daného systému.
Hodiny by mali byť vždy synchronizované, aby sa zabezpečilo, že všetky systémy majú správny čas. Ak hodiny nie sú správne nastavené, je veľmi ťažké spätne vysledovať udalosti.
Je dôležité pochopiť, kedy sa konkrétne udalosti odohrali. Okrem toho udalosti z rôznych zdrojov sa často analyzujú súčasne.
← Prehľad cvičení · Predchádzajúce cvičenie · Nasledujúce cvičenie