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

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

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

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

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

рд▓рд┐рдирд╕ рдЯреЛрд░рд╡рд╛рд▓реНрдбреНрд╕рдиреЗ рдирд╡реАрди NSA рдШрдбрд╛рдореЛрдбреАрдВрдмрджреНрджрд▓ рдЕрдиреЗрдХ рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдореБрдЦреНрдп рд▓рд╛рдЗрди рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╕рд╣ рдСрдкрд░реЗрд╢рдиреНрд╕ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░реНрд╕рдЪрд╛ рдПрдХ рд╕рдВрдЪ рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд░реНрдирд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдордзреНрдпреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд░рдХреНрд╖рдгрд╛рддреНрдордХ рдлреАрд▓реНрдбрдЪрд╛ рд╕рдВрдЪ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдЪреЗ рддреНрдпрд╛рдВрдиреА рд╡рд░реНрдгрди рдХреЗрд▓реЗ. рд╣реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдирдВрддрд░ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓рджреНрд╡рд╛рд░реЗ рдХреЛрдгрддреЗрд╣реА рдЗрдЪреНрдЫрд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреЗрд▓ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. LSM рдиреЗ 2.6 рдордзреНрдпреЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓ v2003 рдордзреНрдпреЗ рдкреВрд░реНрдгрдкрдгреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛.

рдПрд▓рдПрд╕рдПрдо рдлреНрд░реЗрдорд╡рд░реНрдХрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдордзреАрд▓ рдЧрд╛рд░реНрдб рдлреАрд▓реНрдб рдЖрдгрд┐ рдХрд░реНрдирд▓ рдХреЛрдбрдордзреАрд▓ рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдкреЙрдИрдВрдЯреНрд╕рд╡рд░ рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рдлрдВрдХреНрд╢рдиреНрд╕рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ рдЖрдгрд┐ рддреЗ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдНрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрд▓. рд╣реЗ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреА рдиреЛрдВрджрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджреЗрдЦреАрд▓ рдЬреЛрдбрддреЗ. /sys/kernel/security/lsm рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рдкреНрд░рдгрд╛рд▓реАрд╡рд░реАрд▓ рд╕рдХреНрд░рд┐рдп рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреА рд╕реВрдЪреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЗ. LSM рд╣реБрдХ рд╕реВрдЪреАрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдВрдирд╛ CONFIG_LSM рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╣реБрдХрд╡рд░реАрд▓ рддрдкрд╢реАрд▓рд╡рд╛рд░ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╣реЗрдбрд░ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ include/linux/lsm_hooks.h.

LSM рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдиреЗ SELinux рдЪреЗ рдкреВрд░реНрдг рдПрдХрддреНрд░реАрдХрд░рдг рд╕реНрдерд┐рд░ Linux рдХрд░реНрдирд▓ v2.6 рдЪреНрдпрд╛ рд╕рдорд╛рди рдЖрд╡реГрддреНрддреАрд╕рд╣ рдкреВрд░реНрдг рдХрд░рдгреЗ рд╢рдХреНрдп рдХреЗрд▓реЗ. рдЬрд╡рд│рдЬрд╡рд│ рд▓рдЧреЗрдЪрдЪ, SELinux рд╕реБрд░рдХреНрд╖рд┐рдд рд▓рд┐рдирдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдмрдирд▓реЗ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рддрд░рдгрд╛рдВрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.

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

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

LSM рдЖрдгрд┐ SELinux рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рдирд╛рд╡ рдЕрд╕реВрдирд╣реА, LSMs рд╕рд╛рдорд╛рдиреНрдпрддрдГ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп Linux рдореЙрдбреНрдпреВрд▓ рдирд╛рд╣реАрдд. рддрдерд╛рдкрд┐, SELinux рдкреНрд░рдорд╛рдгреЗ, рддреЗ рдереЗрдЯ рдХрд░реНрдирд▓рдордзреНрдпреЗ рд╕рдорд╛рдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. LSM рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреАрд▓ рдХреЛрдгрддреНрдпрд╛рд╣реА рдмрджрд▓рд╛рд╕рд╛рдареА рдирд╡реАрди рдХрд░реНрдирд▓ рд╕рдВрдХрд▓рди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реНрдпрд╛рдп рдХрд░реНрдирд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЕрдиреНрдпрдерд╛ LSM рдХреЛрдб рдмреВрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рд╕рдХреНрд░рд┐рдп рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА. рдкрд░рдВрддреБ рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рддрд╣реА, рддреЗ OS рдмреВрдЯрд▓реЛрдбрд░ рдкрд░реНрдпрд╛рдпрд╛рджреНрд╡рд╛рд░реЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

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

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

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

