23 CentOS servera cietēšanas drošības padomi - 2. daļa


Turpinot iepriekšējo apmācību par to, kā aizsargāt un cietināt CentOS serveri, šajā rakstā mēs apspriedīsim citus drošības padomus, kas tiks parādīti zemāk esošajā kontrolsarakstā.

  1. 20 CentOS servera cietēšanas drošības padomi - 1. daļa

21. Atspējojiet komandas Bezjēdzīgi SUID un SGID

Ja bināro programmu setuid un setgid biti ir iestatīti, šīs komandas var izpildīt uzdevumus ar citām lietotāja vai grupas tiesībām, piemēram, ar root tiesībām, kas var atklāt nopietnas drošības problēmas.

Bieži vien bufera pārsniegšanas uzbrukumi var izmantot šādus izpildāmos bināros failus, lai palaistu neatļautu kodu ar root enerģijas lietotāja tiesībām.

# find /  -path /proc -prune -o -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

Lai atiestatītu setuid bitu, izpildiet šādu komandu:

# chmod u-s /path/to/binary_file

Lai atiestatītu setgid bitu, palaidiet šādu komandu:

# chmod g-s /path/to/binary_file

22. Pārbaudiet, vai nav nepiederīgu failu un direktoriju

Faili vai direktoriji, kas nepieder derīgam kontam, jāizdzēš vai jāpiešķir ar lietotāja un grupas atļaujām.

Izsniedziet zemāk esošo komandu atrast, lai uzskaitītu failus vai direktorijus bez lietotāja un grupas.

# find / -nouser -o -nogroup -exec ls -l {} \;

23. Uzskaitiet pasaulē rakstāmus failus

Pasaulē rakstāma faila glabāšana sistēmā var būt bīstama, jo ikviens var tos modificēt. Izpildiet tālāk norādīto komandu, lai parādītu failus, kas rakstāmi ar vārdu, izņemot Symlinks, kas vienmēr ir rakstāmi visā pasaulē.

# find / -path /proc -prune -o -perm -2 ! -type l –ls

24. Izveidojiet spēcīgas paroles

Izveidojiet vismaz astoņu rakstzīmju paroli. Parolē jābūt cipariem, īpašajām rakstzīmēm un lielajiem burtiem. Izmantojiet pwmake, lai ģenerētu 128 bitu paroli no faila/dev/urandom.

# pwmake 128

25. Piemērojiet stingru paroļu politiku

Piespiest sistēmu izmantot stingras paroles, failā /etc/pam.d/passwd pievienojot zemāk redzamo rindu.

password required pam_pwquality.so retry=3

Pievienojot iepriekš minēto rindu, ievadītajā parolē nedrīkst būt vairāk par 3 rakstzīmēm monotoniskā secībā, piemēram, abcd, un vairāk nekā 3 identiskām secīgām rakstzīmēm, piemēram, 1111.

Lai piespiestu lietotājus izmantot paroli, kuras garums ir vismaz 8 rakstzīmes, ieskaitot visas rakstzīmju klases, rakstzīmju secības un secīgu rakstzīmju stipruma pārbaude failā /etc/security/pwquality.conf pievieno šādas rindas.

minlen = 8
minclass = 4
maxsequence = 3
maxrepeat = 3

26. Izmantojiet paroles novecošanos

Chage komandu var izmantot lietotāja paroles novecošanai. Lai iestatītu lietotāja paroles derīguma termiņu pēc 45 dienām, izmantojiet šādu komandu:

# chage -M 45 username

Lai atspējotu paroles derīguma termiņu, izmantojiet komandu:

# chage -M -1 username

Piespiediet tūlītēju paroles derīguma termiņu (lietotājam jāmaina parole nākamajā pieteikšanās reizē), izpildot šādu komandu:

# chage -d 0 username

27. Kontu bloķēšana

Lietotāju kontus var bloķēt, izpildot komandu passwd vai usermod:

# passwd -l username
# usermod -L username

Lai atbloķētu kontus, izmantojiet opciju -u komandai passwd un opciju -U usermod.

28. Novērst piekļuvi kontu čaulām

Lai neļautu sistēmas kontam (parastajam kontam vai pakalpojuma kontam) piekļūt bash čaulai, mainiet saknes apvalku uz/usr/sbin/nologin vai/bin/false failā/etc/passwd, izsniedzot tālāk norādīto komandu:

# usermod -s /bin/false username

Lai mainītu čaulu, izveidojot jaunu lietotāju, izsniedziet šādu komandu:

# useradd -s /usr/sbin/nologin username

29. Bloķējiet virtuālo lietotāja konsoli ar vlock

