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ā.
- 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:
- Nmap - tīkla skeneris 29 Nmap komandas piemēri
- Nessus - drošības skeneris
- OpenVAS - izmanto ievainojamību meklēšanai un visaptverošai ievainojamības pārvaldībai.
- 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:
- AIDE - uzlabota ielaušanās detektēšanas vide - http://aide.sourceforge.net/
- ClamAV - antivīrusu skeneris https://www.clamav.net
- Rkhunter - rootkit skeneris
- Lynis - Linux drošības audita un skenēšanas rīks
- Tripwire - drošība un datu integritāte http://www.tripwire.com/
- Fail2Ban - ielaušanās tīkla novēršana
- OSSEC - (HIDS) resursdatora bāzēta ielaušanās detektēšanas sistēma http://ossec.github.io/
- 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.