Revizija dostopa do datotek linux. Najboljša orodja za revizijo varnosti Linuxa. Ta storitev vključuje

Varnost Linux strežniki je zelo pomembno za zaščito vaših podatkov, intelektualne lastnine in časa pred hekerji. Za varnost operacijskega sistema Linux je odgovoren skrbnik sistema. V tem članku si bomo ogledali dvajset stvari, ki jih morate narediti s svojim operacijskim sistemom Linux, da bo ves čas varen. Če to domači računalnik, potem morda nima smisla toliko skrbeti za varnost; dovolj bodo močna gesla in blokiranje dostopa do vrat iz interneta. Toda v primeru javnega strežnika morate biti pozorni na zagotavljanje njegove zaščite.

Ta navodila so primerna za vsako distribucijo, ne glede na to ali uporabljate CentOS, Red Hat ali Ubuntu, Debian.

1. Šifriranje komunikacije

Vsi podatki, ki se prenašajo po omrežju, so odprti za spremljanje. Zato je potrebno posredovane podatke šifrirati, kjer je to mogoče, z uporabo gesel, ključev ali certifikatov.

Za prenos datotek uporabite scp, ssh, rsync ali sftp. Možno je tudi priklopiti oddaljeni datotečni sistem v vaš domači imenik z orodji, kot je shhfs.

GnuPG vam omogoča šifriranje in podpisovanje vaših podatkov s posebnim zasebni ključ. Na voljo so tudi funkcije za upravljanje ključev in dostop do javnih ključev.

Fugu je grafično orodje za prenos datotek po protokolu SFTP. SFTP je zelo podoben FTP-ju, vendar je celotna seja šifrirana. To pomeni, da se ne pošiljajo nobena gesla ali ukazi odprta oblika. Zato so takšni prenosi manj ranljivi za tretje osebe. Uporabite lahko tudi FileZilla, ki je medplatformska odjemalec FTP s podporo za FTS preko SSH/TLS in SSH Prenos datoteke Protokol (SFTP).

OpenVPN je učinkovit in lahek odjemalec VPN s podporo za šifriranje SSH.

2. Poskusite ne uporabljati FTP, Telnet, Rlogin in RSH

V večini omrežij lahko uporabniška imena, gesla iz ukazov FTP, Telnet, RSH prestreže kdorkoli v istem omrežju z vohanjem paketov. Skupna odločitev Ta težava je uporaba OpenSSH, SFTP ali SFTP, ki običajnemu FTP doda SSL ali TLS. Zaženite ta ukaz, da odstranite NIS, RSH in druge podedovane storitve:

yum izbriši inetd xinetd ypserv tftp-strežnik telnet-strežnik rsh-serve

3. Zmanjšajte količino programske opreme

Ali res potrebujete nameščene vse spletne storitve? Ne nameščajte nepotrebnih stvari programsko opremo da bi se izognili ranljivostim v teh programih. Za ogled uporabite upravitelja paketov nameščenih programov in odstranite vse nepotrebne:

nameščen seznam yum
paket seznama $yum
$yum odstranite paket

dpkg --seznam
$ dpkg --informacijski paket
$ apt-get odstranite paket

4. En avto – en servis

Zagon različnih storitev na ločenih strežnikih oz virtualni stroji. To omejuje število storitev, ki so lahko ogrožene. Na primer, če lahko napadalec vdre v Apache, bo dobil dostop do celotnega strežnika. Vključno s storitvami, kot so MySQL, e-poštni strežnik itd. Za virtualizacijo lahko uporabite programsko opremo, kot je XEN ali OpenVZ.

5. Jedro in programsko opremo Linuxa posodabljajte

Uporaba varnostnih popravkov je zelo pomemben del ohranjanja varnosti vašega strežnika Linux. Operacijski sistem ponuja vsa orodja za posodabljanje sistema in posodobitev na nove različice. Vse varnostne posodobitve je treba uporabiti čim prej. Tudi tukaj morate uporabiti upravitelja paketov. Na primer:

Ali za sisteme, ki temeljijo na Debianu:

posodobitev sudo apt && nadgradnja sudo apt

Red Hat ali Fedora lahko konfigurirate tako, da vas obvesti po e-pošti, ko so na voljo nove varnostne posodobitve. Prav tako lahko konfigurirate samodejno posodabljanje prek cron ali pa uporabite Debianov aptcron, da vas obvesti, ko je treba sistem posodobiti.

6. Uporabite varnostne razširitve v sistemu Linux

Operacijski sistem Linux ima različne varnostne popravke, ki jih je mogoče uporabiti za zaščito pred napačnimi konfiguracijami ali zlonamerno programsko opremo. Lahko pa uporabite tudi dodatne sisteme za nadzor dostopa do aplikacij, kot sta SELinux ali AppArrmor.

SELinux ponuja različne varnostne politike za jedro Linuxa. Tukaj lahko z vlogami nadzirate dostop do vseh sistemskih virov. Samo program, katerega vloga to dovoljuje, lahko dostopa do določenega vira in tudi pravice superuporabnika niso pomembne. SELinux močno poveča varnost sistema Linux, saj se upošteva tudi root navaden uporabnik. Več podrobnosti je opisanih v ločenem članku.

7. Uporabniški računi in močna gesla

Za ustvarjanje in vzdrževanje uporabniških računov uporabite ukaza useradd in usermod. Poskrbite za dobro in močno geslo, vsebovalo naj bo vsaj osem znakov, po možnosti v različnih velikih črkah, med katerimi naj bo Posebni simboli ali številke. Na primer 8 znakov, od katerih je sedem črk in en simbol ali številka. Uporabite orodja, kot je John the ripper, da poiščete šibka uporabniška gesla na strežniku, in konfigurirajte pam_cracklib.so za uveljavitev politike gesel.

8. Občasno spremenite gesla

Ukaz za spremembo vam omogoča, da določite število dni pred datumom prisilne spremembe gesla. Te informacije uporablja sistem, da določi, kdaj naj jih uporabnik spremeni. Te nastavitve se nahajajo v /etc/login.defs. Če želite onemogočiti staranje gesla, vnesite naslednji ukaz:

