Audit prístupu k súboru linux. Najlepšie nástroje bezpečnostného auditu Linuxu. Táto služba zahŕňa

Zabezpečenie servera Linux je veľmi dôležité na ochranu vašich údajov, duševného vlastníctva a času pred hackermi. Za bezpečnosť operačného systému Linux je zodpovedný správca systému. V tomto článku sa pozrieme na dvadsať vecí, ktoré musíte urobiť s operačným systémom Linux, aby bol vždy v bezpečí. Ak ide o domáci počítač, tak snáď nemá zmysel sa toľko obávať o bezpečnosť, postačia silné heslá a blokovanie prístupu k portom z internetu. V prípade verejného servera by ste však mali venovať pozornosť zabezpečeniu jeho ochrany.

Tieto pokyny budú fungovať pre akúkoľvek distribúciu, či už používate CentOS, Red Hat alebo Ubuntu, Debian.

1. Šifrovanie komunikácie

Všetky dáta prenášané cez sieť sú otvorené na monitorovanie. Preto je potrebné prenášané dáta šifrovať, pokiaľ je to možné, pomocou hesiel, kľúčov alebo certifikátov.

Na prenos súborov použite scp, ssh, rsync alebo sftp. Vzdialený súborový systém môžete tiež pripojiť k svojmu domovskému adresáru pomocou nástrojov, ako je shhfs.

GnuPG vám umožňuje šifrovať a podpísať vaše údaje špeciálnym súkromným kľúčom. Nechýbajú ani funkcie pre správu kľúčov a prístup k verejným kľúčom.

Fugu je grafický nástroj na prenos súborov SFTP. SFTP je veľmi podobný FTP, ale celá relácia je šifrovaná. To znamená, že žiadne heslá ani príkazy sa neprenášajú úplne. Preto sú takéto prevody menej zraniteľné voči tretím stranám. Môžete tiež použiť FileZilla, čo je multiplatformový FTP klient, ktorý podporuje FTS cez SSH / TLS a SSH File Transfer Protocol (SFTP).

OpenVPN je efektívny a ľahký klient VPN s podporou šifrovania SSH.

2. Snažte sa nepoužívať FTP, Telnet, Rlogin a RSH

Vo väčšine sietí môžu byť používateľské mená, heslá z FTP, Telnet, RSH príkazy zachytené niekým v rovnakej sieti pomocou paketového sledovača. Všeobecným riešením tohto problému je použitie OpenSSH, SFTP alebo SFTP, ktoré k bežnému FTP pridáva SSL alebo TLS. Spustite nasledujúci príkaz na odstránenie NIS, RSH a iných zastaraných služieb:

yum vymazať inetd xinetd ypserv tftp-server telnet-server rsh-serve

3. Znížte množstvo softvéru

Naozaj potrebujete všetky nainštalované webové služby? Nemali by ste inštalovať nepotrebný softvér, aby ste sa vyhli zraniteľnostiam v týchto programoch. Použite správcu balíkov na zobrazenie nainštalovaných programov a odstránenie všetkých, ktoré nepotrebujete:

yum zoznam nainštalovaný
$ yum zoznam balík
$ yum odstrániť balík

dpkg --zoznam
$ dpkg --informačný balík
$ apt-get odstrániť balík

4. Jeden stroj - jedna služba

Spustite rôzne služby na samostatných serveroch alebo virtuálnych počítačoch. To obmedzuje počet služieb, ktoré môžu byť napadnuté. Napríklad, ak sa útočníkovi podarí preniknúť do Apache, získa prístup k celému serveru. Vrátane služieb ako MySQL, emailový server a podobne. Na virtualizáciu môžete použiť softvér ako XEN alebo OpenVZ.

5. Udržujte linuxové jadro a softvér aktuálne

Aplikácia bezpečnostných opráv je veľmi dôležitou súčasťou zabezpečenia servera Linux. Operačný systém poskytuje všetky nástroje na aktualizáciu systému a aktualizáciu na nové verzie. Všetky aktualizácie zabezpečenia by sa mali použiť čo najskôr. Aj tu musíte použiť správcu balíkov. Napríklad:

Alebo pre systémy založené na Debiane:

sudo apt aktualizácia && sudo apt upgrade

Red Hat alebo Fedora si môžete nastaviť tak, aby vám posielali e-mailové upozornenia, keď sú k dispozícii nové aktualizácie zabezpečenia. Môžete tiež nastaviť automatické aktualizácie pomocou cronu alebo môžete použiť aptcron Debianu, ktorý vás upozorní na aktualizáciu vášho systému.

6. Používajte bezpečnostné rozšírenia v Linuxe

Operačný systém Linux sa dodáva s rôznymi bezpečnostnými záplatami, ktoré možno použiť na ochranu pred nesprávnou konfiguráciou alebo škodlivým softvérom. Môžete však použiť aj ďalšie systémy riadenia prístupu pre aplikácie ako SELinux alebo AppArrmor.

SELinux poskytuje rôzne bezpečnostné zásady pre jadro Linuxu. Tu je možné riadiť prístup k akýmkoľvek systémovým prostriedkom pomocou rolí. Ku konkrétnemu zdroju môže pristupovať iba program, ktorého rola to umožňuje, a dokonca nezáleží na právach superužívateľa. SELinux výrazne zvyšuje bezpečnosť systému Linux, pretože aj root je tu považovaný za normálneho používateľa. Viac podrobností je popísaných v samostatnom článku.

7. Používateľské účty a silné heslá

Na vytvorenie a údržbu používateľských účtov použite príkazy useradd a usermod. Uistite sa, že máte dobré a silné heslo, malo by obsahovať aspoň osem znakov, najlepšie v inom prípade, medzi ktorými by mali byť špeciálne znaky alebo čísla. Napríklad 8 znakov, z toho sedem písmen a jeden znak alebo číslo. Použite nástroje ako John the ripper na nájdenie slabých používateľských hesiel na serveri a nakonfigurujte pam_cracklib.so na presadzovanie politiky hesiel.

8. Z času na čas zmeňte heslá

Príkaz change vám umožňuje zadať počet dní pred dátumom vynútenej zmeny hesla. Tieto informácie systém používa na určenie, kedy by ich mal používateľ zmeniť. Tieto nastavenia sú v /etc/login.defs. Ak chcete zakázať starnutie hesla, zadajte nasledujúci príkaz:

zmeniť -l užívateľské meno

Ak chcete získať informácie o dátume vypršania platnosti hesla, zadajte príkaz:

Všetko môžete nakonfigurovať aj manuálne v súbore /etc/shadow:

(používateľ): (heslo): (naposledy zmenené):(max_days): (minimum_days): (POZOR):(deaktivovať):(riadky vypršania platnosti):

  • Minimálne dni- minimálny interval medzi zmenami hesla, to znamená, ako často môže používateľ zmeniť heslo.
  • Maximálny počet dní- koľko dní bude heslo platné, po uplynutí tejto doby bude používateľ nútený heslo zmeniť.
  • POZOR- počet dní, po ktorých bude používateľ upozornený, že si musí zmeniť heslo.
  • expiry_string- počet dní od 1. januára 1970, kedy bude účet úplne deaktivovaný.

zmena -M 60 -m 7 -W 7 užívateľské meno

Je tiež žiaduce zabrániť používateľom používať staré heslá, inak budú všetky snahy prinútiť ich zmeniť heslá anulované.

9. Blokovanie účtov po neúspešných pokusoch o prihlásenie

V operačnom systéme Linux môžete použiť príkaz faillog na zobrazenie neúspešných pokusov o prihlásenie užívateľa. Môžete ho použiť aj na nastavenie limitu neúspešných pokusov o prihlásenie. Všetky informácie o neúspešných pokusoch o prihlásenie sú uložené v súbore /var/log/faillog. Ak ho chcete zobraziť, zadajte:

A ak chcete nastaviť limit na pokusy o prihlásenie pre konkrétny účet, použite:

faillog -r -u užívateľ

Účty môžete zablokovať alebo odblokovať aj manuálne pomocou príkazu passwd. Ak chcete zablokovať použitie:

passwd -l užívateľ

A na odomknutie:

užívateľ passwd -u

Je tiež vhodné skontrolovať, či sa v systéme nenachádzajú účty s prázdnymi heslami. Ak to chcete urobiť, spustite:

awk -F: "($2 == "") (tlač)" /etc/shadow

Tiež skontrolujte, či existujú používatelia so skupinou alebo id 0. Mal by existovať iba jeden takýto používateľ, a to je root. Môžete to skontrolovať pomocou tohto príkazu:

awk -F: "($3 == "0") (tlač)" /etc/passwd

Mal by existovať iba jeden riadok:

root:x:0:0:root:/root:/bin/bash

Ak existujú ďalšie, odstráňte ich. Používatelia a najmä ich slabé heslá sú jednou z najzraniteľnejších vecí, ktoré môžu narušiť bezpečnosť v linuxe.

10. Zakázať prihlásenie superužívateľa

Aby bol váš linuxový systém bezpečný, nikdy sa neprihlasujte ako root. Pomocou sudo môžete získať potrebné povolenia a spustiť požadovaný príkaz ako root. Tento príkaz vám umožňuje neprezradiť heslo superužívateľa iným správcom a obsahuje aj nástroje na monitorovanie, obmedzovanie a sledovanie akcií.

11. Fyzická bezpečnosť servera

Zabezpečenie servera Linux musí zahŕňať fyzické zabezpečenie. Musíte obmedziť fyzický prístup ku konzole servera. Nastavte BIOS tak, aby nepodporoval zavádzanie z externých médií, ako sú DVD, CD, USB. Na ochranu ich nastavení tiež nastavte heslo na zavádzači systému BIOS a GRUB.

12. Vypnite nepotrebné služby

Vypnite všetky nepoužívané služby a démonov. Nezabudnite tiež odstrániť tieto služby zo spustenia. Všetky aktívne služby v systémoch Red Hat môžete zobraziť príkazom:

chkconfig --zoznam | grep "3:on"

Ak chcete službu vypnúť, použite:

servisná zastávka
$ chkconfig služba vypnutá

Nájdite všetky porty otvorené programami:

To isté sa dá urobiť so skenerom nmap:

nmap -sT -O localhost

Pomocou iptables zatvorte všetky porty, ktoré by nemali byť dostupné zo siete. Alebo zastavte nepotrebné služby, ako je popísané vyššie.

13. Odstráňte X server

X server na serverovom počítači je úplne voliteľný. Nemusíte spúšťať grafické prostredie na vyhradenom serveri Apache alebo Email. Odstráňte tento softvér, aby ste zlepšili bezpečnosť a výkon.

14. Nastavte Iptables

iptables je program v užívateľskom priestore na konfiguráciu brány firewall Netfilter zabudovanej do jadra. Umožňuje vám filtrovať všetku návštevnosť a povoliť iba určité typy návštevnosti. Na filtrovanie prístupu na internet použite aj systém TCPWrappers - ACL. Pomocou iptables môžete zabrániť mnohým typom útokov DOS. Bezpečnosť siete v Linuxe je veľmi dôležitým aspektom celkovej bezpečnosti systému.

15. Nastavte jadro

Súbor /etc/sysctl.conf ukladá nastavenia jadra, ktoré sa načítajú a použijú počas spúšťania systému.

Povoliť ochranu proti pretečeniu vyrovnávacej pamäte execshield:

kernel.exec-shield=1
kernel.randomize_va_space=1

Povoliť ochranu proti spoofingu IP:

net.ipv4.conf.all.rp_filter=1

Zakázať presmerovanie adresy IP:

net.ipv4.conf.all.accept_source_route=0

Ignorovať požiadavky na vysielanie:

net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1

Zapíšte všetky sfalšované balíky:

net.ipv4.conf.all.log_marťania=1

16. Rozdeľte pevný disk na partície

Rozdelenie pevného disku na oddiely v závislosti od účelu súborov zlepšuje bezpečnosť operačných systémov Linux. Odporúča sa vytvoriť samostatné sekcie pre tieto adresáre:

  • /Domov
  • /var a /var/tmp

Vytvorte samostatné oddiely pre koreňové adresáre Apache a servery FTP. Otvorte súbor /etc/fstab a nastavte špeciálne možnosti pre požadované oddiely:

  • noexec- na tomto oddiele nespúšťajte žiadne programy ani spustiteľné súbory, povolené sú iba skripty
  • nodev- nepovoliť symbolické alebo špeciálne zariadenia na tejto partícii.
  • nosuid- nepovoliť prístup SUID / SGID programom z tejto časti.

17. Použite Obmedzenie miesta na disku

Obmedzte dostupné miesto na disku pre používateľov. Ak to chcete urobiť, vytvorte diskovú kvótu v /etc/fstab, znova pripojte súborové systémy a vytvorte databázu diskových kvót. Tým sa zlepší bezpečnosť v systéme Linux.

18. Vypnite IPv6

Internetový protokol ďalšej generácie IPv6 v budúcnosti nahradí už používaný IPv4. V súčasnosti však neexistujú žiadne nástroje, ktoré by vám umožnili skontrolovať bezpečnosť siete založenej na IPv6. Mnohé distribúcie Linuxu štandardne povoľujú IPv6. Hackeri môžu posielať nežiaduci prenos a správcovia ho nebudú môcť sledovať. Ak teda túto službu nepotrebujete, vypnite ju.

19. Zakážte nepoužívané binárne súbory SUID a SGID

Všetky spustiteľné súbory, pre ktoré je povolený príznak SUID alebo SGID, sú potenciálne nebezpečné. Tento príznak znamená, že program bude spustený s právami superužívateľa. A to znamená, že ak má program nejaký druh zraniteľnosti alebo chyby, lokálny alebo vzdialený používateľ bude môcť tento súbor použiť. Nájdite všetky takéto súbory pomocou nasledujúceho príkazu:

nájsť / -perm +4000

Nájdite súbory s nastaveným príznakom SGID:

nájsť / -perm +2000

Alebo to môžeme skombinovať všetko do jedného príkazu:

nájsť / \(-perm -4000 -o -perm -2000 \) -tlač
$ nájsť / -cesta -prune -o -type f -perm +6000 -ls

Budete musieť podrobne preštudovať každý nájdený súbor, aby ste pochopili, koľko je tento alebo ten súbor potrebný.

20. Verejné súbory

Je tiež žiaduce nájsť súbory, ktoré môžu upravovať všetci používatelia v systéme. Ak to chcete urobiť, použite nasledujúci príkaz:

nájsť /dir -xdev -type d \(-perm -0002 -a ! -perm -1000 \) -print

Teraz musíte skontrolovať, či sú práva pre skupinu a vlastníka každého súboru správne nastavené a či to predstavuje bezpečnostné riziko.

Je tiež žiaduce nájsť všetky súbory, ktoré nikomu nepatria:

nájsť /dir -xdev \(-nouser -o -nogroup \) -print

21. Použite centralizovaný autentifikačný systém

Bez centralizovaného autentifikačného systému sa používateľské údaje stanú nekonzistentnými, čo môže viesť k zastaraným povereniam a zabudnutým účtom, ktoré mali byť už dávno vymazané. Centralizovaná služba vám umožní udržiavať kontrolu nad používateľskými účtami a autentifikačnými údajmi na rôznych systémoch Linux a Unix. Overovacie údaje môžete synchronizovať medzi servermi. Ale nepoužívajte NIS službu, radšej sa pozrite na Open DAP.

Jednou zo zaujímavých implementácií takéhoto systému je Kerberos. Umožňuje overenie používateľov pomocou tajného kľúča v sieťach, kde je možné zachytiť a upraviť pakety. Kerberos používa na šifrovanie údajov symetrický kľúč a na fungovanie vyžaduje Centrum správy kľúčov. Môžete nastaviť vzdialené prihlásenie, vzdialené kopírovanie, bezpečné kopírovanie súborov medzi systémami a ďalšie úlohy s vysokou úrovňou zabezpečenia.

22. Protokolovanie a audit

Nastavte protokolovanie a auditovanie na zhromažďovanie a ukladanie všetkých neúspešných pokusov o prihlásenie a pokusov o hackovanie. Štandardne sú všetky protokoly, alebo aspoň väčšina z nich, umiestnené v priečinku /var/log/. O tom, za čo sú tí istí zodpovední, sme si podrobnejšie povedali v samostatnom článku.

Záznamy môžete sledovať pomocou nástrojov, ako sú logwatch alebo logcheck. Výrazne zjednodušujú čítanie denníkov. Môžete si zobraziť nie celý súbor, ale iba udalosti, ktoré vás zaujímajú, ako aj poslať si upozornenie na svoju e-mailovú adresu.

Monitorujte systém pomocou auditovanej služby. Program zapíše na disk všetky udalosti auditu, ktoré vás zaujímajú. Všetky nastavenia auditu sú uložené v súbore /etc/audit.rules Pri štarte systému služba načíta všetky pravidlá z tohto súboru. Môžete ho otvoriť a nakonfigurovať všetko, ako potrebujete, alebo použiť samostatnú utilitu - auditctl. Môžete nastaviť nasledujúce body:

  • Udalosti spúšťania a vypínania systému
  • Dátum a čas udalosti
  • Udalosti používateľa (napríklad prístup ku konkrétnemu súboru)
  • Typ udalosti (upraviť, získať prístup, odstrániť, zapísať, aktualizovať atď.)
  • Úspech alebo zlyhanie pri vykonávaní udalosti
  • Nahrávanie nastavení siete Zmena udalostí
  • Zaznamenávanie zmien používateľov a skupín
  • Sledujte zmeny súborov

23. Chráňte svoj OpenSSH server

Povoliť iba použitie protokolu 2:

Zakázať prihlásenie ako superužívateľ:

24. Nainštalujte IDS

Systém IDS alebo Intrusion Detection System sa pokúša odhaliť podozrivú, škodlivú aktivitu, ako je útok DOS, skenovanie portov alebo dokonca pokusy o preniknutie do počítača monitorovaním sieťovej prevádzky.

Je dobrou praxou nasadiť takýto softvér pred sprístupnením systému z internetu. Môžete si nainštalovať AIDE, je to HIDS (Host based IDS), ktorý dokáže ovládať všetky aspekty vášho systému.

Snort je softvér na detekciu narušenia siete. Je schopný analyzovať a zaznamenávať pakety a analyzovať sieťovú prevádzku v reálnom čase.

25. Chráňte svoje súbory a adresáre

