Revizija pristupa fajlu linux. Linux Hardening. Odabiremo alate za sveobuhvatnu sigurnosnu reviziju. Izvođenje pojedinačnih testova u Lynisu

Većina takvih poslovnih i višekomponentnih sistema kao što su SAP , OracleDB koriste u svojoj platformi operativni sistem zasnovan na linux . S obzirom na to, IT revizori im posvećuju tako veliku pažnju. Danas ćemo vam u članku predstaviti nekoliko besplatnih alata predstavljenih u obliku skripti i korištenjem redovnih mehanizama OS-a za pružanje ekspresne revizije sigurnosne konfiguracije.

Sljedeće sistemske komande i skripte koje se koriste za ekspresnu reviziju sigurnosnih opcija Linux OS sistema su zasnovane na preporukama revizije sigurnosti koje je objavila ISACA zajednica u priručniku za program revizije/uvjeravanja sigurnosti operativnog sistema UNIX/LINUX.

1. Verifikacija računa

1.1 Navedite sve korisnike
Lista korisnika je pohranjena u /etc/passwdfile. Da biste dobili listu korisnika, možete koristiti sljedeću skriptu:

  1. bin/bash
  2. # userslistinthesystem.sh
  3. # broji i navodi postojeće "prave" korisnike u sistemu.
  4. echo “[*] Postojeći korisnici (poređani po abecednom redu):”
  5. grep ‘/bin/bash’ /etc/passwd | grep -v 'korijen' | cut-f1
  6. -d':' | sortiraj
  7. echo -n “[*] Broj pronađenih stvarnih korisnika: “
  8. grep ‘/bin/bash’ /etc/passwd | grep -v 'korijen' | wc -l
1.2 Lista blokiranih naloga
Tokom revizije potrebno je provjeriti listu blokiranih i deblokiranih korisnika ( ime računa ). Sljedeća naredba će raditi za ovo:
  1. #!/bin/bash
  2. # passwd –s accountName

