Felejti el folyamatosan a homályos hardverparancsok szintaxisát, amelyeket alig használ? Az osquery alkalmazás lehetővé teszi a Linux számítógép hardverének, felhasználóinak és teljesítményének lekérdezését szokásos SQL parancsokkal.
Az osquery alkalmazás
A osquery alkalmazás egy ingyenes és nyílt forráskódú program a osquery Alapítvány. Óriási mennyiségű információt gyűjt a Linux számítógépéről, és ál-adatbázisként teszi hozzáférhetővé. Az adatbázis sok táblázatot tartalmaz, amelyek különböző kategóriájú információkat tartalmaznak. A táblázatok adatai egyszerű használatával nyerhetők le strukturált lekérdezés nyelve (SQL) parancsokat.
az osquery használható interaktív módon, vagy vezérelhető egy konfigurációs fájlon keresztül, és démonként futtatható. Démonként történő futtatása lehetővé teszi a lekérdezések ütemezését. az osquery nagyon rugalmas, kifinomult alkalmazás. Sokkal többet tartalmaz, mint amire egy bevezető cikkben lehet kitérni. A kiváló dokumentáció az első hely, ahol meg kell vizsgálni a sok más lehetőséget.
Meg fogjuk vizsgálni az osquery interaktív használatát.
Az osquery telepítése
A legtöbb Linux disztribúció nem tartalmazza az osquery-t a hivatalos adattárakban. Ez nem jelent problémát, letölthetünk telepítési csomagokat a osquery letöltések oldal.
Ubuntu esetén töltse le a „.deb” csomagot. Ezt valószínűleg a „Letöltések” könyvtárba tölti le. Változtassa a könyvtárat a „Letöltések” könyvtárba, majd használja dpkg
parancs a .deb fájl telepítéséhez. Helyettesítse a fájl nevét a példánkban a letöltött fájl nevével.
cd Downloads
sudo dpkg -i osquery_4.6.0-1.linux_amd64.deb
A Fedora részéről töltse le az „.rpm” fájlt. Keresse meg a fájlt a merevlemezen, és használja a rpm
csomag telepítéséhez. Használjuk a -U
(frissítési opció. Ez telepít egy alkalmazást, ha még nincs telepítve a rendszerére, és frissíti, ha van.
sudo rpm -U osquery-4.6.0-1.linux.x86_64.rpm
A Manjaro-n az oszquery az alapértelmezett tárházakban található. tudunk segítségével telepítse pacman
.
sudo pacman -Sy osquery
Kipróbálhatja, hogy az osquery telepítve van-e – és megtudhatja, hogy milyen verziót használ -, ha elindítja az osquery alkalmazást a --version
választási lehetőség. Vegye figyelembe, hogy a parancs végén van egy „i”. Ez „osqueryi”, nem „osquery”. Az „i” interaktív.
osqueryi --version
Interaktív héj
Az osquery interaktív módban történő indításához használja a osqueryi
parancs.
osqueryi
Elindul egy oszquery interaktív shell, és megjelenik egy „osquery>” parancs.
Itt írja be az SQL-t és dot parancsokat. A pontparancsok azok a parancsok, amelyeket kiadsz, hogy kölcsönhatásba lépjenek az osquery héjjal. Egy vagy két kivételtől eltekintve a dot parancsok nem adnak vissza információkat a számítógépről. Nevüket a pontról vagy a „” pontról kapják. ami az összes dot parancs elején megjelenik.
A „Fel nyíl” gombbal görgethet a korábban használt parancsok között, és a tabulátorok kitöltése elérhető a táblák nevéhez.
A pontparancsok listájának és mindegyikük gyors leírásának megszerzéséhez használja a .help
parancsot az „osquery>” parancsra.
.help
Az osquery munkamenet bezárásához bármelyiket használhatja .exit
vagy .quit
.
.quit
SQL parancsok használata
Az osquery bemutatja a rendszerinformációkat, amelyekről táblázatokként jelenthet egy adatbázisban. Az adatbázis lekérdezéséhez ismernie kell az egyes táblák és mezők nevét. A .tables
parancs felsorolja a táblákat az Ön számára.
.tables
Nagyon sok asztal van. Görgethet előre és hátra a listán, és megkeresheti az Önt érdeklő listákat. Tegyük fel, hogy többet akarunk tudni a uptime
asztal. A .schema
a parancs felsorolja a tábla mezőneveit és az egyes mezők által tárolt adatok típusát.
.schema uptime
Most már elég sokat tudunk ahhoz, hogy kiadhassuk az első SQL-utasításunkat. Kiválasztjuk az adatokat a days
, hours
, és minutes
oszlopok a uptime
asztal. Ne feledje, hogy ez az SQL, ezért használjon pontosvesszőt “;
”A parancs befejezéséhez.
select days, hours, minutes from uptime;
Ha az összes oszlopot meg akarjuk tekinteni, használhatunk egy csillagot*
”Az összes oszlopnevet képviselő parancsikonként. De van egy pontparancs, amely még gyorsabb. típus .all
a táblázat neve követi ugyanazt az eredményt. (Ne feledje, nincs pontosvessző;
” végén a pont parancsokat.)
select * from uptime;
.all uptime
Adatok kiválasztása a táblázatokból
A felhasználók táblázata
Az összes felhasználónév listájának megtekintéséhez lekérdezhetjük users
asztal.
select username from users;
Az eredményeket bármely oszlop szerint rendezheti. Ebben a példában csak egyetlen oszlopunk van, de az adatokat továbbra is rendezhetjük.
select username from users order by username;
Ha a felhasználónév egy részhalmazát szeretnénk látni – esetleg egy bizonyos hosszúságúak -, akkor további záradékokat adhatunk az SQL utasításunkhoz.
select username, directory from users where length(username)=4 order by username;
Talán csak egyetlen felhasználónév érdekel.
select username, directory, shell from users where username="mary";
A folyamatok táblázat
Bármely táblázatban szereplő adatokra ugyanazokat az elveket alkalmazhatjuk. Ha meg akarjuk tudni a gedit
folyamat során így kereshetünk rá:
select pid, name, state, start_time from processes where name="gedit";
Az „S” a state
oszlop azt jelenti megszakítható alvás.
A naplózott_felhasználók tábla
Ahelyett, hogy megnéznénk a konfigurált felhasználók listáját, mint korábban, talán inkább a jelenleg bejelentkezett felhasználók érdekelnek minket.
select user, host, time from logged_in_users;
A nem emberi felhasználású felhasználók kizárásához használja anot like
”SQL záradék. A tty
oszlop a a felhasználó tty adatai vagy tilde~
”, Ha nincs használva tty.
select user, host, time from logged_in_users where tty not like "~";
Láthatjuk, hogy a „dave” felhasználónévvel rendelkező felhasználó kétszer van bejelentkezve.
A „: 0” a host
oszlop jelzi a számítógéphez csatlakoztatott képernyőt és billentyűzetet. Ennek a felhasználónak fizikailag a helyszínen kell lennie. A másik felhasználónevet használó bejelentkezési munkamenet egy másik IP-címről származik.
Ezt valószínűleg ki kell vizsgálni. Hogyan érhetik el távolról a számítógépet, ha itt vannak az épületben? Ezen munkamenetek egyike csaló lehet.
Az os_version táblázat
A Linux verzió részleteinek megismeréséhez kérdezze meg a os_version
asztal.
select name, major, minor, codename from os_version;
A felület_címek Táblázat
A interface_addresses
táblázat tartalmazza a hálózati interfészek adatait.
select interface, address from interface_addresses order by interface;
A memory_info táblázat
A memory_info
táblázat információkat tartalmaz a számítógép memóriájának mennyiségéről és használatáról.
select memory_total, memory_free, cached from memory_info;
A csoportok táblázat
A rendszer konfigurált csoportjainak gyors megtekintéséhez használja a .all
dot parancs a groups
asztal.
.minden csoport
A felhasználókhoz társított csoportok részleteinek megtekintéséhez szűrje ki azokat a csoportokat, amelyek csoport azonosítója nagyobb vagy egyenlő, mint 1000.
select * from groups where gid>=1000;
A deb_packages táblázat
A deb_packages
táblázat tartalmazza a számítógépére telepített összes „.deb” szoftvercsomag részleteit. Van még egy rpm_packages
táblázat a Fedora és más Red Hat derivatívákról. Más csomagkezelő rendszerekről nem számoltak be.
Nagyon sok csomag van ezen a tesztgépen. Az eredmények 10 rekordra korlátozódtak.
select name, version, source from deb_packages limit 10;
A system_info táblázat
Nagyon sok információ van csomagolva a system_info táblába. Csak ellenőrizni fogjuk a márkát központi feldolgozó egység (CPU), amely telepítve van a számítógépre.
select cpu_brand from system_info;
A jéghegy csúcsa
Az osquery több mint 150 táblázat információját kéznél tartja. Még akkor is, ha nem tud sokat az SQL-ből, könnyen elsajátíthatja azt a keveset, amelyre szüksége van ahhoz, hogy produktívan használja ezt a kiváló alkalmazást.