spremeni uporabniško ime -l

Če želite pridobiti informacije o nizu poteka gesla, vnesite ukaz:

Vse lahko konfigurirate tudi ročno v datoteki /etc/shadow:

(uporabnik): (geslo): (zadnja_sprememba):(največji_dnevi): (najmanjši_dnevi): (Opozorilo):(deaktiviraj):(vrstica_izteka):

  • Minimalno število dni- minimalni interval med spremembami gesla, to je, kako pogosto lahko uporabnik spremeni geslo.
  • Največje število dni- koliko dni bo geslo veljavno, po preteku tega obdobja bo uporabnik prisiljen spremeniti geslo.
  • Opozorilo- število dni, po katerem bo uporabnik opozorjen, da mora spremeniti geslo.
  • vrstica_izteka- število dni od 1. januarja 1970, ko bo račun popolnoma onemogočen.

chage -M 60 -m 7 -W 7 uporabniško ime

Priporočljivo je tudi, da uporabnikom preprečite uporabo starih gesel, sicer bodo vsi poskusi, da bi jih prisilili k spremembi gesel, izničeni.

9. Blokirajte račune po neuspešnih poskusih prijave

V operacijskem sistemu Linux lahko uporabite ukaz faillog za ogled neuspešnih poskusov prijave uporabnikov. Z njim lahko tudi nastavite omejitev neuspešnih poskusov vhod. Vsi podatki o neuspelih poskusih prijave so shranjeni v datoteki /var/log/faillog. Za ogled vnesite:

Če želite nastaviti omejitev poskusov prijave za določen račun, uporabite:

faillog -r -u uporabnik

Račune lahko tudi ročno blokirate ali odblokirate z ukazom passwd. Za blokiranje uporabite:

passwd -l uporabnik

In za odklepanje:

passwd -u uporabnik

Prav tako je priporočljivo preveriti, ali so v sistemu računi s praznimi gesli. Če želite to narediti, zaženite:

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

Preverite tudi, ali obstajajo uporabniki s skupino ali ID-jem 0. Takšen uporabnik mora biti samo en in to je root. Preverite lahko s tem ukazom:

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

Obstajati mora samo ena vrstica:

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

Če obstajajo drugi, jih izbrišite. Uporabniki in še posebej njihova šibka gesla so ena najbolj ranljivih stvari, ki lahko zlomijo varnost v Linuxu.

10. Onemogočite korensko prijavo

Za ohranitev varnosti vašega sistema Linux se nikoli ne prijavite kot root uporabnik. Za pridobitev potrebnih dovoljenj in zagon lahko uporabite sudo pravi ukaz v imenu superuporabnika. Ta ukaz vam omogoča, da ne razkrijete gesla superuporabnika drugim skrbnikom, vsebuje pa tudi orodja za spremljanje, omejevanje in sledenje dejavnosti.

11. Fizična varnost strežnika

Varnost strežnika Linux mora vključevati fizično varnost. Omejiti morate fizični dostop do strežniške konzole. Konfigurirajte BIOS tako, da zagon z zunanjih medijev, kot so DVD, CD, USB, ni podprt. Nastavite tudi geslo za BIOS in zagonski nalagalnik GRUB, da zaščitite njihove nastavitve.

12. Onemogočite nepotrebne storitve

Onemogoči vse neuporabljene storitve in demone. Prav tako ne pozabite odstraniti teh storitev iz zagona. Seznam vseh aktivnih storitev v sistemih Red Hat si lahko ogledate z ukazom:

chkconfig --list | grep "3:vklopljeno"

Če želite onemogočiti storitev, uporabite:

storitev storitev stop
$ chkconfig storitev izklopljena

Poiščite vsa vrata, ki jih odprejo programi:

Enako lahko storite s skenerjem nmap:

nmap -sT -O lokalni gostitelj

Uporabite iptables, da zaprete vsa vrata, ki ne bi smela biti dostopna iz omrežja. Ali pa ustavite nepotrebne storitve, kot je opisano zgoraj.

13. Odstranite strežnik X

Strežnik X na strežniškem računalniku je popolnoma neobvezen. Ni vam treba izvajati grafičnega okolja na namenskem strežniku Apache ali e-poštnem strežniku. Odstranite to programsko opremo, da izboljšate varnost in zmogljivost.

14. Konfigurirajte Iptables

iptables je uporabniški prostorski program za konfiguriranje požarnega zidu Netfilter, vgrajenega v jedro. Omogoča vam, da filtrirate ves promet in dovolite le določene vrste prometa. Uporabite tudi TCPWrappers - sistem ACL za filtriranje dostopa do interneta. Z iptables lahko preprečite številne vrste napadov DOS. Varnost omrežja v Linuxu je zelo pomemben vidik splošne varnosti sistema.

15. Konfigurirajte jedro

Datoteka /etc/sysctl.conf shranjuje nastavitve jedra, ki se naložijo in uporabijo med zagonom sistema.

Omogoči zaščito pred prekoračitvijo medpomnilnika execshield:

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

Omogoči zaščito pred ponarejanjem IP:

net.ipv4.conf.all.rp_filter=1

Onemogoči preusmeritev naslova IP:

net.ipv4.conf.all.accept_source_route=0

Prezri zahteve za oddajanje:

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

Zapiši vse ponarejene pakete:

net.ipv4.conf.all.log_martians = 1

16. Razdelite trdi disk na particije

Razdelitev trdega diska na particije glede na namen datotek izboljša varnost operacijskih sistemov Linux. Priporočljivo je ustvariti ločene razdelke za naslednje imenike:

  • /domov
  • /var in /var/tmp

Naredite ločene particije za korenske imenike Apache in FTP strežniki. Odprite datoteko /etc/fstab in nastavite posebne možnosti za zahtevane particije:

  • noexec- na tej particiji ne izvajajte nobenih programov ali izvedljivih datotek, dovoljeni so samo skripti
  • nodev- ne dovolite simboličnih ali posebnih naprav na tej particiji.
  • nosuid- ne dovoli dostopa SUID/SGID za programe iz tega razdelka.

17. Uporabite omejitve prostora na disku