1.3 Pregled statistike za sve korisnike

  • Revizor mora osigurati da tim ac uključeno u sistem, za pregled aktivnosti korisnika:
    1. #!/bin/bash
    Da vidite aktivnost sesije povezivanja korisnika sa ukupnim brojem 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 Pogledajte aktivnosti korisnika
    Sistemske aplikacije psacct ili acct rade u pozadini i prate aktivnosti svakog korisnika na sistemu, kao i resurse koje troše. Da biste provjerili aktivnost korisnika u sistemu, pokrenite sljedeću skriptu:
    1. #!/usr/bin/envksh
    2. zadnji -Fa|awk’
    3. /wtmp počinje/ (sljedeća; )
    4. /još uvijek prijavljen/ (sljedeća; )
    5. $0 == ponovno pokretanje (sljedeće;)
    6. NF > 0 (
    7. if(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(podstr ($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 lozinke

    2.1 Računi sa praznom lozinkom
    Tokom revizije morate se uvjeriti da u sistemu nema ili blokiranih naloga koji vam omogućavaju da se prijavite na sistem bez unosa lozinke. Ovo pravilo se može provjeriti naredbom:

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

    2.2 Provjera složenosti lozinke
    Tokom revizije potrebno je provjeriti postavke složenosti lozinke kako bi se smanjio rizik od brute-force (brute-force) ili rječničkih napada na lozinku. Priključni moduli za autentifikaciju (PAM) moraju se koristiti za postavljanje ove politike na sistemu.
    Revizor može provjeriti odgovarajuću postavku u konfiguracijskoj datoteci:

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

    2.3 Provjera isteka lozinke

    Kao dio revizije, trebali biste provjeriti postavku isteka lozinke. Za provjeru vremena isteka lozinke koristite naredbu promijeniti. Ova komanda izlazi detaljne informacije datum isteka lozinke i datum posljednje promjene.
    Sljedeća naredba se koristi za pregled informacija o "starosti" lozinki:

    #change -l korisničko ime

    Za promjenu vremena isteka lozinke za određenog korisnika, možete koristiti naredbe u nastavku:

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

    Opcije (da postavite datum isteka lozinke):
    -M - maksimalni rok trajanja u danima.
    -m je minimalni datum isteka u danima.
    -W - postavka upozorenja u danima.

    2.4 Upotreba ponovljenih lozinki
    Postavke autorizacije u sistemu moraju biti u skladu sa politikom lozinke. Datoteka koja sadrži istoriju lozinki nalazi se u /etc/security/opasswd. Za provjeru slijedite ove 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 red u odjeljak 'auth':

    auth dovoljno pam_unix.so likeauthnullok

    Da onemogućite korištenje posljednjih šest lozinki, dodajte sljedeći red:

    Lozinka dovoljna pam_unix.so nullokuse_authtok md5 shadow Remember=6

    Nakon izvršenja naredbe, sistem će zadržati historiju prethodnih šest lozinki, a ako bilo koji korisnik pokuša ažurirati lozinku koristeći bilo koju od posljednjih šest, dobiće poruku o grešci.

    3. Postavke sigurne veze
    Telnet i Rlogin protokoli za daljinsko povezivanje su veoma stari i ranjivi, zbog prenosa lozinke preko mreže u nešifrovanom obliku. Za udaljenu i sigurnu vezu mora se koristiti siguran protokol Secure Shell (SSH). Revizor takođe treba da osigura tu opciju root prijava onemogućeno, zadani SSH port promijenjen, udaljeni pristup dozvoljen samo određenim ovlaštenim korisnicima. Postavke koje treba provjeriti nalaze se u SSH konfiguracijskoj datoteci:

    1. #vi /etc/ssh/sshd_config

    3.1 Prijavite se kao superkorisnik (root prijava)

    Tokom revizije, revizor treba da potvrdi da je udaljena prijava sa root superuser pravima zabranjena.

    # DozvoliRootLogin = da
    3.2 Provjeriti SSH prijavu na račun usluge

    Tokom revizije, revizor treba provjeriti servisni račun sa SSH prijavom bez lozinke. Sistemski administratori obično koriste ovu funkciju za programiranje rezervne kopije, prijenos datoteka i pokretanje skripti u načinu daljinskog upravljanja.

    Provjerite jesu li vaše postavke sshd_config (/etc/ssh/sshd_config) tačne posljednji put.

    # DozvoliRootLogin bez lozinke

    # RSAA autentifikacija = da

    #PubkeyAuthentication=da

    3.3 Provjera pristupnih lista u DenyHosts i Fail2ban
    Tokom revizije potrebno je provjeriti postavke pristupnih lista DenyHosts i Fail2ban . Ovo su skripte koje se koriste za praćenje i analizu SSH pristupnih dnevnika i zaštitu od napada grubom silom lozinkom.

    DenyHost karakteristike:

    • čuva i prati evidencije iz datoteke /var/log/secure , označava sve uspješne i neuspješne pokušaje prijave i filtrira ih.
    • prati neuspjele pokušaje prijave
    • šalje obavještenje putem e-pošte o blokiranim hostovima i sumnjivim pokušajima prijave
    Fail2ban karakteristike:
    • Čuva i prati zapise iz datoteka /var/log/secure i /var/log/auth.log , /var/log/pwdfail
    • vrlo prilagodljiv i sa više niti
    • prati log fajlove na redovnoj osnovi

    4. Provjera sistemskih dnevnika
    Tokom revizije, morate biti sigurni da je SysLog daemon pokrenut i da su svi značajni događaji koji se događaju u sistemu zabilježeni u evidenciji događaja. Revizija također treba osigurati da politika zadržavanja dnevnika događaja uzima u obzir zahtjeve primjenjivog zakona i sigurnosne politike.

    4.1 Dnevnici događaja u Linuxu:

    /var/log/auth.log – log sistema autorizacije (prijave i mehanizam autentifikacije).
    /var/log/dpkg.log - dnevnik instaliranja/uklanjanja paketa pomoću dpkg.
    /var/log/yum.log - dnevnik instaliranja/uklanjanja paketa koristeći yum.
    /var/log/faillog - Dnevnik neuspjelih pokušaja prijave i njihovo ograničenje za svaki račun.
    /var/log/kern.log – dnevnik kernela, (detaljan dnevnik poruka iz Linux kernela).
    /var/log/maillog ili /var/log/mail.log – dnevnik servera pošte.
    /var/log/wtmp – login log (vrijeme evidentiranja i trajanje svih korisnika sistema).
    /var/run/utmp - informacije o korisnicima koji su trenutno prijavljeni na sistem.
    /var/log/lastlog - zapisi prethodnih prijava.
    /var/log/boot - informacije koje se evidentiraju tokom pokretanja sistema

    5. Zaštita sistemskih datoteka

    5.1 Zaštita GRUB bootloadera

    Da bi zaštitio GRUB bootloader, administrator mora koristiti šifriranje lozinkom MD5 format :

    # grub-md5-crypt

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

    # vi /boot/grub/menu.lst

    #vi /boot/grub/grub.conf

    Novokreirana MD5 lozinka se može dodati u GRUB konfiguracijski fajl.

    5.2 Zaštita direktorija za pokretanje /BOOT

    Tokom revizije potrebno je provjeriti status imenika /boot, pošto se jezgro sistema i povezani fajlovi nalaze u direktorijumu /boot. Morate biti sigurni da ovaj direktorij ima pristup samo za čitanje, što sprječava neovlaštene promjene važnih datoteka na sistemu. Da biste provjerili, otvorite datoteku /etc/fstab i provjerite konfiguraciju:

    Fajl mora sadržavati red:

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

    5.3 Provjera otvorenih portova i aktivnih veza

    Sljedeća skripta se može koristiti za provjeru usluga koje rade na sistemu:

    #!/bin/bash
    ako (($(ps -ef | grep -v grep | grep $service | wc -l) > 0))
    onda
    echo "$service radi!!!"
    ostalo
    /etc/init.d/$service start
    fi

    Pogled mrežne veze

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

    Portovi za slušanje
    Koristeći naredbu Netstat, možete vidjeti sve otvoreni portovi i povezane komande. Primjer skripte:

    # netstat-tulpn
    Skripta za skeniranje portova je:
    scan() (
    ako [[ -z $1 || -z$2]]; onda
    echo “Upotreba: $0
    povratak
    fi
    localhost=$1
    lokalni portovi=()
    kućište od 2 inča
    *-*)
    IFS=- čitanje početak kraja<<< “$2”
    za ((port=početak; port<= end; port++)); do
    portovi+=($port)
    urađeno
    ;;
    *,*)
    IFS=, čitanje -ra portova<<< “$2”
    ;; *)
    portovi+=($2) ;;
    esac
    za port u “$(ports[@])”; uradi
    alarm 1 "echo >/dev/tcp/$host/$port" &&
    echo "port $port je otvoren" ||
    echo "port $port je zatvoren"
    urađeno
    }

    iptables firewall

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

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

    ICMP/broadcast zahtjevi

    Tokom revizije, morate provjeriti da li su sistemi konfigurirani da ignorišu pingove i zahtjeve za emitiranje. Da biste to učinili, uvjerite se da je datoteka “/etc/sysctl.conf” dodao je sljedeće redove:

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

    5.4 Provjera instaliranih ažuriranja

    Sistemi moraju imati instalirana najnovija ažuriranja:

    # yum ažuriranja
    # yum check-update

    6. Provjera automatski izvršenih CRON poslova

    Revizor treba provjeriti kome je dozvoljeno, a kome zabranjeno izvršavanje poslova u cron-u. Cron pristup se kontroliše pomoću fajlova /etc/cron.allow i /etc/cron.deny.

    # echo ALL >>/etc/cron.deny

    7. SELINUX prisilna sigurnosna provjera

    Tokom revizije važno je provjeriti status SELinux . Ovaj mehanizam mora biti omogućen u sistemu.
    Postoje tri moda SELinux :

    • Sprovođenje: SELinux politika se primjenjuje. SELinux odbija pristup na osnovu pravila SELinux politike.
    • Dozvoljeno: SELinux politika se ne primjenjuje. SELinux ne odbija pristup, ali odbijanja se evidentiraju kao radnje koje bi bile odbijene da je politika postavljena da se primjenjuje.
    • Onemogućeno: SELinux je onemogućen. Koriste se samo diskretna DAC pravila.

    Tokom revizije, možete koristiti sljedeću skriptu da provjerite status SELinuxa ili koristite naredbe system-configselinux, getenforce ili sestatus:

    ENABLED=`mačka /selinux/enforce`
    ako [ “$ENABLED” == 1 ]; onda
    echo “SELinux je omogućen, onemogućen? (da ne):"
    read disable
    if [ $disable == "da" ]; onda
    echo "onemogućavanje selinuxa"
    setenforce 0
    fi
    fi

    LBSA skripta za provjeru osnovnih sigurnosnih opcija

    LBSA (Linux Basic Security Audit skripta) je osnovna Linux skripta revizije sigurnosne konfiguracije. Skripta se mora pokrenuti iz komandne linije s privilegijama korijen, ili idealno planirano za redovno pokretanje koristeći cron za sistematsku provjeru promjena konfiguracije.

    Svrha ove skripte je brza revizija sigurnosnih postavki i preuzimanje izvještaja koji opisuje moguće postavke koje se mogu promijeniti kako bi se obezbijedio viši stepen sigurnosti. U slučaju da nema preporuka za bilo koju opciju, skripta jednostavno prikazuje jedan red sa obradom čeka, a konačna odluka uvijek ostaje na administratoru. Prije pokretanja testa, 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 traži sljedeće opcije:

    • ranjivosti u postavkama naloga
    • ranjivosti u SSH postavkama
    • ranjivosti u privremenim direktorijumima i direktorijumima sistema datoteka učitanih u RAM (na primjer, u /tmp, /var/tmp /dev/)
    • dozvole datoteka, stanje sistemskih direktorija
    • -konfiguracija DRBD i Heabeat usluga

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

    Jednom mjesečno provoditi reviziju sigurnosti servera kako bi se na vrijeme otkrili mogući problemi vezani za prodor uljeza u server.

    Ako ne vidite nikakve znakove aktivnosti treće strane na VPS-u ili stranici, izvršite sljedeće niz provjera i podešavanja kako biste zaštitili server od hakovanja.

    Postavke sloja aplikacije

    Ako je CMS instaliran na serveru, provjerite jesu li instalirane sve najnovije nadogradnje.

    Joomla

    Pronađite datoteku changelog.txt u korijenskom direktoriju stranice, gdje ćete pronaći informacije o CMS verziji. Ako je zastarjela, ažurirajte Joomla.

    Wordpress

    Potražite datoteku wp-includes/version.php za informacije o verziji CMS-a. Ako je zastario, ažurirajte Wordpress.

    DLE

    Potražite datoteku engine/data/config.php, potražite liniju version_id i provjerite je li verzija ažurirana.

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

    1C-Bitrix

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

    Drupal

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

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

    Također, možete otkriti CMS verziju preko kontrolne ploče.

    Provjeri web server.

    Apache

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

    ServerTokensProd

    Ako ova direktiva nije prisutna, dodajte i sačuvajte datoteku.

    Potražite datoteku secure.conf, otvorite je za pregled i provjerite njen sadržaj prema sljedećem primjeru:

    Opcije +Includes -FollowSymLinks +SymLinksIfOwnerMatch AllowOverride FileInfo AuthConfig Limit Indexis Opcije Red dozvoli, zabrani Dozvoli od svih php_admin_value open_basedir "." Opcije-Indeksi Akcija php-cgi /php-bin/php

    Vaš secure.conf ne bi trebao biti značajno drugačiji od gornjeg primjera.

    Provjerite instalirani MPM pomoću naredbe

    Apachectl -V

    Za veću sigurnost, koristite mpm_itk osim ako vam apsolutno nije potreban mpm_prefork.

    Ako želite promijeniti MPM, izvršite ponovnu instalaciju nakon što napravite sigurnosne kopije konfiguracijskih datoteka. Nakon ponovne instalacije provjerite da li je vlasnik stranice i svih njenih direktorija korisnik.

    Nginx

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

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

    Ako ove direktive nisu prisutne, dodajte i sačuvajte datoteku.

    Blokirajte neke korisničke agente da blokirate neželjeni promet. U odeljku http konfiguracione datoteke Nginx dodajte direktivu

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

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

    If($http_referer ~*(babes|na prodaju|djevojka|nakit|ljubav|nudit|organski|poker|porno|seks|tinejdžeri))(povratak 403;)

    ISPmanager

    Izvršite sljedeće provjere na kontrolnoj tabli ISPmanagera.

    Provjerite je li pristup kontrolnoj tabli ograničen IP adresom.

    Postavite sigurnosnu kopiju podataka ako nije omogućeno. Preporučujemo korištenje vanjskog diska za sigurnosnu kopiju kako biste spriječili gubitak podataka zajedno sa arhivom.

    PHP

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

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

    NTP

    U NTP konfiguracionoj datoteci (/etc/ntp.conf podrazumevano), dodajte redove da onemogućite rekurzivne zahteve:

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

    Bind

    Postavite sljedeće redove u datoteku named.conf da onemogućite rekurzivne upite:

    Dozvoli-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/3.1;1.120.234.0/3.1.1; 4.1.1; 248.0/21; );

    Provjera vlasnika direktorija web mjesta

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

    Na traci sa alatkama ISPmanager idite na odjeljak “Sistem” -> “Upravitelj datotekama” i otvorite direktorij web-mjesta. Provjerite jesu li stupci Vlasnik i Grupa za korisnika koji je vlasnik web-mjesta. Da biste promijenili ove atribute, kliknite na dugme Atributi na traci sa alatkama.

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

    Ako stranica sadrži dijeljene foldere (na primjer, upload, tmp), tada je za njih važeće ime vlasnika 777. Provjerite da li je ovaj korisnik postavljen samo na potrebne direktorije pokretanjem naredbe

    Pronađi ./ -perm 0777

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

    Postavke nivoa operativnog sistema

    rhunter

    Koristite uslužni program rkhunter da identifikujete potencijalne ranjivosti servera.

    Da biste instalirali uslužni program, koristite naredbu:

    Yum install rkhunter - CentOS OS apt-get install rkhunter - Debian/Ubuntu OS neka sve instalacije budu čiste -C /usr/ports/security/rkhunter ili pkg instalirajte rkhunter - FreeBSD OS

    Da biste ažurirali bazu podataka ovog uslužnog programa, pokrenite naredbe

    Rkhunter --update

    Rkhunter --propupd

    Pokrenite provjeru sistema pomoću naredbe

    Rkhunter -c --cs2

    Tokom procesa verifikacije, potrebno je da pritisnete taster Enter nekoliko puta da biste nastavili. Po završetku, prikazat će se sažetak rezultata testa.

    Rezultati provjere se nalaze u log fajlu /var/log/rkhunter/rkhunter.log, pregledajte ga da li ima upozorenja i grešaka.

    sysctl

    Koristite sysctl uslužni program za upravljanje parametrima jezgre sistema. Otvorite /etc/sysctl.conf konfiguracionu datoteku uslužnog programa i unesite sljedeće redove.

    Onemogućite mogućnost usmjeravanja dolaznog saobraćaja, jer napadač može koristiti ovu mogućnost za lažiranje IP adresa:

    net.ipv4.conf.all.accept_source_route = 0

    Onemogućite odgovore na ICMP zahtjeve preko kanala za emitiranje - ovo će pomoći u sprječavanju napada Štrumpfova:

    Net.ipv4.icmp_echo_ignore_broadcasts = 1

    Onemogućite evidentiranje nevažećih poruka o grešci:

    Net.ipv4.icmp_ignore_bogus_error_responses = 1

    Omogućite zaštitu od prepune 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 serveru, onemogućite prosljeđivanje:

    Net.ipv4.conf.all.forwarding=0

    Omogući SYN zaštitu od poplava - korištenje SYN kolačića:

    Net.ipv4.tcp_syncookies=1

    Postavite broj pokušaja slanja SYN-ACK paketa:

    Net.ipv4.tcp_synack_retries = 3

    Podesite vrijeme nakon kojeg server provjerava vezu ako nije korištena duže vrijeme (podrazumevano je 2 sata):

    Net.ipv4.tcp_keepalive_time=1800

    Postavite broj provjera veze prije nego što se prekine:

    Net.ipv4.tcp_keepalive_probes=3

    Postavite vremensko ograničenje utičnice u stanje 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 i kako su montirani na sistem.

    Vi /etc/fstab

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

    rsyslog

    Provjerite sistemsku datoteku dnevnika /etc/rsyslog.conf.

    Vi /etc/rsyslog.conf

    Obratite pažnju na sljedeće redove, koji bi trebali izgledati:

    Također provjerite da log datoteka nije prazna, tj. evidentiranje je ispravno.

    sudo

    Provjerite je li sudo (ili su) uslužni program ispravno konfiguriran, što omogućava korisniku da pokrene određene komande i programe kao root. Postavke za ovaj uslužni program nalaze se u konfiguracijskoj datoteci /etc/sudoers ili /usr/local/etc/sudoers. Otvorite ga za uređivanje

    Vi /etc/sudoers

    Pronađite red koji je napisan prema zadanim postavkama i omogućava root superkorisniku da pokrene bilo koje komande.

    Da biste svim korisnicima dali privilegiju da pokreću komande kao root, dodajte sljedeći red:

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

    Da biste dali određenom korisniku privilegiju da izvodi samo određene komande kao root, dodajte red:

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

    Postavke na nivou mreže

    Provjerite koji su portovi otvoreni na serveru i koji servisi ih koriste pokretanjem naredbe

    Netstat -tuplnw | awk "(print $4,$NF)" | sortiraj | uniq

    Na primjer, unos 127.0.0.1:53 748/named znači da imenovana usluga koristi port 53. Provjerite da li su samo one potrebne među aktivnim servisima, onemogućite sve ostale.

    FTP

    Postavite opseg portova koji će se koristiti za pasivni FTP način rada. Da biste to učinili, otvorite konfiguracijsku datoteku vašeg FTP servera za uređivanje i dodajte redove:

    za vsftpd.conf:

    pasv_min_port=1028 pasv_max_port=1048

    za proftpd.conf:

    Pasivni portovi 1028 1048

    Nemojte koristiti FTP protokol osim ako je apsolutno neophodno, umjesto toga koristite SFTP. Ako je FTP i dalje potreban, dodajte sljedeće linije u konfiguracijski fajl:

    za vsftpd.conf:

    Xferlog_enable=DA (ftp logiranje) anonymous_enable=NE (zabrani povezivanje anonimnih korisnika) anon_upload_enable=NE anon_mkdir_write_enable=NE

    za proftpd.conf:

    u sekciji ... izbrišite sve sekcije i dodajte linije

    DenyAll DenyAll

    iptables

    Proverite da li je zaštitni zid ispravno konfigurisan. Za iptables pokrenite naredbu

    Iptables-nL

    Ova komanda ispisuje sva pravila iptables firewall-a u komandnu liniju. Također, ova pravila se 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 zaštitnog zida zatvorite sve portove osim onih koje koriste usluge koje rade na serveru. Da biste to učinili, promijenite linije

    :INPUT ACCEPT :FORWARD ACCEPT :OUTPUT ACCEPT na :INPUT DROP :FORWARD DROP :OUTPUT DROP

    Da biste otvorili potrebne portove, dodajte linije poput

    A ULAZ -p tcp -m tcp --dport 53 -j PRIHVATI -A ULAZ -p udp -m udp --dport 53 -j PRIHVATI -A ULAZ -p tcp -m multiport --sport 53,80,25,443,953 -j ACCEPT

    gdje je 53 broj porta za otvaranje.

    Prije izmjena u konfiguracijskoj datoteci zaštitnog zida, napravite kopiju radne datoteke.

    Pravila zaštitnog zida mogu se konfigurisati sa ISPmanager kontrolne table.

    SSH

    Otvorite SSH konfiguracijski fajl:

    Vi /etc/ssh/sshd_config

    Provjerite da sljedeće linije nisu komentirane:

    Protokol 2 (za korištenje druge verzije protokola) IgnoreRhosts da (nemojte koristiti .rhost datoteku) HostbasedAuthentication ne (nemojte autentifikovati host) PermitRootLogin ne (zabraniti root pristup) PermitEmptyPasswords ne (ne koristiti prazne lozinke bez Environ) PermitUser (zabrani korisniku da postavlja varijable okruženja) PasswordAuthentication da (dopusti provjeru autentičnosti lozinkom)

    Omogućite SFTP dodavanjem sljedećeg reda u sshd_config:

    Podsistem sftp /usr/lib/openssh/sftp-server

    Provjerite ima li u redu čekanja pošte prekoračenje i uvjerite se da među porukama nema neželjenih poruka.

    Pokrenite komandu mailq i pogledajte listu poruka. Ako je lista vrlo velika, selektivno provjerite ima li poruka koje bi mogle biti neželjena pošta. Po identifikatoru (na primjer, BD65F10DEE4) odredite pošiljatelja pisma. Zapovjedi

    Exim -Mvh id_poruke

    prikazuje zaglavlje e-poruke i naredbu

    Exim -Mvb id_poruke

    će prikazati tijelo poruke.

    Među zaglavljima poruke, polje From: sadrži pošiljaoca, a X-PHP-Originating-Script sadrži skriptu kojoj je poruka poslana.

    Softver

    Provjerite serverski softver za ranjivosti.

    CentOS OS

    Pokrenite naredbu koja prikazuje nedavno izmijenjene instalirane softverske datoteke:

    Rpm -qVa - za prikaz svih datoteka, rpm -qVa | awk "$2!="c" (štampanje $0)" - za štampanje datoteka osim dnevnika.

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

    S - veličina datoteke izmijenjena M - zadane dozvole izmijenjene 5 - MD5 kontrolna suma izmijenjena D - glavni/sporedni brojevi za uređaj izmijenjen L - simbolična veza izmijenjena U - vlasnik datoteke izmijenjen G - grupa izmijenjena T - datum izmjene datoteke (mvrijeme) izmijenjen ) c - konfiguracijski fajl d - datoteka dokumentacije g - datoteka koja nije uključena u paket l - datoteka licence r - README datoteka

    Na primjer, linija S.5....T. c /etc/httpd/conf/httpd.conf znači da je httpd.conf konfiguracioni fajl, njegova veličina, kontrolni zbir i datum poslednje izmene su promenjeni. Budući da je ovo konfiguracijski fajl, ove promjene nisu sumnjive.

    Obratite pažnju na datoteke čije su vrijednosti kontrolne sume promijenjene bez vidljivog razloga. Za takve fajlove pokrenite naredbu:

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

    Kao rezultat naredbe, na ekranu se prikazuju detaljne informacije o promjeni u ovoj datoteci.

    Izvršite naredbu:

    Yum --sigurnosno ažuriranje

    da instalirate bezbednosno ažuriranje.

    Debian OS

    Pokrenite komande koje provjeravaju MD5 kontrolne sume za instalirane programe:

    # apt-get install debsums # debsums -c

    Pokrenite sljedeće komande da provjerite sigurnosno ažuriranje:

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

    Da instalirate sigurnosno ažuriranje, pokrenite naredbu:

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

    Provjerite da li sva spremišta imaju gpg usklađivanje tako što ćete pokrenuti naredbe:

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

    Redovi obrasca

    APT::Get::AllowUnauthenticated "true";

    ne bi trebalo biti.

    Nekorištene usluge

    CentOS OS

    chkconfig --list

    Chkconfig --del ime_usluge gdje je ime_usluge ime usluge.

    Debian OS

    Pokrenite naredbu koja navodi nekorištene usluge:

    sysv-rc-conf

    Da onemogućite pokretanje nekorištenog servisa, pokrenite naredbu:

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

    Sigurnost Linux servera je veoma važna za zaštitu vaših podataka, intelektualno vlasništvo, kao i vrijeme u rukama krekera. Zbog sigurnosti operativni sistem Linux odgovara Administrator sistema. U ovom članku ćemo pogledati dvadeset stvari koje trebate učiniti sa svojim Linux operativnim sistemom kako biste ga uvijek očuvali sigurnim i sigurnim. Ako ovo kućni računar, onda o sigurnosti, možda nema smisla toliko brinuti, dovoljne će biti jake lozinke i blokiranje pristupa portovima sa interneta. Ali u slučaju javnog servera, treba obratiti pažnju na njegovu zaštitu.

    Ove upute će raditi za bilo koju distribuciju, bilo da koristite CentOS, Red Hat ili Ubuntu, Debian.

    1. Šifriranje komunikacije

    Svi podaci koji se prenose preko mreže su otvoreni za praćenje. Zbog toga je potrebno šifrirati prenesene podatke, gdje je to moguće korištenjem lozinki, ključeva ili certifikata.

    Koristite scp, ssh, rsync ili sftp za prijenos datoteka. Također možete montirati udaljeni sistem datoteka u svoj kućni direktorij koristeći alate kao što je shhfs.

    GnuPG vam omogućava da šifrirate i potpišete svoje podatke posebnim privatnim ključem. Tu su i funkcije za upravljanje ključevima i pristup javnim ključevima.

    Fugu je grafički alat za SFTP prijenos datoteka. SFTP je vrlo sličan FTP-u, ali je cijela sesija šifrirana. To znači da se lozinke ili komande ne prenose u čistom obliku. Stoga su takvi transferi manje osjetljivi na treća lica. Također možete koristiti FileZilla, to je cross-platforma FTP klijent sa podrškom za FTS preko SSH / TLS i SSH protokol za prijenos datoteka (SFTP).

    OpenVPN je efikasan 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, korisnička imena, lozinke sa FTP, Telnet, RSH komandi može presresti neko na istoj mreži koristeći njuškalo paketa. Općenito rješenje ovog problema je korištenje OpenSSH, SFTP ili SFTP, koji dodaje SSL ili TLS redovnom FTP-u. Pokrenite sljedeću naredbu da uklonite NIS, RSH i druge zastarjele servise:

    yum erase inetd xinetd ypserv tftp-server telnet-server rsh-serve

    3. Smanjite količinu softvera

    Da li su vam zaista potrebni svi instalirani web servisi? Nemojte instalirati nepotrebno softver kako bi se izbjegle ranjivosti u ovim programima. Koristite menadžer paketa da vidite instalirane programe i uklonite sve nepotrebno:

    yum lista je instalirana
    $ yum list paket
    $ yum uklonite paket

    dpkg --list
    $ dpkg --info paket
    $ apt-get ukloniti paket

    4. Jedna mašina - jedan servis

    Pokretanje različitih servisa na odvojenim serverima, ili virtuelne mašine. Ovo ograničava broj usluga koje mogu biti ugrožene. Na primjer, ako napadač može hakirati Apache, tada će dobiti pristup cijelom serveru. Uključujući usluge kao što su MySQL, server Email i tako dalje. Za virtuelizaciju možete koristiti softver kao što je XEN ili OpenVZ.

    5. Održavajte Linux kernel i softver ažurnim

    Primjena sigurnosnih zakrpa je vrlo važan dio održavanja sigurnosti Linux servera. Operativni sistem pruža sve alate za ažuriranje sistema i nadogradnju na nove verzije. Sva sigurnosna ažuriranja treba primijeniti što je prije moguće. I ovdje trebate koristiti svoj upravitelj paketa. Na primjer:

    Ili za Debian sisteme:

    sudo apt update && sudo apt upgrade

    Možete podesiti Red Hat ili Fedoru da vam šalju obavještenja e-poštom kada budu dostupna nova sigurnosna ažuriranja. Takođe možete prilagoditi automatsko ažuriranje putem cron-a, ili možete koristiti Debianov aptcron da vas obavijesti da nadogradite svoj sistem.

    6. Koristite sigurnosne ekstenzije u Linuxu

    Linux operativni sistem dolazi s raznim sigurnosnim zakrpama koje se mogu koristiti za zaštitu od pogrešne konfiguracije ili malware. Ali možete koristiti i dodatne sisteme kontrole pristupa za aplikacije kao što su SELinux ili AppArrmor.

    SELinux pruža različite sigurnosne politike za Linux kernel. Ovdje je moguće kontrolirati pristup svim sistemskim resursima koristeći uloge. Određenom resursu može pristupiti samo program čija uloga to dozvoljava, a čak ni prava superkorisnika nisu bitna. SELinux uvelike povećava sigurnost Linux sistema, jer se čak i root ovdje smatra normalnim korisnikom. Više detalja opisano je u posebnom članku.

    7. Korisnički nalozi i jake lozinke

    Koristite komande useradd i usermod za kreiranje i održavanje korisničkih naloga. Pobrinite se da imate dobru i jaku lozinku, ona bi trebala sadržavati najmanje osam znakova, po mogućnosti u drugom slovu, među kojima bi trebali biti posebni znakovi ili brojevi. Na primjer, 8 znakova, od kojih je sedam slova i jedan znak ili broj. Koristite alate kao što je John the Ripper da pronađete slabe korisničke lozinke na serveru i konfigurišite pam_cracklib.so da primenite politiku lozinki.

    8. Povremeno mijenjajte lozinke

    Naredba Promjena vam omogućava da odredite broj dana prije datuma prisilne promjene lozinke. Sistem koristi ove informacije da odredi kada bi ih korisnik trebao promijeniti. Ove postavke su u /etc/login.defs. Da biste onemogućili starenje lozinke, unesite sljedeću naredbu:

    promijeniti -l korisničko ime

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

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

    (korisnik): (lozinka): (zadnja_izmijenjena):(max_days): (minimum_days): (Upozorenje):(deaktiviraj):(expiration_lines):

    • Minimum dana- minimalni interval između promjena lozinke, odnosno koliko često korisnik može promijeniti lozinku.
    • Maksimum dana- koliko dana će lozinka biti važeća, nakon tog perioda korisnik će biti primoran da promijeni lozinku.
    • Upozorenje- broj dana nakon kojih će korisnik biti upozoren da treba promijeniti lozinku.
    • expiry_string- broj dana od 1. januara 1970. godine kada će račun biti potpuno onemogućen.

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

    Također je poželjno spriječiti korisnike da koriste stare lozinke, jer će u suprotnom biti poništeni svi pokušaji da ih se natjera da promijene lozinke.

    9. Blokirajte račune nakon neuspjelih pokušaja prijave

    Na Linux operativnom sistemu, možete koristiti naredbu faillog da vidite neuspjele pokušaje prijave korisnika. Možete ga koristiti i za postavljanje ograničenja za neuspjele pokušaje prijave. Sve informacije o neuspjelim pokušajima prijave pohranjuju se u /var/log/faillog datoteci. Da ga pogledate, upišite:

    A da biste postavili ograničenje pokušaja prijave za određeni račun, koristite:

    faillog -r -u korisnik

    Također možete ručno blokirati ili deblokirati račune koristeći naredbu passwd. Za blokiranje upotrebe:

    passwd -l korisnik

    I za otključavanje:

    passwd -u korisnik

    Također je preporučljivo provjeriti da li u sistemu postoje nalozi sa praznim lozinkama. Da biste to učinili, pokrenite:

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

    Također provjerite da li ima korisnika sa grupom ili ID-om 0. Trebao bi postojati samo jedan takav korisnik, a to je root. Možete provjeriti ovom komandom:

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

    Trebao bi biti samo jedan red:

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

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

    10. Onemogućite prijavu superkorisnika

    Da bi vaš linux sistem bio siguran, nikada se ne prijavljujete kao root. Možete koristiti sudo da dobijete potrebne dozvole i pokrenete željenu naredbu kao root. Ova komanda vam omogućava da ne otkrivate lozinku superkorisnika drugim administratorima, a sadrži i alate za praćenje, ograničavanje i praćenje radnji.

    11. Fizička sigurnost servera

    Sigurnost Linux servera mora uključivati ​​fizičku sigurnost. Morate ograničiti fizički pristup konzoli poslužitelja. Podesite BIOS da ne podržava pokretanje sa eksternih medija kao što su DVD, CD, USB. Takođe postavite lozinku na BIOS-u i GRUB bootloaderu da zaštitite njihove postavke.

    12. Onemogućite nepotrebne usluge

    Onemogućite sve nekorištene usluge i demone. Također ne zaboravite ukloniti ove usluge iz pokretanja. Možete navesti sve aktivne usluge na Red Hat sistemima pomoću naredbe:

    chkconfig --list | grep "3:on"

    Da biste onemogućili uslugu, koristite:

    servis stop
    $ chkconfig usluga isključena

    Nađi sve otvorene programe luke:

    Isto se može uraditi i sa nmap skenerom:

    nmap -sT -O lokalni host

    Koristite iptables da zatvorite sve portove koji ne bi trebali biti dostupni sa mreže. Ili prestani nepotrebne usluge kao što je gore opisano.

    13. Uklonite X server

    X server na serverskom računaru je potpuno opcionalan. Ne morate da pokrećete grafičko okruženje na namenskom Apache serveru ili serveru e-pošte. Uklonite ovaj softver da poboljšate sigurnost i performanse.

    14. Postavite Iptables

    iptables je program u korisničkom prostoru za konfigurisanje Netfilter firewall ugrađenog u kernel. Omogućava vam da filtrirate sav promet i dozvolite samo određene vrste prometa. Također koristite TCPWrappers - ACL sistem za filtriranje pristupa internetu. Možete spriječiti mnoge vrste DOS napada pomoću iptables. Mrežna sigurnost u Linuxu je veoma važan aspekt ukupne sigurnosti sistema.

    15. Postavite kernel

    Datoteka /etc/sysctl.conf čuva postavke kernela koje se učitavaju i primenjuju tokom pokretanja sistema.

    Omogućite execshield zaštitu od prepunjavanja bafera:

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

    Omogući zaštitu od lažiranja IP-a:

    net.ipv4.conf.all.rp_filter=1

    Onemogućite prosljeđivanje 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

    Zabilježite sve krivotvorene pakete:

    net.ipv4.conf.all.log_martians=1

    16. Particionirajte svoj čvrsti disk

    Odvajanje tvrdi disk na particije ovisno o namjeni datoteka poboljšava sigurnost Linux OS-a. Preporučljivo je napraviti zasebne sekcije za takve direktorije:

    • /Dom
    • /var i /var/tmp

    Napravite zasebne particije za Apache root direktorije i FTP servere. Otvorite datoteku /etc/fstab i postavite posebne opcije za željene particije:

    • noexec- nemojte izvršavati nikakve programe ili izvršne datoteke na ovoj particiji, dozvoljene su samo skripte
    • nodev- nemojte dozvoliti simbolične ili posebne uređaje na ovoj particiji.
    • nosuid- ne dozvoli SUID / SGID pristup za programe iz ovog odjeljka.

    17. Koristite ograničenje prostora na disku

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

    18. Onemogućite IPv6

    Internet protokol IPv6 sljedeće generacije zamijenit će već korišteni IPv4 u budućnosti. Ali trenutno ne postoje alati koji vam omogućavaju da provjerite sigurnost mreže zasnovane na IPv6. Mnoge Linux distribucije podrazumevano dozvoljavaju IPv6. Hakeri mogu slati neželjeni promet, a administratori ga neće moći pratiti. Dakle, ako vam ova usluga nije potrebna, onemogućite je.

    19. Onemogućite binarne SUID i SGID datoteke koje se ne koriste

    Sve izvršne datoteke za koje je omogućena oznaka SUID ili SGID potencijalno su opasne. Ova oznaka znači da će se program izvršavati s pravima superkorisnika. A to znači da ako program ima neku vrstu ranjivosti ili greške, onda lokalni ili udaljenog korisnika može koristiti ovaj fajl. Pronađite sve takve datoteke sljedećom naredbom:

    naći / -perm +4000

    Pronađite datoteke sa postavljenom SGID zastavicom:

    naći / -perm +2000

    Ili možemo sve to kombinirati u jednoj naredbi:

    find / \(-perm -4000 -o -perm -2000 \) -print
    $ pronađi / -put -suha -o -tip f -perm +6000 -ls

    Morat ćete detaljno proučiti svaki pronađeni fajl kako biste shvatili koliko je potreban ovaj ili onaj fajl.

    20. Javne datoteke

    Također je poželjno pronaći datoteke koje mogu mijenjati svi korisnici na sistemu. Da biste to učinili, koristite sljedeću naredbu:

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

    Sada morate provjeriti da li su prava za grupu i vlasnika svake datoteke ispravno postavljena i da li to predstavlja sigurnosni rizik.

    Također je poželjno pronaći sve datoteke koje ne pripadaju nikome:

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

    21. Koristite centralizirani sistem provjere autentičnosti

    Bez centraliziranog sistema za autentifikaciju, podaci korisnika postaju nedosljedni, što može dovesti do zastarjelih akreditiva i zaboravljenih naloga koji su odavno trebali biti izbrisani. Centralizirana usluga će vam omogućiti da zadržite kontrolu nad korisničkim nalozima i podacima za autentifikaciju na različitim Linux sistemi i Unix. Možete sinkronizirati podatke o autentifikaciji između servera. Ali nemojte koristiti NIS uslugu, bolje pogledajte Open DAP.

    Jedna od zanimljivih implementacija takvog sistema je Kerberos. Omogućava autentifikaciju korisnika pomoću tajnog ključa na mrežama gdje se paketi mogu presresti i modificirati. Kerberos koristi simetrični ključ za šifriranje podataka i zahtijeva Centar za upravljanje ključevima da bi funkcionirao. Možete podesiti udaljenu prijavu, udaljenu kopiju, sigurnu kopiju datoteka između sistema i druge zadatke sa visokim nivoom sigurnosti.

    22. Evidentiranje i revizija

    Postavite evidenciju i reviziju za prikupljanje i spremanje svih neuspjelih pokušaja prijave i pokušaja hakovanja. Podrazumevano, svi zapisnici, ili barem većina njih, nalaze se u /var/log/ folderu. Detaljnije o tome za šta su pojedini odgovorni govorili smo u posebnom članku.

    Dnevnike možete gledati pomoću uslužnih programa kao što su logwatch ili logcheck. Oni uvelike pojednostavljuju čitanje dnevnika. Možete pogledati ne cijeli fajl, već samo događaje koji vas zanimaju, kao i poslati sebi obavještenje na svoju e-mail adresu.

    Nadgledajte sistem pomoću auditd servisa. Program zapisuje na disk sve događaje revizije za koje ste zainteresovani. Sva podešavanja revizije se čuvaju u datoteci /etc/audit.rules.Pri pokretanju sistema, servis čita sva pravila iz ove datoteke. Možete ga otvoriti i konfigurirati sve kako vam je potrebno ili koristiti poseban uslužni program - auditctl. Možete postaviti sljedeće tačke:

    • Događaji pokretanja i isključivanja sistema
    • 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 izvođenja događaja
    • Snimanje mrežnih postavki Promjena događaja
    • Snimanje promjena korisnika i grupe
    • Pratite promjene fajlova

    23. Zaštitite svoj OpenSSH server

    Dozvolite samo korištenje protokola 2:

    Onemogućite prijavu kao superkorisnik:

    24. Instalirajte IDS

    IDS ili sistem za otkrivanje upada pokušava otkriti sumnjive, zlonamjerne aktivnosti kao što su DOS napad, skeniranje portova ili čak pokušaj hakovanja računara praćenjem mrežnog saobraćaja.

    Dobra je praksa da se takav softver implementira prije nego što sistem postane dostupan sa Interneta. Možete instalirati AIDE, to je HIDS (Host based IDS) koji može kontrolirati sve aspekte interni uređaj vaš sistem.

    Snort je softver za otkrivanje upada u mrežu. Može analizirati i evidentirati pakete i analizirati mrežni promet u realnom vremenu.

    25. Zaštitite svoje datoteke i direktorije

    Linux ima odličnu zaštitu od neovlaštenog pristupa datotekama. Međutim, dozvole koje postavlja Linux i sistem podataka ne znače ništa kada napadač ima fizički pristup računaru i može se jednostavno povezati HDD računara na drugi sistem da kopirate svoje podatke. Ali možete lako zaštititi svoje datoteke šifriranjem:

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

    nalazi

    Sada će sigurnost linux OS-a na vašem računaru biti znatno povećana. Ne zaboravite s vremena na vrijeme postaviti složene lozinke. Napišite svoj omiljeni alat za sigurnost sistema u komentarima.

    U ovom članku ćemo se upoznati s glavnim uslužnim programima za učvršćivanje Linuxa. Na ruskom se to zove nešto poput "provjera nivoa sigurnosti Linux sistema i procjena ispravnosti konfiguracija u smislu sigurnosti informacija". Naravno, nećemo samo pregledati programe, već ćemo dati i primjere njihove upotrebe.

    Vaš vlastiti revizor, ili sigurnost na svoju ruku

    Administratori, a još više, revizori IS-a često se suočavaju sa zadatkom provjere sigurnosti veliki broj domaćini u vrlo kratkom vremenu. I naravno, postoje specijalizovani alati u segmentu preduzeća za rešavanje ovih problema, na primer, kao što su skeneri mrežne bezbednosti. Siguran sam da su svi oni - od otvorenih izvora OpenVAS motora do komercijalnih proizvoda poput Nessus-a ili Nexpose-a - poznati našim čitateljima. Međutim, ovaj softver se obično koristi za traženje zastarjelog i stoga ranjivog softvera, a zatim za pokretanje upravljanja zakrpama. Osim toga, ne uzimaju svi skeneri u obzir neke specifične karakteristike ugrađenih sigurnosnih mehanizama Linuxa i drugih proizvoda otvorenog koda. I na kraju, ali ne i najmanje važno, cijena problema je bitna, jer samo kompanije koje izdvajaju budžet za ovaj posao mogu sebi priuštiti komercijalne proizvode.

    Zato ćemo danas govoriti o specijaliziranom skupu slobodno distribuiranih uslužnih programa koji mogu dijagnosticirati trenutni nivo sigurnosti sistema, procijeniti potencijalne rizike, na primjer, „dodatne usluge“ koje vire na Internetu ili nesigurnu zadanu konfiguraciju, pa čak i predložiti opcije za ispravljanje pronađenih nedostataka. Još jedna prednost korištenja ovih alata je mogućnost repliciranja tipičnih farmskih testnih skripti iz bilo kojeg broja Linux sistema i formiranja dokumentirane testne baze u obliku dnevnika i zasebnih izvještaja.

    Praktični aspekti sigurnosne revizije

    Ako pogledate kroz oči revizora, onda se pristup testiranju može podijeliti u dvije vrste.

    Prvi- radi se o usklađenosti sa takozvanim zahtjevima usklađenosti, ovdje se provjerava prisustvo obaveznih sigurnosnih elemenata propisanih u bilo kojem međunarodnom standardu ili "najboljoj praksi". Klasičan primjer su PCI DSS zahtjevi za platne IT sisteme, serije SOX404, NIST-800, .

    Sekunda- ovo je čisto racionalan pristup zasnovan na pitanju "Šta se još može učiniti da se poboljša sigurnost?". Nema obaveznih zahteva - samo vaše znanje, bistra glava i vešte ruke. Na primjer, ovo je ažuriranje verzije kernela i/ili paketa aplikacija, omogućavanje, prisilno postavljanje, postavljanje zaštitnog zida.

    Sve što se odnosi na drugi pristup obično se naziva posebnim terminom. otvrdnjavanje, što se takođe može definisati kao "radnje koje imaju za cilj jačanje nivoa početne sigurnosti operativnog sistema (ili programa) uglavnom redovnim sredstvima."

    Usklađenost sa zahtjevima usaglašenosti se obično provjerava u pripremi za prolazak obavezne revizije kao što je PCI DSS ili drugi certifikacijski audit. Više pažnje ćemo posvetiti komponenti očvršćavanja. Svi glavni programeri nude za svoje proizvode Smjernice za otvrdnjavanje- vodiči koji sadrže savjete i preporuke o tome kako poboljšati sigurnost, uzimajući u obzir uobičajene sigurnosne mehanizme i specifičnosti softvera. Dakle, Red Hat, Debian, Oracle, Cisco imaju slične priručnike.

    INFO

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

    sudo apt-get update sudo apt-get install lynis

    A za RPM orijentirane distribucije (nakon dodavanja odgovarajućih spremišta):

    Yum instaliraj linus -y

    Instalacija na macOS:

    $ brew traži lynis $ brew install lynis

    Da biste pokrenuli Lynis, dovoljno je navesti barem jedan ključ. Na primjer, da biste pokrenuli sve dostupne testove, trebali biste navesti prekidač -c (označite sve, provjerite sve):

    # Tipični testni paket sudo lynis audit sistema # Kompletan sudo lynis audit system -c testni paket # Skenirajte udaljeni sistem revizije udaljenog hosta







    Prije revizije uvijek je dobra ideja provjeriti da li nova verzija Lynis:

    Lynis informacije o ažuriranju && lynis provjera ažuriranja

    Uslužni program Lynis, pored standardnog, ima još jedan način rada - neprivilegovano trčanje:

    Lynis audit --pentest

    Ako želite da stavite ime revizora koji je započeo test, samo dodajte parametar -auditor :

    Sudo lynis sistem revizije -c -revizor tata

    U bilo kojoj fazi revizije, proces verifikacije se može nastaviti (Enter) ili prisilno prekinuti (Ctrl+C). Rezultati izvršenih testova biće upisani u Lynis log u /var/log/lynis.log. Imajte na umu da će dnevnik biti prepisan svaki put kada se uslužni program pokrene.

    Da biste testirali na sistematskoj osnovi u automatskom načinu rada, možete dodijeliti odgovarajući posao Cron planeru pomoću prekidača -cronjob. U ovom slučaju, uslužni program će raditi prema navedenom predlošku (konfiguraciji) i neće prikazati nikakve interaktivne poruke, pitanja ili upozorenja. Svi rezultati će biti sačuvani u dnevniku. Na primjer, evo skripte za pokretanje uslužnog programa sa zadanom konfiguracijom jednom mjesečno:

    #!/bin/sh AUDITOR="automatizirano" DATUM=$(datum +%Y%m%d) HOST=$(ime hosta) LOG_DIR="/var/log/lynis" REPORT="$LOG_DIR/report-$( HOST).$(DATE)" DATA="$LOG_DIR/report-data-$(HOST).$(DATE).txt" cd /usr/local/lynis ./lynis -c –auditor "$(AUDITOR)" --cronjob > $(REPORT) mv /var/log/lynis-report.dat $(DATA) # Kraj

    Sačuvajte ovu skriptu u /etc/cron.monthly/lynis direktorijum. I ne zaboravite dodati staze za čuvanje dnevnika (/usr/local/lynis i /var/log/lynis), inače možda neće raditi ispravno.

    Možete vidjeti listu svih komandi dostupnih za pozivanje:

    Lynis show komande

    Posebno znatiželjni mogu pogledati postavke iz zadane konfiguracije:

    Postavke Lynis emisije

    Kratko uputstvo za rad sa uslužnim programom:

    man lynis

    Opcije za moguće statuse na osnovu rezultata provjere ograničene su na sljedeću listu: NIŠTA, SLABO, URAĐENO, PRONAĐENO, NIJE_PRONAĐENO, OK, UPOZORENJE.


    Izvođenje pojedinačnih testova u Lynisu

    U praksi će možda biti potrebno izvršiti samo nekoliko testova. Na primjer, ako vaš server obavlja samo funkcije Mail Servera ili Apache-a. Za ovo možemo koristiti opciju -tests. Sintaksa naredbe je sljedeća:

    Lynis -testovi "Test-IDs"

    Ako vam je teško razumjeti zbog velikog broja ID-ova testa, onda možete koristiti parametar grupe -test-category . Uz ovu opciju, Lynis pokreće samo testne ID-ove koji spadaju u određenu kategoriju. Na primjer, planiramo pokrenuti testove zaštitnog zida i kernela:

    ./lynis -testovi-kategorija "kernel vatrozida"

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

    Predlozi za ispravke

    Sva upozorenja će biti navedena nakon rezultata. Svaki od njih počinje tekstom upozorenja, a zatim je test koji ga je generirao označen u zagradama pored njega. Sljedeći red sugerira rješenje problema, ako postoji. Zapravo, posljednji red je URL na kojem možete vidjeti detalje i pronaći dodatne preporuke o tome kako riješiti problem.

    Profili

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

    I dalje dostupno samo članovima

    Opcija 1. Pridružite se zajednici "site" da pročitate sve materijale na stranici

    Članstvo u zajednici tokom navedenog perioda će vam omogućiti pristup SVIM Hakerskim materijalima, povećati vaš lični kumulativni popust i omogućiti vam da akumulirate profesionalnu ocjenu Xakep Score!