Revizija pristupa linux datotekama. Ojačavanje Linuxa. Odabiremo alate za sveobuhvatnu reviziju sigurnosti. Izvođenje pojedinačnih testova u Lynisu

Većina poduzeća i višekomponentnih sustava kao što su SAP , Oracle DB koriste u svojoj platformi operativni sustav temeljen na Linux . S obzirom na to, oni dobivaju veliku pažnju IT revizora. Danas ćemo vam u ovom članku predstaviti nekoliko besplatnih alata predstavljenih u obliku skripti i korištenjem standardnih mehanizama OS-a za pružanje ekspresne revizije sigurnosne konfiguracije.

Sistemske naredbe i skripte opisane u nastavku koje se koriste za ekspresnu reviziju sigurnosnih opcija Linux OS sustava temelje se na preporukama za sigurnosnu provjeru koje je objavila ISACA zajednica u priručniku UNIX/LINUX Operating System Security Audit/Assurance Program.

1.Provjera računa

1.1 Navedite sve korisnike
Popis korisnika pohranjen je u datoteci /etc/passwdfile. Za dobivanje popisa korisnika možete koristiti sljedeću skriptu:

  1. bin/bash
  2. # korisnicipozivaju sustav.sh
  3. # broji i navodi postojeće "prave" korisnike u sustavu.
  4. echo “[*] Postojeći korisnici (poređani po abecedi):”
  5. grep '/bin/bash' /etc/passwd | grep -v 'korijen' | rez -f1
  6. -d':' | vrsta
  7. echo -n “[*] Broj stvarnih korisnika pronađen: “
  8. grep '/bin/bash' /etc/passwd | grep -v 'korijen' | wc -l
1.2 Popis blokiranih računa
Tijekom revizije potrebno je provjeriti popis blokiranih i deblokiranih korisnika ( korisničko ime ). Za to će raditi sljedeća naredba:
  1. #!/bin/bash
  2. # passwd –s accountName

