ලිනක්ස් ආරක්ෂක පද්ධති

කාවැද්දූ, ජංගම උපාංග සහ සේවාදායක මත Linux OS හි දැවැන්ත සාර්ථකත්වයට එක් හේතුවක් වන්නේ කර්නලය, අදාළ සේවාවන් සහ යෙදුම්වල ආරක්ෂාව තරමක් ඉහළ මට්ටමක පැවතීමයි. නමුත් නම් සමීපව බලන්න ලිනක්ස් කර්නලයේ ගෘහ නිර්මාණ ශිල්පයට අනුව, ආරක්ෂාව සඳහා වගකිව යුතු චතුරස්රයක් එහි සොයාගත නොහැක. Linux ආරක්ෂක උප පද්ධතිය සැඟවී ඇත්තේ කොහේද සහ එය සමන්විත වන්නේ කුමක්ද?

Linux ආරක්ෂක මොඩියුල සහ SELinux හි පසුබිම

ආරක්‍ෂාව වැඩි දියුණු කළ ලිනක්ස් යනු ලිනක්ස් පද්ධති විභව තර්ජනවලින් ආරක්ෂා කිරීමට සහ සම්ප්‍රදායික Unix ආරක්‍ෂක පද්ධතිය වන අභිමත ප්‍රවේශ පාලන (DAC) හි අඩුපාඩු නිවැරදි කිරීමට අනිවාර්ය සහ භූමිකාව පදනම් කරගත් ප්‍රවේශ ආකෘති මත පදනම් වූ නීති සහ ප්‍රවේශ යාන්ත්‍රණ සමූහයකි. මෙම ව්‍යාපෘතිය එක්සත් ජනපද ජාතික ආරක්ෂක ඒජන්සියේ බඩවැල් ආශ්‍රිතව ආරම්භ වූ අතර, ප්‍රධාන වශයෙන් කොන්ත්‍රාත්කරුවන් වන Secure Computing Corporation සහ MITER මෙන්ම පර්යේෂණ රසායනාගාර ගණනාවක් විසින් සෘජුවම සංවර්ධනය කරන ලදී.

ලිනක්ස් ආරක්ෂක පද්ධති
Linux ආරක්ෂක මොඩියුල

Linus Torvalds විසින් නව NSA වර්ධනයන් පිළිබඳව අදහස් ගණනාවක් ඉදිරිපත් කර ඇති අතර එමඟින් ඒවා ප්‍රධාන Linux කර්නලයට ඇතුළත් කළ හැකිය. ඔහු සාමාන්‍ය පරිසරයක් විස්තර කළේ, වස්තු සමඟ මෙහෙයුම් පාලනය කිරීම සඳහා අන්තර්ග්‍රහණ කට්ටලයක් සහ අනුරූප ගුණාංග ගබඩා කිරීම සඳහා කර්නල් දත්ත ව්‍යුහවල ඇතැම් ආරක්ෂිත ක්ෂේත්‍ර සමූහයක් සමඟිනි. මෙම පරිසරය පසුව පූරණය කළ හැකි කර්නල් මොඩියුල මගින් ඕනෑම අපේක්ෂිත ආරක්ෂක ආකෘතියක් ක්‍රියාත්මක කිරීමට භාවිතා කළ හැක. LSM 2.6 දී ලිනක්ස් කර්නලය v2003 වෙත සම්පූර්ණයෙන්ම ඇතුළු විය.

LSM රාමුවට දත්ත ව්‍යුහයන් තුළ ආරක්ෂක ක්ෂේත්‍ර ඇතුළත් වන අතර ඒවා හැසිරවීමට සහ ප්‍රවේශ පාලනය සිදු කිරීමට කර්නල් කේතයේ තීරණාත්මක ස්ථානවල අන්තර් නිරෝධායන කාර්යයන් වෙත ඇමතුම් ඇතුළත් වේ. එය ආරක්ෂක මොඩියුල ලියාපදිංචි කිරීම සඳහා ක්‍රියාකාරීත්වය ද එක් කරයි. /sys/kernel/security/lsm අතුරුමුහුණත පද්ධතියේ ක්‍රියාකාරී මොඩියුල ලැයිස්තුවක් අඩංගු වේ. LSM කොකු CONFIG_LSM හි නිශ්චිතව දක්වා ඇති අනුපිළිවෙලට කැඳවනු ලබන ලැයිස්තු වල ගබඩා කර ඇත. කොකු පිළිබඳ සවිස්තරාත්මක ලියකියවිලි ශීර්ෂ ගොනුවේ ඇතුළත් වේ/linux/lsm_hooks.h.

