የሊኑክስ ደህንነት ስርዓቶች

የሊኑክስ ኦፕሬቲንግ ሲስተም በተሰቀሉ፣ ተንቀሳቃሽ መሳሪያዎች እና ሰርቨሮች ላይ ላለው አስደናቂ ስኬት አንዱ ምክንያት የከርነል ፣ ተዛማጅ አገልግሎቶች እና አፕሊኬሽኖች ትክክለኛ ከፍተኛ የደህንነት ደረጃ ነው። ከሆነ ግን ጠጋ ብለህ ተመልከት ወደ ሊኑክስ ከርነል አርክቴክቸር ፣ ከዚያ በእሱ ውስጥ ለደህንነት ኃላፊነት ያለው ካሬ ማግኘት አይቻልም። የሊኑክስ ደህንነት ንዑስ ስርዓት የት ነው የሚደበቀው እና ምንን ያካትታል?

በሊኑክስ ደህንነት ሞጁሎች እና SELinux ላይ ዳራ

ሴኪዩሪቲ የተሻሻለ ሊኑክስ የግዴታ እና ሚና ላይ የተመሰረቱ የመዳረሻ ሞዴሎች ላይ የተመሰረቱ ህጎች እና የመዳረሻ ስልቶች ስብስብ ሲሆን የሊኑክስ ስርዓቶችን ሊከሰቱ ከሚችሉ ስጋቶች ለመጠበቅ እና የDiscretionary Access Control (DAC)፣ የባህላዊው የዩኒክስ ደህንነት ስርዓት ድክመቶችን ለማስተካከል። ፕሮጀክቱ የመነጨው በአሜሪካ የብሄራዊ ደህንነት ኤጀንሲ አንጀት ውስጥ ሲሆን በቀጥታ የተሰራውም በዋናነት ሴክዩር ኮምፒውቲንግ ኮርፖሬሽን እና ሚትር ኮንትራክተሮች እንዲሁም በርካታ የምርምር ላቦራቶሪዎች ናቸው።

የሊኑክስ ደህንነት ስርዓቶች
የሊኑክስ ደህንነት ሞጁሎች

ሊኑስ ቶርቫልድስ በዋናው ሊኑክስ ከርነል ውስጥ እንዲካተቱ ስለ አዲስ የNSA እድገቶች በርካታ አስተያየቶችን ሰጥቷል። እሱ አጠቃላይ አካባቢን ገልጿል, ከእቃዎች ጋር ስራዎችን ለመቆጣጠር የጠለፋዎች ስብስብ እና ተጓዳኝ ባህሪያትን ለማከማቸት በከርነል መረጃ አወቃቀሮች ውስጥ የተወሰኑ የመከላከያ መስኮች ስብስብ. ይህ አካባቢ ማንኛውንም የሚፈለገውን የደህንነት ሞዴል ተግባራዊ ለማድረግ ሊጫኑ በሚችሉ የከርነል ሞጁሎች ሊጠቀሙበት ይችላሉ። LSM በ2.6 ወደ ሊኑክስ ከርነል v2003 ገብቷል።

የኤል.ኤስ.ኤም ማዕቀፍ በመረጃ አወቃቀሮች ውስጥ የጥበቃ መስኮችን እና በከርነል ኮድ ውስጥ ባሉ ወሳኝ ነጥቦች ላይ ወደ መጥለፍ ተግባራት ጥሪዎችን ለመቆጣጠር እና የመዳረሻ ቁጥጥርን ያካትታል። በተጨማሪም የደህንነት ሞጁሎችን ለመመዝገብ ተግባራዊነትን ይጨምራል. የ/sys/kernel/security/lsm በይነገጽ በስርዓቱ ላይ ንቁ የሆኑ ሞጁሎችን ዝርዝር ይዟል። LSM መንጠቆዎች በCONFIG_LSM ውስጥ በተጠቀሰው ቅደም ተከተል በተጠሩ ዝርዝሮች ውስጥ ተከማችተዋል። በመንጠቆዎች ላይ ዝርዝር ሰነዶች በአርዕስት ፋይል ውስጥ ተካትተዋል / linux/lsm_hooks.h.

የኤል.ኤስ.ኤም ንዑስ ስርዓት የSELinuxን ሙሉ ውህደት ከተመሳሳይ የሊኑክስ ከርነል v2.6 ጋር ማጠናቀቅ አስችሏል። ወዲያውኑ ማለት ይቻላል SELinux ደህንነቱ የተጠበቀ የሊኑክስ አካባቢ ትክክለኛ መስፈርት ሆነ እና በጣም ታዋቂ በሆኑት ስርጭቶች ውስጥ ተካቷል RedHat Enterprise Linux, Fedora, Debian, Ubuntu.

