Întărirea Linux: o listă de verificare în 15 pași pentru un server Linux securizat

Gus Khawaja

majoritatea oamenilor presupun că Linux este sigur și aceasta este o presupunere falsă. Imaginați-vă că laptopul dvs. este furat fără a fi mai întâi întărit. Un hoț ar presupune probabil că numele dvs. de utilizator este „root” și parola dvs. este „toor”, deoarece aceasta este parola implicită pe Kali și majoritatea oamenilor continuă să o folosească. Tu crezi? Sper că nu.

implicațiile negative în carieră ale alegerii de a nu vă întări gazda Kali Linux sunt severe, așa că vă voi împărtăși pașii necesari pentru a vă asigura gazda Linux, inclusiv modul în care folosesc testarea penetrării și Kali Linux pentru a face treaba. Este important să rețineți că, deși sunt multe distribuții (aka distribuții) ale Linux și fiecare diferă de perspectiva liniei de comandă, logica este aceeași. Utilizați următoarele sfaturi pentru a vă întări propria casetă Linux.

1-documentați informațiile gazdă

de fiecare dată când lucrați la o nouă lucrare de întărire Linux, trebuie să creați un document nou care să conțină toate elementele din lista de verificare enumerate în această postare și trebuie să verificați fiecare element pe care l-ați aplicat. În plus, în partea de sus a documentului, trebuie să includeți informațiile gazdei Linux:

  • numele mașinii
  • adresa IP
  • adresa Mac
  • numele persoanei care face întărirea (cel mai probabil dvs.)
  • Data
  • Numărul activului (dacă lucrați pentru o companie, atunci trebuie să includeți numărul activului pe care compania dvs. îl folosește pentru etichetarea gazdelor.)

2-protecție BIOS

trebuie să protejați BIOS-ul gazdei cu o parolă, astfel încât utilizatorul final să nu poată modifica și suprascrie setările de securitate din BIOS; este important să păstrați această zonă protejată de orice modificări. Fiecare producător de computere are un set diferit de taste pentru a intra în modul BIOS, atunci este vorba de găsirea configurației în care setați parola administrativă.

apoi, trebuie să dezactivați pornirea de pe dispozitive media externe (USB/CD/DVD). Dacă omiteți să modificați această setare, oricine poate utiliza un stick USB care conține un sistem de operare bootabil și poate accesa datele sistemului de operare.

+ doriți să aflați mai multe despre Linux? Aflați mai multe cu Pluralsight, o platformă de învățare tehnologică. Aflați Linux acum. +

plăcile de bază ale celor mai recente servere au un server Web intern unde le puteți accesa de la distanță. Asigurați-vă că schimbați parola implicită a paginii de administrare sau dezactivați-o dacă este posibil.

3-criptare Hard disk (confidențialitate)

majoritatea distribuțiilor Linux vă vor permite să criptați discurile înainte de instalare. Criptarea discului este importantă în caz de furt, deoarece persoana care v-a furat computerul nu va putea citi datele dvs. dacă conectează hard diskul la computerul său.

în imaginea de mai jos, Alegeți a treia opțiune din listă: ghidată-utilizați întregul disc și configurați LVM criptat (LVM înseamnă logical volume manager.)

Linux nu acceptă criptarea, puteți merge cu un software precum TrueCrypt.

4-protecția discului(disponibilitate)

copiile de rezervă au atât de multe avantaje în cazul unui sistem deteriorat, bug-uri în actualizarea sistemului de operare. Pentru serverele importante, copia de rezervă trebuie transferată în afara site-ului în caz de dezastru. Backup trebuie să fie gestionate, de asemenea. De exemplu, cât timp veți păstra vechile copii de rezervă? Când trebuie să faceți backup pentru sistemul dvs. (în fiecare zi, în fiecare săptămână …)?

sistemele critice ar trebui separate în partiții diferite pentru:

  • /
  • /boot
  • /usr
  • /home
  • /tmp
  • /var
  • /opt