1.3 Pregledajte statistiku za sve korisnike

  • Auditor mora osigurati da tim ak uključeni u sustav za pregled aktivnosti korisnika:
    1. #!/bin/bash
    Za prikaz aktivnosti korisnikove sesije povezivanja s ukupnim iznosima za svaki dan, koristite naredbu:
    1. #!/bin/bash
    2. # ac -d
    Za prikaz informacija o aktivnosti sesije (u satima) korisničke veze "korisnik" :
    1. #!/bin/bash
    2. # ac korisnik
    1.4 Pregled aktivnosti korisnika
    Aplikacije psacct ili acct sustava rade u pozadini i prate aktivnosti svakog korisnika na sustavu, kao i resurse koje troše. Za provjeru aktivnosti korisnika u sustavu pokrenite sljedeću skriptu:
    1. #!/usr/bin/envksh
    2. zadnji -Fa|awk ‘
    3. /wtmp počinje/ ( sljedeći; )
    4. /još uvijek prijavljen/ ( sljedeći; )
    5. $0 == ponovno pokretanje ( sljedeći; )
    6. NF > 0 (
    7. ako (NR > 1)
    8. printf("
      ”);
    9. printf("Korisnik:t%s
      ”, $1); #korisnik
    10. printf (“Početak:t%s %s %s %s
      ”, $3, $4, $5, $6);
    11. if($9 == “dolje”)
    12. printf("Kraj:isključivanje
      ”);
    13. printf (“Kraj: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("Vrijeme uključeno:t%s
      ”, t);
    21. printf("Udaljeni host:t%s
      ”, h);
  • 2. Provjera politike lozinki

    2.1 Računi s praznom lozinkom
    Tijekom revizije potrebno je uvjeriti se da u sustavu ne postoje ili su blokirani računi koji omogućuju prijavu u sustav bez unosa lozinke. Ovo pravilo se može provjeriti naredbom:

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

    2.2 Provjera složenosti lozinke
    Tijekom revizije potrebno je provjeriti postavke složenosti lozinke kako bi se smanjio rizik od grube sile (brute force) ili napada iz rječnika na lozinku. Da biste postavili ovo pravilo na svom sustavu, morate koristiti Plug-in Authentication Modules (PAM).
    Auditor može provjeriti odgovarajuću postavku u konfiguracijskoj datoteci:

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

    2.3 Provjera datuma isteka lozinke

    Tijekom revizije morate provjeriti postavku isteka lozinke. Za provjeru datuma isteka lozinke morate koristiti naredbu promijeniti. Ova naredba izlazi detaljne informacije rok valjanosti lozinke, kao i datum zadnje promjene.
    Sljedeća naredba koristi se za pregled informacija o "starosti" lozinki:

    #chage -l korisničko ime

    Za promjenu razdoblja isteka lozinke za određenog korisnika, možete koristiti naredbe ispod:

    #chage -M 60 korisničko ime
    #chage -M 60 -m 7 -W 7 korisničko ime

    Opcije (za postavljanje datuma isteka lozinke):
    -M – maksimalno razdoblje valjanosti u danima.
    -m – minimalni rok valjanosti u danima.
    -W – postavka upozorenja u danima.

    2.4 Korištenje dvostrukih lozinki
    Postavke autorizacije sustava moraju biti u skladu s politikom lozinki. Datoteka koja sadrži povijest lozinki nalazi se u /etc/security/opaswd. Za provjeru morate izvršiti sljedeće korake:

    za RHEL: otvorite datoteku '/etc/pam.d/system-auth':

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

    za Ubuntu/Debian/Linux Mint: otvorite datoteku '/etc/pam.d/common-password':

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

    Dodajte sljedeći redak u odjeljak 'auth':

    auth dovoljan pam_unix.so likeauthnullok

    Kako biste spriječili korištenje posljednjih šest lozinki, dodajte sljedeći redak:

    Lozinka dovoljna pam_unix.so nullokuse_authtok md5 shadow Remember=6

    Nakon izvršenja naredbe, sustav će pohraniti povijest prethodnih šest lozinki, a ako bilo koji korisnik pokuša ažurirati lozinku pomoću bilo koje od zadnjih šest, dobit će poruku o pogrešci.

    3. Postavke sigurne veze
    Protokoli Telnet i Rlogin za daljinsko povezivanje sa sustavom su vrlo stari i ranjivi, zbog prijenosa lozinke preko mreže u nekriptiranom obliku. Za udaljenu i sigurnu vezu mora se koristiti siguran protokol Sigurna ljuska (SSH). Revizor također treba osigurati da opcija root prijava onemogućeno, zadani SSH port promijenjen, udaljeni pristup dopušten samo određenim ovlaštenim korisnicima. Postavke koje se provjeravaju nalaze se u SSH konfiguracijskoj datoteci:

    1. # vi /etc/ssh/sshd_config

    3.1 Prijavite se kao superkorisnik (root prijava)

    Tijekom revizije revizor bi trebao provjeriti zabranu daljinske prijave s pravima root superkorisnika.

    # PermitRootLogin = da
    3.2 Provjera računa usluge za prijavu na SSH

    Tijekom revizije, revizor mora provjeriti račun usluge s vrijednošću SSH prijave bez lozinke. Administratori sustava obično koriste ovu značajku za programirane sigurnosne kopije, prijenos datoteka i pokretanje skripti u načinu daljinskog upravljanja.

    Posljednji put provjerite jesu li vaše sshd_config postavke (/etc/ssh/sshd_config) točne.

    # DozvoliRootLogin bez lozinke

    # RSAAutentifikacija = da

    # PubkeyAuthentication = da

    3.3 Provjera popisa pristupa u DenyHosts i Fail2ban
    Tijekom revizije morate provjeriti postavke liste pristupa DenyHosts I Fail2ban . To su skripte koje se koriste za praćenje i analizu SSH pristupnih zapisa i zaštitu od napada grubom silom lozinke.

    Značajke DenyHostsa:

    • sprema i prati zapise iz datoteke /var/log/sigurno , bilježi sve uspješne i neuspješne pokušaje prijave te ih filtrira.
    • prati neuspjele pokušaje prijave
    • šalje e-mail obavijesti o blokiranim hostovima i sumnjivim pokušajima prijave
    Značajke Fail2ban-a:
    • Sprema i prati zapise iz datoteka /var/log/sigurno I /var/log/auth.log , /var/log/pwdfail
    • vrlo prilagodljiv i multi-threaded
    • redovito prati datoteke dnevnika

    4. Provjera zapisnika sustava
    Tijekom revizije morate se uvjeriti da SysLog demon radi i da su svi značajni događaji koji se događaju u sustavu zabilježeni u zapisima događaja. Tijekom revizije također je potrebno osigurati da politika pohranjivanja dnevnika događaja uzima u obzir zahtjeve važećeg zakonodavstva i sigurnosnih politika

    4.1 Dnevnici događaja u Linuxu:

    /var/log/auth.log – dnevnik autorizacijskog sustava (prijave i mehanizam autentifikacije).
    /var/log/dpkg.log – dnevnik instalacije/uklanjanja paketa pomoću dpkg.
    /var/log/yum.log – dnevnik instalacije/uklanjanja paketa korištenjem yum.
    /var/log/faillog – dnevnik neuspjelih pokušaja prijave i njihov maksimalan broj za svaki račun.
    /var/log/kern.log – kernel log (detaljni dnevnik poruka iz Linux kernela).
    /var/log/maillog ili /var/log/mail.log – dnevnik poslužitelja pošte.
    /var/log/wtmp – login log (vrijeme registracije i trajanje rada svih korisnika sustava).
    /var/run/utmp – podaci o korisnicima koji su trenutno registrirani u sustavu.
    /var/log/lastlog – zapisi prethodnih prijava.
    /var/log/boot – informacije koje se bilježe tijekom pokretanja sustava

    5. Zaštitite sistemske datoteke

    5.1 Zaštita GRUB bootloadera

    Kako bi zaštitio GRUB pokretački program, administrator mora koristiti enkripciju lozinke MD5 format :

    # grub-md5-kripta

    Nakon izvršenja naredbe, administrator treba otvoriti datoteku /boot/grub/menu.lst ili /boot/grub/grub.conf i dodajte MD5 lozinku:

    # vi /boot/grub/menu.lst

    # vi /boot/grub/grub.conf

    Novostvorena MD5 lozinka može se dodati GRUB konfiguracijskoj datoteci.

    5.2 Zaštita direktorija za pokretanje /BOOT

    Tijekom revizije potrebno je provjeriti status imenika /čizma budući da se jezgra sustava i povezane datoteke nalaze u direktoriju /čizma. Morate osigurati da ovaj direktorij ima pristup samo za čitanje kako biste spriječili neovlaštene promjene važnih datoteka na sustavu. Za provjeru otvorite datoteku /etc/fstab i provjerite konfiguraciju:

    Datoteka mora sadržavati redak:

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

    5.3 Provjera otvorenih portova i aktivnih veza

    Sljedeća skripta može se koristiti za provjeru servisa koji se izvode na sustavu:

    #!/bin/bash
    if (($(ps -ef | grep -v grep | grep $service | wc -l) > 0))
    zatim
    echo “$service radi!!!”
    drugo
    /etc/init.d/$pokretanje usluge
    Fi

    Pogled mrežne veze

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

    Priključci za slušanje
    Pomoću naredbe Netstat možete vidjeti sve otvorene luke i povezane naredbe. Primjer skripte:

    #netstat–tulpn
    Skripta za skeniranje portova je:
    skeniraj() (
    ako [[ -z $1 || -z $2 ]]; zatim
    echo “Upotreba: $0
    povratak
    fi
    lokalni host=$1
    lokalne luke=()
    kutija od 2 USD in
    *-*)
    IFS=- čitanje početak kraj<<< “$2”
    za ((port=start; port<= end; port++)); do
    portovi+=($port)
    učinjeno
    ;;
    *,*)
    IFS=, čitanje -ra portova<<< “$2”
    ;; *)
    portovi+=($2) ;;
    esac
    za port u “$(ports[@])”; čini
    alarm 1 “echo >/dev/tcp/$host/$port” &&
    echo “port $port je otvoren” ||
    echo “port $port je zatvoren”
    učinjeno
    }

    Vatrozid iptables

    Tijekom revizije morate provjeriti konfiguraciju Linux vatrozida kako biste spriječili neovlašteni pristup. Za kontrolu prometa, pravila se moraju kreirati u iptables koja će filtrirati dolazne, odlazne i proslijeđene pakete na temelju IP adrese i broja TCP/UDP porta.

    # iptables -n -L -v --brojevi-linija

    ICMP/broadcast zahtjevi

    Tijekom revizije potrebno je provjeriti jesu li sustavi konfigurirani da ignoriraju zahtjeve za ping i emitiranje. Da biste to učinili, provjerite je li u datoteci “/etc/sysctl.conf” dodani su sljedeći redovi:

    # ignoriraj ICMP zahtjeve:
    net.ipv4.icmp_echo_ignore_all = 1
    # ignoriraj zahtjeve za emitiranje:
    net.ipv4.icmp_echo_ignore_broadcasts = 1

    5.4 Provjera instaliranih ažuriranja

    Najnovija ažuriranja moraju biti instalirana na sustavu:

    # yum ažuriranja
    # yum provjerite ažuriranje

    6. Provjera automatski izvršenih CRON poslova

    Auditor mora provjeriti tko smije, a tko ne smije obavljati cron poslove. Pristup cron-u kontrolira se pomoću datoteka /etc/cron.allow I /etc/cron.deny.

    # echo SVE >>/etc/cron.deny

    7. Testiranje SELINUX Forced Security Mode

    Tijekom revizije važno je provjeriti status SELinux . Ovaj mehanizam mora biti omogućen u sustavu.
    Postoje tri načina SELinux :

    • Provođenje: SELinux pravilo je prisilno. SELinux odbija pristup na temelju pravila pravila SELinuxa.
    • Permisivno: SELinux pravilo se ne provodi. SELinux ne odbija pristup, ali se odbijanja bilježe kao radnje koje bi bile odbijene da je pravilo prebačeno u način rada za provedbu.
    • Onemogućeno: SELinux je onemogućen. Koriste se samo diskretna DAC pravila.

    Tijekom revizije možete koristiti sljedeću skriptu za provjeru statusa SELinuxa ili koristiti naredbe system-configselinux, getenforce ili sestatus:

    ENABLED=`cat /selinux/force`
    if [ “$ENABLED” == 1 ]; zatim
    echo “SELinux je omogućen, onemogućiti? (da ne):"
    onemogućiti čitanje
    if [ $disable == “yes” ]; zatim
    echo "onemogućavanje selinuxa"
    setforce 0
    fi
    fi

    LBSA skripta za provjeru osnovnih sigurnosnih opcija

    LBSA (Linux Basic Security Audit skripta) je osnovna skripta za reviziju sigurnosne konfiguracije Linux sustava. Skripta se mora pokrenuti iz naredbenog retka s privilegijama korijen ili idealno pokrenuti prema redovitom rasporedu koristeći cron planer za sustavnu provjeru promjena konfiguracije.

    Svrha ove skripte je brza revizija sigurnosnih postavki i učitavanje izvješća koje opisuje moguće parametre koji se mogu promijeniti kako bi se osigurao viši stupanj sigurnosti. Ako nema preporuka za bilo koju opciju, skripta jednostavno prikazuje jednu liniju s obradom provjere, a konačna odluka uvijek ostaje na administratoru. Prije pokretanja skeniranja, programeri toplo preporučuju da pročitate priručnik i proučite preporučene odjeljke za više informacija.

    U trenutnom izdanju (verzija 1.0.49), skripta skenira sljedeće opcije:

    • ranjivosti u postavkama računa
    • ranjivosti u SSH postavkama
    • ranjivosti u privremenim direktorijima i direktorijima datotečnog sustava učitanog u RAM (na primjer, u /tmp, /var/tmp /dev/)
    • dopuštenja za datoteke, stanje direktorija sustava
    • rkonfiguracija DRBD i Hearbeat usluga

    Scenarij je prilično velik, pa ga nismo stavili na stranicu.

    Provedite reviziju sigurnosti poslužitelja jednom mjesečno kako biste na vrijeme otkrili moguće probleme povezane s prodorom uljeza u poslužitelj.

    Ako ne vidite nikakve znakove aktivnosti treće strane na VPS-u ili stranici, izvršite sljedeći niz provjera i prilagodbi kako biste zaštitili poslužitelj od hakiranja.

    Postavke razine aplikacije

    Ako je CMS instaliran na poslužitelju, provjerite jesu li instalirana sva najnovija ažuriranja.

    Joomla

    U korijenskom direktoriju stranice pronađite changelog.txt datoteku u kojoj ćete pronaći informacije o verziji CMS-a. Ako je zastarjela, ažurirajte Joomlu.

    Wordpress

    Potražite datoteku wp-includes/version.php u kojoj ćete pronaći informacije o verziji CMS-a. Ako je zastario, ažurirajte Wordpress.

    DLE

    Pretražite datoteku engine/data/config.php, potražite redak version_id i provjerite da verzija nije zastarjela.

    Također provjerite datoteke engine/ajax/updates.php i upgrade/index.php (parametar $dle_version).

    1C-Bitrix

    Potražite datoteku /bitrix/modules/main/classes/general/version.php u kojoj ćete pronaći informacije o verziji CMS-a. Provjerite i datoteku /bitrix/admin/update_system.php. Ako je verzija zastarjela, ažurirajte 1C-Bitrix.

    Drupal

    U korijenskom direktoriju stranice pronađite changelog.txt datoteku u kojoj ćete pronaći informacije o verziji CMS-a. Ako je zastario, ažurirajte Drupal.

    Provjerite verziju kernela u datoteci /modules/system/system.info.

    Također možete otkriti verziju CMS-a putem upravljačke ploče.

    Ček web poslužitelj.

    Apache

    Otvorite Apache konfiguracijsku datoteku (ovisno o verziji, to mogu biti datoteke httpd.conf, httpd2.conf, apache.conf, apache2.conf) i provjerite sadrži li direktivu koja onemogućuje prikaz informacija o verziji web poslužitelja :

    ServerTokens Prod

    Ako ova direktiva nije prisutna, dodajte i spremite datoteku.

    Potražite datoteku secure.conf, otvorite je za pregled i usporedite njezin sadržaj sa sljedećim primjerom:

    Opcije +Uključuje -FollowSymLinks +SymLinksIfOwnerMatch AllowOverride FileInfo AuthConfig Ograničenje Indeksa Opcije Red dopusti,zabrani Dopusti od svih php_admin_value open_basedir "." Opcije - Indeksi Akcija php-cgi /php-bin/php

    Vaš secure.conf ne bi se trebao značajno razlikovati od navedenog primjera.

    Provjerite instalirani MRM naredbom

    Apachectl -V

    Za jaču sigurnost koristite mpm_itk osim ako postoji hitna potreba za mpm_prefork.

    Ako želite promijeniti MRM, izvedite ponovnu instalaciju nakon izrade sigurnosnih kopija konfiguracijskih datoteka. Nakon ponovne instalacije provjerite je li korisnik vlasnik stranice i svih njezinih direktorija.

    Nginx

    Otvorite konfiguracijsku datoteku web poslužitelja (nginx.conf), idite na odjeljak http i provjerite sadrži li direktive koje ograničavaju broj veza s jedne IP adrese:

    Limit_zone ograničava $binary_remote_addr 5m; limit_conn ograničava 10; ili (za najnovije verzije) limit_conn_zone $binary_remote_addr zona=addr:10m; limit_conn adresa 10;

    Ako te direktive nisu prisutne, dodajte i spremite datoteku.

    Blokirajte neke korisničke agente kako biste blokirali neželjeni promet. Dodajte direktivu u http odjeljak Nginx konfiguracijske datoteke

    If ($http_user_agent ~* LWP::Simple|BBBike|wget|msnbot) (vrati 403;)

    Blokirajte neželjenu poštu preporuke dodavanjem direktive u http odjeljak Nginx konfiguracijske datoteke

    If($http_referer ~*(babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen))(return 403;)

    ISPmanager

    Na upravljačkoj ploči ISPmanagera izvršite sljedeće provjere.

    Provjerite je li pristup upravljačkoj ploči ograničen IP adresom.

    Postavite sigurnosnu kopiju podataka ako nije omogućena. Preporučamo korištenje vanjskog pogona za sigurnosno kopiranje kako biste spriječili gubitak podataka zajedno s arhivom.

    PHP

    Otvorite konfiguracijsku datoteku php.ini i dodajte sljedeće direktive.

    Expose_php=Off - onemogućuje prijenos informacija o PHP verziji u HTTP zaglavlju; sql.safe_mode=Uključeno - omogući SQL siguran način rada; post_max_size=8M - ograničenje veličine podataka koji se prenose POST metodom; disable_functions exec, system, passthru, proc_open, shell_exec - onemogućiti neke funkcije iz sigurnosnih razloga.

    NTP

    U NTP konfiguracijskoj datoteci (/etc/ntp.conf prema zadanim postavkama) dodajte retke koji zabranjuju rekurzivne zahtjeve:

    Restrict default kod limited nomodify notrap nopeer noquery restrict -6 default kod limited nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6::1

    Vezati

    U datoteku named.conf postavite sljedeće retke da biste onemogućili rekurzivne upite:

    Dopusti rekurziju ( 127.0.0.1; 82.146.32.0/19; 78.24.216.0/21; 92.63.96.0/20; 62.109.0.0/19; 188.120.224.0/19; 149.154.64.0/21; 37.230.1 12.0/21 ; 94.250.248.0/21; );

    Provjera vlasnika imenika web mjesta

    Provjerite tko je vlasnik glavnog direktorija stranice i svih njegovih poddirektorija.

    Na alatnoj traci ISPmanagera idite na odjeljak “Sustav” -> “Upravitelj datoteka” i otvorite direktorij stranice. Provjerite sadrže li stupci "Vlasnik" i "Grupa" korisnika koji je vlasnik stranice. Za promjenu ovih atributa kliknite gumb Atributi na alatnoj traci.

    Važeća imena vlasnika web mjesta su apache, www, www-data ako koristite mpm_prefork. Preporučujemo korištenje mpm_itk za jačanje sigurnosti.

    Ako web-mjesto sadrži dijeljene mape (na primjer, upload, tmp), tada je važeće ime vlasnika za njih 777. Provjerite je li ovaj korisnik instaliran samo na potrebne direktorije pokretanjem naredbe

    Pronađite ./ -perm 0777

    Pronaći će sve mape i datoteke u vlasništvu 777.

    Postavke na razini operativnog sustava

    rkhunter

    Upotrijebite uslužni program rkhunter za prepoznavanje potencijalnih ranjivosti poslužitelja.

    Da biste instalirali uslužni program, koristite naredbu:

    Yum instaliraj rkhunter - CentOS OS apt-get instaliraj rkhunter - Debian/Ubuntu OS napravi sve čiste instalacije -C /usr/ports/security/rkhunter ili pkg instaliraj rkhunter - FreeBSD OS

    Za ažuriranje baze podataka ovog uslužnog programa, pokrenite naredbe

    Rkhunter --ažuriranje

    Rkhunter --propupd

    Pokrenite provjeru sustava pomoću naredbe

    Rkhunter -c --cs2

    Tijekom postupka provjere morat ćete nekoliko puta pritisnuti tipku Enter za nastavak. Po završetku pojavit će se sažetak rezultata skeniranja.

    Rezultati skeniranja smješteni su u datoteku dnevnika /var/log/rkhunter/rkhunter.log; pregledajte ima li upozorenja i pogrešaka.

    sysctl

    Koristite uslužni program sysctl za upravljanje parametrima jezgre sustava. Otvorite konfiguracijsku datoteku uslužnog programa /etc/sysctl.conf i unesite sljedeće retke.

    Onemogućite mogućnost usmjeravanja dolaznog prometa, jer bi napadač mogao koristiti ovu mogućnost za lažiranje IP adresa:

    Net.ipv4.conf.all.accept_source_route = 0

    Onemogućite odgovore na ICMP zahtjeve na kanalu emitiranja - to će pomoći u sprječavanju napada štrumfiranja:

    Net.ipv4.icmp_echo_ignore_broadcasts = 1

    Onemogući bilježenje netočnih poruka o pogrešci:

    Net.ipv4.icmp_ignore_bogus_error_responses = 1

    Omogući zaštitu od prekoračenja memorije:

    Kernel.exec-shield = 1 (CentOS)

    Omogući korištenje ASLR memorije:

    Kernel.randomize_va_space = 2

    Onemogućite mogućnost prosljeđivanja ICMP poruka:

    Net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0

    Ako ne koristite VPN ili druge posebne aplikacije na poslužitelju, onemogućite prosljeđivanje:

    Net.ipv4.conf.all.forwarding = 0

    Omogućite zaštitu od SYN poplave - upotreba SYN kolačića:

    Net.ipv4.tcp_syncookies = 1

    Postavite broj pokušaja prijenosa SYN-ACK paketa:

    Net.ipv4.tcp_synack_retries = 3

    Postavite vrijeme nakon kojeg poslužitelj provjerava vezu ako se nije koristila dulje vrijeme (prema zadanim postavkama to je 2 sata):

    Net.ipv4.tcp_keepalive_time=1800

    Postavite koliko će se puta veza provjeriti prije zatvaranja:

    Net.ipv4.tcp_keepalive_probes=3

    Postavite vrijeme u kojem utičnica ostaje u stanju FIN-WAIT-2:

    net.ipv4.tcp_fin_timeout=30

    fstab

    Provjerite fstab konfiguracijsku datoteku (/etc/fstab), koja sadrži informacije o diskovima, particijama i uređajima za pohranu, pokazujući kako su montirani na sustav.

    Vi /etc/fstab

    Imajte na umu da nekorijenske particije moraju imati opciju nodev. Ako je /tmp montiran na zasebnoj particiji, dodajte nodev, noexec, nosuid za tu particiju.

    rsyslog

    Provjerite datoteku dnevnika sustava /etc/rsyslog.conf.

    Vi /etc/rsyslog.conf

    Imajte na umu sljedeće retke koji bi trebali izgledati ovako:

    Također provjerite da log datoteka nije prazna, tj. sječa se provodi ispravno.

    sudo

    Provjerite je li uslužni program sudo (ili su) ispravno konfiguriran, što korisniku omogućuje pokretanje nekih naredbi i programa kao root. Postavke za ovaj pomoćni program nalaze se u konfiguracijskoj datoteci /etc/sudoers ili /usr/local/etc/sudoers. Otvorite ga za uređivanje

    Vi /etc/sudoers

    Pronađite redak koji je napisan prema zadanim postavkama i omogućuje root superkorisniku pokretanje bilo koje naredbe.

    Da biste svim korisnicima dali privilegiju pokretanja naredbi kao root, dodajte sljedeći redak:

    SVE SVE=/bin/su ili SVE SVE=/usr/bin/su

    Da biste određenom korisniku dali privilegiju pokretanja samo određenih naredbi kao root, dodajte redak:

    %users ALL=/sbin/mount - grupa korisnika će moći koristiti sudo samo s naredbom montiranja korisnik ALL=/sbin/mount - korisnik korisnik će moći koristiti sudo samo s naredbom montiranja

    Postavke na razini mreže

    Pokretanjem naredbe provjerite koji su portovi na poslužitelju otvoreni i koji ih servisi koriste

    Netstat -tuplnw | awk "(ispiši $4,$NF)" | sortirati | jedinstven

    Na primjer, unos 127.0.0.1:53 748/named znači da imenovani servis koristi port 53. Provjerite rade li samo potrebne usluge i onemogućite sve ostale.

    FTP

    Postavite raspon priključaka koji će se koristiti za pasivni FTP način. Da biste to učinili, otvorite konfiguracijsku datoteku vašeg FTP poslužitelja za uređivanje i dodajte retke:

    za vsftpd.conf:

    Pasv_min_port=1028 pasv_max_port=1048

    za proftpd.conf:

    Pasivni priključci 1028 1048

    Nemojte koristiti FTP protokol osim ako je to apsolutno neophodno; umjesto toga koristite SFTP. Ako je FTP i dalje potreban, dodajte sljedeće retke konfiguracijskoj datoteci:

    za vsftpd.conf:

    Xferlog_enable=DA (čuvanje datoteke dnevnika putem ftp-a) anonymous_enable=NE (zabrana povezivanja anonimnih korisnika) anon_upload_enable=NE anon_mkdir_write_enable=NE

    za proftpd.conf:

    u odjeljku ... uklonite sve odjeljke i dodajte linije

    DenyAll DenyAll

    iptables

    Provjerite je li vatrozid ispravno konfiguriran. Za iptables pokrenite naredbu

    Iptables -nL

    Ova naredba prikazuje sva pravila vatrozida iptables u naredbenom retku. Ova se pravila također mogu vidjeti i uređivati ​​u konfiguracijskoj datoteci vatrozida /etc/sysconfig/iptables - za CentOS OS, /etc/network/if-up.d/ispmgrfw - za Debian/Ubuntu OS.

    U pravilima vatrozida zatvorite sve priključke osim onih koje koriste usluge koje se izvode na poslužitelju. Da biste to učinili, promijenite linije

    :INPUT ACCEPT :FORWARD ACCEPT :OUTPUT ACCEPT on:INPUT DROP :FORWARD DROP :OUTPUT DROP

    Za otvaranje potrebnih priključaka dodajte retke poput

    A INPUT -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -p udp -m udp --dport 53 -j PRIHVATA -A INPUT -p tcp -m multiport --sports 53,80,25,443,953 -j PRIHVATITI

    gdje je 53 broj porta koji treba otvoriti.

    Prije nego što promijenite konfiguracijsku datoteku vatrozida, napravite kopiju radne datoteke.

    Pravila vatrozida mogu se konfigurirati s upravljačke ploče ISPmanager.

    SSH

    Otvorite SSH konfiguracijsku datoteku:

    Vi /etc/ssh/sshd_config

    Provjerite da sljedeći redovi nisu komentirani:

    Protocol 2 (za korištenje druge verzije protokola) IgnoreRhosts da (nemojte koristiti datoteku .rhost) HostbasedAuthentication ne (nemojte autentificirati host) PermitRootLogin ne (zabraniti root pristup) PermitEmptyPasswords ne (ne koristiti prazne lozinke) PermitUserEnvironment ne (zabrani korisniku postavljanje varijabli okruženja) PasswordAuthentication da (dopusti autentifikaciju lozinke)

    Omogućite SFTP dodavanjem retka u sshd_config:

    Podsustav sftp /usr/lib/openssh/sftp-server

    Provjerite je li vaš red čekanja popunjen i uvjerite se da nema neželjenih poruka.

    Pokrenite naredbu mailq i pogledajte popis poruka. Ako je popis jako velik, tada selektivno provjeravajte poruke koje bi mogle biti spam. Pomoću identifikatora (na primjer, BD65F10DEE4) odredite pošiljatelja pisma. Tim

    Exim -Mvh ID poruke

    prikazuje zaglavlje e-pošte i naredbu

    Exim -Mvb ID poruke

    će vam omogućiti da vidite tijelo poruke.

    Među zaglavljima poruka polje From: sadrži pošiljatelja, a X-PHP-Originating-Script sadrži skriptu koja je poslala poruku.

    Softver

    Provjerite ima li na vašem poslužiteljskom softveru ranjivosti.

    OS CentOS

    Pokrenite naredbu koja ispisuje nedavno izmijenjene instalirane softverske datoteke:

    Rpm -qVa - za izlaz svih datoteka, rpm -qVa | awk "$2!="c" (print $0)" - za ispis datoteka osim zapisa.

    Analizirajte koje su datoteke promijenjene i kako, koristeći sljedeće vrijednosti parametara:

    S - modificirana veličina datoteke M - modificirana zadana prava 5 - modificirani MD5 kontrolni zbroj D - modificirani glavni/sporedni brojevi za uređaj L - modificirana simbolička veza U - modificirani vlasnik datoteke G - modificirana grupa T - modificirani datum modifikacije datoteke (mtime) c - konfiguracijska datoteka d - datoteka dokumentacije g - datoteka koja nije uključena u paket l - datoteka licence r - datoteka README

    Na primjer, linija S.5....T. c /etc/httpd/conf/httpd.conf znači da je httpd.conf konfiguracijska datoteka, njena veličina, kontrolni zbroj i datum zadnje izmjene su promijenjeni. Budući da je ovo konfiguracijska datoteka, ove promjene nisu sumnjive.

    Obratite pozornost na datoteke čije su vrijednosti kontrolne sume promijenjene bez vidljivog razloga. Za takve datoteke pokrenite naredbu:

    Stat /usr/sbin/sshd && datoteka /usr/sbin/sshd gdje je usr/sbin/sshd staza do datoteke.

    Kao rezultat naredbe, na zaslonu se prikazuju detaljne informacije o promjenama ove datoteke.

    Pokrenut će naredbu:

    Njam --sigurnosno ažuriranje

    za instaliranje sigurnosnog ažuriranja.

    Debian OS

    Pokrenite naredbe koje provjeravaju MD5 kontrolne zbrojeve za instalirane programe:

    # apt-get install debsums # debsums -c

    Pokrenite sljedeće naredbe za provjeru sigurnosnog ažuriranja:

    # echo 'deb http://security.debian.org wheezy/updates glavni doprinos neslobodan' >> /etc/apt/sources.list # grep sigurnost /etc/apt/sources.list > /etc/apt/secsrc .list # apt-get -s -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" nadogradnja

    Da biste instalirali sigurnosno ažuriranje, pokrenite naredbu:

    # apt-get -o Dir::Etc::sourcelist="secsrc.list" -o Dir::Etc::sourceparts="-" nadogradnja

    Provjerite usklađivanje gpg-a u svim spremištima izvođenjem naredbi:

    # grep -ri gpgcheck /etc/yum.conf # grep -ri gpgcheck /etc/yum.repos.d/ Provjerite izgledaju li linije ovako: gpgcheck=1 # grep -ri AllowUnauthenticated /etc/apt/

    Linije obrasca

    APT::Get::AllowUnauthenticated "true";

    ne bi trebalo biti.

    Neiskorištene usluge

    OS CentOS

    Chkconfig --list

    Chkconfig --del service_name gdje je service_name naziv usluge.

    Debian OS

    Pokrenite naredbu koja ispisuje neiskorištene usluge:

    Sysv-rc-conf

    Za onemogućavanje pokretanja neiskorištena usluga pokrenite naredbu:

    Sysv-rc-conf off service_name gdje je service_name naziv usluge.

    Sigurnost Linux poslužitelja vrlo je važna za zaštitu vaših podataka, intelektualno vlasništvo, kao i vrijeme u rukama provalnika. Za sigurnost operacijski sustav Linux odgovara Administrator sustava. U ovom ćemo članku pogledati dvadeset stvari koje trebate učiniti sa svojim operativnim sustavom Linux kako biste u svakom trenutku bili sigurni. Ako ovo kućno računalo, onda možda nema smisla toliko brinuti o sigurnosti; jake lozinke i blokiranje pristupa portovima s Interneta bit će dovoljni. Ali u slučaju javnog poslužitelja, vrijedi obratiti pozornost na osiguranje njegove zaštite.

    Ove upute su prikladne za bilo koju distribuciju, bez obzira koristite li CentOS, Red Hat ili Ubuntu, Debian.

    1. Enkripcija komunikacije

    Svi podaci koji se prenose mrežom otvoreni su za praćenje. Stoga je potrebno šifrirati prenesene podatke, gdje je to moguće, pomoću lozinki, ključeva ili certifikata.

    Koristite scp, ssh, rsync ili sftp za prijenos datoteka. Također je moguće montirati udaljeni datotečni sustav u vaš matični direktorij pomoću alata kao što je shhfs.

    GnuPG vam omogućuje šifriranje i potpisivanje vaših podataka pomoću posebnog privatnog ključa. Tu su i funkcije za upravljanje ključevima i pristup javnim ključevima.

    Fugu je grafički alat za prijenos datoteka pomoću SFTP protokola. SFTP je vrlo sličan FTP-u, ali je cijela sesija šifrirana. To znači da se nikakve lozinke ili naredbe ne prenose u čistom tekstu. Stoga su takvi prijenosi manje osjetljivi na treće strane. Također možete koristiti FileZilla, ona je višeplatformska FTP klijent podržava rad FTS-a preko SSH/TLS i SSH File Transfer Protocol (SFTP).

    OpenVPN je učinkovit i lagan VPN klijent s podrškom za SSH enkripciju.

    2. Pokušajte ne koristiti FTP, Telnet, Rlogin i RSH

    Na većini mreža svatko na istoj mreži može presresti korisnička imena, lozinke s FTP-a, Telneta, RSH-a pomoću njuškala paketa. Uobičajeno rješenje za ovaj problem je korištenje OpenSSH-a, SFTP-a ili SFTP-a, koji običnom FTP-u dodaje SSL ili TLS. Pokrenite ovu naredbu za uklanjanje NIS, RSH i drugih naslijeđenih usluga:

    yum brisanje inetd xinetd ypserv tftp-poslužitelj telnet-poslužitelj rsh-serve

    3. Smanjite količinu softvera

    Trebate li stvarno instalirati sve web usluge? Nemojte instalirati nepotrebne stvari softver kako biste izbjegli ranjivosti u tim programima. Upotrijebite upravitelja paketa da vidite instaliranih programa i uklonite sve nepotrebne:

    yum popis instaliran
    $yum popis paketa
    $yum uklonite paket

    dpkg --popis
    $ dpkg --info paket
    $ apt-get uklonite paket

    4. Jedan auto – jedan servis

    Pokrenite različite usluge na zasebnim poslužiteljima ili virtualni strojevi. To ograničava broj usluga koje mogu biti ugrožene. Na primjer, ako napadač može hakirati Apache, dobit će pristup cijelom poslužitelju. Uključujući usluge kao što su MySQL, poslužitelj E-mail i tako dalje. Za virtualizaciju možete koristiti softver kao što je XEN ili OpenVZ.

    5. Redovno ažurirajte svoj Linux kernel i softver

    Primjena sigurnosnih zakrpa vrlo je važan dio održavanja sigurnosti vašeg Linux poslužitelja. Operativni sustav pruža sve alate za održavanje sustava ažurnim i ažuriranje na nove verzije. Sva sigurnosna ažuriranja treba primijeniti što je prije moguće. Ovdje također morate koristiti svoj upravitelj paketa. Na primjer:

    Ili za sustave temeljene na Debianu:

    ažuriranje sudo apt && nadogradnja sudo apt

    Možete konfigurirati Red Hat ili Fedoru da vas obavijeste e-poštom kada budu dostupna nova sigurnosna ažuriranja. Također možete konfigurirati automatsko ažuriranje putem cron-a ili možete koristiti Debianov aptcron da vas obavijesti kada sustav treba ažurirati.

    6. Koristite sigurnosna proširenja na Linuxu

    Operativni sustav Linux dolazi s raznim sigurnosnim zakrpama koje se mogu koristiti za zaštitu od neispravna konfiguracija ili malware. Ali također možete koristiti dodatne sustave kontrole pristupa aplikacijama kao što su SELinux ili AppArrmor.

    SELinux nudi različite sigurnosne politike za Linux kernel. Ovdje možete kontrolirati pristup svim resursima sustava pomoću uloga. Samo program čija uloga to dopušta može pristupiti određenom resursu, a čak ni prava superkorisnika nisu bitna. SELinux uvelike povećava sigurnost Linux sustava, jer se čak i root smatra normalnim korisnikom. Više detalja opisano je u zasebnom članku.

    7. Korisnički računi i jake lozinke

    Koristite naredbe useradd i usermod za stvaranje i održavanje korisničkih računa. Provjerite imate li dobru i jaku lozinku, trebala bi sadržavati najmanje osam znakova, po mogućnosti u različitim velikim i malim slovima, uključujući posebne znakove ili brojeve. Na primjer, 8 znakova, od kojih je sedam slova, a jedan je simbol ili broj. Koristite alate poput Johna Trbosjeka za pronalaženje slabih korisničkih lozinki na poslužitelju i konfigurirajte pam_cracklib.so za provođenje politike lozinki.

    8. Promijenite lozinke s vremena na vrijeme

    Naredba za promjenu omogućuje vam da odredite broj dana prije datuma prisilne promjene lozinke. Sustav koristi ove podatke kako bi odredio kada ih korisnik treba promijeniti. Ove postavke se nalaze u /etc/login.defs. Da biste onemogućili starenje lozinke, unesite sljedeću naredbu:

    promijeniti -l korisničko ime

    Da biste dobili informacije o nizu isteka lozinke, unesite naredbu:

    Sve možete konfigurirati i ručno u datoteci /etc/shadow:

    (korisnička lozinka): (Posljednja promjena):(maksimum_dana): (minimum_dana): (Upozorenje):(deaktiviraj):(line_istjecanja):

    • Minimalni broj dana- minimalni razmak između promjena lozinke, odnosno koliko često korisnik može mijenjati lozinku.
    • Maksimalni broj dana- koliko dana će lozinka biti važeća, nakon tog perioda korisnik će biti prisiljen promijeniti lozinku.
    • Upozorenje- broj dana nakon kojih će korisnik biti upozoren da treba promijeniti lozinku.
    • Rok_istjecanja- broj dana od 1. siječnja 1970. kada će račun biti potpuno onemogućen.

    chage -M 60 -m 7 -W 7 korisničko ime

    Također je preporučljivo spriječiti korisnike da koriste stare lozinke, inače će svi pokušaji da ih se prisili na promjenu lozinki biti poništeni.

    9. Blokirajte račune nakon neuspješnih pokušaja prijave

    U operativnom sustavu Linux možete koristiti naredbu faillog za pregled neuspjelih pokušaja prijave korisnika. Također ga možete koristiti za postavljanje ograničenja neuspjelih pokušaja prijave. Sve informacije o neuspjelim pokušajima prijave pohranjuju se u datoteku /var/log/faillog. Za pregled upišite:

    Da biste postavili ograničenje pokušaja prijave za određeni račun, upotrijebite:

    faillog -r -u korisnik

    Također možete ručno blokirati ili deblokirati račune pomoću naredbe passwd. Za blokiranje koristite:

    passwd -l korisnik

    I za otključavanje:

    passwd -u korisnik

    Također je poželjno provjeriti postoje li u sustavu računi s praznim lozinkama. Da biste to učinili, pokrenite:

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

    Također provjerite ima li korisnika s grupom ili ID-om 0. Treba postojati samo jedan takav korisnik, a to je root. Možete provjeriti pomoću ove naredbe:

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

    Treba postojati samo jedan redak:

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

    Ako postoje drugi, izbrišite ih. Korisnici, a posebno njihove slabe lozinke, jedna su od najranjivijih stvari koje mogu probiti sigurnost u Linuxu.

    10. Onemogućite root prijavu

    Kako biste održali sigurnost svog Linux sustava, nikada se ne prijavite kao root korisnik. Možete koristiti sudo za dobivanje potrebnih dozvola i pokretanje željene naredbe kao superkorisnik. Ova naredba vam omogućuje da ne otkrijete lozinku superkorisnika drugim administratorima, a također sadrži alate za nadzor, ograničavanje i praćenje aktivnosti.

    11. Fizička sigurnost poslužitelja

    Sigurnost Linux poslužitelja mora uključivati ​​fizičku sigurnost. Morate ograničiti fizički pristup konzoli poslužitelja. Konfigurirajte BIOS tako da ne bude podržano dizanje s vanjskih medija kao što su DVD, CD, USB. Također postavite lozinku za BIOS i GRUB boot loader kako biste zaštitili njihove postavke.

    12. Onemogućite nepotrebne usluge

    Onemogućite sve nekorištene usluge i demone. Također, ne zaboravite ukloniti ove usluge iz pokretanja. Popis svih aktivnih servisa na Red Hat sustavima možete pogledati naredbom:

    chkconfig --popis | grep "3: uključeno"

    Da biste onemogućili uslugu, koristite:

    service service stop
    $ chkconfig usluga isključena

    Pronađite sve otvoreni programi luke:

    Isto se može učiniti pomoću nmap skenera:

    nmap -sT -O lokalni host

    Koristite iptables za zatvaranje svih portova koji ne bi trebali biti dostupni s mreže. Ili prestati nepotrebne usluge kako je gore opisano.

    13. Uklonite X poslužitelj

    X poslužitelj na poslužiteljskom računalu potpuno je neobavezan. Ne morate pokretati grafičko okruženje na namjenskom poslužitelju Apache ili e-pošte. Uklonite ovaj softver za poboljšanje sigurnosti i performansi.

    14. Konfigurirajte Iptables

    iptables je program za korisnički prostor za konfiguriranje vatrozida Netfilter ugrađenog u kernel. Omogućuje filtriranje cjelokupnog prometa i dopuštanje samo određenih vrsta prometa. Također koristite TCPWrappers - ACL sustav za filtriranje pristupa Internetu. Možete spriječiti mnoge vrste DOS napada koristeći iptables. Sigurnost mreže u Linuxu vrlo je važan aspekt ukupne sigurnosti sustava.

    15. Konfigurirajte kernel

    Datoteka /etc/sysctl.conf pohranjuje postavke kernela koje se učitavaju i primjenjuju tijekom pokretanja sustava.

    Omogući zaštitu od prekoračenja međuspremnika execshield:

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

    Omogući IP spoofing zaštitu:

    net.ipv4.conf.all.rp_filter=1

    Onemogući preusmjeravanje IP adrese:

    net.ipv4.conf.all.accept_source_route=0

    Zanemari zahtjeve za emitiranje:

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

    Prijavite sve krivotvorene pakete:

    net.ipv4.conf.all.log_martians = 1

    16. Particionirajte svoj tvrdi disk

    Razdvajanje tvrdi disk na particije ovisno o namjeni datoteka poboljšava sigurnost operativnih sustava Linux. Preporučuje se stvaranje zasebnih odjeljaka za sljedeće direktorije:

    • /Dom
    • /var i /var/tmp

    Napravite zasebne odjeljke za Apache korijenske direktorije i FTP poslužitelje. Otvorite datoteku /etc/fstab i postavite posebne opcije za potrebne particije:

    • noexec- nemojte pokretati nikakve programe ili izvršne datoteke na ovoj particiji, dopuštene su samo skripte
    • čvor dev- nemojte dopustiti simbolične ili posebne uređaje na ovoj particiji.
    • nosuid- nemojte dopustiti SUID/SGID pristup za programe iz ovog odjeljka.

    17. Koristite ograničenja prostora na disku

    Ograničite dostupan prostor na disku za korisnike. Da biste to učinili, kreirajte diskovnu kvotu u /etc/fstab, ponovno montirajte datotečne sustave i kreirajte bazu podataka diskovne kvote. Ovo će poboljšati sigurnost na Linuxu.

    18. Onemogućite IPv6

    Internetski protokol sljedeće generacije IPv6 u budućnosti će zamijeniti već korišteni IPv4. Ali trenutno ne postoje alati za provjeru sigurnosti mreže temeljene na IPv6. Mnoge distribucije Linuxa dopuštaju IPv6 prema zadanim postavkama. Hakeri mogu slati neželjeni promet, a da ga administratori ne mogu pratiti. Dakle, ako vam ne treba ova usluga, onemogućite je.

    19. Onemogućite nekorištene binarne datoteke SUID i SGID

    Sve izvršne datoteke za koje je omogućena zastavica SUID ili SGID potencijalno su opasne. Ova zastavica znači da će se program izvoditi s pravima superkorisnika. To znači da ako postoji bilo kakva ranjivost ili greška u programu, onda lokalni ili udaljeni korisnik moći će koristiti ovu datoteku. Pronađite sve takve datoteke pomoću sljedeće naredbe:

    pronaći / -perm +4000

    Pronađite datoteke s postavljenom SGID zastavom:

    pronaći / -perm +2000

    Ili spojimo sve ovo u jednu naredbu:

    pronaći / \(-perm -4000 -o -perm -2000 \) -ispisati
    $ pronađi / -path -prune -o -type f -perm +6000 -ls

    Morat ćete detaljno proučiti svaku pronađenu datoteku kako biste shvatili koliko je određena datoteka potrebna.

    20. Javne datoteke

    Također je preporučljivo pronaći datoteke koje mogu mijenjati svi korisnici sustava. Da biste to učinili, koristite sljedeću naredbu:

    pronađi /dir -xdev -tip d \(-perm -0002 -a ! -perm -1000 \) -ispis

    Sada trebate provjeriti jesu li prava za grupu i vlasnika svake datoteke ispravno postavljena i predstavlja li to sigurnosni rizik.

    Također je preporučljivo pronaći sve datoteke koje ne pripadaju nikome:

    pronađi /dir -xdev \(-nouser -o -nogroup \) -ispis

    21. Koristite centralizirani sustav provjere autentičnosti

    Bez centraliziranog sustava provjere autentičnosti, korisnički podaci postaju nedosljedni, što može dovesti do toga da vjerodajnice postanu zastarjele i da se zaborave računi koji su davno trebali biti izbrisani. Centralizirana usluga omogućit će vam da zadržite kontrolu nad korisničkim računima i podacima o autentifikaciji različitim sustavima Linux i Unix. Možete sinkronizirati podatke za provjeru autentičnosti između poslužitelja. Ali nemojte koristiti NIS uslugu, bolje pogledajte Open DAP.

    Jedna od zanimljivih implementacija takvog sustava je Kerberos. Omogućuje autentifikaciju korisnika pomoću privatnog ključa u mrežama gdje se paketi mogu presresti i modificirati. Kerberos koristi simetrični ključ za šifriranje podataka i za rad je potreban centar za upravljanje ključevima. Možete konfigurirati udaljenu prijavu, daljinsko kopiranje, sigurno kopiranje datoteka između sustava i druge zadatke s visokom razinom sigurnosti.

    22. Zapisivanje i revizija

    Postavite bilježenje i reviziju za prikupljanje i spremanje svih neuspjelih prijava i pokušaja hakiranja. Prema zadanim postavkama, svi dnevnici, ili barem većina njih, nalaze se u mapi /var/log/. O tome za što su pojedini ljudi odgovorni govorili smo detaljnije u zasebnom članku.

    Zapisnike možete gledati pomoću pomoćnih programa kao što su logwatch ili logcheck. Omogućuju vrlo jednostavno čitanje dnevnika. Možete pregledati ne cijelu datoteku, već samo događaje koji vas zanimaju, a također sebi poslati obavijest e-poštom.

    Pratite sustav pomoću usluge auditd. Program zapisuje na disk sve revizijske događaje koji vas zanimaju. Sve postavke revizije pohranjene su u datoteci /etc/audit.rules.Kada se sustav pokrene, servis čita sva pravila iz te datoteke. Možete ga otvoriti i konfigurirati sve po potrebi ili koristiti poseban uslužni program - auditctl. Možete konfigurirati sljedeće:

    • Događaji pokretanja i gašenja sustava
    • Datum i vrijeme događaja
    • Korisnički događaji (na primjer pristup određenoj datoteci)
    • Vrsta događaja (uređivanje, pristup, brisanje, pisanje, ažuriranje itd.)
    • Uspjeh ili neuspjeh prilikom izvršavanja događaja
    • Snimanje događaja promjene mrežnih postavki
    • Bilježite promjene korisnika i grupa
    • Praćenje promjena datoteka

    23. Osigurajte svoj OpenSSH poslužitelj

    Dopusti samo korištenje protokola 2:

    Onemogući prijavu kao superkorisnik:

    24. Instalirajte IDS

    IDS ili sustav za otkrivanje upada pokušava otkriti sumnjivu, zlonamjernu aktivnost kao što je DOS napad, skeniranje priključaka ili čak pokušaj hakiranja računala praćenjem mrežnog prometa.

    Dobra je praksa implementirati takav softver prije nego što se sustav izloži Internetu. Možete instalirati AIDE, to je HIDS (Host based IDS) koji može kontrolirati sve aspekte unutarnja struktura vaš sustav.

    Snort je softver za otkrivanje pokušaja upada u mrežu. Može izvršiti analizu paketa i zapisivanje te analizirati mrežni promet u stvarnom vremenu.

    25. Zaštitite svoje datoteke i direktorije

    Linux ima izvrsnu zaštitu od neovlaštenog pristupa datotekama. Međutim, dopuštenja postavljena od strane Linuxa i sustav datoteka ne znače ništa kada napadač ima fizički pristup računalu i može se jednostavno povezati HDD računala na drugi sustav za kopiranje vaših podataka. Ali svoje datoteke možete lako zaštititi enkripcijom:

    • Za šifriranje i dešifriranje datoteke pomoću lozinke koristite GPG
    • Također možete zaštititi datoteke pomoću OpenSSL-a
    • Šifriranje direktorija se vrši pomoću ecryptfs
    • TrueCrypt je besplatni alat za šifriranje diska za Windows i Linux

    zaključke

    Sada će sigurnost Linux OS-a na vašem računalu biti znatno povećana. Ne zaboravite s vremena na vrijeme postaviti složene lozinke. U komentarima napišite svoj omiljeni alat za sigurnost sustava.

    U ovom materijalu ćemo se upoznati s glavnim uslužnim programima za otvrdnjavanje Linuxa. Na ruskom se to zove nešto poput "provjera razine sigurnosti Linux sustava i procjena ispravnosti konfiguracija sa stajališta informacijske sigurnosti." Naravno, nećemo samo pregledati programe, već ćemo dati i primjere njihove upotrebe.

    Vaš vlastiti revizor ili vlastita sigurnost

    Administratori, a još više revizori informacijske sigurnosti, često se suočavaju sa zadatkom provjere sigurnosti velika količina domaćini u vrlo kratkom vremenu. I naravno, za rješavanje ovih problema u Enterprise segmentu postoje specijalizirani alati, na primjer, kao što su mrežni sigurnosni skeneri. Siguran sam da su svi oni - od otvorenog koda OpenVAS motora do komercijalnih proizvoda kao što su Nessus ili Nexpose - poznati našim čitateljima. Međutim, ovaj se softver obično koristi za traženje zastarjelog i stoga ranjivog softvera i zatim pokretanje upravljanja zakrpama. Osim toga, svi skeneri ne uzimaju u obzir neke specifične značajke ugrađenih zaštitnih mehanizama Linuxa i drugih proizvoda otvorenog koda. I na kraju, ali ne manje važno, bitna je cijena izdanja, jer komercijalne proizvode mogu si priuštiti samo tvrtke koje izdvajaju proračun za ovaj posao.

    Zato ćemo danas govoriti o specijaliziranom skupu slobodno distribuiranih uslužnih programa koji mogu dijagnosticirati trenutnu razinu sigurnosti sustava, procijeniti potencijalne rizike, na primjer, "dodatne usluge" koje strše na internetu ili nesigurnu zadanu konfiguraciju, pa čak i ponuditi opcije za ispravljanje pronađenih nedostataka. Još jedna prednost korištenja ovih alata je mogućnost repliciranja standardnih scenarija testiranja farme iz bilo kojeg broja Linux sustava i stvaranja dokumentirane testne baze u obliku dnevnika i pojedinačnih izvješća.

    Praktični aspekti revizije sigurnosti

    Ako gledate očima revizora, pristup testiranju može se podijeliti u dvije vrste.

    Prvi- to je usklađenost s tzv. zahtjevima sukladnosti, ovdje se provjerava prisutnost obveznih sigurnosnih elemenata propisanih bilo kojom međunarodnom normom ili „najboljom praksom“. Klasičan primjer su PCI DSS zahtjevi za IT sustave plaćanja, SOX404, NIST-800 serija,.

    Drugi- To je čisto racionalan pristup koji se temelji na pitanju "Što još učiniti za jačanje sigurnosti?" Nema obveznih zahtjeva - samo vaše znanje, bistra glava i vješte ruke. Na primjer, ovo je ažuriranje verzije kernela i/ili aplikacijskih paketa, omogućavanje, prisiljavanje, postavljanje vatrozida.

    Sve što se odnosi na drugi pristup obično se naziva posebnim pojmom Stvrdnjavanje, što se također može definirati kao "radnje usmjerene na povećanje razine početne sigurnosti operativnog sustava (ili programa) prvenstveno korištenjem standardnih sredstava."

    Usklađenost sa zahtjevima sukladnosti obično se provjerava u pripremi za podvrgavanje obveznom auditu kao što je PCI DSS ili drugi certifikacijski audit. Više ćemo pažnje posvetiti komponenti Stvrdnjavanje. Svi glavni programeri nude za svoje proizvode Smjernice za kaljenje- vodiče sa savjetima i preporukama za jačanje sigurnosti, uzimajući u obzir standardne sigurnosne mehanizme i specifičnosti softvera. Dakle, Red Hat, Debian, Oracle, Cisco imaju slične vodiče.

    INFO

    Hardening je pojam iz svijeta informacijske sigurnosti koji se odnosi na proces osiguravanja sigurnosti sustava (programa) smanjenjem njegove ranjivosti i, u pravilu, korištenjem samo standardnih uslužnih programa ili zaštitnih mehanizama.

    Sudo apt-get update sudo apt-get install lynis

    I za RPM-orijentirane distribucije (nakon dodavanja odgovarajućih repozitorija):

    Yum instaliraj linus -y

    Instalacija na macOS:

    $ brew search lynis $ brew instaliraj lynis

    Da biste pokrenuli Lynis, samo trebate navesti barem jedan ključ. Na primjer, da biste pokrenuli sve dostupne testove, trebali biste navesti prekidač -c (označi sve):

    # Tipični skup testova sudo lynis revizijski sustav # Cijeli skup testova sudo lynis revizijski sustav -c # Skeniranje udaljenog hosta revizijskog sustava udaljeno







    Prije revizije uvijek je dobro provjeriti je li nova verzija Lynis:

    Informacije o ažuriranju Lynisa i provjera ažuriranja Lynisa

    Uslužni program Lynis, osim standardnog, ima još jedan način rada - nepovlašteno pokretanje:

    Lynis revizija --pentest

    Ako želite staviti ime revizora koji je započeo testiranje, samo dodajte parametar -auditor :

    Sudo lynis sustav revizije -c -auditor tata

    U bilo kojoj fazi revizije, proces provjere može se nastaviti (Enter) ili prisilno prekinuti (Ctrl+C). Rezultati provedenih testova bit će zapisani u Lynisov dnevnik u /var/log/lynis.log. Imajte na umu da će zapisnik biti prebrisan svaki put kada se uslužni program pokrene.

    Za sustavno testiranje u automatskom načinu rada, možete dodijeliti odgovarajući posao Cron planeru pomoću prekidača -cronjob. U tom slučaju, uslužni program će se pokrenuti prema navedenom predlošku (config) i neće prikazati nikakve interaktivne poruke, pitanja ili upozorenja. Svi rezultati će biti spremljeni u dnevnik. Na primjer, ovdje je skripta za pokretanje uslužnog programa sa zadanom konfiguracijom jednom mjesečno:

    #!/bin/sh AUDITOR="automatizirano" DATE=$(datum +%Y%m%d) HOST=$(naziv glavnog računala) 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 > $(IZVJEŠĆE) mv /var/log/lynis-report.dat $(DATA) # Kraj

    Spremite ovu skriptu u direktorij /etc/cron.monthly/lynis. I ne zaboravite dodati staze za spremanje zapisa (/usr/local/lynis i /var/log/lynis), inače možda neće raditi ispravno.

    Možete vidjeti popis svih naredbi dostupnih za pozivanje:

    Lynis prikazuje naredbe

    Oni koji su posebno znatiželjni mogu pogledati postavke iz zadane konfiguracije:

    Postavke prikaza Lynisa

    Kratke upute o korištenju uslužnog programa:

    Čovjek lynis

    Opcije za moguće statuse na temelju rezultata provjere ograničene su na sljedeći popis: NIJEDNO, SLABO, GOTOVO, PRONAĐENO, NIJE_PRONAĐENO, OK, UPOZORENJE.


    Izvođenje pojedinačnih testova u Lynisu

    U praksi će možda biti potrebno provesti samo nekoliko testova. Na primjer, ako vaš poslužitelj obavlja samo funkcije Mail Servera ili Apachea. Za ovo možemo koristiti parametar -tests. Sintaksa naredbe je sljedeća:

    Lynis -testira "Test-IDs"

    Ako vam je teško razumjeti zbog velikog broja identifikatora testa, tada možete koristiti grupni parametar -test-category. S ovom opcijom Lynis pokreće samo ID-ove testova koji spadaju u određenu kategoriju. Na primjer, planiramo pokrenuti testove vatrozida i kernela:

    ./lynis -testovi-kategorija "jezgra vatrozida"

    Osim toga, funkcionalnost Lynisa proširena je raznim dodacima, koje možete dodati sami ili možete dodati nove u postojeći imenik.

    Prijedlozi za ispravak

    Sva upozorenja bit će navedena nakon rezultata. Svaki počinje tekstom upozorenja, a zatim je test koji ga je generirao naveden pokraj njega u zagradama. Sljedeći red predlaže rješenje problema, ako ono postoji. Zapravo, posljednji red je URL na kojem možete vidjeti pojedinosti i pronaći dodatne preporuke o tome kako riješiti problem.

    Profili

    Profili koji upravljaju revizijom definirani su u datotekama s ekstenzijom .prf, koji se nalazi u direktoriju /etc/lynis. Zadani profil je nazvan predvidljivo: default.prf. Programeri ne preporučuju izravno uređivanje: bolje je dodati sve promjene koje želite napraviti u reviziji u datoteku custom.prf koja se nalazi u istom direktoriju.

    Nastavak je dostupan samo članovima

    Opcija 1. Pridružite se zajednici "site" kako biste pročitali sve materijale na stranici

    Članstvo u zajednici unutar navedenog razdoblja omogućit će vam pristup SVIM hakerskim materijalima, povećati vaš osobni kumulativni popust i omogućiti vam da skupite profesionalnu ocjenu Xakep Score!