рд╕рдХреНрддреАрдиреЗ рдЕтАНреЕрдХреНрд╕реЗрд╕ рдЯрд╛рдпрдкрд┐рдВрдЧ рдХреЗрд▓реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, SELinux рдордзреНрдпреЗ Unix/Linux рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ DAC рдореЙрдбреЗрд▓рдкреЗрдХреНрд╖рд╛ рдЦреВрдк рдЬрд╛рд╕реНрдд рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг рдХреНрд╖рдорддрд╛ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, ftp рд╕рд░реНрд╡реНрд╣рд░ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрд▓ рддреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рддреБрдореНрд╣реА рдорд░реНрдпрд╛рджрд┐рдд рдХрд░реВ рд╢рдХрддрд╛, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ рдлрд╛рдпрд▓реА рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдмрджрд▓рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрдК рд╢рдХрддрд╛, рдкрд░рдВрддреБ рддреНрдпрд╛рдВрдирд╛ рд╣рдЯрд╡реВ рд╢рдХрдд рдирд╛рд╣реА.

SELinux рдЪреЗ рдореБрдЦреНрдп рдШрдЯрдХ рдЖрд╣реЗрдд:

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

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

рд╣реЗ рд╕рд░реНрд╡ рдЕрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ.

  1. рд╡рд░рдЪреНрдпрд╛ рдЪрд┐рддреНрд░рд╛рдд рджрд╛рдЦрд╡рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдп, SELinux рд╢рдмреНрджрд╛рдд, DAC рддрдкрд╛рд╕рдгреАрдирдВрддрд░ рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рдкрд░рд╡рд╛рдирдЧреА рдЕрд╕рд▓реЗрд▓реА рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЛ. рдСрдкрд░реЗрд╢рди рдХрд░рдгреНрдпрд╛рдЪреА рд╣реА рд╡рд┐рдирдВрддреА LSM рдЗрд╡реНрд╣реЗрдВрдЯ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░рдХрдбреЗ рдЬрд╛рддреЗ.
  2. рддреЗрдереВрди, рд╡рд┐рдирдВрддреА, рд╡рд┐рд╖рдп рдЖрдгрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрднрд╛рд╕рд╣, SELinux рдНрдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рдЖрдгрд┐ рд╣реБрдХ рд▓реЙрдЬрд┐рдХ рдореЙрдбреНрдпреВрд▓рдХрдбреЗ рдкрд╛рдард╡рд┐рд▓реА рдЬрд╛рддреЗ, рдЬреА LSM рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ.
  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 рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдЪреЗ 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 рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рднреВрдорд┐рдХрд╛ рдореЕрдкрд┐рдВрдЧ рдПрдВрдЯреНрд░реА рд╣рдЯрд╡рд╛;
  • - рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╢реА рд╕рдВрд▓рдЧреНрди рднреВрдорд┐рдХрд╛рдВрдЪреА рд╕реВрдЪреА;

рдлрд╛рдЗрд▓реНрд╕, рдкреЛрд░реНрдЯреНрд╕ рдЖрдгрд┐ рдмреБрд▓рд┐рдпрди рд╡реНрд╣реЕрд▓реНрдпреВ

рдкреНрд░рддреНрдпреЗрдХ 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-рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдорд┐рд│рд╡рд╛

рдЪрд▓рд╛ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛рд╣реВ: PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢рд╛рд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА RHEL 7.6 рд╡рд░ pgadmin4-web рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ. рдЖрдореНрд╣реА рдереЛрдбреЗ рдЪрд╛рд▓рд▓реЛ рд╢реЛрдз pg_hba.conf, postgresql.conf рдЖрдгрд┐ config_local.py рдЪреНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣, рдлреЛрд▓реНрдбрд░ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд╕реЗрдЯ рдХрд░рд╛, pip рд╡рд░реВрди рдЧрд╣рд╛рд│ Python рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛. рд╕рд░реНрд╡ рдХрд╛рд╣реА рддрдпрд╛рд░ рдЖрд╣реЗ, рдЖрдореНрд╣реА рд▓реЙрдиреНрдЪ рдХрд░рддреЛ рдЖрдгрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ 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 рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдЕрдиреБрдХреВрд▓ рдЕрд╕реВ рд╢рдХрддреЗ. рдлрдХреНрдд рд╕реЗрдЯрд░рдмрд▓рд╢реВрдЯ рдкреЕрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдкрд╣рд╛.

[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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