LSM උපපද්ධතිය මඟින් SELinux හි සම්පූර්ණ අනුකලනය ස්ථායී Linux කර්නලය v2.6 හි එකම අනුවාදය සමඟ සම්පූර්ණ කිරීමට හැකි විය. වහාම වාගේ, SELinux ආරක්ෂිත ලිනක්ස් පරිසරයක් සඳහා තථ්‍ය ප්‍රමිතිය බවට පත් වූ අතර වඩාත් ජනප්‍රිය බෙදාහැරීම්වලට ඇතුළත් විය: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.

SELinux පාරිභාෂික ශබ්ද මාලාව

  • අනන්‍යතාවය — SELinux පරිශීලකයා සාමාන්‍ය Unix/Linux පරිශීලක හැඳුනුම්පතට සමාන නොවේ; ඔවුන්ට එකම පද්ධතියක සහජීවනයෙන් සිටිය හැකි නමුත් හරයෙන් සම්පූර්ණයෙන්ම වෙනස් වේ. සෑම සම්මත Linux ගිණුමක්ම SELinux හි එකකට හෝ කිහිපයකට අනුරූප විය හැක. SELinux අනන්‍යතාවය සමස්ත ආරක්‍ෂක සන්දර්භයේම කොටසකි, එය ඔබට සම්බන්ධ විය හැකි සහ සම්බන්ධ විය නොහැකි වසම් තීරණය කරයි.
  • වසම් - SELinux හි, වසමක් යනු විෂයයක ක්‍රියාත්මක කිරීමේ සන්දර්භයයි, එනම් ක්‍රියාවලියකි. ක්‍රියාවලියකට ඇති ප්‍රවේශය වසම සෘජුවම තීරණය කරයි. වසමක් යනු මූලික වශයෙන් ක්‍රියාවලීන්ට කළ හැකි දේ හෝ ක්‍රියාවලියකට විවිධ වර්ග සමඟ කළ හැකි දේ ලැයිස්තුවකි. වසම් සඳහා සමහර උදාහරණ පද්ධති පරිපාලනය සඳහා sysadm_t වේ, සහ සාමාන්‍ය වරප්‍රසාද ලත් පරිශීලක වසමක් වන user_t වේ. init පද්ධතිය init_t වසම තුළ ක්‍රියාත්මක වන අතර නම් කරන ලද ක්‍රියාවලිය name_t වසම තුළ ක්‍රියාත්මක වේ.
  • භූමිකාවන් — වසම් සහ SELinux පරිශීලකයන් අතර අතරමැදියෙකු ලෙස සේවය කරන්නේ කුමක්ද? පරිශීලකයෙකුට අයත් විය හැකි වසම් මොනවාද සහ ඔවුන්ට ප්‍රවේශ විය හැකි වස්තු වර්ග මොනවාදැයි භූමිකාවන් තීරණය කරයි. මෙම ප්‍රවේශ පාලන යාන්ත්‍රණය වරප්‍රසාද උත්සන්න ප්‍රහාරවල තර්ජනය වළක්වයි. SELinux හි භාවිතා වන Role Based Access Control (RBAC) ආරක්ෂක මාදිලියට භූමිකාවන් ලියා ඇත.
  • වර්ග — වස්තුවකට පවරා ඇති සහ එයට ප්‍රවේශ විය හැක්කේ කාටද යන්න තීරණය කරන ආකාරයේ බලාත්මක කිරීමේ ලැයිස්තු ගුණාංගයකි. වසම් නිර්වචනයට සමානව, වසම ක්‍රියාවලියකට අදාළ වන අතර, වර්ගය නාමාවලි, ගොනු, සොකට් වැනි වස්තූන් සඳහා අදාළ වේ.
  • විෂයයන් සහ වස්තූන් - ක්‍රියාවලි විෂයයන් වන අතර නිශ්චිත සන්දර්භයක හෝ ආරක්ෂක වසමක ක්‍රියාත්මක වේ. මෙහෙයුම් පද්ධති සම්පත්: ගොනු, නාමාවලි, සොකට්, යනාදිය, යම් ආකාරයක, වෙනත් වචන වලින්, පුද්ගලිකත්ව මට්ටමක් පවරා ඇති වස්තූන් වේ.
  • SELinux ප්‍රතිපත්ති — SELinux පද්ධතිය ආරක්ෂා කිරීම සඳහා විවිධ ප්‍රතිපත්ති භාවිතා කරයි. SELinux ප්‍රතිපත්තිය මඟින් පරිශීලකයන්ගේ භූමිකාවන්ට, භූමිකාවන්ට වසම්වලට සහ වසම් වර්ගවලට ප්‍රවේශ වීම නිර්වචනය කරයි. පළමුව, පරිශීලකයාට භූමිකාවක් ලබා ගැනීමට අවසර ඇත, පසුව භූමිකාවට වසම් වෙත ප්‍රවේශ වීමට අවසර ඇත. අවසාන වශයෙන්, වසමකට ප්‍රවේශ විය හැක්කේ ඇතැම් වස්තු වලට පමණි.