Linux má vynikajúcu ochranu proti neoprávnenému prístupu k súborom. Povolenia nastavené systémom Linux a súborovým systémom však nič neznamenajú, keď má útočník fyzický prístup k počítaču a môže jednoducho pripojiť pevný disk počítača k inému systému, aby skopíroval vaše údaje. Svoje súbory však môžete jednoducho chrániť šifrovaním:

  • Ak chcete zašifrovať a dešifrovať súbor pomocou hesla, použite GPG
  • Súbory môžete chrániť aj pomocou OpenSSL
  • Šifrovanie adresára sa vykonáva pomocou ecryptfs
  • TrueCrypt je bezplatný nástroj na šifrovanie disku pre Windows a Linux

závery

Teraz sa výrazne zvýši bezpečnosť operačného systému linux vo vašom počítači. Nezabudnite si z času na čas nastaviť zložité heslá. Do komentárov napíšte svoj obľúbený nástroj zabezpečenia systému.

Bezpečnosť informácií je prioritou každého online podnikania. Vírusové infekcie a externé útoky, ako aj neoprávnený prístup k informáciám, to všetko so sebou prináša veľké finančné a reputačné riziká. Preto sa pri výbere serverovej platformy majitelia firiem vždy zaujímajú o stupeň zabezpečenia zdrojov.
A aby ste skontrolovali, ako dobre funguje systém ochrany, či v ňom nie sú nejaké zraniteľnosti a „diery“, odporúča sa vykonať audit zabezpečenia servera aspoň raz za mesiac.

Čo je zahrnuté v bezpečnostnom audite servera

Aj zdanlivo nepodstatný faktor, akým je nesprávne nastavenie samotného servera alebo zastaraný softvér, sa môže stať bezpečnostnou hrozbou. Audit pomáha identifikovať slabé stránky zabezpečenia a podniknúť včasné kroky na ich odstránenie skôr, ako dôjde k ohrozeniu alebo krádeži údajov.
Správca servera kontroluje nainštalovaný softvér, jeho súlad s najnovšími aktualizáciami, vyhodnocuje nastavenia zabezpečenia servera a odstraňuje prípadné chyby a tiež analyzuje súlad nastavení prístupových práv zamestnancov k určitým zdrojom.

Ako skontrolovať virtuálny súkromný server vlastnými rukami

Každý používateľ si môže skontrolovať bezpečnosť serverov na platformách Windows alebo Linux, na to nie je potrebné mať špeciálne znalosti v programovaní.
Bezpečnostnú kontrolu možno rozdeliť do niekoľkých etáp:

Fyzický prístup

V prípade dedikovaného servera je fyzický prístup na server tretích strán štandardne obmedzený, poskytuje ho dátové centrum. Používateľ však môže dodatočne nastaviť heslo na prístup do systému BIOS.

POŽARNE DVERE

Pre nepretržité monitorovanie softvéru a portov musí byť brána Windows Firewall správne nakonfigurovaná a povolená. Pre Linux môžete na riadenie prístupu použiť systém SELinux. Hardvérový firewall Cisco ASA alebo Fortinet FortiGate 60D si u nás môžete prenajať aj vy.

Systém súborov

Skontroluj aktualizácie

Nakonfigurujte server na automatické prijímanie a inštaláciu aktualizácií.

Zásady hesiel

Použite miestne bezpečnostné zásady systému Windows na vynútenie požiadavky na zložité heslá, dátum ich vypršania platnosti a uzamknutie účtu po viacerých neúspešných prihláseniach alebo zadaní prázdneho hesla.

Kontrola denníka

Povoľte protokolovanie pre kritické segmenty infraštruktúry a pravidelne ich kontrolujte.

Zabezpečenie siete

VPN a VLAN sa odporúčajú na segmentáciu hostiteľa a zabezpečenie linky.
Mali by ste tiež zmeniť predvolené nastavenia a poslať ďalej porty služieb sieťových zariadení.
Na šifrovanie prenosu môžete použiť službu IPsec. A na zobrazenie otvorených portov - nástroj Netstat.

Riadenie prístupu

Rozlišujte prístupové práva používateľov ku kritickým súborom, zakážte prístup hosťa a používateľov s prázdnym heslom. Zakázať nepoužívané roly a aplikácie na serveri.

Zálohovanie

Použite službu zálohovania súborov, je zisková a spoľahlivá. Neuchovávajte zálohy nezašifrované. Ak si od nás prenajmete server, môžete si vybrať miesto pre zálohy.

Prístup k databáze

Kritické databázy by mali byť uložené na rôznych SQL serveroch. Spustenie musíte nakonfigurovať v mene používateľa s minimálnymi oprávneniami alebo z vopred nakonfigurovaného bieleho zoznamu adries IP.

Antivírusová ochrana

Pre prevádzku servera v systéme Windows sa odporúča inštalácia automaticky aktualizovaného antivírusového softvéru, keď používatelia pracujú so sieťovými úložiskami. V prípade Linuxu nie je potrebná inštalácia antivírusu, za predpokladu pravidelného monitorovania bezpečnosti servera a kontroly neoprávneného prístupu. Na to môže byť užitočná utilita Tiger.

Takýto audit raz za mesiac pomôže skontrolovať správnu činnosť servera, odstrániť zraniteľnosti a kontrolovať bezpečnosť sieťovej infraštruktúry.

Väčšina takýchto podnikových a viaczložkových systémov ako SAP , OracleDB používať na svojej platforme operačný systém založený na linux . Vzhľadom na to im IT audítori venujú veľkú pozornosť. Dnes vám v článku predstavíme niekoľko bezplatných nástrojov prezentovaných vo forme skriptov a pomocou bežných mechanizmov OS na poskytnutie expresného auditu konfigurácie zabezpečenia.

Nasledujúce systémové príkazy a skripty používané na expresný audit bezpečnostných možností systémov Linux OS sú založené na odporúčaniach bezpečnostného auditu publikovaných komunitou ISACA v príručke UNIX/LINUX Operating System Security Audit/Assurance Program.

1. Overenie účtov

1.1 Zoznam všetkých používateľov
Zoznam užívateľov je uložený v /etc/passwdfile. Ak chcete získať zoznam používateľov, môžete použiť nasledujúci skript:

  1. bin/bash
  2. # userslistinthesystem.sh
  3. # count a Uvádza existujúcich "skutočných" používateľov v systéme.
  4. echo „[*] Existujúci používatelia (zoradené podľa abecedy):“
  5. grep „/bin/bash“ /etc/passwd | grep -v 'koreň' | cut-f1
  6. -d':' | triediť
  7. echo -n “[*] Počet nájdených skutočných používateľov: “
  8. grep „/bin/bash“ /etc/passwd | grep -v 'koreň' | wc -l