Omejite razpoložljivi prostor na disku za uporabnike. Če želite to narediti, ustvarite diskovno kvoto v /etc/fstab, znova namestite datotečne sisteme in ustvarite bazo podatkov o diskovnih kvotah. To bo izboljšalo varnost v sistemu Linux.

18. Onemogočite IPv6

Naslednja generacija internetnega protokola IPv6 bo v prihodnosti nadomestila že uporabljen IPv4. Ampak naprej ta trenutek Ni orodij za preverjanje varnosti omrežja, ki temelji na IPv6. Mnogi Linux distribucije Privzeto dovoli uporabo IPv6. Hekerji lahko pošiljajo neželen promet, ne da bi mu skrbniki lahko sledili. Torej, če te storitve ne potrebujete, jo onemogočite.

19. Onemogočite neuporabljene dvojiške datoteke SUID in SGID

Vse izvršljive datoteke, za katere je omogočena zastavica SUID ali SGID, so potencialno nevarne. Ta zastavica pomeni, da se bo program izvajal s pravicami superuporabnika. To pomeni, da če je v programu kakšna ranljivost ali napaka, potem lokalna oz oddaljeni uporabnik bo lahko uporabljal to datoteko. Poiščite vse take datoteke z naslednjim ukazom:

najdi / -perm +4000

Poiščite datoteke z nastavljeno zastavo SGID:

najdi / -perm +2000

Ali pa združimo vse to v en ukaz:

najdi / \(-perm -4000 -o -perm -2000 \) -natisni
$ find / -path -prune -o -type f -perm +6000 -ls

Vsako najdeno datoteko boste morali podrobno preučiti, da boste razumeli, kako potrebna je določena datoteka.

20. Javne datoteke

Priporočljivo je tudi, da poiščete datoteke, ki jih lahko spreminjajo vsi uporabniki v sistemu. Če želite to narediti, uporabite naslednji ukaz:

najdi /dir -xdev -tip d \(-perm -0002 -a ! -perm -1000 \) -print

Zdaj morate preveriti, ali so pravice za skupino in lastnika posamezne datoteke pravilno nastavljene in ali to predstavlja varnostno tveganje.

Priporočljivo je tudi, da poiščete vse datoteke, ki ne pripadajo nikomur:

najdi /dir -xdev \(-nouser -o -nogroup \) -print

21. Uporabite centraliziran sistem za preverjanje pristnosti

Brez centraliziranega sistema za preverjanje pristnosti uporabniški podatki postanejo nedosledni, kar lahko privede do zastarelosti poverilnic in pozabe na račune, ki bi morali biti že zdavnaj izbrisani. Centralizirana storitev vam bo omogočila ohranitev nadzora nad uporabniškimi računi in podatki za preverjanje pristnosti v različnih Linux sistemi in Unix. Podatke za preverjanje pristnosti lahko sinhronizirate med strežniki. Vendar ne uporabljajte storitve NIS, raje se obrnite proti Open DAP.

Ena izmed zanimivih implementacij takega sistema je Kerberos. Omogoča avtentikacijo uporabnikov z uporabo zasebnega ključa v omrežjih, kjer je mogoče prestreči in spremeniti pakete. Kerberos uporablja simetrični ključ za šifriranje podatkov in za delovanje potrebuje center za upravljanje ključev. Konfigurirate lahko oddaljeno prijavo, oddaljeno kopiranje, varno kopiranje datotek med sistemi in druga opravila z visoko stopnjo varnosti.

22. Beleženje in revizija

Nastavite beleženje in nadzor za zbiranje in shranjevanje vseh neuspešnih prijav in poskusov vdora. Privzeto se vsi dnevniki ali vsaj večina nahajajo v mapi /var/log/. O tem, za kaj so odgovorni določeni ljudje, smo podrobneje govorili v ločenem članku.

Dnevnike si lahko ogledate s pripomočki, kot sta logwatch ali logcheck. Omogočajo zelo enostavno branje dnevnikov. Ne ogledate si lahko celotne datoteke, ampak samo dogodke, ki vas zanimajo, in si tudi pošljete obvestilo po e-pošti.

Nadzorujte sistem s storitvijo auditd. Program zapiše na disk vse revizijske dogodke, ki vas zanimajo. Vse nastavitve revizije so shranjene v datoteki /etc/audit.rules.Ko se sistem zažene, storitev prebere vsa pravila iz te datoteke. Lahko ga odprete in konfigurirate vse po potrebi ali uporabite ločen pripomoček- auditctl. Konfigurirate lahko naslednje:

  • Dogodki ob zagonu in zaustavitvi sistema
  • Datum in čas dogodka
  • Uporabniški dogodki (na primer dostop do določene datoteke)
  • Vrsta dogodka (urejanje, dostop, brisanje, pisanje, posodobitev itd.)
  • Uspeh ali neuspeh pri izvedbi dogodka
  • Snemanje dogodkov spremembe omrežnih nastavitev
  • Beležite spremembe uporabnikov in skupin
  • Spremljanje sprememb datotek

23. Zaščitite svoj strežnik OpenSSH

Dovoli samo uporabo protokola 2:

Onemogoči prijavo kot superuporabnik:

24. Namestite IDS

IDS ali sistem za zaznavanje vdorov poskuša zaznati sumljivo, zlonamerno dejavnost, kot je npr DOS napad, skeniranje vrat ali celo poskus vdora v računalnik s spremljanjem omrežnega prometa.

Dobra praksa je, da takšno programsko opremo namestite, preden je sistem izpostavljen internetu. Namestite lahko AIDE, ki je HIDS (Host based IDS), ki lahko nadzira vse vidike notranjosti vašega sistema.

Snort je program za zaznavanje poskusov vdora v omrežje. Sposoben je analizirati in beležiti pakete ter analizirati omrežni promet v realnem času.

25. Zaščitite svoje datoteke in imenike