porționarea discurilor vă oferă posibilitatea de performanță și securitate în cazul unei erori de sistem. În imaginea de mai jos, puteți vedea opțiunea de a separa partițiile în Kali Linux în timpul instalării.

5-blocați directorul de pornire

directorul de pornire conține fișiere importante legate de nucleul Linux, deci trebuie să vă asigurați că acest director este blocat pentru permisiuni numai în citire urmând următorii pași simpli. Mai întâi, deschideți fișierul „fstab”.

apoi, adăugați ultima linie evidențiată în partea de jos.

Când terminați editarea fișierului, trebuie să setați proprietarul executând următoarea comandă:

#chown root:root /etc/fstab

apoi, am setat câteva permisiuni pentru securizarea setărilor de boot:

  • setați proprietarul și grupul de /etc/grub.conf pentru utilizatorul root:

#chown root:root /etc/grub.conf

  • setați permisiunea pe/etc / grub.fișier conf pentru a citi și scrie doar pentru root:

#chmod og-rwx /etc/grub.conf

  • necesită autentificare pentru modul single-user:

#sed -i "/SINGLE/s/sushell/sulogin/" /etc/sysconfig/init

#sed -i "/PROMPT/s/yes/no/" /etc/sysconfig/init

6-dezactivați utilizarea USB

în funcție de cât de critic este sistemul dvs., uneori este necesar să dezactivați utilizarea stick-urilor USB pe gazda Linux. Există mai multe moduri de a nega utilizarea de stocare USB; aici este unul popular:

deschideți „lista neagră.conf ” fișier folosind editorul de text preferat:

#nano /etc/modprobe.d/blacklist.conf

Când fișierul se deschide, adăugați următoarea linie la sfârșitul fișierului (salvați și închideți):

blacklist usb_storage

după aceasta, deschideți rc.fișier local:

#nano /etc/rc.local

în cele din urmă, adăugați următoarele două linii:

modprobe -r usb_storage

exit 0

7-Actualizare sistem

primul lucru de făcut după prima pornire este să actualizați sistemul; acesta ar trebui să fie un pas ușor. În general, deschideți fereastra terminalului și executați comenzile corespunzătoare. În Kali Linux, realizați acest lucru executând comenzile din imaginea de mai jos:

8-verificați pachetele instalate

listați toate pachetele instalate pe sistemul dvs. de operare Linux și eliminați-le pe cele inutile. Trebuie să fiți foarte strict dacă gazda pe care încercați să o întăriți este un server, deoarece serverele au nevoie de cel mai mic număr de aplicații și servicii instalate pe ele. Iată un exemplu despre cum să listați pachetele instalate pe Kali Linux:

amintiți – vă că dezactivarea serviciilor inutile va reduce suprafața de atac, deci este important să eliminați următoarele servicii moștenite dacă le-ați găsit instalate pe serverul Linux:

  • Telnet server
  • RSH server
  • NIS server
  • TFTP server
  • TALK server

9-Verificați dacă există porturi deschise

identificarea conexiunilor deschise la internet este o misiune critică. În Kali Linux, folosesc următoarea comandă pentru a detecta orice porturi deschise ascunse:

10-Secure SSH

da, într-adevăr SSH este sigur, dar trebuie să întăriți și acest serviciu. În primul rând, dacă puteți dezactiva SSH, aceasta este o problemă rezolvată. Cu toate acestea, dacă doriți să o utilizați, atunci trebuie să modificați configurația implicită a SSH. Pentru a face acest lucru, navigați la /etc/ssh și deschideți fișierul „sshd_config” folosind editorul de text preferat.

  • schimbați numărul de port implicit 22 la altceva, de exemplu 99.
  • asigurați-vă că root nu se poate conecta de la distanță prin SSH:

PermitRootLogin no

  • permiteți unor utilizatori specifici:

AllowUsers

lista poate continua, dar acestea ar trebui să fie suficiente pentru a începe. De exemplu, unele companii adaugă bannere pentru a descuraja atacatorii și a-i descuraja să continue mai departe. Vă încurajez să verificați manualul SSH pentru a înțelege toate configurațiile din acest fișier sau puteți vizita acest site pentru mai multe informații.

