25 Savjeti za jačanje sigurnosti za Linux poslužitelje
Svi kažu da je Linux siguran prema zadanim postavkama i donekle se slažu (to su diskutabilne teme). Međutim, Linux prema zadanim postavkama ima ugrađeni sigurnosni model. Trebate ga podesiti i prilagoditi svojim potrebama, što može pomoći da sustav bude sigurniji. Linuxom je teže upravljati, ali nudi više fleksibilnosti i mogućnosti konfiguracije.
Osigurati sustav u proizvodnji od ruku hakera i krekera izazovan je zadatak za Administratora sustava. Ovo je naš prvi članak koji se odnosi na “Kako osigurati Linux Box” ili “Ojačavanje Linux Box-a“. U ovom ćemo postu objasniti 25 korisnih savjeta i trikova za zaštitu vašeg Linux sustava. Nadamo se da će vam savjeti i trikovi u nastavku pomoći da osigurate svoj sustav.
1. Sigurnost fizičkog sustava
Konfigurirajte BIOS da onemogućite pokretanje s CD/DVD-a, Vanjskih uređaja, Floppy Drive u BIOS-u<. Zatim omogućite BIOS lozinku i također zaštitite GRUB lozinkom da ograničite fizički pristup vašem sustavu.
- Postavite GRUB lozinku za zaštitu Linux poslužitelja
2. Particije diska
Važno je imati različite particije kako bi se postigla veća sigurnost podataka u slučaju da se dogodi bilo kakva katastrofa. Stvaranjem različitih particija podaci se mogu razdvojiti i grupirati. Kada se dogodi neočekivana nezgoda, samo će podaci te particije biti oštećeni, dok će podaci na ostalim particijama preživjeti. Provjerite morate li imati sljedeće odvojene particije i provjerite trebaju li aplikacije trećih strana biti instalirane na zasebnim datotečnim sustavima pod /opt.
/
/boot
/usr
/var
/home
/tmp
/opt
3. Minimizirajte pakete kako biste smanjili ranjivost
Želite li stvarno instalirati sve vrste usluga?. Preporuča se izbjegavati instaliranje beskorisnih paketa kako bi se izbjegle ranjivosti u paketima. To može smanjiti rizik da ugrožavanje jedne usluge može dovesti do ugrožavanja drugih usluga. Pronađite i uklonite ili onemogućite neželjene usluge s poslužitelja kako biste smanjili ranjivost. Upotrijebite naredbu ‘chkconfig’ da biste saznali usluge koje se izvode na razini 3.
/sbin/chkconfig --list |grep '3:on'
Nakon što otkrijete da su pokrenute neželjene usluge, onemogućite ih pomoću sljedeće naredbe.
chkconfig serviceName off
Koristite RPM upravitelj paketa kao što su alati “yum” ili “apt-get” za popis svih instaliranih paketa na sustavu i njihovo uklanjanje pomoću sljedeću naredbu.
yum -y remove package-name
sudo apt-get remove package-name
- 5 Primjeri naredbi chkconfig
- 20 praktičnih primjera RPM naredbi
- 20 Linux YUM naredbi za upravljanje Linux paketima
- 25 APT-GET i APT-CACHE naredbe za upravljanje upravljanjem paketima
4. Provjerite mrežne priključke za slušanje
Uz pomoć 'netstat' mrežne naredbe možete vidjeti sve otvorene portove i pridružene programe. Kao što sam rekao gore, koristite naredbu ‘chkconfig’ da onemogućite sve neželjene mrežne usluge iz sustava.
netstat -tulpn
- 20 Netstat naredbi za upravljanje mrežom u Linuxu
5. Koristite Secure Shell (SSH)
Protokoli Telnet i rlogin koriste običan tekst, a ne šifrirani format, što predstavlja kršenje sigurnosti. SSH je siguran protokol koji koristi tehnologiju šifriranja tijekom komunikacije s poslužiteljem.
Nikad se nemojte prijavljivati izravno kao root osim ako je potrebno. Koristite “sudo” za izvršavanje naredbi. sudo navedeni su u datoteci /etc/sudoers također se mogu uređivati pomoću pomoćnog programa “visudo” koji se otvara u uređivaču VI.
Također se preporučuje promijeniti zadani broj porta SSH 22 nekim drugim brojem porta više razine. Otvorite glavnu SSH konfiguracijsku datoteku i napravite neke sljedeće parametre kako biste korisnicima ograničili pristup.
vi /etc/ssh/sshd_config
Onemogući root prijavu
PermitRootLogin no
Dopusti samo određene korisnike
AllowUsers username
Koristite SSH protokol 2 verzije
Protocol 2
- 5 najboljih praksi za osiguranje i zaštitu SSH poslužitelja
6. Održavajte sustav ažuriranim
Uvijek održavajte sustav ažuriranim najnovijim izdanjima zakrpa, sigurnosnih popravaka i kernela kada je dostupan.
yum updates
yum check-update
7. Zaključajte Cronjobs
Cron ima vlastitu ugrađenu značajku, gdje dopušta određivanje tko smije, a tko ne želi pokretati poslove. To se kontrolira upotrebom datoteka pod nazivom /etc/cron.allow i /etc/cron.deny. Da biste zaključali korisnika koristeći cron, jednostavno dodajte korisnička imena u cron.deny i da biste omogućili korisniku da pokrene cron dodajte u datoteku cron.allow. Ako svim korisnicima želite onemogućiti korištenje crona, dodajte redak ‘ALL’ u datoteku cron.deny.
echo ALL >>/etc/cron.deny
- 11 primjera Cron rasporeda u Linuxu
8. Onemogućite otkrivanje USB sticka
Često se događa da želimo ograničiti korisnike da koriste USB stick u sustavima za zaštitu i sigurnost podataka od krađe. Napravite datoteku '/etc/modprobe.d/no-usb' i dodavanje retka ispod neće otkriti USB pohranu.
install usb-storage /bin/true
9. Uključite SELinux
Sigurnosno poboljšani Linux (SELinux) obvezni je sigurnosni mehanizam kontrole pristupa koji se nalazi u kernelu. Onemogućavanje SELinuxa znači uklanjanje sigurnosnog mehanizma iz sustava. Dvaput dobro razmislite prije uklanjanja, ako je vaš sustav spojen na internet i pristupa mu javnost, onda razmislite još malo o tome.
SELinux pruža tri osnovna načina rada i oni su.
- Provođenje: Ovo je zadani način rada koji omogućuje i provodi SELinux sigurnosnu politiku na računalu.
- Permisivno: U ovom načinu, SELinux neće provoditi sigurnosnu politiku na sustavu, samo upozoravati i bilježiti radnje. Ovaj način je vrlo koristan u smislu rješavanja problema povezanih s SELinuxom.
- Onemogućeno: SELinux je isključen.
Možete vidjeti trenutni status SELinux načina rada iz naredbenog retka pomoću 'system-config-selinux', 'getenforce' ili ' sestatus' naredbe.
sestatus
Ako je onemogućen, omogućite SELinux pomoću sljedeće naredbe.
setenforce enforcing
Također se može upravljati iz datoteke '/etc/selinux/config', gdje je možete omogućiti ili onemogućiti.
10. Uklonite KDE/GNOME stolna računala
Nema potrebe pokretati X Window desktope poput KDE ili GNOME na vašem namjenskom LAMP poslužitelju. Možete ih ukloniti ili onemogućiti kako biste povećali sigurnost poslužitelja i performanse. Za jednostavno onemogućavanje otvorite datoteku '/etc/inittab' i postavite razinu pokretanja na 3. Ako ga želite potpuno ukloniti iz sustava, upotrijebite naredbu u nastavku.
yum groupremove "X Window System"
11. Isključite IPv6
Ako ne koristite IPv6 protokol, trebali biste ga onemogućiti jer većina aplikacija ili pravila ne zahtijeva IPv6 protokol i trenutačno nije potreban na poslužitelju . Idite na konfiguracijsku datoteku mreže i dodajte sljedeće retke da biste je onemogućili.
vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no
12. Ograničite korisnike da koriste stare lozinke
Ovo je vrlo korisno ako želite onemogućiti korisnicima da koriste iste stare lozinke. Datoteka stare lozinke nalazi se na /etc/security/opasswd. To se može postići korištenjem PAM modula.
Otvorite '/etc/pam.d/system-auth' datoteku pod RHEL/CentOS/Fedora.
vi /etc/pam.d/system-auth
Otvorite datoteku ‘/etc/pam.d/common-password’ pod Ubuntu/Debian/Linux Mint.
vi /etc/pam.d/common-password
Dodajte sljedeći redak u odjeljak ‘auth’.
auth sufficient pam_unix.so likeauth nullok
Dodajte sljedeći redak u odjeljak ‘lozinka’ kako biste onemogućili korisniku da ponovno koristi posljednjih 5 zaporki.
password sufficient pam_unix.so nullok use_authtok md5 shadow remember=5
Poslužitelj pamti samo zadnjih 5 zaporki. Ako ste pokušali upotrijebiti bilo koju od zadnjih 5 starih lozinki, dobit ćete pogrešku poput.
Password has been already used. Choose another.
13. Kako provjeriti istek lozinke korisnika
U Linuxu su korisničke lozinke pohranjene u datoteci '/etc/shadow' u šifriranom formatu. Za provjeru isteka korisničke lozinke morate upotrijebiti naredbu ‘chage’. Prikazuje informacije o pojedinostima isteka lozinke zajedno s datumom posljednje promjene lozinke. Sustav koristi ove detalje kako bi odlučio kada korisnik mora promijeniti svoju lozinku.
Da biste vidjeli informacije o starenju postojećeg korisnika kao što su datum isteka i vrijeme, koristite sljedeću naredbu.
#chage -l username
Da biste promijenili starost lozinke bilo kojeg korisnika, koristite sljedeću naredbu.
#chage -M 60 username
#chage -M 60 -m 7 -W 7 userName
Parametri
- -M Postavite najveći broj dana
- -m Postavite minimalni broj dana
- -W Postavite broj dana upozorenja
14. Ručno zaključajte i otključajte račun
Značajke zaključavanja i otključavanja vrlo su korisne, umjesto uklanjanja računa iz sustava, možete ga zaključati na tjedan ili mjesec. Za zaključavanje određenog korisnika možete koristiti naredbu follow.
passwd -l accountName
Napomena: Zaključani korisnik još uvijek je dostupan samo za root korisnika. Zaključavanje se izvodi zamjenom šifrirane lozinke (!) nizom. Ako netko pokuša pristupiti sustavu koristeći ovaj račun, dobit će pogrešku sličnu donjoj.
su - accountName
This account is currently not available.
Za otključavanje ili omogućavanje pristupa zaključanom računu upotrijebite naredbu as. Ovo će ukloniti (!) niz sa šifriranom lozinkom.
passwd -u accountName
15. Provođenje jačih lozinki
Brojni korisnici koriste meke ili slabe lozinke i njihove lozinke mogu biti hakirane napadima temeljenima rječnikom ili brutalnom silom. Modul ‘pam_cracklib’ dostupan je u nizu modula PAM (Pluggable Authentication Modules) koji će prisiliti korisnika da postavi jake zaporke. Otvorite sljedeću datoteku pomoću uređivača.
Pročitajte također:
vi /etc/pam.d/system-auth
I dodajte redak koristeći kreditne parametre kao (lcredit, ucredit, dcredit i/ili ocredit malim slovima , velika slova, znamenke i ostalo)
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1
16. Omogućite Iptables (vatrozid)
Toplo se preporučuje da omogućite Linux firewall kako biste osigurali neovlašteni pristup vašim poslužiteljima. Primijenite pravila u iptables za filtriranje dolaznih, odlaznih i prosljeđujućih paketa. Možemo navesti izvornu i odredišnu adresu za dopuštanje i odbijanje u određenom udp/tcp broju porta.
- Osnovni vodič i savjeti za IPTables
17. Onemogućite Ctrl+Alt+Delete u Inittab
U većini distribucija Linuxa, pritiskom na 'CTRL-ALT-DELETE' vaš sustav će se ponovno pokrenuti. Dakle, nije dobra ideja imati ovu opciju omogućenu barem na proizvodnim poslužiteljima, ako netko to greškom učini.
Ovo je definirano u '/etc/inittab' datoteci, ako pažljivo pogledate tu datoteku vidjet ćete red sličan donjem. Prema zadanim postavkama redak nije komentiran. Moramo to komentirati. Ova posebna signalizacija slijeda ključeva će isključiti sustav.
Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
18. Provjera praznih lozinki na računima
Svaki račun koji ima praznu lozinku znači da je otvoren za neovlašteni pristup bilo kome na webu i dio je sigurnosti unutar Linux poslužitelja. Dakle, morate osigurati da svi računi imaju jake lozinke i da nitko nema ovlašteni pristup. Računi s praznim lozinkama sigurnosni su rizici i lako ih je moguće hakirati. Kako biste provjerili ima li računa s praznom lozinkom, upotrijebite sljedeću naredbu.
cat /etc/shadow | awk -F: '($2==""){print $1}'
19. Prikažite SSH natpis prije prijave
Uvijek je bolja ideja imati legalni banner ili sigurnosne bannere sa nekim sigurnosnim upozorenjima prije SSH autentifikacije. Za postavljanje takvih bannera pročitajte sljedeći članak.
- Prikaži SSH poruku upozorenja korisnicima
20. Pratite aktivnosti korisnika
Ako imate posla s mnogo korisnika, važno je prikupiti informacije o aktivnostima i procesima svakog korisnika i analizirati ih kasnije ili u slučaju bilo kakvih problema s performansama, sigurnosti. Ali kako možemo pratiti i prikupljati informacije o aktivnostima korisnika.
Postoje dva korisna alata pod nazivom ‘psacct’ i ‘acct’ koji se koriste za praćenje korisničkih aktivnosti i procesa na sustavu. Ovi alati rade u pozadini sustava i kontinuirano prate svaku aktivnost korisnika na sustavu i resurse koje koriste usluge kao što su Apache, MySQL, SSH, FTP, itd. Za više informacija o instalaciji, konfiguraciji i korištenju, posjetite donji url.
- Pratite korisničku aktivnost pomoću psacct ili acct naredbi
21. Redovito pregledavajte zapise
Premjestite zapisnike u namjenski poslužitelj zapisnika, to može spriječiti uljeze da lako mijenjaju lokalne zapisnike. Ispod su Common Linux zadani nazivi datoteka dnevnika i njihova upotreba:
- /var/log/message – Gdje su dostupni dnevnici cijelog sustava ili dnevnici trenutne aktivnosti.
- /var/log/auth.log – Dnevnici provjere autentičnosti.
- /var/log/kern.log – Dnevnici kernela.
- /var/log/cron.log – Crond zapisi (cron posao).
- /var/log/maillog – Dnevnici poslužitelja pošte.
- /var/log/boot.log – Dnevnik pokretanja sustava.
- /var/log/mysqld.log – Log datoteka MySQL poslužitelja baze podataka.
- /var/log/secure – Dnevnik provjere autentičnosti.
- /var/log/utmp ili /var/log/wtmp : Datoteka zapisa prijave.
- /var/log/yum.log: Yum datoteke dnevnika.
22. Sigurnosna kopija važnih datoteka
U proizvodnom sustavu potrebno je napraviti sigurnosnu kopiju važnih datoteka i držati ih u sigurnosnom trezoru, na udaljenom mjestu ili izvan mjesta radi oporavka od katastrofe.
23. NIC spajanje
Postoje dvije vrste načina u povezivanju NIC, što treba spomenuti u sučelju povezivanja.
- mode=0 – Round Robin
- mode=1 – Aktivno i sigurnosno kopiranje
NIC Bonding pomaže nam da izbjegnemo jednu točku kvara. U NIC povezivanju, povezujemo dvije ili više Mrežnih Ethernet kartica zajedno i činimo jedno virtualno sučelje gdje možemo dodijeliti IP adresu za razgovor s drugim poslužitelji. Naša mreža bit će dostupna u slučaju da jedna NIC kartica ne radi ili nije dostupna iz bilo kojeg razloga.
Pročitajte također: Stvorite povezivanje NIC kanala u Linuxu
24. Zadržite /boot kao samo za čitanje
Linux kernel i njegove povezane datoteke nalaze se u direktoriju /boot koji je prema zadanim postavkama čitaj-piši. Promjena u samo za čitanje smanjuje rizik od neovlaštene izmjene kritičnih datoteka za pokretanje. Da biste to učinili, otvorite datoteku “/etc/fstab”.
vi /etc/fstab
Dodajte sljedeći redak na dno, spremite ga i zatvorite.
LABEL=/boot /boot ext2 defaults,ro 1 2
Imajte na umu da morate resetirati promjenu na čitanje i pisanje ako budete trebali nadograditi kernel u budućnosti.
25. Ignorirajte ICMP ili Broadcast Request
Dodajte sljedeći redak u datoteku “/etc/sysctl.conf” da biste zanemarili zahtjev za ping ili emitiranje.
Ignore ICMP request:
net.ipv4.icmp_echo_ignore_all = 1
Ignore Broadcast request:
net.ipv4.icmp_echo_ignore_broadcasts = 1
Učitajte nove postavke ili promjene pokretanjem sljedeće naredbe
#sysctl -p
Ako ste na gornjem popisu propustili bilo koji važan savjet za sigurnost ili stvrdnjavanje ili imate bilo koji drugi savjet koji treba uključiti na popis. Molimo ostavite svoje komentare u naš okvir za komentare. TecMint je uvijek zainteresiran za primanje komentara, prijedloga kao i za raspravu o poboljšanju.