SELinux መዝገበ ቃላት

  • ማንነት — የSELinux ተጠቃሚው ከተለመደው የዩኒክስ/ሊኑክስ ተጠቃሚ መታወቂያ ጋር አንድ አይነት አይደለም፤ በተመሳሳይ ስርዓት አብረው ሊኖሩ ይችላሉ፣ ነገር ግን በፍፁም የተለያዩ ናቸው። እያንዳንዱ መደበኛ የሊኑክስ መለያ በSELinux ውስጥ ከአንድ ወይም ከዚያ በላይ ሊዛመድ ይችላል። የ SELinux ማንነት የትኛዎቹን ጎራዎች መቀላቀል እንደሚችሉ የሚወስነው የአጠቃላይ የደህንነት አውድ አካል ነው።
  • ጎራዎች - በ SELinux ውስጥ ፣ ጎራ የአንድ ርዕሰ ጉዳይ አፈፃፀም አውድ ነው ፣ ማለትም ሂደት። ጎራው አንድ ሂደት ያለውን መዳረሻ በቀጥታ ይወስናል። ጎራ በመሠረቱ ምን ዓይነት ሂደቶች ሊሠሩ እንደሚችሉ ወይም አንድ ሂደት በተለያዩ ዓይነቶች ምን ሊያደርግ እንደሚችል ዝርዝር ነው። አንዳንድ የጎራዎች ምሳሌዎች sysadm_t ለሥርዓት አስተዳደር፣ እና user_t እሱም መደበኛ ልዩ መብት የሌለው የተጠቃሚ ጎራ ነው። የ init ስርዓቱ በ init_t ጎራ ውስጥ ይሰራል፣ እና የተሰየመው ሂደት በስም_ት ጎራ ውስጥ ይሰራል።
  • ሚና - በጎራዎች እና በ SELinux ተጠቃሚዎች መካከል እንደ መካከለኛ ሆኖ የሚያገለግል። ሚናዎች ተጠቃሚው በየትኞቹ ጎራዎች ውስጥ መሆን እንደሚችል እና ምን አይነት ነገሮች መድረስ እንደሚችሉ ይወስናሉ። ይህ የመዳረሻ መቆጣጠሪያ ዘዴ የልዩነት መስፋፋት ጥቃቶችን ስጋት ይከላከላል። ሚናዎች በSELinux ውስጥ ጥቅም ላይ በሚውለው Role Based Access Control (RBAC) የደህንነት ሞዴል ውስጥ ተጽፈዋል።
  • አይነቶች — ለአንድ ነገር የተመደበ እና ማን ሊደርስበት እንደሚችል የሚወስን የማስፈጸሚያ ዝርዝር አይነታ። ከጎራ ፍቺው ጋር ተመሳሳይ ነው፣ ጎራ በሂደት ላይ ካልሆነ በስተቀር፣ እና አይነት እንደ ማውጫዎች፣ ፋይሎች፣ ሶኬቶች፣ ወዘተ ባሉ ነገሮች ላይ ተፈጻሚ ይሆናል።
  • ርዕሰ ጉዳዮች እና ዕቃዎች - ሂደቶች ርዕሰ ጉዳዮች ናቸው እና በተወሰነ አውድ ወይም የደህንነት ጎራ ውስጥ ይሰራሉ። የስርዓተ ክወና መርጃዎች፡- ፋይሎች፣ ማውጫዎች፣ ሶኬቶች፣ ወዘተ... የተወሰነ አይነት፣ በሌላ አነጋገር የግላዊነት ደረጃ የተመደቡ ነገሮች ናቸው።
  • SELinux ፖሊሲዎች — SELinux ስርዓቱን ለመጠበቅ የተለያዩ ፖሊሲዎችን ይጠቀማል። የSELinux ፖሊሲ የተጠቃሚዎችን ሚናዎች፣ ሚናዎች ወደ ጎራዎች እና ጎራዎችን ወደ አይነቶች መድረስን ይገልጻል። በመጀመሪያ፣ ተጠቃሚው ሚና እንዲያገኝ ስልጣን ተሰጥቶታል፣ ከዚያ ሚናው ጎራዎችን የመድረስ ፍቃድ ተሰጥቶታል። በመጨረሻም፣ አንድ ጎራ የተወሰኑ የነገሮችን አይነት ብቻ ነው መድረስ የሚችለው።

LSM እና SELinux አርክቴክቸር

ስሙ ቢሆንም፣ LSMs በአጠቃላይ ሊጫኑ የሚችሉ የሊኑክስ ሞጁሎች አይደሉም። ነገር ግን፣ ልክ እንደ SELinux፣ እሱ በቀጥታ ወደ ከርነል ተቀላቅሏል። በ LSM ምንጭ ኮድ ላይ የሚደረግ ማንኛውም ለውጥ አዲስ የከርነል ማጠናቀር ያስፈልገዋል። ተጓዳኝ አማራጩ በከርነል ቅንጅቶች ውስጥ መንቃት አለበት, አለበለዚያ የ LSM ኮድ ከተነሳ በኋላ አይነቃም. ነገር ግን በዚህ ሁኔታ ውስጥ እንኳን, በ OS bootloader አማራጭ ሊነቃ ይችላል.

የሊኑክስ ደህንነት ስርዓቶች
LSM የፍተሻ ቁልል

LSM ለቼኮች ጠቃሚ ሊሆኑ በሚችሉ ኮር ከርነል ተግባራት ውስጥ መንጠቆዎች አሉት። የኤል.ኤስ.ኤም.ኤስ ዋና ባህሪያት አንዱ የተደረደሩ መሆናቸው ነው። ስለዚህ, መደበኛ ቼኮች አሁንም ይከናወናሉ, እና እያንዳንዱ የ LSM ንብርብር ተጨማሪ መቆጣጠሪያዎችን እና መቆጣጠሪያዎችን ብቻ ይጨምራል. ይህ ማለት እገዳው ወደ ኋላ መመለስ አይቻልም ማለት ነው. ይህ በሥዕሉ ላይ ይታያል፤ የመደበኛ የDAC ቼኮች ውጤት ካልተሳካ ጉዳዩ ወደ LSM መንጠቆዎች እንኳን አይደርስም።

SELinux የፍሉክ ምርምር ኦፐሬቲንግ ሲስተም የፍላስክ ደህንነት አርክቴክቸርን በተለይም የጥቃቅን መብትን መርህ ተቀብሏል። የዚህ ጽንሰ-ሐሳብ ይዘት እንደ ስሙ እንደሚያመለክተው ለተጠቃሚው መስጠት ወይም ማስኬድ የታቀዱትን ድርጊቶች ለመፈጸም አስፈላጊ የሆኑትን መብቶች ብቻ ነው. ይህ መርህ የሚተገበረው በግዳጅ የመዳረሻ ትየባ በመጠቀም ነው፣ ስለዚህ በ SELinux ውስጥ የመዳረሻ መቆጣጠሪያ በ ጎራ => ዓይነት ሞዴል ላይ የተመሠረተ ነው።

ለግዳጅ መዳረሻ ትየባ ምስጋና ይግባውና SELinux በዩኒክስ/ሊኑክስ ኦፕሬቲንግ ሲስተሞች ውስጥ ጥቅም ላይ ከዋለ ባህላዊው የDAC ሞዴል የበለጠ የመዳረሻ ቁጥጥር ችሎታዎች አሉት። ለምሳሌ የኤፍቲፒ አገልጋይ የሚያገናኘውን የኔትዎርክ ወደብ ቁጥር መገደብ፣ በአንድ የተወሰነ አቃፊ ውስጥ ፋይሎችን መፃፍ እና መለወጥ መፍቀድ፣ ነገር ግን መሰረዝ አይችሉም።

የ SELinux ዋና ዋና ክፍሎች-

  • የፖሊሲ ማስፈጸሚያ አገልጋይ - የመዳረሻ መቆጣጠሪያን ለማደራጀት ዋናው ዘዴ.
  • የስርዓት ደህንነት ፖሊሲ ዳታቤዝ።
  • ከኤል.ኤስ.ኤም ክስተት ኢንተርሴፕተር ጋር መስተጋብር።
  • ሰሊኑክስፍስ - Pseudo-FS፣ ከ/proc ጋር ተመሳሳይ እና በ/sys/fs/selinux ውስጥ ተጭኗል። በተለዋዋጭ በሊኑክስ ከርነል በሚሰራበት ጊዜ የሚሞላ እና የSELinux ሁኔታ መረጃን የያዙ ፋይሎችን የያዘ።
  • የቬክተር መሸጎጫ ይድረሱ - ምርታማነትን ለመጨመር ረዳት ዘዴ.

የሊኑክስ ደህንነት ስርዓቶች
SELinux እንዴት እንደሚሰራ

ሁሉም እንደዚህ ይሰራል።

  1. አንድ የተወሰነ ርዕሰ ጉዳይ፣ በSELinux ቃላት፣ በላይኛው ስእል ላይ እንደሚታየው ከDAC ቼክ በኋላ በአንድ ነገር ላይ የተፈቀደ ድርጊት ይፈጽማል። ይህ ቀዶ ጥገና ለማካሄድ ጥያቄ ወደ LSM ክስተት ኢንተርሴፕተር ይሄዳል።
  2. ከዚያ፣ ጥያቄው፣ ከርዕሰ ጉዳዩ እና የነገሮች ደህንነት አውድ ጋር፣ ከኤል.ኤስ.ኤም. ጋር የመገናኘት ሃላፊነት ወደ ሚሰጠው 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 ሞጁሎችን ለመጫን፣ ለመጨመር እና ለማስወገድ ሴሞዱልን ይጠቀሙ።

[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 ተጠቃሚዎችን ወደ ስርዓተ ክወና መለያዎች ካርታ ያስወግዳል. ለኤምኤልኤስ/ኤምሲኤስ ክልል ዋጋዎች አገባብ ማብራሪያ ባለፈው ክፍል ውስጥ አለ።

[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

ቡድን ተጠቃሚን ማስተዳደር በ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 የተጠቃሚ ሚና ካርታ ግቤትን ሰርዝ;
  • - ከተጠቃሚው ጋር የተያያዙ ሚናዎች ዝርዝር;

ፋይሎች፣ ወደቦች እና ቡሊያን እሴቶች

እያንዳንዱ የ SELinux ሞጁል የፋይል መለያ ደንቦችን ያቀርባል, ነገር ግን አስፈላጊ ከሆነ የራስዎን ደንቦች ማከል ይችላሉ. ለምሳሌ፣ የድር አገልጋዩ የ/srv/www አቃፊ የመዳረሻ መብቶች እንዲኖረው እንፈልጋለን።

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

የመጀመሪያው ትዕዛዝ አዲስ ምልክት ማድረጊያ ደንቦችን ይመዘግባል, እና ሁለተኛው እንደገና ያስጀምራል, ወይም ይልቁንም አሁን ባለው ደንቦች መሰረት የፋይል ዓይነቶችን ያዘጋጃል.

በተመሳሳይም የTCP/UDP ወደቦች አግባብ ያላቸው አገልግሎቶች ብቻ ማዳመጥ በሚችሉበት መንገድ ምልክት ተደርጎባቸዋል። ለምሳሌ የድር አገልጋዩ በፖርት 8080 ላይ እንዲያዳምጥ ትዕዛዙን ማስኬድ ያስፈልግዎታል።

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

ጉልህ የሆነ የ SELinux ሞጁሎች የቦሊያን እሴቶችን ሊወስዱ የሚችሉ መለኪያዎች አሏቸው። የእንደዚህ አይነት መመዘኛዎች አጠቃላይ ዝርዝር getsebool -a ን በመጠቀም ሊታይ ይችላል። Setseboolን በመጠቀም የቦሊያን እሴቶችን መለወጥ ይችላሉ።

[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-web በይነገጽ መዳረሻ ያግኙ

ተግባራዊ ምሳሌን እንመልከት፡ የPostgreSQL ዳታቤዝ ለማስተዳደር pgadmin7.6-web በ RHEL 4 ላይ ጭነናል። ትንሽ ተራመድን። ፍለጋ በpg_hba.conf፣ postgresql.conf እና config_local.py ቅንጅቶች፣ የአቃፊ ፍቃዶችን አዘጋጅ፣ የጎደሉትን የፓይዘን ሞጁሎችን ከ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.

በዚህ ጊዜ፣ አብዛኞቹ የሊኑክስ አስተዳዳሪዎች setencorce 0ን ለማስኬድ በጣም ይፈተናሉ፣ እና ያ መጨረሻው ይሆናል። እውነቱን ለመናገር፣ ለመጀመሪያ ጊዜ ያደረግኩት ነው። ይህ በእርግጥ መውጫ መንገድ ነው, ነገር ግን ከምርጥ በጣም የራቀ ነው.

አስቸጋሪ ንድፎች ቢኖሩም, SELinux ለተጠቃሚ ምቹ ሊሆን ይችላል. የ settroubleshoot ጥቅሉን ብቻ ይጫኑ እና የስርዓት ምዝግብ ማስታወሻውን ይመልከቱ።

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

እባኮትን ያስተውሉ የኦዲት አገልግሎት በዚህ መንገድ እንደገና መጀመር አለበት እና በስርዓተ ክወናው ውስጥ ስርዓት ቢኖርም systemctl መጠቀም የለበትም። በስርዓት መዝገብ ውስጥ ይጠቁማል የማገድ እውነታ ብቻ ሳይሆን ምክንያቱ እና እገዳውን ለማሸነፍ መንገድ.

የሊኑክስ ደህንነት ስርዓቶች

እነዚህን ትዕዛዞች እንፈጽማለን-

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

የpgadmin4-ድረ-ገጽ መዳረሻን እንፈትሻለን፣ ሁሉም ነገር ይሰራል።

የሊኑክስ ደህንነት ስርዓቶች

የሊኑክስ ደህንነት ስርዓቶች

ምንጭ: hab.com

አስተያየት ያክሉ