vlock ir programma, ko izmanto vienas vairāku sesiju bloķēšanai Linux konsolē. Instalējiet programmu un sāciet bloķēt termināla sesiju, izpildot šādas komandas:

# yum install vlock
# vlock

30. Lai pārvaldītu kontus un autentifikāciju, izmantojiet centralizētu sistēmu

Centralizētas autentifikācijas sistēmas izmantošana var ievērojami vienkāršot konta pārvaldību un kontroli. Pakalpojumi, kas var piedāvāt šāda veida kontu pārvaldību, ir IPA serveris, LDAP, Kerberos, Microsoft Active Directory, Nis, Samba ADS vai Winbind.

Daži no šiem pakalpojumiem pēc noklusējuma ir ļoti nodrošināti ar kriptogrāfijas protokoliem un simetriskas atslēgas kriptogrāfiju, piemēram, Kerberos.

31. Piespiest USB datu nesēja montāžu tikai lasīšanai

Izmantojot blockdev utilītu, jūs varat piespiest visus noņemamos datu nesējus uzstādīt kā tikai lasāmus. Piemēram, direktorijā /etc/udev/rules.d/ izveidojiet jaunu udev konfigurācijas failu ar nosaukumu 80-readonly-usb.rules ar šādu saturu:

SUBSYSTEM=="block",ATTRS{removable}=="1",RUN{program}="/sbin/blockdev --setro %N"

Pēc tam lietojiet kārtulu ar šādu komandu:

# udevadm control -reload

32. Sakņu piekļuves atspējošana, izmantojot TTY

Lai saknes kontā nevarētu pieteikties sistēmā, izmantojot visas konsoles ierīces (TTY), izdzēsiet securetty faila saturu, ierakstot šādu komandu termināla uzvedni kā root.

# cp /etc/securetty /etc/securetty.bak
# cat /dev/null > /etc/securetty

Atcerieties, ka šis noteikums neattiecas uz SSH pieteikšanās sesijām
Lai novērstu root pieteikšanos, izmantojot SSH, rediģējiet failu/etc/ssh/sshd_config un pievienojiet zemāk esošo rindu:

PermitRootLogin no

33. Izmantojiet POSIX ACL, lai paplašinātu sistēmas atļaujas

Piekļuves kontroles saraksti var noteikt piekļuves tiesības ne tikai vienam lietotājam vai grupai, bet arī tiesības norādīt programmas, procesus, failus un direktorijus. Ja iestatāt ACL direktorijā, tās pēcteči automātiski pārmantos tās pašas tiesības.

Piemēram,

# setfacl -m u:user:rw file
# getfacl file

34. Iestatiet SELinux izpildes režīmā

SELinux uzlabojums Linux kodolam ievieš obligātās piekļuves kontroles (MAC) politiku, ļaujot lietotājiem definēt drošības politiku, kas nodrošina detalizētas atļaujas visiem lietotājiem, programmām, procesiem, failiem un ierīcēm.

Kodola piekļuves kontroles lēmumi ir balstīti uz visu ar drošību saistīto kontekstu, nevis uz autentificētu lietotāja identitāti.

Lai iegūtu Selinux statusu un ieviestu politiku, izpildiet šādas komandas:

# getenforce
# setenforce 1
# sestatus

35. Instalējiet SELinux papildu utilītprogrammas

Instalējiet paketi policycoreutils-python, kas nodrošina papildu Python utilītprogrammas SELinux darbībai: audit2allow, audit2why, chcat un semanage.

Lai parādītu visas būla vērtības kopā ar īsu aprakstu, izmantojiet šādu komandu:

# semanage boolean -l

Piemēram, lai parādītu un iestatītu httpd_enable_ftp_server vērtību, palaidiet šādu komandu:

# getsebool httpd_enable_ftp_server

Lai Būla vērtība saglabātu atkārtotu palaišanu, norādiet opciju -P , lai iestatītu vidējo iestatījumu, kā parādīts šajā piemērā:

# setsebool -P httpd_enable_ftp_server on

36. Izmantojiet centralizēto žurnālu serveri

Konfigurējiet rsyslog dēmonu sensitīvu utilītu žurnāla ziņojumu sūtīšanai uz centralizētu žurnāla serveri. Tāpat ar logwatch utilītas palīdzību uzraugiet žurnālfailus.

Žurnāla ziņojumu sūtīšana uz attālo serveri nodrošina, ka pēc tam, kad sistēma ir apdraudēta, ļaunprātīgie lietotāji nevar pilnībā slēpt savu darbību, vienmēr atstājot pēdas attālajos žurnāla failos.