Linux ima odlično zaščito pred nepooblaščenim dostopom do datotek. Vendar pa dovoljenja, ki jih nastavi Linux in datotečni sistem, ne pomenijo nič, ko ima napadalec fizični dostop do računalnika in se lahko preprosto poveže HDD računalnik v drug sistem za kopiranje vaših podatkov. Lahko pa preprosto zaščitite svoje datoteke s šifriranjem:

  • Za šifriranje in dešifriranje datoteke z geslom uporabite GPG
  • Datoteke lahko zaščitite tudi z OpenSSL
  • Šifriranje imenika poteka z uporabo ecryptfs
  • TrueCrypt je brezplačno orodje za šifriranje diska za Windows in Linux

zaključki

Zdaj bo varnost operacijskega sistema Linux v vašem računalniku močno povečana. Ne pozabite občasno nastaviti zapletenih gesel. V komentarje napišite svoje najljubše sistemsko varnostno orodje.

Varovanje informacij je prednostna naloga vsakega podjetja, ki deluje na internetu. Virusne okužbe in zunanji napadi ter nepooblaščen dostop do informacij – vse to prinaša velika finančna tveganja in tveganja ugleda. Zato lastnike podjetij pri izbiri strežniške platforme vedno zanima stopnja varnosti virov.
Da bi preverili, kako dobro deluje varnostni sistem in ali so v njem kakšne ranljivosti ali luknje, je priporočljivo vsaj enkrat mesečno opraviti revizijo varnosti strežnika.

Kaj je vključeno v revizijo varnosti strežnika

Tudi na videz nepomemben dejavnik, kot so nepravilne nastavitve samega strežnika ali zastarela programska oprema, lahko postane varnostna grožnja. Revizija pomaga prepoznati varnostne pomanjkljivosti in pravočasno ukrepati za njihovo odpravo, preden pride do okužbe ali kraje podatkov.
Skrbnik strežnika preveri nameščeno programsko opremo in njeno skladnost najnovejše posodobitve, oceni varnostne nastavitve strežnika in odpravi morebitne napake ter analizira skladnost nastavitev pravic dostopa zaposlenih do določenih virov.

Kako sami revidirati virtualni namenski strežnik

Vsak uporabnik lahko preveri varnost strežnikov na platformah Windows ali Linux, za to pa ni potrebno imeti posebnega znanja programiranja.
Varnostni pregled lahko razdelimo na več stopenj:

Fizični dostop

V primeru namenskega strežnika je fizični dostop do strežnika tretjih oseb privzeto omejen, to omogoča podatkovni center. Toda uporabnik lahko dodatno nastavi geslo za dostop do BIOS-a.

Požarni zid

Za stalno spremljanje programske opreme in vrat mora biti pravilno konfigurirana in omogočena. Požarni zid Windows. Za Linux lahko za nadzor dostopa uporabite sistem SELinux. Pri nas lahko tudi najamete strojni požarni zid Cisco ASA ali Fortinet FortiGate 60D.

Datotečni sistem

Preveri za posodobitve

Konfigurirajte strežnik za samodejno prejemanje in namestitev posodobitev.

Politika gesel

Namestite z uporabo lokalne politike Windows varnost Obvezno je zahtevati zapletena gesla, njihovo veljavnost, kot tudi blokado računa po več neuspešnih avtorizacijah ali vnosu praznega gesla.

Nadzor dnevnika

Omogočite beleženje kritičnih segmentov infrastrukture in jih redno preverjajte.

Omrežna varnost

Za segmentacijo gostitelja in varnost povezave je priporočljiva uporaba VPN in VLAN.
Spremenite tudi privzete nastavitve in posredujte servisna vrata omrežne opreme.
Za šifriranje prometa lahko uporabite storitev IPsec. Za ogled odprtih vrat uporabite pripomoček Netstat.

Nadzor dostopa

Omejite pravice dostopa uporabnikov do kritičnih datotek, onemogočite dostop gostom in uporabnikom s praznimi gesli. Onemogočite neuporabljene vloge in aplikacije na strežniku.

Rezerva

Uporabite storitev varnostnega kopiranja datotek, je donosna in zanesljiva. Ne shranjujte varnostnih kopij nešifriranih. Če pri nas najamete strežnik, lahko izberete lokacijo za varnostne kopije.

Dostop do baze podatkov

Kritične podatkovne baze naj bodo shranjene na različnih strežnikih SQL. Zagon morate konfigurirati kot uporabnik z minimalnimi pravicami ali z vnaprej konfiguriranega belega seznama naslovov IP.

Protivirusna zaščita

Za zagon strežnika Namestitev sistema Windows Samodejno posodobljena protivirusna programska oprema je priporočljiva, ko uporabniki delajo z omrežno shrambo. Za Namestitev Linuxa protivirusni program ni potreben, pod pogojem, da se varnost strežnika redno spremlja in da se nadzoruje nepooblaščen dostop. Pripomoček Tiger je lahko koristen za to.

Takšna revizija enkrat mesečno bo pomagala preveriti pravilno delovanje strežnika, odpraviti ranljivosti in spremljati varnost omrežne infrastrukture.

Večina podjetniških in večkomponentnih sistemov, kot je npr SAP , Oracle DB uporabljajo v svoji platformi operacijski sistem temelji na Linux . Glede na to so deležni tako velike pozornosti revizorjev IT. Danes vam bomo v tem članku predstavili več brezplačnih orodij, ki so predstavljena v obliki skriptov in uporabljajo standardne mehanizme OS za zagotavljanje hitre revizije varnostne konfiguracije.

Spodaj opisani sistemski ukazi in skripti, ki se uporabljajo za ekspresno revizijo varnostnih možnosti sistemov OS Linux, temeljijo na priporočilih za varnostno preverjanje, ki jih je objavila skupnost ISACA v priročniku za varnostno revizijo/zagotovitev operacijskega sistema UNIX/LINUX.

1. Preverjanje računa

1.1 Seznam vseh uporabnikov
Seznam uporabnikov je shranjen v datoteki /etc/passwdfile. Za pridobitev seznama uporabnikov lahko uporabite naslednji skript:

  1. bin/bash
  2. # uporabnikilistinthesystem.sh
  3. # šteje in navede obstoječe "prave" uporabnike v sistemu.
  4. echo “[*] Obstoječi uporabniki (razvrščeni po abecedi):”
  5. grep '/bin/bash' /etc/passwd | grep -v 'root' | cut -f1
  6. -d':' | vrsta
  7. echo -n “[*] Število najdenih dejanskih uporabnikov: “
  8. grep '/bin/bash' /etc/passwd | grep -v 'root' | wc -l