iată câteva opțiuni suplimentare de care aveți nevoie pentru a vă asigura că există în fișierul ” sshd_config:

  • Protocol2
  • IgnoreRhosts la Da
  • HostbasedAuthentication no
  • PermitEmptyPasswords no
  • X11Forwarding no
  • MaxAuthTries 5
  • cifruri aes128-ctr,aes192-Ctr,AES256-CTR
  • clientaliveinterval 900
  • clientalivecountmax 0
  • usepam Da

în cele din urmă, setați permisiunile pe fișierul sshd_config, astfel încât numai utilizatorii root pot schimba conținutul său:

#chown root:root /etc/ssh/sshd_config

#chmod 600 /etc/ssh/sshd_config

11- Enable SELinux

securitate îmbunătățită Linux este un mecanism de securitate Kernel pentru sprijinirea politicii de securitate de control al accesului. SELinux are trei moduri de configurare:

  • dezactivat:dezactivat
  • permisiv: imprimă avertismente
  • aplicarea: politica este executată

utilizând un editor de text, deschideți fișierul de configurare:

#nano /etc/selinux/config

și asigurați-vă că politica este pusă în aplicare:

SELINUX=enforcing

12- parametrii de rețea

securizarea activităților rețelei gazdă Linux este o sarcină esențială. Nu presupuneți întotdeauna că firewall-ul dvs. va avea grijă de tot. Iată câteva caracteristici importante de luat în considerare pentru securizarea rețelei gazdă:

– dezactivați redirecționarea IP prin setarea rețelei.ipv4.parametrul ip_forward la 0 în ” /etc / sysctl.conf”

– Activați protecția mesajului de eroare rău prin setarea rețelei.ipv4.parametrul icmp_ignore_bogus_error_responses la 1 în ” / etc / sysctl.conf”

recomand cu tărie utilizarea Firewall-ului Linux prin aplicarea regulilor iptable și filtrarea tuturor pachetelor de intrare, ieșire și redirecționare. Configurarea regulilor iptables va dura ceva timp, dar merită durerea.

13- Politici de parolă

oamenii își reutilizează adesea parolele, ceea ce este o practică de securitate proastă. Parolele vechi sunt stocate în fișierul „/etc/security/opasswd”. Vom folosi modulul PAM pentru a gestiona politicile de securitate ale gazdei Linux. Sub o distribuție debian, deschideți fișierul ” /etc / pam.d / common-password ” folosind un editor de text și adăugați următoarele două linii:

auth sufficient pam_unix.so likeauth nullok

password sufficient pam_unix.so remember=4 (nu va permite utilizatorilor să reutilizeze ultimele patru parole.)

o altă politică de parolă care ar trebui forțată este parolele puternice. Modulul PAM oferă un pam_cracklib care protejează serverul de dicționar și atacuri brute-force. Pentru a îndeplini această sarcină, deschideți fișierul / etc / pam.d / system-auth folosind orice editor de text și adăugați următoarea linie:

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

Linux va hash parola pentru a evita salvarea acesteia în text clar deci, trebuie să vă asigurați că definiți un algoritm securizat de hashing a parolei SHA512.

o altă funcționalitate interesantă este blocarea contului după cinci încercări eșuate. Pentru a face acest lucru, trebuie să deschideți fișierul „/etc/pam.d / password-auth ” și adăugați următoarele linii:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

nu am terminat încă; este nevoie de un pas suplimentar. Deschideți fișierul ” /etc / pam.D / system-auth ” și asigurați – vă că aveți următoarele linii adăugate:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

după cinci încercări eșuate, doar un administrator poate debloca contul utilizând următoarea comandă:

# / usr/sbin / faillock — user <userlocked> — reset

de asemenea, o altă bună practică este să setați parola să expire după 90 de zile, pentru a îndeplini această sarcină trebuie să:

  • setați parametrul PASS_MAX_DAYS la 90 în „/etc/login.defs „
  • schimbați utilizatorul activ executând următoarea comandă :

#chage --maxdays 90 <user>

următorul sfat pentru îmbunătățirea politicilor de parole este de a restricționa accesul la comanda su prin setarea pam_wheel.so parametrii din ” / etc / pam.d / su”:

auth necesar pam_wheel.so use_uid

sfatul final pentru politica de parole este de a dezactiva conturile de sistem pentru utilizatorii non-root utilizând următorul script bash:

#!/bin/bash

for user in `awk -F: '( < 500) {print }' /etc/passwd`; do

if

then

/usr/sbin/usermod -L $user

if && &&

then /usr/sbin/usermod -s /sbin/nologin $user

fi

fi

done

14-permisiuni și verificări

pregătiți-vă mental, deoarece aceasta va fi o listă lungă. Dar, permisiunile sunt una dintre cele mai importante și critice sarcini pentru atingerea obiectivului de securitate pe o gazdă Linux.

#chown root:root /etc/anacrontab

#chmod og-rwx /etc/anacrontab

#chown root:root /etc/crontab

#chmod og-rwx /etc/crontab

#chown root:root /etc/cron.hourly

#chmod og-rwx /etc/cron.hourly

#chown root:root /etc/cron.daily

#chmod og-rwx /etc/cron.daily

#chown root:root /etc/cron.weekly

#chmod og-rwx /etc/cron.weekly

#chown root:root /etc/cron.monthly

#chmod og-rwx /etc/cron.monthly

#chown root:root /etc/cron.d

#chmod og-rwx /etc/cron.d

setați dreptul și permisiunile pe „/ var / spool / cron „pentru” root crontab”

#chown root:root <crontabfile>

#chmod og-rwx <crontabfile>

setați proprietarul utilizatorului / grupului și permisiunea pe fișierul” passwd”

#chmod 644 /etc/passwd

#chown root:root /etc/passwd

setați proprietarul utilizatorului/grupului și permisiunea în fișierul „grup”

#chmod 644 /etc/group

#chown root:root /etc/group

setați proprietarul utilizatorului/grupului și permisiunea în fișierul „shadow”

#chmod 600 /etc/shadow

#chown root:root /etc/shadow

setați proprietarul utilizatorului/grupului și permisiunea în fișierul ” gshadow

#chmod 600 /etc/gshadow

#chown root:root /etc/gshadow

15- procesul suplimentar de întărire

pentru acest ultim element din listă, includ câteva sfaturi suplimentare care ar trebui luate în considerare la întărirea unei gazde Linux.

mai întâi, restricționați depozitele de bază prin:

  • adăugarea hard core 0 la ” /etc/security / limits.conf ” fișier
  • adăugarea fs.suid_dumpable = 0 la ” / etc / sysctl.conf ” fișier

în al doilea rând, configurați Exec Shield prin:

  • adăugarea kernel-ului.exec-shield = 1 la ” / etc / sysctl.conf ” fișier

în al treilea rând, permite randomizat de plasare regiune de memorie virtuală de:

  • adăugarea kernel-ului.randomize_va_space = 2 la ” / etc / sysctl.conf ” fișier

cuvinte finale

în acest scurt post, am acoperit multe configurații importante pentru securitatea Linux. Dar, tocmai am zgâriat suprafața de întărire Linux—există o mulțime de configurații complexe, nitty-curajos. Pentru a afla mai multe despre cum să vă întăriți serverele Linux pentru o mai bună securitate, consultați cursurile mele pe Pluralsight.

Gus Khawaja este consultant de securitate și autor la Pluralsight. Lucrează în securitate, IT și dezvoltare de aplicații Web și creează cursuri pentru Pluralsight. Gus a livrat și dezvoltat cu succes soluții IT pentru companii din toată Canada. După mulți ani de experiență în informatică, și-a îndreptat atenția către securitatea cibernetică și importanța pe care securitatea o aduce acestui câmp minat. Pasiunea sa pentru hacking etic amestecat cu trecutul său în programare și-l face un înțelept elvețian cuțit armata profesionist în domeniul informaticii.

Lasă un răspuns

Adresa ta de email nu va fi publicată.