LSM සහ SELinux ගෘහ නිර්මාණ ශිල්පය

නම තිබියදීත්, LSM සාමාන්‍යයෙන් පූරණය කළ හැකි Linux මොඩියුල නොවේ. කෙසේ වෙතත්, SELinux මෙන්, එය කෙලින්ම කර්නලය තුළට ඒකාබද්ධ වේ. LSM ප්‍රභව කේතයේ ඕනෑම වෙනසක් සඳහා නව කර්නල් සම්පාදනයක් අවශ්‍ය වේ. අනුරූප විකල්පය කර්නල් සැකසුම් තුළ සක්රිය කළ යුතුය, එසේ නොමැතිනම් LSM කේතය ආරම්භයෙන් පසුව සක්රිය නොවේ. නමුත් මෙම අවස්ථාවේදී පවා, එය OS bootloader විකල්පය මඟින් සක්රිය කළ හැක.

ලිනක්ස් ආරක්ෂක පද්ධති
LSM පිරික්සුම් තොගය

LSM චෙක්පත් සඳහා අදාළ විය හැකි මූලික කර්නල් ශ්‍රිතවල කොකු වලින් සමන්විත වේ. LSM වල ප්‍රධාන ලක්ෂණයක් නම් ඒවා ගොඩගැසී තිබීමයි. මේ අනුව, සම්මත චෙක්පත් තවමත් සිදු කරනු ලබන අතර, LSM හි සෑම ස්ථරයක්ම අතිරේක පාලනයන් සහ පාලනයන් පමණක් එකතු කරයි. මෙයින් අදහස් කරන්නේ තහනම ආපසු හැරවිය නොහැකි බවයි. මෙය රූපයේ දැක්වේ; සාමාන්‍ය DAC පරීක්‍ෂාවන්හි ප්‍රතිඵලය අසාර්ථක වුවහොත්, කාරණය LSM කොකු වෙතටවත් නොපැමිණේ.

SELinux Fluke පර්යේෂණ මෙහෙයුම් පද්ධතියේ Flask ආරක්ෂණ ගෘහ නිර්මාණ ශිල්පය, විශේෂයෙන්ම අවම වරප්‍රසාද මූලධර්මය අනුගමනය කරයි. මෙම සංකල්පයේ සාරය, එහි නමට අනුව, පරිශීලකයාට ලබා දීම හෝ අපේක්ෂිත ක්‍රියාවන් සිදු කිරීමට අවශ්‍ය අයිතිවාසිකම් පමණක් සැකසීමයි. මෙම මූලධර්මය බලහත්කාරයෙන් ප්‍රවේශ ටයිප් කිරීම භාවිතයෙන් ක්‍රියාත්මක වේ, එබැවින් SELinux හි ප්‍රවේශ පාලනය වසම => වර්ගයේ ආකෘතිය මත පදනම් වේ.

බලහත්කාරයෙන් ප්‍රවේශ ටයිප් කිරීම නිසා, Unix/Linux මෙහෙයුම් පද්ධතිවල භාවිතා වන සාම්ප්‍රදායික DAC මාදිලියට වඩා SELinux සතුව විශාල ප්‍රවේශ පාලන හැකියාවන් ඇත. උදාහරණයක් ලෙස, ඔබට ftp සේවාදායකය සම්බන්ධ කරන ජාල පෝට් අංකය සීමා කළ හැකිය, යම් ෆෝල්ඩරයක ගොනු ලිවීමට සහ වෙනස් කිරීමට ඉඩ දෙන්න, නමුත් ඒවා මකා නොදමන්න.

SELinux හි ප්‍රධාන සංරචක වන්නේ:

  • ප්‍රතිපත්ති බලාත්මක කිරීමේ සේවාදායකය - ප්රවේශ පාලනය සංවිධානය කිරීම සඳහා ප්රධාන යාන්ත්රණය.
  • පද්ධති ආරක්ෂණ ප්රතිපත්ති දත්ත සමුදාය.
  • LSM ඉවෙන්ට් ඉන්ටර්සෙප්ටරය සමඟ අන්තර්ක්‍රියා කිරීම.
  • Selinuxfs - Pseudo-FS, /proc ට සමාන වන අතර /sys/fs/selinux හි සවිකර ඇත. ධාවන වේලාවේදී ලිනක්ස් කර්නලය මගින් ගතිකව ජනාකීර්ණ වන අතර SELinux තත්ව තොරතුරු අඩංගු ගොනු අඩංගු වේ.
  • දෛශික හැඹිලියට පිවිසෙන්න - ඵලදායිතාව වැඩි කිරීම සඳහා සහායක යාන්ත්රණයක්.

ලිනක්ස් ආරක්ෂක පද්ධති
SELinux ක්‍රියා කරන ආකාරය

ඒ සියල්ල මේ ආකාරයට ක්‍රියා කරයි.

  1. යම් විෂයයක්, SELinux පද වලින්, ඉහළ පින්තූරයේ පෙන්වා ඇති පරිදි, DAC පරීක්ෂාවකින් පසුව වස්තුවක් මත අවසර ලත් ක්‍රියාවක් සිදු කරයි. මෙහෙයුමක් සිදු කිරීම සඳහා මෙම ඉල්ලීම LSM සිද්ධි අන්තර්ග්‍රහකය වෙත යයි.
  2. එතැන් සිට, ඉල්ලීම, විෂය සහ වස්තු ආරක්ෂණ සන්දර්භය සමඟ, LSM සමඟ අන්තර්ක්‍රියා කිරීම සඳහා වගකිව යුතු SELinux Abstraction සහ Hook Logic මොඩියුලය වෙත යවනු ලැබේ.
  3. වස්තුවකට විෂයයක ප්‍රවේශය පිළිබඳ තීරණ ගැනීමේ අධිකාරිය වන්නේ ප්‍රතිපත්ති බලාත්මක කිරීමේ සේවාදායකය වන අතර එය SELinux AnHL වෙතින් දත්ත ලබා ගනී.
  4. ප්‍රවේශය හෝ ප්‍රතික්ෂේප කිරීම පිළිබඳ තීරණ ගැනීමට, ප්‍රතිපත්ති බලාත්මක කිරීමේ සේවාදායකය වැඩිපුරම භාවිතා කරන රීති සඳහා ප්‍රවේශ දෛශික හැඹිලි (AVC) හැඹිලි උප පද්ධතිය වෙත හැරේ.
  5. අදාළ රීතිය සඳහා විසඳුමක් හැඹිලියේ සොයාගත නොහැකි නම්, ඉල්ලීම ආරක්ෂක ප්‍රතිපත්ති දත්ත ගබඩාවට යවනු ලැබේ.
  6. දත්ත සමුදාය සහ AVC වෙතින් සෙවුම් ප්‍රතිඵලය ප්‍රතිපත්ති බලාත්මක කිරීමේ සේවාදායකය වෙත ආපසු ලබා දෙනු ලැබේ.
  7. සොයාගත් ප්‍රතිපත්තිය ඉල්ලූ ක්‍රියාවට ගැළපේ නම්, මෙහෙයුමට ඉඩ දෙනු ලැබේ. එසේ නොමැති නම්, මෙහෙයුම තහනම් වේ.