37. Iespējot procesu uzskaiti

Iespējojiet procesu uzskaiti, instalējot utilītu psacct, un izmantojiet komandu lastcomm, lai parādītu informāciju par iepriekš izpildītām komandām, kas ierakstītas sistēmas grāmatvedības failā, un sa, lai apkopotu informāciju par iepriekš izpildītajām komandām, kas ierakstītas sistēmas grāmatvedības failā.

38. Cietināšana /etc/sysctl.conf

Lai aizsargātu sistēmu, izmantojiet šādus kodola parametru noteikumus:

net.ipv4.conf.all.accept_source_route=0
ipv4.conf.all.forwarding=0
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Atspējojiet ICMP novirzīto pakešu pieņemšanu un nosūtīšanu, ja vien tas nav īpaši pieprasīts.

net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.all.rp_filter=2

Ignorēt visus ICMP atbalss pieprasījumus (lai iespējotu, iestatiet uz 1)

net.ipv4.icmp_echo_ignore_all = 0

39. Izmantojiet VPN pakalpojumus, lai piekļūtu savām telpām, izmantojot neaizsargātus publiskos tīklus

Vienmēr izmantojiet VPN pakalpojumus pārvadātājiem, lai attālināti piekļūtu LAN telpām, izmantojot internetu. Šāda veida pakalpojumus var konfigurēt, izmantojot bezmaksas atvērtā koda risinājumu, piemēram, Epel Repositories).

40. Veiciet ārējās sistēmas skenēšanu

Novērtējiet sistēmas drošību attiecībā uz ievainojamību, skenējot sistēmu no attāliem punktiem, izmantojot LAN, izmantojot īpašus rīkus, piemēram:

  1. Nmap - tīkla skeneris 29 Nmap komandas piemēri
  2. Nessus - drošības skeneris
  3. OpenVAS - izmanto ievainojamību meklēšanai un visaptverošai ievainojamības pārvaldībai.
  4. Nikto - lielisks kopējās vārtejas saskarnes (CGI) skriptu skeneris, kas skenē tīmekļa Web ievainojamību Linux

41. Aizsargājiet sistēmu iekšēji

Izmantojiet iekšējās sistēmas aizsardzību pret vīrusiem, rootkitiem, ļaunprātīgu programmatūru un kā labu praksi instalējiet ielaušanās atklāšanas sistēmas, kas var atklāt neatļautu darbību (DDOS uzbrukumi, portu skenēšana), piemēram:

  1. AIDE - uzlabota ielaušanās detektēšanas vide - http://aide.sourceforge.net/
  2. ClamAV - antivīrusu skeneris https://www.clamav.net
  3. Rkhunter - rootkit skeneris
  4. Lynis - Linux drošības audita un skenēšanas rīks
  5. Tripwire - drošība un datu integritāte http://www.tripwire.com/
  6. Fail2Ban - ielaušanās tīkla novēršana
  7. OSSEC - (HIDS) resursdatora bāzēta ielaušanās detektēšanas sistēma http://ossec.github.io/
  8. Mod_Security - aizsargājiet brutālu spēku vai DDoS uzbrukumus

42. Modificēt lietotāja vides mainīgos

Pievienojiet datuma un laika formātu, lai saglabātu komandu izpildi, izsniedzot šādu komandu:

# echo 'HISTTIMEFORMAT="%d/%m/%y  %T  "' >> .bashrc'

Piespiest uzreiz ierakstīt komandu HISTFILE katru reizi, kad tiek ievadīta komanda (nevis izrakstīšanās):

# echo ‘PROMPT_COMMAND="history -a"’ >> .bashrc

Ierobežojiet noildzes pieteikšanās sesiju. Automātiski nojaukt apvalku, ja dīkstāves laikā netiek veiktas nekādas darbības. Ļoti noderīgi, lai automātiski atvienotu SSH sesijas.

# echo ‘TMOUT=120’ >> .bashrc

Pielietojiet visus noteikumus, izpildot:

# source .bashrc

43. Rezerves dati

Izmantojiet LVM momentuzņēmumus utt., Lai sistēmas kļūmes gadījumā saglabātu savas sistēmas kopiju, vēlams ārpus vietnes.

Ja sistēma tiek apdraudēta, varat veikt datu atjaunošanu no iepriekšējām dublējumkopijām.

Visbeidzot, neaizmirstiet, ka neatkarīgi no tā, cik drošības un pretpasākumu jūs veicat, lai jūsu sistēma būtu droša, jūs nekad nebūsit pilnībā drošs, kamēr jūsu mašīna ir pievienota elektrotīklam un ir ieslēgta.