1.2 Zoznam blokovaných účtov
Počas auditu je potrebné skontrolovať zoznam blokovaných a odblokovaných používateľov ( názov účtu ). Na to bude fungovať nasledujúci príkaz:
  1. #!/bin/bash
  2. # passwd –s názov účtu

1.3 Zobrazenie štatistík pre všetkých používateľov

  • Audítor musí zabezpečiť, aby tím ac zahrnuté v systéme, pre prehľad aktivít používateľa:
    1. #!/bin/bash
    Ak chcete zobraziť aktivitu relácie pripojenia používateľa so súčtom za každý deň, použite príkaz:
    1. #!/bin/bash
    2. # ac -d
    Na zobrazenie informácií o aktivite relácie (v hodinách) pripojenia používateľa "užívateľ" :
    1. #!/bin/bash
    2. # používateľ ac
    1.4 Zobrazenie aktivity používateľa
    Systémové aplikácie psacct alebo acct bežia na pozadí a sledujú aktivitu každého používateľa v systéme, ako aj zdroje, ktoré spotrebúvajú. Ak chcete skontrolovať aktivitu používateľov v systéme, spustite nasledujúci skript:
    1. #!/usr/bin/envksh
    2. posledný -Fa|awk ‘
    3. /wtmp začína/ ( ďalšie; )
    4. /stále prihlásený/ ( ďalšie; )
    5. $0 == reštartovať (ďalší; )
    6. NF > 0 (
    7. if(NR > 1)
    8. printf("
      ”);
    9. printf("Používateľ:t%s
      “, $ 1); # používateľ
    10. printf(" Začiatok:t%s %s %s %s
      ”, $3, $4, $5, $6);
    11. if(9 USD == "dole")
    12. printf(" Koniec:vypnutie
      ”);
    13. printf(" Koniec:t%s %s %s %s
      ”, $9, $10, $11, $12);
    14. if(substr ($NF, 1, 1) == “(“)
    15. t = $NF;
    16. h = "localhost";
    17. t = $(NF-1);
    18. h = $NF;
    19. gsub(“[()]”, “”, t);
    20. printf("Čas zapnutia:t%s
      "", t);
    21. printf("Vzdialený hostiteľ:t%s
      “, h);
  • 2. Kontrola politiky hesiel

    2.1 Účty s prázdnym heslom
    Počas auditu sa musíte uistiť, že v systéme nie sú žiadne alebo zablokované účty, ktoré vám umožňujú prihlásiť sa do systému bez zadania hesla. Toto pravidlo je možné skontrolovať pomocou príkazu:

    # cat /etc/shadow | awk -F: ($2==””)(tlač $1)’

    2.2 Kontrola zložitosti hesla
    Počas auditu je potrebné skontrolovať nastavenie zložitosti hesla, aby sa znížilo riziko útokov hrubou silou (brute-force) alebo slovníkovými útokmi na heslo. Na nastavenie tejto politiky v systéme je potrebné použiť moduly PAM (pluggable Authentication Modules).
    Audítor môže skontrolovať príslušné nastavenie v konfiguračnom súbore:

    # vi /etc/pam.d/system-auth

    2.3 Kontrola platnosti hesla

    V rámci auditu by ste mali skontrolovať nastavenie doby platnosti hesla. Ak chcete skontrolovať čas vypršania platnosti hesla, použite príkaz zmeniť. Tento príkaz zobrazí podrobné informácie o dátume vypršania platnosti hesla, ako aj o dátume jeho poslednej zmeny.
    Nasledujúci príkaz sa používa na zobrazenie informácií o „veku“ hesiel:

    #chage -l užívateľské meno

    Ak chcete zmeniť čas vypršania platnosti hesla pre konkrétneho používateľa, môžete použiť nasledujúce príkazy:

    #chage -M 60 používateľské meno
    #chage -M 60 -m 7 -W 7 užívateľské meno

    Možnosti (na nastavenie dátumu vypršania platnosti hesla):
    -M - maximálny dátum spotreby v dňoch.
    -m je minimálny dátum vypršania platnosti v dňoch.
    -W - nastavenie výstrahy v dňoch.

    2.4 Používanie opakovaných hesiel
    Nastavenia autorizácie v systéme musia byť v súlade s politikou hesiel. Súbor obsahujúci históriu hesiel sa nachádza v /etc/security/opasswd. Ak chcete skontrolovať, postupujte podľa týchto krokov:

    pre RHEL: otvorte súbor '/etc/pam.d/system-auth':

    # vi /etc/pam.d/system-auth

    pre Ubuntu/Debian/Linux Mint: otvorte súbor '/etc/pam.d/common-password':

    # vi /etc/pam.d/common-password

    Do sekcie „autorizácia“ pridajte nasledujúci riadok:

    auth dostatočný pam_unix.so likeauthnullok

    Ak chcete zakázať používanie posledných šiestich hesiel, pridajte nasledujúci riadok:

    Dostatočné heslo pam_unix.so nullokuse_authtok md5 shadow Remember=6

    Po vykonaní príkazu bude systém uchovávať históriu predchádzajúcich šiestich hesiel a ak sa ktorýkoľvek používateľ pokúsi heslo aktualizovať pomocou niektorého z posledných šiestich, dostane chybové hlásenie.

    3. Zabezpečené nastavenia pripojenia
    Protokoly vzdialeného pripojenia Telnet a Rlogin sú veľmi staré a zraniteľné kvôli prenosu hesla cez sieť v nezašifrovanej forme. Pre vzdialené a bezpečné pripojenie sa musí použiť zabezpečený protokol Secure Shell (SSH). Audítor sa tiež musí uistiť, že možnosť root prihlásenie vypnuté, predvolený port SSH zmenený, vzdialený prístup povolený len pre konkrétnych oprávnených používateľov. Nastavenia, ktoré sa majú skontrolovať, sú v konfiguračnom súbore SSH:

    1. #vi /etc/ssh/sshd_config

    3.1 Prihláste sa ako superuser (prihlásenie root)

    Počas auditu by mal audítor overiť, že vzdialené prihlásenie s právami superužívateľa root je zakázané.

    # PermitRootLogin = áno
    3.2 Overte prihlásenie do servisného účtu SSH

    Počas auditu by mal audítor skontrolovať účet služby pomocou prihlásenia SSH bez hesla. Správcovia systému zvyčajne používajú túto funkciu na naprogramované zálohy, prenosy súborov a spúšťanie skriptov v režime vzdialeného ovládania.

    Naposledy skontrolujte, či sú vaše nastavenia sshd_config (/etc/ssh/sshd_config) správne.

    # PermitRootLogin bez hesla

    # RSAAutentifikácia = áno

    #PubkeyAuthentication=áno

    3.3 Kontrola prístupových zoznamov v DenyHosts a Fail2ban
    Pri audite je potrebné skontrolovať nastavenie prístupových zoznamov DenyHosts A Fail2ban . Sú to skripty používané na monitorovanie a analýzu protokolov prístupu SSH a na ochranu pred útokmi hrubou silou pomocou hesla.

    Vlastnosti DenyHost:

    • ukladá a sleduje protokoly zo súboru /var/log/secure , ktorý označuje všetky úspešné a neúspešné pokusy o prihlásenie a filtruje ich.
    • monitoruje neúspešné pokusy o prihlásenie
    • odosiela e-mailové upozornenia o zablokovaných hostiteľoch a podozrivých pokusoch o prihlásenie
    Funkcie Fail2ban:
    • Ukladá a sleduje protokoly zo súborov /var/log/secure A /var/log/auth.log , /var/log/pwdfail
    • vysoko prispôsobiteľné a viacvláknové
    • pravidelne monitoruje protokolové súbory

    4. Kontrola systémových protokolov
    Počas auditu sa musíte uistiť, že démon SysLog beží a že všetky významné udalosti, ktoré sa vyskytnú v systéme, sú zaznamenané v protokoloch udalostí. Audit by mal tiež zabezpečiť, aby politika uchovávania denníka udalostí zohľadňovala požiadavky platného práva a bezpečnostnej politiky.

    4.1 Protokoly udalostí v systéme Linux:

    /var/log/auth.log – protokol autorizačného systému (prihlásenia a autentifikačný mechanizmus).
    /var/log/dpkg.log - protokol inštalácie/odstránenia balíkov pomocou dpkg.
    /var/log/yum.log - protokol inštalácie/odstránenia balíkov pomocou yum.
    /var/log/faillog – Protokol neúspešných pokusov o prihlásenie a ich limit pre každý účet.
    /var/log/kern.log – protokol jadra, (podrobný protokol správ z jadra Linuxu).
    /var/log/maillog alebo /var/log/mail.log – protokol poštového servera.
    /var/log/wtmp – log prihlásenia (čas a trvanie logovania všetkých používateľov systému).
    /var/run/utmp - informácie o užívateľoch aktuálne prihlásených do systému.
    /var/log/lastlog - záznamy predchádzajúcich prihlásení.
    /var/log/boot - informácie, ktoré sa zaznamenávajú počas zavádzania systému

    5. Ochrana systémových súborov

    5.1 Ochrana bootloadera GRUB

    Na ochranu zavádzača GRUB musí správca použiť šifrovanie hesla formát MD5 :

    # grub-md5-crypt

    Po vykonaní príkazu musí správca súbor otvoriť /boot/grub/menu.lst alebo /boot/grub/grub.conf a pridajte heslo MD5:

    # vi /boot/grub/menu.lst

    #vi /boot/grub/grub.conf

    Novo vytvorené heslo MD5 je možné pridať do konfiguračného súboru GRUB.

    5.2 Ochrana zavádzacieho adresára /BOOT

    Počas auditu je potrebné skontrolovať stav adresára /boot, keďže jadro systému a súvisiace súbory sa nachádzajú v adresári /boot. Musíte sa uistiť, že tento adresár má prístup len na čítanie, čo zabraňuje neoprávneným zmenám dôležitých súborov v systéme. Ak chcete skontrolovať, otvorte súbor /etc/fstab a skontrolujte konfiguráciu:

    Súbor musí obsahovať riadok:

    LABEL=/boot /boot ext2 predvolene,ro 1 2

    5.3 Kontrola otvorených portov a aktívnych pripojení

    Na kontrolu služieb spustených v systéme možno použiť nasledujúci skript:

    #!/bin/bash
    if (($(ps -ef | grep -v grep | grep $service | wc -l) > 0))
    potom
    echo "$service beží!!!"
    inak
    /etc/init.d/$service start
    fi

    Zobrazenie sieťových pripojení

    # netstat -anop
    alebo
    # lsof -i(lsof -ni)
    alebo
    # iptraf

    Odpočúvacie porty
    Pomocou príkazu Netstat môžete zobraziť všetky otvorené porty a ich priradené príkazy. Príklad skriptu:

    # netstat-tulpn
    Skript na skenovanie portov je:
    skenovať() (
    ak [[ -z $1 || -z$2]]; potom
    echo „Používanie: 0 USD
    vrátiť
    fi
    localhost=1 $
    miestne porty=()
    puzdro 2 doláre
    *-*)
    IFS=- koniec začiatku čítania<<< “$2”
    for ((port=štart; port<= end; port++)); do
    porty+=($port)
    hotový
    ;;
    *,*)
    IFS=, čítanie portov -ra<<< “$2”
    ;; *)
    porty+=($2) ;;
    esac
    pre port v „$(ports[@])“; robiť
    alarm 1 "echo >/dev/tcp/$host/$port" &&
    echo "port $port je otvorený" ||
    echo "port $port je uzavretý"
    hotový
    }

    firewall iptables

    Počas auditu musíte skontrolovať konfiguráciu brány firewall systému Linux, aby ste zabránili neoprávnenému prístupu. Na riadenie prevádzky musia byť vytvorené pravidlá v iptables, ktoré budú filtrovať prichádzajúce, odchádzajúce a preposielané pakety na základe IP adresy a čísla portu TCP/UDP.

    # iptables -n -L -v --čísla-riadkov

    ICMP/vysielacie požiadavky

    Počas auditu musíte overiť, či sú systémy nakonfigurované tak, aby ignorovali požiadavky ping a broadcast. Ak to chcete urobiť, uistite sa, že súbor "/etc/sysctl.conf" pridal nasledujúce riadky:

    # ignorovať požiadavky ICMP:
    net.ipv4.icmp_echo_ignore_all = 1
    # ignorovať požiadavky na vysielanie:
    net.ipv4.icmp_echo_ignore_broadcasts = 1

    5.4 Kontrola nainštalovaných aktualizácií

    Systémy musia mať nainštalované najnovšie aktualizácie:

    # mňam aktualizácií
    #mňam kontrolná aktualizácia

    6. Kontrola automaticky vykonaných úloh CRON

    Audítor by mal skontrolovať, kto má povolené a zakázané vykonávať úlohy v crone. Cron prístup je riadený pomocou súborov /etc/cron.allow A /etc/cron.deny.

    # echo ALL >>/etc/cron.deny

    7. Nútená bezpečnostná kontrola SELINUX

    Počas auditu je dôležité kontrolovať stav SELinux . Tento mechanizmus musí byť v systéme povolený.
    K dispozícii sú tri režimy SELinux :

    • Presadzovanie: Politika SELinux je presadzovaná. SELinux zakazuje prístup na základe pravidiel politiky SELinux.
    • Permisívne: Politika SELinux nie je presadzovaná. SELinux nezamietne prístup, ale odmietnutia sa zaznamenávajú ako akcie, ktoré by boli odmietnuté, ak by bola politika nastavená na vynútenie.
    • Disabled: SELinux je vypnutý. Používajú sa iba diskrétne pravidlá DAC.

    Počas auditu môžete použiť nasledujúci skript na kontrolu stavu SELinux alebo použiť príkazy system-configselinux, getenforce alebo sestatus:

    ENABLED=`cat /selinux/enforce`
    if [ “$POVOLENÉ” == 1 ]; potom
    echo „SELinux je povolený, vypnúť? (Áno nie):"
    zakázať čítanie
    if [ $zakázať == "áno" ]; potom
    echo "vypnutie selinuxu"
    setenforce 0
    fi
    fi

    Skript LBSA na kontrolu základných možností zabezpečenia

    LBSA (Linux Basic Security Audit skript) je základný skript auditu konfigurácie zabezpečenia Linuxu. Skript musí byť spustený z príkazového riadku s privilégiami koreň, alebo ideálne naplánované na pravidelné spustenie pomocou cronu na systematickú kontrolu zmien v konfigurácii.

    Účelom tohto skriptu je rýchlo skontrolovať nastavenia zabezpečenia a stiahnuť správu s popisom možných nastavení, ktoré možno zmeniť, aby sa dosiahol vyšší stupeň zabezpečenia. V prípade, že neexistujú žiadne odporúčania pre niektorú možnosť, skript jednoducho zobrazí jeden riadok so spracovaním kontroly a konečné rozhodnutie zostáva vždy na správcovi. Pred spustením testu vývojári dôrazne odporúčajú, aby ste si prečítali príručku a preštudovali odporúčané časti, kde nájdete ďalšie informácie.

    V aktuálnom vydaní (verzia 1.0.49) skript vyhľadáva nasledujúce možnosti:

    • zraniteľnosti v nastaveniach účtu
    • zraniteľnosti v nastaveniach SSH
    • zraniteľnosti v dočasných adresároch a adresároch súborového systému načítaného do RAM (napríklad v /tmp, /var/tmp /dev/)
    • oprávnenia súborov, stav systémových adresárov
    • -konfigurácia služieb DRBD a Hearbeat

    Skript je dosť veľký, preto sme ho na stránku nedávali.

    V tomto článku sa zoznámime s hlavnými nástrojmi na vytvrdzovanie Linuxu. V ruštine sa to nazýva niečo ako "kontrola úrovne bezpečnosti linuxových systémov a posúdenie správnosti konfigurácií z hľadiska informačnej bezpečnosti." Samozrejme, programy nielen preskúmame, ale uvedieme aj príklady ich použitia.

    Vlastný audítor, alebo ochranka na vlastnú päsť

    Administrátori a ešte viac audítori IS často stoja pred úlohou preveriť bezpečnosť veľkého počtu hostiteľov vo veľmi krátkom čase. A samozrejme, v segmente Enterprise existujú špecializované nástroje na riešenie týchto problémov, napríklad bezpečnostné skenery siete. Som si istý, že všetky z nich – od otvorených zdrojov enginu OpenVAS až po komerčné produkty ako Nessus alebo Neexpose – sú našim čitateľom známe. Tento softvér sa však zvyčajne používa na vyhľadávanie zastaraného a teda zraniteľného softvéru a na následné spustenie správy opráv. Navyše nie všetky skenery berú do úvahy niektoré špecifické vlastnosti vstavaných bezpečnostných mechanizmov Linuxu a iných open source produktov. A v neposlednom rade záleží na cene emisie, pretože komerčné produkty si môžu dovoliť len firmy, ktoré na tento biznis vyčlenia rozpočty.

    Preto dnes budeme hovoriť o špecializovanej sade voľne distribuovaných nástrojov, ktoré dokážu diagnostikovať aktuálnu úroveň zabezpečenia systému, posúdiť potenciálne riziká, napríklad „extra služby“ trčiace na internete alebo nebezpečnú predvolenú konfiguráciu a dokonca aj navrhnúť možnosti nápravy zistených nedostatkov. Ďalšou výhodou použitia týchto nástrojov je schopnosť replikovať typické farmárske testovacie skripty z ľubovoľného počtu linuxových systémov a vytvoriť zdokumentovanú testovaciu základňu vo forme protokolov a samostatných správ.

    Praktické aspekty bezpečnostného auditu

    Ak sa pozriete očami audítora, prístup k testovaniu možno rozdeliť na dva typy.

    najprv- ide o súlad s takzvanými požiadavkami na dodržiavanie predpisov, tu sa kontroluje prítomnosť povinných bezpečnostných prvkov predpísaných v akejkoľvek medzinárodnej norme alebo „best practice“. Klasickým príkladom sú požiadavky PCI DSS pre platobné IT systémy, SOX404, séria NIST-800, .

    Po druhé- ide o čisto racionálny prístup založený na otázke „Čo ešte možno urobiť na zvýšenie bezpečnosti?“. Neexistujú žiadne povinné požiadavky - iba vaše vedomosti, bystrá hlava a šikovné ruky. Ide napríklad o aktualizáciu verzie jadra a/alebo balíkov aplikácií, povolenie, vynútenie a nastavenie firewallu.

    Všetko, čo súvisí s druhým prístupom, sa zvyčajne nazýva špeciálnym pojmom. otužovanie, ktoré možno definovať aj ako „akcie zamerané na posilnenie úrovne počiatočnej bezpečnosti operačného systému (alebo programu) najmä pravidelnými prostriedkami“.

    Súlad s požiadavkami na súlad sa zvyčajne kontroluje pri príprave na absolvovanie povinného auditu, akým je PCI DSS alebo iný certifikačný audit. Podrobnejšiu pozornosť budeme venovať zložke Kalenie. Všetci hlavní vývojári ponúkajú za svoje produkty Pokyny na kalenie- príručky obsahujúce tipy a odporúčania, ako zvýšiť bezpečnosť, berúc do úvahy bežné bezpečnostné mechanizmy a špecifiká softvéru. Takže, Red Hat, Debian, Oracle, Cisco majú podobné manuály.

    INFO

    Hardening je pojem zo sveta informačnej bezpečnosti, ktorý označuje proces zaisťovania bezpečnosti systému (programu) znižovaním jeho zraniteľnosti a spravidla využívaním iba štandardných utilít alebo ochranných mechanizmov.

    sudo apt-get aktualizácia sudo apt-get install lynis

    A pre distribúcie orientované na RPM (po pridaní príslušných úložísk):

    Yum install linus -y

    Inštalácia na macOS:

    $ brew hľadať lynis $ brew nainštalovať lynis

    Na spustenie Lynis stačí zadať aspoň jeden kľúč. Ak chcete napríklad spustiť všetky dostupné testy, mali by ste zadať prepínač -c (skontrolovať všetko, skontrolovať všetko):

    # Typická sada testov systému auditu sudo lynis # Kompletná sada auditov systému sudo lynis -c testovacia sada # Vzdialená kontrola vzdialeného systému auditu hostiteľa







    Pred auditom je vždy dobré skontrolovať, či je k dispozícii nová verzia Lynis:

    Informácie o aktualizácii Lynis && Kontrola aktualizácie lynis

    Pomôcka Lynis má okrem štandardného ešte jeden režim - neprivilegovaný beh:

    Lynis audit --pentest

    Ak chcete zadať meno audítora, ktorý test začal, stačí pridať parameter -auditor :

    Systém auditu Sudo lynis -c -auditor Ocko

    V ktorejkoľvek fáze auditu môže proces overovania pokračovať (Enter) alebo násilne ukončiť (Ctrl+C). Výsledky vykonaných testov sa zapíšu do Lynis logu v /var/log/lynis.log . Upozorňujeme, že protokol sa prepíše pri každom spustení pomôcky.

    Na systematické testovanie v automatickom režime môžete pomocou prepínača -cronjob priradiť príslušnú úlohu plánovaču Cron. V tomto prípade pomôcka pobeží podľa zadanej šablóny (konfigurácie) a nebude zobrazovať žiadne interaktívne správy, otázky ani upozornenia. Všetky výsledky sa uložia do denníka. Tu je napríklad skript na spustenie pomôcky s predvolenou konfiguráciou raz za mesiac:

    #!/bin/sh AUDITOR="automatizované" DATE=$(dátum +%Y%m%d) HOST=$(názov hostiteľa) LOG_DIR="/var/log/lynis" REPORT="$LOG_DIR/report-$( HOST).$(DATE)" DATA="$LOG_DIR/report-data-$(HOST).$(DATE.txt" cd /usr/local/lynis ./lynis -c –auditor "$(AUDITOR)" --cronjob > $(REPORT) mv /var/log/lynis-report.dat $(DATA) # Koniec

    Uložte tento skript do adresára /etc/cron.monthly/lynis. A nezabudnite pridať cesty na ukladanie protokolov (/usr/local/lynis a /var/log/lynis), inak to nemusí fungovať správne.

    Môžete vidieť zoznam všetkých príkazov dostupných na volanie:

    Lynis ukazuje príkazy

    Obzvlášť zvedaví sa môžu pozrieť na nastavenia z predvolenej konfigurácie:

    Nastavenia relácie Lynis

    Stručný návod na prácu s nástrojom:

    muž lynis

    Možnosti pre možné stavy na základe výsledkov kontroly sú obmedzené na nasledujúci zoznam: NONE, WEAK, HOTOVO, FOUND, NOT_FOUND, OK, WARNING.


    Spustenie individuálnych testov v Lynis

    V praxi môže byť potrebné vykonať len niekoľko testov. Napríklad, ak váš server vykonáva iba funkcie poštového servera alebo Apache. Na to môžeme použiť voľbu -tests. Syntax príkazu je nasledovná:

    Lynis testuje "Test-IDs"

    Ak je pre vás ťažké porozumieť kvôli veľkému počtu testovacích ID, môžete použiť skupinový parameter -test-category . Pri tejto možnosti Lynis spúšťa iba testovacie ID, ktoré spadajú do špecifickej kategórie. Napríklad plánujeme spustiť testy firewallu a jadra:

    ./lynis -tests-category "kernel firewallu"

    Funkcionalitu Lynis navyše rozširujú rôzne pluginy, ktoré si môžete pridávať svojpomocne, prípadne môžete nové vložiť do už existujúceho adresára.

    Návrhy na opravu

    Všetky varovania budú uvedené po výsledkoch. Každý z nich začína varovným textom, potom je test, ktorý ho vygeneroval, uvedený v zátvorkách vedľa neho. Nasledujúci riadok navrhuje riešenie problému, ak nejaké existuje. V skutočnosti je posledný riadok URL, kde si môžete pozrieť podrobnosti a nájsť ďalšie odporúčania, ako problém vyriešiť.

    Profily

    Profily, ktoré riadia audit, sú definované v súboroch s príponou .prf nachádza v adresári /etc/lynis. Predvolený profil má názov predvídateľne: default.prf . Vývojári neodporúčajú upravovať ho priamo: akékoľvek zmeny, ktoré chcete vykonať v audite, je najlepšie pridať do súboru custom.prf umiestneného v rovnakom adresári.

    Pokračovanie dostupné len pre členov

    Možnosť 1. Pripojte sa ku komunite „stránky“ a prečítajte si všetky materiály na stránke

    Členstvo v komunite počas určeného obdobia vám umožní prístup ku VŠETKÝM materiálom Hackerov, zvýši vašu osobnú kumulatívnu zľavu a umožní vám získať profesionálne hodnotenie Xakep Score!