рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА

рдПрдореНрдмреЗрдбреЗрдб, рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдУрдПрд╕ рдХреА рдЬрдмрд░рджрд╕реНрдд рд╕рдлрд▓рддрд╛ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдХрд░реНрдиреЗрд▓, рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдХрд╛рдлреА рдЙрдЪреНрдЪ рд╕реНрддрд░ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЬрд╝рд░рд╛ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦреЗрдВ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╡рд░реНрдЧ рдХреЛ рдвреВрдВрдврдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╣рд╛рдБ рдЫрд┐рдкрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ?

рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓ рдФрд░ SELinux рдкрд░ рдкреГрд╖реНрдарднреВрдорд┐

рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрд╡рд░реНрдзрд┐рдд рд▓рд┐рдирдХреНрд╕, рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдЦрддрд░реЛрдВ рд╕реЗ рдмрдЪрд╛рдиреЗ рдФрд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдпреВрдирд┐рдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рд╡реЗрдХрд╛рдзреАрди рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ (рдбреАрдПрд╕реА) рдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рдФрд░ рднреВрдорд┐рдХрд╛-рдЖрдзрд╛рд░рд┐рдд рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд┐рдпрдореЛрдВ рдФрд░ рдПрдХреНрд╕реЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдореЗрд░рд┐рдХреА рд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕реБрд░рдХреНрд╖рд╛ рдПрдЬреЗрдВрд╕реА рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЙрддреНрдкрдиреНрди рд╣реБрдИ рдереА, рдФрд░ рдЗрд╕реЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдареЗрдХреЗрджрд╛рд░реЛрдВ рд╕рд┐рдХреНрдпреЛрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЙрд░реНрдкреЛрд░реЗрд╢рди рдФрд░ рдПрдордЖрдИрдЯреАрдИрдЖрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрдИ рдЕрдиреБрд╕рдВрдзрд╛рди рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА
рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓

рд▓рд┐рдирд╕ рдЯреЛрд░рд╡рд╛рд▓реНрдбреНрд╕ рдиреЗ рдирдП рдПрдирдПрд╕рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдХреАрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдореЗрдирд▓рд╛рдЗрди рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛рддреНрдордХ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рдерд╛ред рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рд╡рд╛рдВрдЫрд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрд▓рдПрд╕рдПрдо рдиреЗ 2.6 рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ v2003 рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ред

рдПрд▓рдПрд╕рдПрдо рдврд╛рдВрдЪреЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдЧрд╛рд░реНрдб рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЕрд╡рд░реЛрдзрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЙрдирдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред /sys/kernel/security/lsm рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдХреНрд░рд┐рдп рдореЙрдбреНрдпреВрд▓ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реЛрддреА рд╣реИред LSM рд╣реБрдХ рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ CONFIG_LSM рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣реБрдХ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ include/linux/lsm_hooks.h рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдПрд▓рдПрд╕рдПрдо рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдиреЗ рд╕реНрдерд┐рд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ v2.6 рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде SELinux рдХреЗ рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ред рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╣реА, SELinux рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрди рдЧрдпрд╛ рдФрд░ рдЗрд╕реЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рддрд░рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛: рд░реЗрдбрд╣реИрдЯ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд▓рд┐рдирдХреНрд╕, рдлреЗрдбреЛрд░рд╛, рдбреЗрдмрд┐рдпрди, рдЙрдмрдВрдЯреВред