1.2 Seznam blokiranih računov
Med revizijo je potrebno preveriti seznam blokiranih in odblokiranih uporabnikov ( ime računa ). Za to bo deloval naslednji ukaz:
  1. #!/bin/bash
  2. # geslo –s accountName

1.3 Ogled statistike za vse uporabnike

  • Revizor mora zagotoviti, da ekipa ac vključeni v sistem za pregled aktivnosti uporabnikov:
    1. #!/bin/bash
    Če si želite ogledati aktivnost seje povezave uporabnika s skupnimi vrednostmi za vsak dan, uporabite ukaz:
    1. #!/bin/bash
    2. # ac -d
    Za prikaz informacij o aktivnosti seje (v urah) uporabniške povezave "uporabnik" :
    1. #!/bin/bash
    2. # uporabnik ac
    1.4 Ogled aktivnosti uporabnika
    Sistemske aplikacije psacct ali acct se izvajajo ozadje in spremlja aktivnost vsakega uporabnika v sistemu, kot tudi sredstva, ki jih ta porabi. Če želite preveriti aktivnost uporabnika v sistemu, zaženite naslednji skript:
    1. #!/usr/bin/envksh
    2. zadnji -Fa|awk '
    3. /wtmp se začne/ ( naslednji; )
    4. /še vedno prijavljen/ ( naslednji; )
    5. $0 == ponovni zagon ( naslednji; )
    6. NF > 0 (
    7. če(NR > 1)
    8. printf("
      ”);
    9. printf("Uporabnik:t%s
      ”, $1); #uporabnik
    10. printf (“Začetek:t%s %s %s %s
      ”, $3, $4, $5, $6);
    11. if($9 == “dol”)
    12. printf("Konec:tshutdown
      ”);
    13. printf (“Konec:t%s %s %s %s
      ”, $9, $10, $11, $12);
    14. if(substr ($NF, 1, 1) == “(“)
    15. t = $NF;
    16. h = “lokalni gostitelj”;
    17. t = $(NF-1);
    18. h = $NF;
    19. gsub("[()]", "", t);
    20. printf("Čas vklopa:t%s
      ”, t);
    21. printf("Oddaljeni gostitelj:t%s
      «, h);
  • 2. Preverjanje politike gesel

    2.1 Računi s praznim geslom
    Med revizijo se je treba prepričati, da v sistemu ni ali so blokirani računi, ki omogočajo prijavo v sistem brez vnosa gesla. To pravilo lahko preverite z ukazom:

    # mačka /etc/shadow | awk -F: ($2==””)(natisni $1)’

    2.2 Preverjanje kompleksnosti gesla
    Med revizijo je treba preveriti nastavitve zapletenosti gesla, da zmanjšate tveganje grobe sile (brute force) ali slovarskih napadov na geslo. Če želite nastaviti to pravilo v vašem sistemu, morate uporabiti module za preverjanje pristnosti vtičnikov (PAM).
    Revizor lahko preveri ustrezno nastavitev v konfiguracijski datoteki:

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

    2.3 Preverjanje roka veljavnosti gesla

    Med revizijo morate preveriti nastavitev veljavnosti gesla. Če želite preveriti datum poteka gesla, morate uporabiti ukaz sprememba. Ta ukaz prikaže podrobne informacije o datumu veljavnosti gesla in datumu, ko je bilo nazadnje spremenjeno.
    Naslednji ukaz se uporablja za ogled informacij o "starosti" gesel:

    #sprememba -l uporabniško ime

    Če želite spremeniti obdobje veljavnosti gesla za določenega uporabnika, lahko uporabite spodnje ukaze:

    #chage -M 60 uporabniško ime
    #sprememba -M 60 -m 7 -W 7 uporabniško ime

    Možnosti (za nastavitev datuma veljavnosti gesla):
    -M – najdaljši rok veljavnosti v dnevih.
    -m – minimalno obdobje veljavnosti v dnevih.
    -W – nastavitev opozorila v dnevih.

    2.4 Uporaba podvojenih gesel
    Nastavitve avtorizacije sistema morajo biti skladne s politiko gesel. Datoteka z zgodovino gesel se nahaja v /etc/security/opaswd. Če želite preveriti, morate opraviti naslednje korake:

    za RHEL: odprite datoteko '/etc/pam.d/system-auth':

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

    za Ubuntu/Debian/Linux Mint: odprite datoteko '/etc/pam.d/common-password':

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

    Dodajte to vrstico v razdelek 'auth':

    auth dovolj pam_unix.so likeauthnullok

    Če želite preprečiti uporabo zadnjih šestih gesel, dodajte naslednjo vrstico:

    Geslo zadostuje pam_unix.so nullokuse_authtok md5 shadow Remember=6

    Po izvedbi ukaza bo sistem shranil zgodovino prejšnjih šestih gesel in če bo kateri koli uporabnik poskušal posodobiti geslo s katerim od zadnjih šestih, bo prejel sporočilo o napaki.

    3. Nastavitve varne povezave
    Protokoli oddaljena povezava do sistema Telnet in Rlogin sta zelo stara in ranljiva zaradi prenosa gesla po omrežju v nešifrirani obliki. Za oddaljeno in varno povezavo je treba uporabiti varen protokol Varna lupina (SSH). Revizor mora zagotoviti tudi možnost korenska prijava onemogočeno, privzeta vrata SSH spremenjena, oddaljen dostop omejeno samo na določene pooblaščene uporabnike. Nastavitve, ki se preverjajo, so v konfiguracijski datoteki SSH:

    1. # vi /etc/ssh/sshd_config

    3.1 Prijavite se kot superuporabnik (root prijava)

    Med revizijo mora revizor preveriti prepoved oddaljena prijava v sistem s pravicami root superuporabnika.

    # PermitRootLogin = da
    3.2 Preverjanje storitvenega računa za prijavo SSH

    Med revizijo mora revizor preveriti storitveni račun s prijavno vrednostjo SSH brez gesla. običajno, sistemski skrbniki uporabite to funkcijo za programirano varnostne kopije, prenos datotek in izvajanje skriptov v načinu daljinskega upravljanja.

    Zadnjič preverite, ali so vaše nastavitve sshd_config (/etc/ssh/sshd_config) pravilne.

    # DovoliteRootLogin brez gesla

    # RSAAavtentikacija = da

    # PubkeyAuthentication = da

    3.3 Preverjanje dostopnih seznamov v DenyHosts in Fail2ban
    Med revizijo morate preveriti nastavitve seznama dostopov DenyHosts in Fail2ban . To so skripte, ki se uporabljajo za spremljanje in analiziranje dnevnikov dostopa do SSH ter zaščito pred napadi na silo z gesli.

    Značilnosti DenyHosts:

    • shrani in sledi dnevnikom iz datoteke /var/log/secure , beleži vse uspešne in neuspešne poskuse prijave ter jih filtrira.
    • spremlja neuspele poskuse prijave
    • pošilja po E-naslov obvestilo o blokiranih gostiteljih in sumljivih poskusih vhod
    Funkcije Fail2ban:
    • Shranjuje in spremlja dnevnike iz datotek /var/log/secure in /var/log/auth.log , /var/log/pwdfail
    • zelo prilagodljiv in večniten
    • redno spremlja dnevniške datoteke

    4. Preverjanje sistemskih dnevnikov
    Med revizijo se morate prepričati, da demon SysLog deluje in da so vsi pomembni dogodki, ki se zgodijo v sistemu, zabeleženi v dnevnikih dogodkov. Pri reviziji je treba zagotoviti tudi, da politika shranjevanja dnevnikov dogodkov upošteva zahteve veljavne zakonodaje in varnostnih politik.

    4.1 Dnevniki dogodkov v Linuxu:

    /var/log/auth.log – dnevnik avtorizacijskega sistema (prijave in mehanizem avtentikacije).
    /var/log/dpkg.log – dnevnik namestitve/odstranitve paketov z uporabo dpkg.
    /var/log/yum.log – dnevnik namestitve/odstranitve paketov z uporabo yum.
    /var/log/faillog – dnevnik neuspelih poskusov prijave in njihovo največje število za vsak račun.
    /var/log/kern.log – dnevnik jedra (podroben dnevnik sporočil iz jedra Linuxa).
    /var/log/maillog ali /var/log/mail.log – dnevnik poštnega strežnika.
    /var/log/wtmp – prijavni dnevnik (čas registracije in trajanje dela vseh uporabnikov sistema).
    /var/run/utmp – informacije o uporabnikih, ki so trenutno registrirani v sistemu.
    /var/log/lastlog – zapisi prejšnjih prijav.
    /var/log/boot – informacije, ki se zabeležijo med zagonom sistema

    5. Zaščitite sistemske datoteke

    5.1 Zaščita zagonskega nalagalnika GRUB

    Za zaščito zagonskega nalagalnika GRUB mora skrbnik uporabiti šifriranje gesla format MD5 :

    # grub-md5-crypt

    Po izvedbi ukaza mora skrbnik odpreti datoteko /boot/grub/menu.lst oz /boot/grub/grub.conf in dodajte geslo MD5:

    # vi /boot/grub/menu.lst

    # vi /boot/grub/grub.conf

    Novo ustvarjeno geslo MD5 je mogoče dodati konfiguracijsko datoteko GRUB.

    5.2 Zaščita zagonskega imenika /BOOT

    Med revizijo je potrebno preveriti stanje imenika /boot saj se sistemsko jedro in povezane datoteke nahajajo v imeniku /boot. Zagotoviti morate, da ima ta imenik dostop samo za branje, da preprečite nepooblaščeno spreminjanje. pomembne datoteke v sistemu. Če želite preveriti, odprite datoteko /etc/fstab in preverite konfiguracijo:

    Datoteka mora vsebovati vrstico:

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

    5.3 Preverjanje odprtih vrat in aktivnih povezav

    Naslednji skript lahko uporabite za preverjanje storitev, ki se izvajajo v sistemu:

    #!/bin/bash
    if (($(ps -ef | grep -v grep | grep $service | wc -l) > 0))
    potem
    echo "$service se izvaja!!!"
    drugače
    /etc/init.d/$service start
    Fi

    Pogled omrežne povezave

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

    Vrata za poslušanje
    Z ukazom Netstat si lahko ogledate vsa odprta vrata in z njimi povezane ukaze. Primer skripta:

    #netstat–tulpn
    Skript za skeniranje vrat je:
    skeniraj() (
    če [[ -z $1 || -z $2 ]]; potem
    echo »Uporaba: $0
    vrnitev
    fi
    lokalni gostitelj = $1
    lokalna pristanišča=()
    kovček za 2 USD
    *-*)
    IFS=- branje začetek konec<<< “$2”
    za ((vrata=začetek; vrata<= end; port++)); do
    vrata+=($vrata)
    Končano
    ;;
    *,*)
    IFS=, branje -ra vrat<<< “$2”
    ;; *)
    vrata+=($2) ;;
    esac
    za vrata v “$(ports[@])”; narediti
    alarm 1 “echo >/dev/tcp/$host/$port” &&
    echo “vrata $vrata so odprta” ||
    echo "vrata $port so zaprta"
    Končano
    }

    Požarni zid iptables

    Med revizijo morate preveriti konfiguracijo požarnega zidu Linux, da preprečite nepooblaščen dostop. Za nadzor prometa je treba v iptables ustvariti pravila, ki bodo filtrirala dohodne, odhodne in posredovane pakete glede na naslov IP in številko vrat TCP/UDP.

    # iptables -n -L -v --številke vrstic

    ICMP/zahteve za oddajanje

    Med revizijo je treba preveriti, ali so sistemi konfigurirani tako, da ignorirajo zahteve ping in oddajanje. Če želite to narediti, se prepričajte, da je v datoteki “/etc/sysctl.conf” dodane so naslednje vrstice:

    # prezri zahteve ICMP:
    net.ipv4.icmp_echo_ignore_all = 1
    # prezri zahteve za oddajanje:
    net.ipv4.icmp_echo_ignore_broadcasts = 1

    5.4 Preverjanje nameščenih posodobitev

    Najnovejše posodobitve morajo biti nameščene v sistemu:

    # yum posodobitve
    # yum preverite posodobitev

    6. Preverjanje samodejno izvedenih opravil CRON

    Revizor mora preveriti, kdo sme in kdo ne sme opravljati cron opravil. Dostop do crona se nadzoruje z uporabo datotek /etc/cron.allow in /etc/cron.deny.

    # echo ALL >>/etc/cron.deny

    7. Testiranje prisilnega varnostnega načina SELINUX

    Med revizijo je pomembno preveriti stanje SELinux . Ta mehanizem mora biti omogočen v sistemu.
    Obstajajo trije načini SELinux :

    • Uveljavljanje: Politika SELinux je vsiljena. SELinux zavrne dostop na podlagi pravil politike SELinux.
    • Dovoljeno: pravilnik SELinux ni uveljavljen. SELinux ne zavrne dostopa, vendar se zavrnitve beležijo kot dejanja, ki bi bila zavrnjena, če bi bil pravilnik preklopljen v način uveljavljanja.
    • Onemogočeno: SELinux je onemogočen. Uporabljajo se samo diskretna pravila DAC.

    Med revizijo lahko uporabite naslednji skript za preverjanje statusa SELinux ali uporabite ukaze system-configselinux, getenforce ali sestatus:

    ENABLED=`cat /selinux/enforce`
    if [ “$ENABLED” == 1 ]; potem
    echo »SELinux je omogočen, onemogočen? (da/ne):"
    onemogoči branje
    if [ $disable == “yes” ]; potem
    echo "onemogočanje selinux"
    setforce 0
    fi
    fi

    Skript LBSA za preverjanje osnovnih varnostnih možnosti

    LBSA (Linux Basic Security Audit script) je osnovni skript za nadzor varnostne konfiguracije sistemov Linux. Skript je treba zagnati iz ukazne vrstice s privilegiji korenina ali v idealnem primeru teči po rednem urniku z uporabo načrtovalnika cron za sistematično preverjanje sprememb konfiguracije.

    Namen tega skripta je hitra revizija varnostnih nastavitev in nalaganje poročila z opisom možnih parametrov, ki jih je mogoče spremeniti, da se zagotovi višja stopnja varnosti. Če ni priporočil za nobeno možnost, skript preprosto prikaže eno vrstico z obdelavo preverjanja, končna odločitev pa vedno ostane pri skrbniku. Preden zaženete skeniranje, razvijalci močno priporočajo, da preberete priročnik in preberete priporočene razdelke za več informacij.

    V trenutni izdaji (različica 1.0.49) skript pregleda naslednje možnosti:

    • ranljivosti v nastavitvah računa
    • ranljivosti v nastavitvah SSH
    • ranljivosti v začasnih imenikih in imenikih datotečnega sistema, naloženega v RAM (na primer v /tmp, /var/tmp /dev/)
    • dovoljenja za datoteke, stanje sistemskih imenikov
    • rkonfiguracija storitev DRBD in Hearbeat

    Scenarij je precej velik, zato ga nismo dali na stran.

    V tem gradivu se bomo seznanili z glavnimi pripomočki za utrjevanje Linuxa. V ruščini se to imenuje nekaj takega kot "preverjanje ravni varnosti sistemov Linux in ocenjevanje pravilnosti konfiguracij z vidika informacijske varnosti." Programov seveda ne bomo samo pregledali, temveč podali tudi primere njihove uporabe.

    Vaš lastni revizor ali lastna varnost

    Administratorji, še bolj pa revizorji informacijske varnosti, se pogosto soočajo z nalogo, da v zelo kratkem času preverijo varnost večjega števila gostiteljev. In seveda, za reševanje teh težav v segmentu Enterprise obstajajo specializirana orodja, na primer skenerji za varnost omrežja. Prepričan sem, da so vsi - od odprtokodnega motorja OpenVAS do komercialnih izdelkov, kot sta Nessus ali Nexpose - znani našim bralcem. Vendar se ta programska oprema običajno uporablja za iskanje zastarele in zato ranljive programske opreme in nato zagon upravljanja popravkov. Poleg tega vsi skenerji ne upoštevajo nekaterih posebnih lastnosti vgrajenih zaščitnih mehanizmov Linuxa in drugih odprtokodnih izdelkov. In nenazadnje je pomembna tudi cena izdaje, saj si komercialne izdelke lahko privoščijo le podjetja, ki za ta posel namenijo proračun.

    Zato bomo danes govorili o specializiranem naboru prosto distribuiranih pripomočkov, ki lahko diagnosticirajo trenutno raven varnosti sistema, ocenijo morebitna tveganja, na primer "dodatne storitve", ki štrlijo na internetu, ali nezanesljivo privzeto konfiguracijo in celo ponuditi možnosti za odpravo ugotovljenih pomanjkljivosti. Druga prednost uporabe teh orodij je zmožnost podvajanja standardnih testnih scenarijev kmetije iz poljubnega števila sistemov Linux in ustvarjanje dokumentirane testne baze v obliki dnevnikov in posameznih poročil.

    Praktični vidiki revizije varnosti

    Če pogledate skozi oči revizorja, lahko pristop testiranja razdelimo na dve vrsti.

    najprej- to je skladnost s tako imenovanimi zahtevami skladnosti, pri čemer se preverja prisotnost obveznih varnostnih elementov, predpisanih v katerem koli mednarodnem standardu ali "najboljši praksi". Klasičen primer so zahteve PCI DSS za plačilne IT sisteme, SOX404, serija NIST-800.

    drugič- To je povsem racionalen pristop, ki temelji na vprašanju "Kaj je še mogoče storiti za krepitev varnosti?" Ni obveznih zahtev - le vaše znanje, bistra glava in spretne roke. To je na primer posodabljanje različice jedra in/ali paketov aplikacij, omogočanje, vsiljevanje, nastavitev požarnega zidu.

    Vse, kar se nanaša na drugi pristop, običajno imenujemo poseben izraz Utrjevanje, ki ga je mogoče opredeliti tudi kot "ukrepe, katerih cilj je povečati raven začetne varnosti operacijskega sistema (ali programa) predvsem z uporabo standardnih sredstev."

    Skladnost z zahtevami glede skladnosti se običajno preverja med pripravami na obvezno presojo, kot je PCI DSS ali druga certifikacijska presoja. Več pozornosti bomo namenili komponenti utrjevanja. Vsi večji razvijalci ponujajo svoje izdelke Smernice za utrjevanje- navodila z nasveti in priporočili, kako okrepiti varnost ob upoštevanju standardnih varnostnih mehanizmov in specifike programske opreme. Tako imajo Red Hat, Debian, Oracle, Cisco podobna navodila.

    INFO

    Hardening je izraz iz sveta informacijske varnosti, ki se nanaša na proces zagotavljanja varnosti sistema (programa) z zmanjševanjem njegove ranljivosti in praviloma le s standardnimi pripomočki ali zaščitnimi mehanizmi.

    Sudo apt-get update sudo apt-get install lynis

    In za distribucije, usmerjene v RPM (po dodajanju ustreznih skladišč):

    Yum namestite linus -y

    Namestitev na macOS:

    $ brew iskanje lynis $ brew namestitev lynis

    Če želite zagnati Lynis, morate določiti vsaj en ključ. Na primer, če želite zagnati vse razpoložljive teste, morate podati stikalo -c (označi vse):

    # Tipičen nabor testov sudo lynis revizijski sistem # Celoten nabor testov sudo lynis revizijski sistem -c # Skeniranje oddaljenega gostiteljskega revizijskega sistema na daljavo







    Pred revizijo je vedno dobro preveriti, ali je na voljo nova različica Lynisa:

    Informacije o posodobitvi Lynis && preverjanje posodobitve Lynis

    Pripomoček Lynis ima poleg standardnega še en način - neprivilegiran zagon:

    Revizija Lynis --pentest

    Če želite vnesti ime revizorja, ki je začel testiranje, samo dodajte parameter -auditor :

    Sudo lynis revizijski sistem -c -revizor očka

    V kateri koli fazi revizije je mogoče postopek preverjanja nadaljevati (Enter) ali prisilno prekiniti (Ctrl+C). Rezultati izvedenih testov bodo zapisani v dnevnik Lynis v /var/log/lynis.log. Upoštevajte, da bo dnevnik prepisan ob vsakem zagonu pripomočka.

    Za sistematično testiranje v samodejnem načinu lahko s stikalom -cronjob dodelite ustrezno opravilo razporejevalniku Cron. V tem primeru se bo pripomoček zagnal v skladu z navedeno predlogo (config) in ne bo prikazal nobenih interaktivnih sporočil, vprašanj ali opozoril. Vsi rezultati bodo shranjeni v dnevniku. Tukaj je na primer skript za zagon pripomočka s privzeto konfiguracijo enkrat mesečno:

    #!/bin/sh AUDITOR="avtomatizirano" DATE=$(datum +%Y%m%d) HOST=$(ime gostitelja) 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 > $(POROČILO) mv /var/log/lynis-report.dat $(PODATKI) # Konec

    Shranite ta skript v imenik /etc/cron.monthly/lynis. In ne pozabite dodati poti za shranjevanje dnevnikov (/usr/local/lynis in /var/log/lynis), sicer morda ne bo delovalo pravilno.

    Ogledate si lahko seznam vseh ukazov, ki so na voljo za klic:

    Lynis pokaže ukaze

    Tisti, ki ste še posebej radovedni, si lahko ogledate nastavitve iz privzete konfiguracije:

    Nastavitve prikaza Lynis

    Kratka navodila za uporabo pripomočka:

    Človek lynis

    Možnosti možnih statusov na podlagi rezultatov preverjanja so omejene na naslednji seznam: NI, ŠIBKO, KONČANO, NAJDENO, NI_NAJDENO, OK, OPOZORILO.


    Izvajanje individualnih testov v Lynisu

    V praksi bo morda potrebno izvesti le nekaj testov. Na primer, če vaš strežnik izvaja samo funkcije poštnega strežnika ali Apache. Za to lahko uporabimo parameter -tests. Sintaksa ukaza je naslednja:

    Lynis -testi "Test-IDs"

    Če težko razumete zaradi velikega števila testnih identifikatorjev, potem lahko uporabite skupinski parameter -test-category. S to možnostjo Lynis izvaja samo testne ID-je, ki spadajo v določeno kategorijo. Načrtujemo na primer zagon požarnega zidu in testov jedra:

    ./lynis -tests-category "jedro požarnih zidov"

    Poleg tega je funkcionalnost Lynisa razširjena z različnimi vtičniki, ki jih lahko dodate sami ali pa dodate nove v obstoječi imenik.

    Predlogi za popravek

    Vsa opozorila bodo navedena po rezultatih. Vsak se začne z opozorilnim besedilom, nato pa je zraven v oklepaju naveden test, ki ga je ustvaril. Naslednja vrstica predlaga rešitev problema, če ta obstaja. Pravzaprav je zadnja vrstica URL, kjer si lahko ogledate podrobnosti in poiščete dodatna priporočila, kako odpraviti težavo.

    Profili

    Profili, ki upravljajo revidiranje, so definirani v datotekah s pripono .prf, ki se nahaja v imeniku /etc/lynis. Privzeti profil je poimenovan predvidljivo: default.prf. Razvijalci ne priporočajo neposrednega urejanja: bolje je, da vse spremembe, ki jih želite narediti v reviziji, dodate v datoteko custom.prf, ki se nahaja v istem imeniku.

    Nadaljevanje je na voljo samo članom

    Možnost 1. Pridružite se skupnosti »site«, da preberete vsa gradiva na spletnem mestu

    Članstvo v skupnosti v določenem obdobju vam bo omogočilo dostop do VSEH hekerskih gradiv, povečalo vaš osebni kumulativni popust in vam omogočilo, da si naberete profesionalno oceno Xakep Score!