SELinux සැකසුම් කළමනාකරණය කිරීම

SELinux ක්‍රියාත්මක වන්නේ ආකාර තුනකින් එකකිනි:

  • බලාත්මක කිරීම - ආරක්ෂක ප්‍රතිපත්ති දැඩි ලෙස පිළිපැදීම.
  • අවසර - සීමාවන් උල්ලංඝනය කිරීමට අවසර ඇත; ඊට අනුරූප සටහනක් ජර්නලයේ සිදු කෙරේ.
  • ආබාධිත-ආරක්ෂක ප්රතිපත්ති ක්රියාත්මක නොවේ.

පහත දැක්වෙන විධානය සමඟ SELinux කුමන මාදිලියේදැයි ඔබට දැක ගත හැක.

[admin@server ~]$ getenforce
Permissive

නැවත පණගැන්වීමට පෙර මාදිලිය වෙනස් කිරීම, උදාහරණයක් ලෙස, එය බලාත්මක කිරීමට සැකසීම, හෝ 1. අවසර පරාමිතිය සංඛ්‍යාත්මක කේතය 0 ට අනුරූප වේ.

[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #то же самое

ගොනුව සංස්කරණය කිරීමෙන් ඔබට මාදිලිය වෙනස් කළ හැකිය:

[admin@server ~]$ cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.

SELINUXTYPE=ඉලක්කය

setenfoce සමඟ ඇති වෙනස නම්, මෙහෙයුම් පද්ධතිය ආරම්භ වන විට, SELinux මාදිලිය වින්‍යාස ගොනුවේ ඇති SELINUX පරාමිතියේ අගයට අනුකූලව සකසනු ඇත. ඊට අමතරව, <=> අක්‍රිය කිරීම සඳහා වන වෙනස්කම් බලාත්මක වන්නේ /etc/selinux/config ගොනුව සංස්කරණය කිරීමෙන් සහ නැවත පණගැන්වීමෙන් පසුව පමණි.

සංක්ෂිප්ත තත්ව වාර්තාවක් බලන්න:

[admin@server ~]$ sestatus

SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31

SELinux ගුණාංග බැලීම සඳහා, සමහර සම්මත උපයෝගිතා -Z පරාමිතිය භාවිතා කරයි.

[admin@server ~]$ ls -lZ /var/log/httpd/
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200920
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200927
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201004
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201011
[admin@server ~]$ ps -u apache -Z
LABEL                             PID TTY          TIME CMD
system_u:system_r:httpd_t:s0     2914 ?        00:00:04 httpd
system_u:system_r:httpd_t:s0     2915 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2916 ?        00:00:00 httpd
system_u:system_r:httpd_t:s0     2917 ?        00:00:00 httpd
...
system_u:system_r:httpd_t:s0     2918 ?        00:00:00 httpd

ls -l හි සාමාන්‍ය ප්‍රතිදානය හා සසඳන විට, පහත ආකෘතියේ අමතර ක්ෂේත්‍ර කිහිපයක් තිබේ:

<user>:<role>:<type>:<level>

අවසාන ක්ෂේත්‍රය ආරක්ෂක වර්ගීකරණයක් වැනි දෙයක් දක්වන අතර මූලද්‍රව්‍ය දෙකක එකතුවකින් සමන්විත වේ:

  • s0 - වැදගත්කම, පහළ මට්ටමේ-ඉහළ මට්ටමේ පරතරය ලෙසද ලියා ඇත
  • c0, c1... c1023 - කාණ්ඩය.

ප්රවේශ වින්යාසය වෙනස් කිරීම

SELinux මොඩියුල පූරණය කිරීමට, එකතු කිරීමට සහ ඉවත් කිරීමට semodule භාවිතා කරන්න.

[admin@server ~]$ semodule -l |wc -l #список всех модулей
408
[admin@server ~]$ semodule -e abrt #enable - активировать модуль
[admin@server ~]$ semodule -d accountsd #disable - отключить модуль
[admin@server ~]$ semodule -r avahi #remove - удалить модуль

පළමු කණ්ඩායම semanage පිවිසුම SELinux පරිශීලකයා මෙහෙයුම් පද්ධති පරිශීලකයාට සම්බන්ධ කරයි, දෙවැන්න ලැයිස්තුවක් පෙන්වයි. අවසාන වශයෙන්, -r ස්විචය සමඟ ඇති අවසාන විධානය මඟින් SELinux පරිශීලකයින් OS ගිණුම් වෙත සිතියම්ගත කිරීම ඉවත් කරයි. MLS/MCS පරාසයේ අගයන් සඳහා වාක්‍ය ඛණ්ඩය පිළිබඳ පැහැදිලි කිරීමක් පෙර කොටසේ ඇත.

[admin@server ~]$ semanage login -a -s user_u karol
[admin@server ~]$ semanage login -l

Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
[admin@server ~]$ semanage login -d karol

කණ්ඩායම semanage පරිශීලක SELinux පරිශීලකයන් සහ භූමිකාවන් අතර සිතියම්ගත කිරීම් කළමනාකරණය කිරීමට භාවිතා කරයි.

[admin@server ~]$ semanage user -l
                Labeling   MLS/       MLS/                          
SELinux User    Prefix     MCS Level  MCS Range             SELinux Roles
guest_u         user       s0         s0                    guest_r
staff_u         staff      s0         s0-s0:c0.c1023        staff_r sysadm_r
...
user_u          user       s0         s0                    user_r
xguest_u        user       s0         s0                    xguest_r
[admin@server ~]$ semanage user -a -R 'staff_r user_r'
[admin@server ~]$ semanage user -d test_u

විධාන පරාමිතීන්:

  • අභිරුචි භූමිකා සිතියම්ගත කිරීමේ ප්‍රවේශයක් එකතු කරන්න;
  • ගැලපෙන පරිශීලකයින් සහ භූමිකාවන්ගේ -l ලැයිස්තුව;
  • -d පරිශීලක භූමිකාව සිතියම්ගත කිරීමේ ප්‍රවේශය මකන්න;
  • -R පරිශීලකයා වෙත අමුණා ඇති භූමිකාවන් ලැයිස්තුව;

ගොනු, වරාය සහ බූලියන් අගයන්

සෑම SELinux මොඩියුලයක්ම ගොනු ටැග් කිරීමේ නීති මාලාවක් සපයයි, නමුත් අවශ්‍ය නම් ඔබට ඔබේම නීති එකතු කළ හැක. උදාහරණයක් ලෙස, වෙබ් සේවාදායකයට /srv/www ෆෝල්ඩරය වෙත ප්‍රවේශ අයිතිවාසිකම් තිබීම අපට අවශ්‍ය වේ.

[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/

පළමු විධානය නව සලකුණු කිරීමේ නීති ලියාපදිංචි කරයි, සහ දෙවන නැවත සකසන්න, හෝ ඒ වෙනුවට ගොනු වර්ග වත්මන් නීතිවලට අනුකූලව සකසයි.

එලෙසම, TCP/UDP ports සලකුණු කර ඇත්තේ සුදුසු සේවාවන්ට පමණක් සවන් දිය හැකි ආකාරයටය. උදාහරණයක් ලෙස, 8080 වරාය මත වෙබ් සේවාදායකයට සවන් දීම සඳහා, ඔබ විසින් විධානය ක්රියාත්මක කළ යුතුය.

[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080

සැලකිය යුතු SELinux මොඩියුල ගණනකට Boolean අගයන් ගත හැකි පරාමිති ඇත. එවැනි පරාමිතීන්ගේ සම්පූර්ණ ලැයිස්තුව getsebool -a භාවිතයෙන් දැකිය හැකිය. setsebool භාවිතයෙන් ඔබට boolean අගයන් වෙනස් කළ හැක.

[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_cgi --> on
[admin@server ~]$ setsebool -P httpd_enable_cgi off
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_homedirs --> off

වැඩමුළුව, Pgadmin-වෙබ් අතුරුමුහුණත වෙත ප්රවේශය ලබා ගන්න

අපි ප්‍රායෝගික උදාහරණයක් බලමු: PostgreSQL දත්ත ගබඩාව පරිපාලනය කිරීම සඳහා අපි RHEL 7.6 මත pgadmin4-web ස්ථාපනය කළෙමු. අපි ටිකක් ඇවිද්දා ගවේෂණය pg_hba.conf, postgresql.conf සහ config_local.py සැකසීම් සමඟින්, ෆෝල්ඩර අවසර සකසන්න, අතුරුදහන් වූ Python මොඩියුල pip වෙතින් ස්ථාපනය කර ඇත. සියල්ල සූදානම්, අපි දියත් කර ලබා ගනිමු 500 අභ්‍යන්තර සේවාදායක දෝෂයකි.

ලිනක්ස් ආරක්ෂක පද්ධති

අපි සාමාන්‍ය සැකකරුවන් සමඟ ආරම්භ කරමු, /var/log/httpd/error_log පරීක්ෂා කරන්න. එහි රසවත් ඇතුළත් කිරීම් කිහිපයක් තිබේ.

[timestamp] [core:notice] [pid 23689] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
...
[timestamp] [wsgi:error] [pid 23690] [Errno 13] Permission denied: '/var/lib/pgadmin'
[timestamp] [wsgi:error] [pid 23690] [timestamp] [wsgi:error] [pid 23690] HINT : You may need to manually set the permissions on
[timestamp] [wsgi:error] [pid 23690] /var/lib/pgadmin to allow apache to write to it.

මෙම අවස්ථාවේදී, බොහෝ Linux පරිපාලකයින් setencorce 0 ධාවනය කිරීමට දැඩි ලෙස පෙළඹෙනු ඇත, එය එහි අවසානය වනු ඇත. අවංකවම, මම පළමු වතාවට එය කළා. මෙය ඇත්ත වශයෙන්ම මගකි, නමුත් හොඳම දේට වඩා බොහෝ සෙයින් වෙනස් ය.

අපහසු මෝස්තර තිබියදීත්, SELinux පරිශීලක-හිතකාමී විය හැකිය. setroubleshoot පැකේජය ස්ථාපනය කර පද්ධති ලොගය බලන්න.

[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd

OS හි systemd තිබුණද, විගණන සේවාව මේ ආකාරයෙන් නැවත ආරම්භ කළ යුතු අතර, systemctl භාවිතා නොකළ යුතු බව කරුණාවෙන් සලකන්න. පද්ධති ලොගයේ පෙන්වා දෙනු ඇත අවහිර කිරීමේ කාරණය පමණක් නොව, හේතුව සහ තහනම ජය ගැනීමට මාර්ගය.

ලිනක්ස් ආරක්ෂක පද්ධති

අපි මෙම විධානයන් ක්රියාත්මක කරන්නෙමු:

[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1

අපි pgadmin4-වෙබ් පිටුවට ප්‍රවේශය පරීක්ෂා කරන්නෙමු, සියල්ල ක්‍රියාත්මක වේ.

ලිනක්ස් ආරක්ෂක පද්ධති

ලිනක්ස් ආරක්ෂක පද්ධති

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න