SELinux рд╢рдмреНрджрд╛рд╡рд▓реА

  • рдкрд╣рдЪрд╛рди тАФ SELinux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдорд╛рдиреНрдп Unix/Linux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ; рд╡реЗ рдПрдХ рд╣реА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореВрд▓ рд░реВрдк рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирдХ рд▓рд┐рдирдХреНрд╕ рдЦрд╛рддрд╛ SELinux рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред SELinux рдкрд╣рдЪрд╛рди рд╕рдордЧреНрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рди рдбреЛрдореЗрди рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреМрди рд╕реЗ рдирд╣реАрдВред
  • рдбреЛрдореЗрди - SELinux рдореЗрдВ, рдПрдХ рдбреЛрдореЗрди рдПрдХ рд╡рд┐рд╖рдп рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рд╣реИ, рдпрд╛рдиреА рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рдбреЛрдореЗрди рд╕реАрдзреЗ рдЙрд╕ рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрд╛рд╕ рд╣реИред рдПрдХ рдбреЛрдореЗрди рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рд╕реВрдЪреА рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдпрд╛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИред рдбреЛрдореЗрди рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рди рдХреЗ рд▓рд┐рдП sysadm_t рд╣реИрдВ, рдФрд░ user_t рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЧреИрд░-рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЛрдореЗрди рд╣реИред Init рд╕рд┐рд╕реНрдЯрдо init_t рдбреЛрдореЗрди рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рдФрд░ рдирд╛рдорд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╛рдорд╛рдВрдХрд┐рдд_t рдбреЛрдореЗрди рдореЗрдВ рдЪрд▓рддреА рд╣реИред
  • рднреВрдорд┐рдХрд╛ тАФ рдЬреЛ рдбреЛрдореЗрди рдФрд░ SELinux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдордзреНрдпрд╕реНрде рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рднреВрдорд┐рдХрд╛рдПрдБ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рдбреЛрдореЗрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рддрдВрддреНрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡реГрджреНрдзрд┐ рд╣рдорд▓реЛрдВ рдХреЗ рдЦрддрд░реЗ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рднреВрдорд┐рдХрд╛рдПрдБ SELinux рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рд░реЛрд▓ рдмреЗрд╕реНрдб рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ (RBAC) рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбрд▓ рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВред
  • рдкреНрд░рдХрд╛рд░ - рдПрдХ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╡рд░реНрддрди рд╕реВрдЪреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реМрдВрдкреА рдЧрдИ рд╣реИ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреМрди рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдбреЛрдореЗрди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рдорд╛рди, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдбреЛрдореЗрди рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ, рд╕реЙрдХреЗрдЯ рдЖрджрд┐ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
  • рд╡рд┐рд╖рдп рдФрд░ рд╡рд╕реНрддреБрдПрдБ - рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╡рд┐рд╖рдп рд╣реИрдВ рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн, рдпрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдбреЛрдореЗрди рдореЗрдВ рдЪрд▓рддреА рд╣реИрдВред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрди: рдлрд╝рд╛рдЗрд▓реЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ, рд╕реЙрдХреЗрдЯ рдЗрддреНрдпрд╛рджрд┐, рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЧреЛрдкрдиреАрдпрддрд╛ рд╕реНрддрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • SELinux рдиреАрддрд┐рдпрд╛рдБ тАФ SELinux рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред SELinux рдиреАрддрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рднреВрдорд┐рдХрд╛рдУрдВ, рднреВрдорд┐рдХрд╛рдУрдВ рд╕реЗ рдбреЛрдореЗрди рдФрд░ рдбреЛрдореЗрди рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рднреВрдорд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рднреВрдорд┐рдХрд╛ рдХреЛ рдбреЛрдореЗрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдВрддрддрдГ, рдПрдХ рдбреЛрдореЗрди рдХреА рдкрд╣реБрдВрдЪ рдХреЗрд╡рд▓ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рддрдХ рд╣реА рд╣реЛ рд╕рдХрддреА рд╣реИред

рдПрд▓рдПрд╕рдПрдо рдФрд░ SELinux рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рдирд╛рдо рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдПрд▓рдПрд╕рдПрдо рдЖрдо рддреМрд░ рдкрд░ рд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд▓рд┐рдирдХреНрд╕ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, SELinux рдХреА рддрд░рд╣, рдпрд╣ рд╕реАрдзреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИред рдПрд▓рдПрд╕рдПрдо рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдХрд░реНрдиреЗрд▓ рд╕рдВрдХрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдХрд▓реНрдк рдХреЛ рдХрд░реНрдиреЗрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдмреВрдЯ рдХреЗ рдмрд╛рдж рдПрд▓рдПрд╕рдПрдо рдХреЛрдб рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА, рдЗрд╕реЗ OS рдмреВрдЯрд▓реЛрдбрд░ рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА
рдПрд▓рдПрд╕рдПрдо рдЪреЗрдХ рд╕реНрдЯреИрдХ

