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

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

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

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

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

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

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

LSM рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд▓реЗ рд╕реНрдерд┐рд░ Linux рдХрд░реНрдиреЗрд▓ v2.6 рдХреЛ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдгрдХреЛ рд╕рд╛рде SELinux рдХреЛ рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рдкреВрд░рд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдпреЛред рд▓рдЧрднрдЧ рддреБрд░реБрдиреНрддреИ, SELinux рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрдиреНрдпреЛ рд░ рд╕рдмреИрднрдиреНрджрд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рддрд░рдгрд╣рд░реВрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░рд┐рдпреЛ: RedHat Enterprise Linux, Fedora, Debian, Ubuntuред

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

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

LSM рд░ SELinux рд╡рд╛рд╕реНрддреБрдХрд▓рд╛

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

рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА
LSM рдЪреЗрдХ рд╕реНрдЯреНрдпрд╛рдХ

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

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

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

SELinux рдХрд╛ рдореБрдЦреНрдп рдШрдЯрдХрд╣рд░реВ рд╣реБрдиреН:

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

рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА
SELinux рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫ

рдпреЛ рд╕рдмреИ рдпреЛ рдЬрд╕реНрддреИ рдХрд╛рдо рдЧрд░реНрджрдЫред

  1. рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рд╖рдп, SELinux рд╕рд░реНрддрд╣рд░реВрдорд╛, DAC рдЬрд╛рдБрдЪ рдкрдЫрд┐ рд╡рд╕реНрддреБрдорд╛ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ рд╢реАрд░реНрд╖ рдЪрд┐рддреНрд░рдорд╛ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫред рдЕрдкрд░реЗрд╢рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдЕрдиреБрд░реЛрдз LSM рдШрдЯрдирд╛ рдЗрдиреНрдЯрд░рд╕реЗрдкреНрдЯрд░рдорд╛ рдЬрд╛рдиреНрдЫред
  2. рддреНрдпрд╣рд╛рдБрдмрд╛рдЯ, рдЕрдиреБрд░реЛрдз, рд╡рд┐рд╖рдп рд░ рд╡рд╕реНрддреБ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдиреНрджрд░реНрдн рд╕рд╣рд┐рдд, SELinux Abstraction рд░ Hook Logic рдореЛрдбреНрдпреБрд▓рдорд╛ рдкрдард╛рдЗрдиреНрдЫ, рдЬреБрди LSM рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫред
  3. рдХреБрдиреИ рд╡рд╕реНрддреБрдорд╛ рд╡рд┐рд╖рдпрдХреЛ рдкрд╣реБрдБрдЪрдорд╛ рдирд┐рд░реНрдгрдп рдЧрд░реНрдиреЗ рдЕрдзрд┐рдХрд╛рд░ рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рд╕рд░реНрднрд░ рд╣реЛ рд░ рдпрд╕рд▓реЗ SELinux AnHL рдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред
  4. рдкрд╣реБрдБрдЪ рд╡рд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдирд┐рд░реНрдгрдп рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рд╕рд░реНрднрд░рд▓реЗ рдкрд╣реБрдБрдЪ рднреЗрдХреНрдЯрд░ рдХреНрдпрд╛рд╕ (AVC) рдХреНрдпрд╛рд╕рд┐рдЩ рд╕рдмрд╕рд┐рд╕реНрдЯрдордорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдзреЗрд░реИ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдирд┐рдпрдорд╣рд░реВрдорд╛ рдЬрд╛рдиреНрдЫред
  5. рдпрджрд┐ рд╕рдореНрдмрдиреНрдзрд┐рдд рдирд┐рдпрдордХреЛ рд╕рдорд╛рдзрд╛рди рдХреНрдпрд╛рд╕рдорд╛ рдлреЗрд▓рд╛ рдкрд░реЗрди рднрдиреЗ, рдЕрдиреБрд░реЛрдзрд▓рд╛рдИ рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рдкрдард╛рдЗрдиреНрдЫред
  6. рдбрд╛рдЯрд╛рдмреЗрд╕ рд░ AVC рдмрд╛рдЯ рдЦреЛрдЬреА рдкрд░рд┐рдгрд╛рдо рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрди рд╕рд░реНрднрд░рдорд╛ рдлрд┐рд░реНрддрд╛ рдЧрд░рд┐рдиреНрдЫред
  7. рдпрджрд┐ рдлреЗрд▓рд╛ рдкрд░реЗрдХреЛ рдиреАрддрд┐ рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдЮреНрдЪрд╛рд▓рди рдЕрдиреБрдорддрд┐ рдЫред рдЕрдиреНрдпрдерд╛, рд╕рдЮреНрдЪрд╛рд▓рди рдирд┐рд╖реЗрдзрд┐рдд рдЫред

SELinux рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджреИ

SELinux рддреАрди рдореЛрдб рдордзреНрдпреЗ рдПрдХ рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ:

  • рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ - рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐рд╣рд░реВрдХреЛ рдХрдбрд╛ рдкрд╛рд▓рдирд╛ред
  • рдЕрдиреБрдореЛрджрдХ - рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВрдХреЛ рдЙрд▓реНрд▓рдЩреНрдШрдирд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫ; рдЬрд░реНрдирд▓рдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдиреЛрдЯ рдмрдирд╛рдЗрдПрдХреЛ рдЫред
  • рдЕрд╕рдХреНрд╖рдо - рд╕реБрд░рдХреНрд╖рд╛ рдиреАрддрд┐рд╣рд░реВ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдЫреИрдирдиреНред

рддрдкрд╛рдИрд▓реЗ рдирд┐рдореНрди рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде SELinux рдХреБрди рдореЛрдбрдорд╛ рдЫ рднрдиреЗрд░ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

[admin@server ~]$ getenforce
Permissive

рд░рд┐рдмреБрдЯ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдореЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓рд╛рдИ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕реЗрдЯ рдЧрд░реНрджреИ, рд╡рд╛ 1ред рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдХреЛрдб реж рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред

[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 рд╕реНрд╡рд┐рдЪрдХреЛ рд╕рд╛рде рдЕрдиреНрддрд┐рдо рдЖрджреЗрд╢рд▓реЗ OS рдЦрд╛рддрд╛рд╣рд░реВрдорд╛ SELinux рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдореНрдпрд╛рдкрд┐рдЩ рд╣рдЯрд╛рдЙрдБрдЫред 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 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рднреВрдорд┐рдХрд╛ рдореНрдпрд╛рдкрд┐рдЩ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реН;
  • - рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕рдБрдЧ рд╕рдВрд▓рдЧреНрди рднреВрдорд┐рдХрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА;

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

рдкреНрд░рддреНрдпреЗрдХ 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-рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реЗрд░реМрдВ: рд╣рд╛рдореАрд▓реЗ RHEL 7.6 рдорд╛ PostgreSQL рдбрд╛рдЯрд╛рдмреЗрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди pgadmin4-web рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдпреМрдВред рдЕрд▓рд┐рдХрддрд┐ рд╣рд┐рдБрдбреНрдпреМрдВ рдЦреЛрдЬ 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 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рд╣реБрди рд╕рдХреНрдЫред рдХреЗрд╡рд▓ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди