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:
- bin/bash
- # userslistinthesystem.sh
- # broji i navodi postojeće "prave" korisnike u sistemu.
- echo “[*] Postojeći korisnici (poređani po abecednom redu):”
- grep ‘/bin/bash’ /etc/passwd | grep -v 'korijen' | cut-f1
- -d':' | sortiraj
- echo -n “[*] Broj pronađenih stvarnih korisnika: “
- grep ‘/bin/bash’ /etc/passwd | grep -v 'korijen' | wc -l
Tokom revizije potrebno je provjeriti listu blokiranih i deblokiranih korisnika ( ime računa ). Sljedeća naredba će raditi za ovo:
- #!/bin/bash
- # passwd –s accountName
1.3 Pregled statistike za sve korisnike
- #!/bin/bash
- #!/bin/bash
- # ac -d
- #!/bin/bash
- # ac korisnik
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:
- #!/usr/bin/envksh
- zadnji -Fa|awk’
- /wtmp počinje/ (sljedeća; )
- /još uvijek prijavljen/ (sljedeća; )
- $0 == ponovno pokretanje (sljedeće;)
- NF > 0 (
- if(NR > 1)
- printf("
”); - printf("Korisnik:t%s
“, $1); # korisnik - printf(" Početak:t%s %s %s %s
”, $3, $4, $5, $6); - if($9 == "dolje")
- printf(" Kraj: isključivanje
”); - printf(" Kraj:t%s %s %s %s
”, $9, $10, $11, $12); - if(podstr ($NF, 1, 1) == “(“)
- t = $NF;
- h = "localhost";
- t = $(NF-1);
- h = $NF;
- gsub(“[()]”, “”, t);
- printf("Vrijeme uključeno:t%s
“, t); - 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
- Č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:
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
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!