рдПрд▓рдПрд╕рдПрдо рдХреЛрд░ рдХрд░реНрдиреЗрд▓ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд╣реБрдХ рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реИ рдЬреЛ рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрд▓рдПрд╕рдПрдо рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╕реНрдЯреИрдХреНрдб рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдорд╛рдирдХ рдЬрд╛рдВрдЪ рдЕрднреА рднреА рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдПрд▓рдПрд╕рдПрдо рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдХреЗрд╡рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдЬреЛрдбрд╝рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдмрдВрдз рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛. рдпрд╣ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ; рдпрджрд┐ рдирд┐рдпрдорд┐рдд рдбреАрдПрд╕реА рдЬрд╛рдВрдЪ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдорд╛рдорд▓рд╛ рдПрд▓рдПрд╕рдПрдо рд╣реБрдХ рддрдХ рднреА рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗрдЧрд╛ред

SELinux рдлрд╝реНрд▓реВрдХ рд░рд┐рд╕рд░реНрдЪ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдлреНрд▓рд╛рд╕реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдЕрдкрдирд╛рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛред рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рд╕рд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЗрд╡рд▓ рд╡реЗ рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдЗрдЪреНрдЫрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рдлреЛрд░реНрд╕реНрдб рдПрдХреНрд╕реЗрд╕ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ SELinux рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдбреЛрдореЗрди => рдкреНрд░рдХрд╛рд░ рдореЙрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рдлреЛрд░реНрд╕реНрдб рдПрдХреНрд╕реЗрд╕ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, SELinux рдореЗрдВ рдпреВрдирд┐рдХреНрд╕/рд▓рд┐рдирдХреНрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рд░рдВрдкрд░рд┐рдХ DAC рдореЙрдбрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдПрдХреНрд╕реЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкреЛрд░реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рд╕реЗ рдПрдлрд╝рдЯреАрдкреА рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗред

SELinux рдХреЗ рдореБрдЦреНрдп рдШрдЯрдХ рд╣реИрдВ:

  • рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рд╕рд░реНрд╡рд░ тАФ рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рддрдВрддреНрд░ред
  • рд╕рд┐рд╕реНрдЯрдо рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕.
  • рдПрд▓рдПрд╕рдПрдо рдЗрд╡реЗрдВрдЯ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЗрдХреНрд╢рдиред
  • рд╕реЗрд▓рд┐рдирдХреНрд╕рдлрд╝реНрд╕ - рдЫрджреНрдо-рдПрдлрдПрд╕, /proc рдХреЗ рд╕рдорд╛рди рдФрд░ /sys/fs/selinux рдореЗрдВ рдЖрд░реВрдврд╝ред рд░рдирдЯрд╛рдЗрдо рдкрд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЗрд╕рдореЗрдВ SELinux рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  • рд╡реЗрдХреНрдЯрд░ рдХреИрд╢ рддрдХ рдкрд╣реБрдВрдЪреЗрдВ - рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╛рдпрдХ рддрдВрддреНрд░ред

рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА
SELinux рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдпрд╣ рд╕рдм рдЗрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ.

  1. рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рд╖рдп, SELinux рд╢рдмреНрджреЛрдВ рдореЗрдВ, DAC рдЬрд╛рдВрдЪ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рдЕрдиреБрдордд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╢реАрд░реНрд╖ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрд┐рд╕реА рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдЕрдиреБрд░реЛрдз рдПрд▓рдПрд╕рдПрдо рдЗрд╡реЗрдВрдЯ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рдХреЛ рдЬрд╛рддрд╛ рд╣реИред
  2. рд╡рд╣рд╛рдВ рд╕реЗ, рдЕрдиреБрд░реЛрдз, рд╡рд┐рд╖рдп рдФрд░ рд╡рд╕реНрддреБ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде, SELinux Abstraction рдФрд░ Hook Logic рдореЙрдбреНрдпреВрд▓ рдХреЛ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ LSM рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
  3. рдХрд┐рд╕реА рд╡рд┐рд╖рдп рддрдХ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рдкрд╣реБрдВрдЪ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рд╛рдзрд┐рдХрд╛рд░реА рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рд╕рд░реНрд╡рд░ рд╣реИ рдФрд░ рдпрд╣ SELinux AnHL рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
  4. рдкрд╣реБрдВрдЪ рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рд╕рд░реНрд╡рд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рд╡реЗрдХреНрдЯрд░ рдХреИрд╢ (рдПрд╡реАрд╕реА) рдХреИрд╢рд┐рдВрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред
  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=рд▓рдХреНрд╖реНрдп

рд╕реЗрдЯреЗрдирдлреЛрд╕ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ 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 - рдорд╣рддреНрд╡, рдЬрд┐рд╕реЗ рдирд┐рдореНрдирд╕реНрддрд░-рдЙрдЪреНрдЪрд╕реНрддрд░ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рд╕реА0, рд╕реА1тАж рд╕реА1023 - рд╢реНрд░реЗрдгреАред

рдПрдХреНрд╕реЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓ рд░рд╣рд╛ рд╣реИ

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 - ╤Г╨┤╨░╨╗╨╕╤В╤М ╨╝╨╛╨┤╤Г╨╗╤М

рдкреНрд░рдердо рджрд▓ рд╕реЗрдореИрдиреЗрдЬ рд▓реЙрдЧрд┐рди SELinux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, -r рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рдХрдорд╛рдВрдб SELinux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдореИрдкрд┐рдВрдЧ рдХреЛ OS рдЦрд╛рддреЛрдВ рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдПрдордПрд▓рдПрд╕/рдПрдорд╕реАрдПрд╕ рд░реЗрдВрдЬ рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдкрд┐рдЫрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣реИред

[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 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреВрдорд┐рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣рдЯрд╛рдПрдВ;
  • -R рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЬреБрдбрд╝реА рднреВрдорд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА;

рдлрд╝рд╛рдЗрд▓реЗрдВ, рдкреЛрд░реНрдЯ рдФрд░ рдмреВрд▓рд┐рдпрди рдорд╛рди

рдкреНрд░рддреНрдпреЗрдХ SELinux рдореЙрдбреНрдпреВрд▓ рдлрд╝рд╛рдЗрд▓ рдЯреИрдЧрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рдпрдо рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рдкрд╛рд╕ /srv/www рдлрд╝реЛрд▓реНрдбрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛред

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

рдкрд╣рд▓рд╛ рдХрдорд╛рдВрдб рдирдП рдЕрдВрдХрди рдирд┐рдпрдореЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдореМрдЬреВрджрд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдмрд▓реНрдХрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реА рддрд░рд╣, рдЯреАрд╕реАрдкреА/рдпреВрдбреАрдкреА рдкреЛрд░реНрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЙрдкрдпреБрдХреНрдд рд╕реЗрд╡рд╛рдПрдВ рд╣реА рдЙрди рдкрд░ рд╕реБрди рд╕рдХреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдкреЛрд░реНрдЯ 8080 рдкрд░ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ SELinux рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдмреВрд▓рд┐рдпрди рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА getebool -a рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЖрдк рд╕реЗрдЯрд╕реЗрдмреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреВрд▓рд┐рдпрди рдорд╛рди рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

[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 рдХреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, рдлрд╝реЛрд▓реНрдбрд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░реЗрдВ, рдкрд┐рдк рд╕реЗ рд▓рд╛рдкрддрд╛ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ 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 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рд╕реЗрдЯрдЯреНрд░рдмрд▓рд╢реВрдЯ рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рджреЗрдЦреЗрдВред

[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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