Linux serverių saugumas
APIE KURSĄ
Praėjus kelioms minutėms po to, kai serveris pasirodo internete, jį jau pradeda skenuoti. Ne įsilaužėliai — botai. Jiems nesvarbu, kas ten paleista ir kas savininkas. Jie tiesiog ieško atvirų portų, numatytųjų slaptažodžių, žinomų pažeidžiamumų.
Dauguma apie tai negalvoja. Sukonfigūravo, paleido, veikia — ir gerai. Kol vieną dieną kažkas eina ne taip.
Šis kursas apie tai, kaip padaryti, kad taip nesužinotumėte.
104 pamokos, 12 blokų — nuo pirmojo susipažinimo su Linux iki centralizuoto monitoringo. Kiekvienas įrankis aiškinamas ne tiesiog „įveskite štai tai”, o kodėl būtent tai, kas nutiks jei nepadarysite, ir kaip patikrinti, kad viskas veikia teisingai.
KAM SKIRTA
Tiems, kurie moka paleisti serverį — bet sąžiningai nežino, kiek jis apsaugotas.
Dirbate su Linux, žinote pagrindines komandas, konfigūravote SSH. Bet jei paklaustų „o pg_hba.conf žiūrėjai?” arba „nftables sukonfigūruotas?” — kažkur viduje atsiranda lengvas nerimas. Pažįstama? Šis kursas kaip tik apie tai. Ne vienas straipsnis iš Stack Overflow, o sisteminis supratimas, kaip viskas veikia ir kodėl.
Jei esate visiškai pradžioje — irgi gerai. Blokas 0 pradedamas nuo nulio, lygis kyla palaipsniui. Niekas nemeta jūsų į gilumą be paaiškinimų.
KAS VIDUJE
Kiekvienas blokas grindžiamas ankstesniu — kurso pabaigoje galvoje bus ne įrankių rinkinys, o vientisas vaizdas.
Pradedame nuo Linux pagrindų: failų sistema, vartotojai, teisės, procesai, tinklas, SSH. Skamba nuobodžiai — bet būtent čia formuojasi supratimas, be kurio visa kita bus tiesiog magija.
Toliau — kas apskritai turi teisę ką daryti serveryje. sudo, PAM, SELinux, AppArmor. Kodėl root SSH žurnaluose — tai ne tiesiog eilutė, o priežastis sustoti ir išsiaiškinti.
systemd žinomas kaip „systemctl start/stop”. Bet jis gali izoliuoti servisą taip, kad net jei nginx būtų įsilaužta — jis negalės perskaityti /etc/passwd, įrašyti failo už savo direktorijos ribų ar paleisti naują procesą. Tam skirtas atskiras blokas.
Branduolys. sysctl parametrai — tai ne magiškos eilutės, kurias kopijuoja iš interneto neperskaičius. Kiekvienas iš jų daro kažką konkretaus: uždaro atakos vektorių, riboja informacijos nutekėjimą, keičia tinklo steko elgesį apkrovos metu.
Sertifikatai. „Tiesiog įdiegti Let’s Encrypt” ir „suprasti kaip tai veikia” — labai skirtingi dalykai. Nagrinėjame pasitikėjimo grandines, nuosavą CA, mTLS, diskų ir failų šifravimą. Po šio bloko OpenSSL nustoja gąsdinti.
Firewall su nftables — ne iptables su jo 1990-ųjų sintakse, o normalus šiuolaikinis įrankis. Kuriame politiką „viskas uždrausta, išskyrus aiškiai leistą”, apsisaugome nuo DDoS ir skenavimo, mokome derinti taisykles kai kažkas eina ne taip.
nginx — ne tik „failų tiekimas”. Tinkamas HTTPS, saugumo antraštės, rate limiting, reverse proxy. Ir svarbiausia — kaip skaityti žurnalus taip, kad matytumėte atakas, o ne tik skaičius.
Duomenų bazė privačiame tinkle, už dvigubos izoliacijos, su mTLS ir minimaliausiomis teisėmis. Nes „PostgreSQL klauso 0.0.0.0” — tai ne konfigūracija, tai atviros durys.
fail2ban automatiškai blokuoja pagal žurnalus. Nagrinėjame kaip jis veikia iš vidaus, rašome savo filtrus, integruojame su nftables — ir išsiaiškiname, kodėl kartais jis tyli, kai turėtų blokuoti.
Cloudflare — CDN, WAF, DDoS apsauga, Tunnel, Zero Trust. Kaip tinkamai integruoti jį į stack’ą ir neprarasti tikrų klientų IP adresų pakeliui.
Auditas ir monitoringas: auditd, failų vientisumo kontrolė, srauto analizė, CIS standartai, CVE sekimas, automatiniai atnaujinimai. Kaip žinoti, kas vyksta serveryje — ne tik tada, kai jau dega.
Paskutinis blokas — logavimas ir troubleshooting. Kaip sutvarkyta logavimo sistema Linux, kaip ją analizuoti, ir kaip diagnozuoti tipinius sutrikimus: nginx grąžina 502, fail2ban neblokuoja, systemd servisas nesikuria, TLS skundžiasi sertifikatu. Grafana ir Loki tiems, kurie nori viską matyti vienoje vietoje.
KAS PASIKEIS
Paimsite švarų serverį — ir sukonfigūruosite jį production aplinkoje patys.
SSH su raktais, be root, su IP apribojimu. Firewall, kuris pagal nutylėjimą uždarytas. nginx su normaliu HTTPS ir saugumo antraštėmis. Duomenų bazė privačiame tinkle. Automatinis atakų blokavimas. Žurnalai, kuriuos mokate skaityti. Monitoringas, kuris parodys problemą anksčiau, nei paskambins klientas.
Ir — svarbiausia — suprantate, kodėl būtent taip. Kai kažkas production aplinkoje eis ne taip, o anksčiau ar vėliau tai nutiks, žinosite kur žiūrėti. Ne spėlioti, o žinoti.
Mokymo programa
- 12 Sections
- 111 Lessons
- Lifetime
- BLOKAS 0: Įvadas į Linux | Beginner10
- 1.1PAMOKA 1. Kas yra Linux — istorija, distributyvai ir sistemos saugumas
- 1.2PAMOKA 2. Linux failų sistema — struktūra ir kur kas yra
- 1.3PAMOKA 3. Išgyventi terminale — komandos, kurių reikia kiekvieną dieną
- 1.4PAMOKA 4. Vartotojai ir grupės — pirmoji saugumo linija
- 1.5PAMOKA 5. Prieigos teisės — chmod, chown ir kodėl 777 yra katastrofa
- 1.6PAMOKA 6. Procesai ir servisai — kas vyksta sistemoje dabar pat
- 1.7PAMOKA 7. Tinklas Linux sistemoje — diagnostika, analizė ir ryšių kontrolė
- 1.8PAMOKA 8. Paketų tvarkyklė — diegimas, atnaujinimai ir apsauga nuo pažeidžiamumų
- 1.9PAMOKA 9. Teksto redaktoriai serveryje — nano, vim ir pirmieji žingsniai
- 1.10PAMOKA 10. SSH — pirmasis prisijungimas ir bazinis saugumas
- BLOKAS 1: Prieigos valdymas ir privilegijos | Junior — Middle5
- 2.1PAMOKA 1. sudo — saugi konfigūracija, komandų apribojimai ir auditas
- 2.2PAMOKA 2. PAM — autentifikacija, slaptažodžių politikos ir paskyrų blokavimas
- 2.3PAMOKA 3. SELinux — privalomoji prieigos kontrolė, režimai ir kontekstai
- 2.4PAMOKA 4. AppArmor — saugos profiliai, režimai ir išimčių valdymas
- 2.5PAMOKA 5. Linux prieigos modelis išsamiai: ACL, capabilities ir atsisakymų diagnostika
- BLOKAS 2: systemd Security | Junior11
- 3.1PAMOKA 1. systemd — Linux serverio širdis: architektūra, PID 1 ir kaip viskas veikia
- 3.2PAMOKA 2. Unit failai: kaip systemd skaito instrukcijas kiekvienai paslaugai
- 3.3PAMOKA 3. systemctl: pagrindinis administratoriaus įrankis — nuo paslaugų paleidimo iki pavojingų procesų blokavimo
- 3.4PAMOKA 4. Kas veikia jūsų serveryje — paslaugų auditas ir attack surface valymas
- 3.5PAMOKA 5. Smėlio dėžė kiekvienai paslaugai — izuliuojame procesus per saugumo direktyvas
- 3.6PAMOKA 6. Paskutinė gynybos linija — SystemCallFilter ir CapabilityBoundingSet prieš branduolio lygio atakas
- 3.7PAMOKA 7. cgroups per systemd — neleidžiame vienai paslaugai pargriaut viso serverio
- 3.8PAMOKA 8. systemd-analyze — jūsų serverio rentgenas: krovimosi greitis ir security score
- 3.9PAMOKA 9. journald — saugumo žurnalų rinkimas ir analizė
- 3.10PAMOKA 10. systemd laikmačiai — vykdome suplanuotas užduotis be saugumo spragų
- 3.11PAMOKA 11. systemd-resolved: saugus DNS su DNS over TLS ir DNSSEC palaikymu
- BLOKAS 3: Kernel Hardening | Junior4
- 4.1PAMOKA 1. Branduolio grūdinimas — kas yra sysctl ir kodėl tai reikalinga
- 4.2PAMOKA 2. /etc/sysctl.conf — baziniai branduolio saugumo parametrai
- 4.3PAMOKA 3. /etc/sysctl.d/ — modulinė branduolio parametrų konfigūracija
- 4.4PAMOKA 4. /etc/sysctl.d/99-hardening.conf — pilna serverio apsaugos konfigūracija
- BLOKAS 4: Šifravimas ir sertifikatai | Junior10
- 5.1PAMOKA 1. Kaip veikia sertifikatai — CA, pasitikėjimo grandinė, x.509
- 5.2PAMOKA 2. Let’s Encrypt + Certbot — nemokami sertifikatai
- 5.3PAMOKA 3. Savaiminiai sertifikatai — vidinėms paslaugoms
- 5.4PAMOKA 4. Savas CA — vidinio sertifikatų centro kūrimas
- 5.5PAMOKA 5. Cloudflare Origin Certificate — sertifikatas tarp Cloudflare ir serverio
- 5.6PAMOKA 6. Wildcard sertifikatai — vienas sertifikatas visiems subdomenams
- 5.7PAMOKA 7. mTLS — abipusis kliento ir serverio autentifikavimas
- 5.8PAMOKA 8. Sertifikatų stebėjimas — saugojimas, rotacija, galiojimo laikas
- 5.9PAMOKA 9. LUKS — diskų šifravimas
- 5.10PAMOKA 10. GPG — failų šifravimas ir skaitmeniniai parašai
- BLOKAS 5: nftables Security | Junior — Middle8
- 6.1PAMOKA 1. Įvadas į nftables — kodėl iptables traukiasi į praeitį
- 6.2PAMOKA 2. Lentelės, grandinės, taisyklės — bazinė nftables struktūra
- 6.3PAMOKA 3. Bazinis firewall — draudimo pagal nutylėjimą politika
- 6.4PAMOKA 4. Įeinančio ir išeinančio srauto filtravimas — detali konfigūracija
- 6.5PAMOKA 5. NAT ir prievadų peradresavimas per nftables
- 6.6PAMOKA 6. Sets ir maps — efektyvus taisyklių valdymas nftables
- 6.7PAMOKA 7. DDoS ir prievadų skenavimo apsauga nftables priemonėmis
- 6.8PAMOKA 8. nftables taisyklių registravimas ir derinimas
- BLOKAS 6: nginx Security | Middle10
- 7.1PAMOKA 1. Įvadas į nginx — architektūra ir konfigūracija
- 7.2PAMOKA 2. Bazinė saugi nginx konfigūracija
- 7.3PAMOKA 3. TLS/SSL — HTTPS konfigūracija, sertifikatai
- 7.4PAMOKA 4. Saugumo antraštės — HSTS, CSP, X-Frame-Options
- 7.5PAMOKA 5. Prieigos apribojimas — rate limiting, geo blocking
- 7.6PAMOKA 6. Reverse proxy — saugi konfigūracija
- 7.7PAMOKA 7. nginx + nftables — integruota apsauga
- 7.8PAMOKA 8. nginx log’ai — stebėjimas ir atakų analizė
- 7.9PAMOKA 9. Hardening nginx — minimalios privilegijos, kontrolinis sąrašas ir galutinis auditas
- 7.10PAMOKA 10. API apsauga per nginx — rate limiting pagal endpoint’us, botų blokavimas ir apsauga nuo verslo logikos piktnaudžiavimo
- BLOKAS 7: Duomenų bazių saugumas | Middle10
- 8.1PAMOKA 1. Architektūra — kodėl duomenų bazė privalo būti privačiame tinkle
- 8.2PAMOKA 2. Privatus tinklas — duomenų bazės tinklo izoliacijos konfigūracija
- 8.3PAMOKA 3. nftables duomenų bazei — prieiga tik iš web serverio IP
- 8.4PAMOKA 4. PostgreSQL — pg_hba.conf konfigūracija, prieigos ribojimas
- 8.5PAMOKA 5. MySQL/MariaDB — bind-address, prieigos ribojimas
- 8.6PAMOKA 6. SSL/TLS PostgreSQL — ryšio šifravimas
- 8.7PAMOKA 7. SSL/TLS MySQL/MariaDB — ryšio šifravimas
- 8.8PAMOKA 8. mTLS duomenų bazėms — abipusė autentifikacija
- 8.9PAMOKA 9. Duomenų bazių vartotojai — minimalios privilegijos
- 8.10PAMOKA 10. Duomenų bazių auditas — užklausų ir prisijungimų registravimas
- BLOKAS 8: fail2ban Security | Middle9
- 9.1PAMOKA 1. fail2ban — automatinis atakų blokavimas: veikimo principas ir architektūra
- 9.2PAMOKA 2. fail2ban — įdiegimas, pirmasis paleidimas ir bazinė konfigūracija
- 9.3PAMOKA 3. Jails — SSH apsaugos konfigūracija
- 9.4PAMOKA 4. Jails — nginx apsauga nuo atakų
- 9.5PAMOKA 5. Filters — savų atakų aptikimo taisyklių kūrimas
- 9.6PAMOKA 6. Actions — kaip fail2ban blokuoja per nftables
- 9.7PAMOKA 7. Whitelist, ignoreip — išimtys ir patikimi IP adresai
- 9.8PAMOKA 8. fail2ban stebėjimas ir derinimas — žurnalai ir statusai
- 9.9PAMOKA 9. fail2ban + nginx + nftables — pilna integracija
- BLOKAS 9: Cloudflare Security | Middle — Senior10
- 10.1PAMOKA 1. Kas yra Cloudflare — CDN, proxy, apsauga
- 10.2PAMOKA 2. DNS per Cloudflare — konfigūracija, proxy režimai
- 10.3PAMOKA 3. SSL/TLS Cloudflare — režimai, Full Strict
- 10.4PAMOKA 4. WAF — Web Application Firewall, taisyklės
- 10.5PAMOKA 5. DDoS apsauga — konfigūracija, jautrumo lygiai
- 10.6PAMOKA 6. Cloudflare Rules — Page Rules, Transform Rules
- 10.7PAMOKA 7. Cloudflare + nginx — integracija, tikrasis IP
- 10.8PAMOKA 8. Cloudflare + fail2ban — bendra apsauga
- 10.9PAMOKA 9. Cloudflare Tunnel — saugi prieiga be atvirų prievadų
- 10.10PAMOKA 10. Zero Trust — Cloudflare Access, pagrindai
- BLOKAS 10: Auditas ir stebėjimas | Senior10
- 11.1PAMOKA 1. auditd — saugumo įvykių auditas
- 11.2PAMOKA 2. AIDE — failų vientisumo kontrolė
- 11.3PAMOKA 3. logwatch — žurnalų analizė
- 11.4PAMOKA 4. WireGuard VPN — konfigūracija
- 11.5PAMOKA 5. tcpdump — srauto analizė
- 11.6PAMOKA 6. nmap — savo tinklo skenavimas
- 11.7PAMOKA 7. CIS Benchmarks — saugios konfigūracijos standartai
- 11.8PAMOKA 8. Lynis — automatinis sistemos saugumo auditas<
- 11.9PAMOKA 9. CVE — kaip sekti pažeidžiamumus
- 11.10PAMOKA 10. Automatiniai saugumo atnaujinimai
- BLOKAS 11: Registravimas ir trikčių šalinimas | Junior — Senior14
- 12.1PAMOKA 1. Linux registravimo architektūra — kas kur įrašoma
- 12.2PAMOKA 2. journald — journalctl, filtravimas, analizė
- 12.3PAMOKA 3. rsyslog — centralizuotas registravimas
- 12.4PAMOKA 4. logrotate — rotacija, saugojimas, glaudinimas
- 12.5PAMOKA 5. nginx žurnalai — access.log, error.log, atakų analizė
- 12.6PAMOKA 6. fail2ban žurnalai — kas užblokuota ir kodėl
- 12.7PAMOKA 7. nftables žurnalai — firewall taisyklių registravimas
- 12.8PAMOKA 8. Žurnalų analizė — grep, awk, sed
- 12.9PAMOKA 9. Nginx trikčių šalinimas — dažniausios klaidos
- 12.10PAMOKA 10. Nftables trikčių šalinimas — taisyklių derinimas
- 12.11PAMOKA 11. Fail2ban trikčių šalinimas — kodėl neblokuoja
- 12.12PAMOKA 12. Systemd trikčių šalinimas — servisas nepaleidžiamas
- 12.13PAMOKA 13. Sertifikatų trikčių šalinimas — TLS/SSL klaidos
- 12.14PAMOKA 14. Centralizuotas stebėjimas — Grafana + Loki