рдореЛрдареНрдпрд╛ рдпрд╢рд╛рдорд╛рдЧреАрд▓ рдХрд╛рд░рдгрд╛рдВрдкреИрдХреА рдПрдХ Linux рдПрдореНрдмреЗрдбреЗрдб, рдореЛрдмрд╛рдИрд▓ рдЙрдкрдХрд░рдгреЗ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реАрд▓ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рдХрд░реНрдирд▓, рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рдЖрдгрд┐ ре▓рдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рд╕рд╛рдареА рдмрд▒реНрдпрд╛рдкреИрдХреА рдЙрдЪреНрдЪ рдкрд╛рддрд│реАрдЪреА рд╕реБрд░рдХреНрд╖рд╛ рдЕрд╕рддреЗ. рдкрдг рдЬрд░ рдХрд░реНрдирд▓ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓рд╛ Linuxрддрд░ рдордЧ рддреБрдореНрд╣рд╛рд▓рд╛ рддреНрдпрд╛рдд рд╕реБрд░рдХреНрд╖реЗрд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рд▓реЗрд▓реА рдХреЛрдгрддреАрд╣реА рдЪреМрдХрдЯ рд╕рд╛рдкрдбрдгрд╛рд░ рдирд╛рд╣реА. рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрдкреНрд░рдгрд╛рд▓реА рдХреБрдареЗ рд▓рдкрд▓реА рдЖрд╣реЗ? Linux рдЖрдгрд┐ рддреНрдпрд╛рдд рдХрд╛рдп рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ?
prehistory Linux рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓ рдЖрдгрд┐ рдПрд╕рдИLinux
рд╕реБрд░рдХреНрд╖рд╛ рд╡рд╛рдврд╡рд▓реА Linux рдкреНрд░рдгрд╛рд▓реАрдВрдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрдгрд┐ рднреВрдорд┐рдХрд╛-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рд╡реЗрд╢ рдореЙрдбреЗрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдирд┐рдпрдо рдЖрдгрд┐ рдкреНрд░рд╡реЗрд╢ рдпрдВрддреНрд░рдгрд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рдЖрд╣реЗ. Linux рдкрд╛рд░рдВрдкрд░рд┐рдХ рдпреБрдирд┐рдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдбрд┐рд╕реНрдХреНрд░реЗрд╢рдирд░реА рдНрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ (DAC) рдордзреАрд▓ рд╕рдВрднрд╛рд╡реНрдп рдзреЛрдХреЗ рдЖрдгрд┐ рддреНрд░реБрдЯреАрдВрд╡рд░реАрд▓ рдЙрдкрд╛рдпрдпреЛрдЬрдирд╛. рдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдЕрдореЗрд░рд┐рдХреЗрдЪреНрдпрд╛ рд░рд╛рд╖реНрдЯреНрд░реАрдп рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрд╕реНрдереЗрдордзреНрдпреЗ рдЭрд╛рд▓реА, рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рд╕рд┐рдХреНрдпреБрдЕрд░ рдХреЙрдореНрдкреНрдпреБрдЯрд┐рдВрдЧ рдХреЙрд░реНрдкреЛрд░реЗрд╢рди рд╡ MITRE рдпрд╛ рдХрдВрддреНрд░рд╛рдЯрджрд╛рд░рд╛рдВрдиреА, рддрд╕реЗрдЪ рдЕрдиреЗрдХ рд╕рдВрд╢реЛрдзрди рдкреНрд░рдпреЛрдЧрд╢рд╛рд│рд╛рдВрдиреА рдХреЗрд▓рд╛.

Linux рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓
рд▓рд┐рдирд╕ рдЯреЙрд░рд╡реЙрд▓реНрдбреНрд╕рдиреЗ рдПрдирдПрд╕рдПрдЪреНрдпрд╛ рдирд╡реАрди рдШрдбрд╛рдореЛрдбреАрдВрд╡рд░ рдЕрдиреЗрдХ рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдХреЗрд▓реНрдпрд╛, рдЬреЗрдгреЗрдХрд░реВрди рддреНрдпрд╛рдВрдЪрд╛ рдореЗрдирд▓рд╛рдЗрди рдХрд░реНрдирд▓рдордзреНрдпреЗ рд╕рдорд╛рд╡реЗрд╢ рдХрд░рддрд╛ рдпреЗрдИрд▓. LinuxрддреНрдпрд╛рдиреЗ рдПрдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдкрд░реЗрд╢рдиреНрд╕ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░реНрд╕рдЪрд╛ рдПрдХ рд╕рдВрдЪ рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдЧреБрдгрдзрд░реНрдо рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд░реНрдирд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдордзреАрд▓ рд╕рдВрд░рдХреНрд╖рдХ рдлреАрд▓реНрдбреНрд╕рдЪрд╛ рдПрдХ рд╕рдВрдЪ рд╣реЛрддрд╛. рддреНрдпрд╛рдирдВрддрд░ рд╣реЗ рд╡рд╛рддрд╛рд╡рд░рдг рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓реНрд╕рджреНрд╡рд╛рд░реЗ рдХреЛрдгрддреЗрд╣реА рдЗрдЪреНрдЫрд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреЗрд▓ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рд╣реЛрддреЗ. рдПрд▓рдПрд╕рдПрдо рдХрд░реНрдирд▓рдордзреНрдпреЗ рдкреВрд░реНрдгрдкрдгреЗ рдПрдХрд╛рддреНрдорд┐рдХ рдЭрд╛рд▓реЗ. Linux v2.6 реирежрежрей рдордзреНрдпреЗ.
рдПрд▓рдПрд╕рдПрдо рдлреНрд░реЗрдорд╡рд░реНрдХрдордзреНрдпреЗ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рдордзреАрд▓ рдЧрд╛рд░реНрдб рдлреАрд▓реНрдб рдЖрдгрд┐ рдХрд░реНрдирд▓ рдХреЛрдбрдордзреАрд▓ рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдкреЙрдИрдВрдЯреНрд╕рд╡рд░ рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рдлрдВрдХреНрд╢рдиреНрд╕рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ рдЖрдгрд┐ рддреЗ рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдНрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрд▓. рд╣реЗ рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреА рдиреЛрдВрджрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджреЗрдЦреАрд▓ рдЬреЛрдбрддреЗ. /sys/kernel/security/lsm рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рдкреНрд░рдгрд╛рд▓реАрд╡рд░реАрд▓ рд╕рдХреНрд░рд┐рдп рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреА рд╕реВрдЪреА рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЕрд╕рддреЗ. LSM рд╣реБрдХ рд╕реВрдЪреАрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд, рдЬреНрдпрд╛рдВрдирд╛ CONFIG_LSM рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рдХреЙрд▓ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╣реБрдХрд╡рд░реАрд▓ рддрдкрд╢реАрд▓рд╡рд╛рд░ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рд╣реЗрдбрд░ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ include/linux/lsm_hooks.h.
рдПрд▓рдПрд╕рдПрдо рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдореБрд│реЗ рдПрд╕рдИрдЪреЗ рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рд╢рдХреНрдп рдЭрд╛рд▓реЗ.Linux рд╕реНрдерд┐рд░ рдХрд░реНрдирд▓рдЪреА рддреАрдЪ рдЖрд╡реГрддреНрддреА Linux v2.6. рдЕрдХреНрд╖рд░рд╢рдГ рддрд╛рддреНрдХрд╛рд│ SELinux рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рд╡рд╕реНрддреБрддрдГ рдорд╛рдирдХ рдмрдирд▓реЗ рдЖрд╣реЗ Linux рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рддрд░рдгрд╛рдВрдЪрд╛ рднрд╛рдЧ рдмрдирд▓реЗ: рд░реЗрдбрд╣реЕрдЯ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ Linux, рдлреЗрдбреЛрд░рд╛, Debian, Ubuntu.
рдПрд╕рдИ рд╢рдмреНрджрд╛рд╡рд▓реАLinux
- рдУрд│рдЦ тАФ рдПрд╕рдИ рд╡рд╛рдкрд░рдХрд░реНрддрд╛Linux рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдпреБрдирд┐рдХреНрд╕рд╕рд╛рд░рдЦреЗ рдирд╛рд╣реАLinux рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЖрдпрдбреА, рддреЗ рдПрдХрд╛рдЪ рдкреНрд░рдгрд╛рд▓реАрд╡рд░ рдПрдХрддреНрд░ рдЕрд╕реВ рд╢рдХрддрд╛рдд, рдкрд░рдВрддреБ рдореВрд▓рддрдГ рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдЖрд╣реЗрдд. рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдирдХ рдЦрд╛рддреЗ Linux SE рдордзреНрдпреЗ рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдЬреБрд│реВ рд╢рдХрддрд╛рддLinux. рдПрд╕рдИ рдЖрдпрдбреЗрдВрдЯрд┐рдЯреАLinux рдПрдХреВрдг рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрднрд╛рдЪрд╛ рдПрдХ рдЕрд╡рд┐рднрд╛рдЬреНрдп рднрд╛рдЧ рдЖрд╣реЗ рдЬреЛ рдард░рд╡рддреЛ рдХреА рдХреЛрдгрддреНрдпрд╛ рдбреЛрдореЗрдирдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рдордзреНрдпреЗ рдирд╛рд╣реА.
- рдбреЛрдореЗрди тАФ рдЖрдЧреНрдиреЗрдпрдордзреНрдпреЗLinux рдбреЛрдореЗрди рдореНрд╣рдгрдЬреЗ рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪрд╛, рдореНрд╣рдгрдЬреЗрдЪ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдВрджрд░реНрдн рд╣реЛрдп. рдбреЛрдореЗрди рдереЗрдЯрдкрдгреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпреЗрд▓рд╛ рдХреЛрдгрддрд╛ рдкреНрд░рд╡реЗрд╢ (ре▓рдХреНрд╕реЗрд╕) рдЖрд╣реЗ. рдбреЛрдореЗрди рдореНрд╣рдгрдЬреЗ рдореВрд▓рддрдГ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдп рдХрд░реВ рд╢рдХрддрд╛рдд рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╣ рдХреЛрдгрддреА рдХрд╛рд░реНрдпреЗ рдХрд░реВ рд╢рдХрддрд╛рдд рдпрд╛рдЪреА рдПрдХ рд╕реВрдЪреА рдЕрд╕рддреЗ. рдбреЛрдореЗрдирдЪреА рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдгреЗ рдореНрд╣рдгрдЬреЗ рд╕рд┐рд╕реНрдЯреАрдо ре▓рдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрд╢рдирд╕рд╛рдареА sysadm_t, рдЖрдгрд┐ user_t, рдЬреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп, рдЕрд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдЕрд╕рд▓реЗрд▓рд╛ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдбреЛрдореЗрди рдЖрд╣реЗ. init рд╕рд┐рд╕реНрдЯреАрдо init_t рдбреЛрдореЗрдирдордзреНрдпреЗ рдЪрд╛рд▓рддреЗ, рдЖрдгрд┐ рдирд╛рдорд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ named_t рдбреЛрдореЗрдирдордзреНрдпреЗ рдЪрд╛рд▓рддреЗ.
- рднреВрдорд┐рдХрд╛ рдбреЛрдореЗрди рдЖрдгрд┐ рдПрд╕рдИ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдордзреНрдпреЗ рдордзреНрдпрд╕реНрде рдореНрд╣рдгреВрди рдХрд╛рдп рдХрд╛рдо рдХрд░рддреЗLinuxрднреВрдорд┐рдХрд╛ рдард░рд╡рддрд╛рдд рдХреА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдХреЛрдгрддреНрдпрд╛ рдбреЛрдореЗрдирдЪрд╛ рднрд╛рдЧ рдЕрд╕реВ рд╢рдХрддреЛ рдЖрдгрд┐ рддреЛ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рд╢рдХрддреЛ. рд╣реА рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг рдпрдВрддреНрд░рдгрд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рдврд╡рдгрд╛рд▒реНрдпрд╛ рд╣рд▓реНрд▓реНрдпрд╛рдВрдЪрд╛ рдзреЛрдХрд╛ рдЯрд╛рд│рддреЗ. рдПрд╕рдИ (SE) рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рднреВрдорд┐рдХрд╛-рдЖрдзрд╛рд░рд┐рдд рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг (RBAC) рд╕реБрд░рдХреНрд╖рд╛ рдореЙрдбреЗрд▓рдордзреНрдпреЗ рднреВрдорд┐рдХрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.Linux.
- рдкреНрд░рдХрд╛рд░ тАФ рдПрдХ рдкреНрд░рдХрд╛рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реВрдЪреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреА рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рдХреЛрдг рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рд╢рдХрддреЗ рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ. рдбреЛрдореЗрдирдЪреНрдпрд╛ рд╡реНрдпрд╛рдЦреНрдпреЗрдкреНрд░рдорд╛рдгреЗрдЪ, рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рдбреЛрдореЗрди рдПрдЦрд╛рджреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕ рд▓рд╛рдЧреВ рд╣реЛрддреЛ рдЖрдгрд┐ рдкреНрд░рдХрд╛рд░ рдбрд┐рд░реЗрдХреНрдЯрд░реА, рдлрд╛рдЗрд▓реНрд╕, рд╕реЙрдХреЗрдЯреНрд╕ рдЗрддреНрдпрд╛рджреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рд╡рд░ рд▓рд╛рдЧреВ рд╣реЛрддреЛ.
- рд╡рд┐рд╖рдп рдЖрдгрд┐ рд╡рд╕реНрддреВ - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд╖рдп рдЖрд╣реЗрдд рдЖрдгрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрдн рдХрд┐рдВрд╡рд╛ рд╕реБрд░рдХреНрд╖рд╛ рдбреЛрдореЗрдирдордзреНрдпреЗ рдЪрд╛рд▓рд╡рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЗ: рдлрд╛рдИрд▓реНрд╕, рдбрд┐рд░реЗрдХреНрдЯрд░реА, рд╕реЙрдХреЗрдЯреНрд╕ рдЗ. рдпрд╛ рд╡рд╕реНрддреВ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдВрдирд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдПрдХ рдЧреЛрдкрдиреАрдпрддрд╛ рд╕реНрддрд░.
- рдПрд╕рдИ рдзреЛрд░рдгреЗLinux рдПрд╕рдИ рдкреНрд░рдгрд╛рд▓реАрдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареАLinux рд╡рд┐рд╡рд┐рдз рдзреЛрд░рдгрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЗ. рдПрд╕рдИ рдзреЛрд░рдгLinux рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪрд╛ рднреВрдорд┐рдХрд╛рдВрд╕рд╛рдареА, рднреВрдорд┐рдХрд╛рдВрдЪрд╛ рдбреЛрдореЗрдиреНрд╕рд╕рд╛рдареА рдЖрдгрд┐ рдбреЛрдореЗрдиреНрд╕рдЪрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╛рдареАрдЪрд╛ рдкреНрд░рд╡реЗрд╢ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ. рдкреНрд░рдердо, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдПрдХрд╛ рднреВрдорд┐рдХреЗрд╕рд╛рдареА рдЕрдзрд┐рдХреГрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреНрдпрд╛рдирдВрддрд░ рднреВрдорд┐рдХреЗрд▓рд╛ рдбреЛрдореЗрдиреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдзрд┐рдХреГрдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рд╢реЗрд╡рдЯреА, рдПрдЦрд╛рджреНрдпрд╛ рдбреЛрдореЗрдирд▓рд╛ рдХреЗрд╡рд│ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░рд╛рдВрдордзреНрдпреЗрдЪ рдкреНрд░рд╡реЗрд╢ рдЕрд╕реВ рд╢рдХрддреЛ.
рдПрд▓рдПрд╕рдПрдо рдЖрдгрд┐ рдПрд╕рдИ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░Linux
рдирд╛рд╡рд╛рдкреНрд░рдорд╛рдгреЗ рдирд╕рд▓реЗ рддрд░реА, рдПрд▓рдПрд╕рдПрдо рд╣реЗ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓ рдирд╛рд╣реАрдд. Linuxрддрдерд╛рдкрд┐, рдПрд╕рдИ рдкреНрд░рдорд╛рдгреЗрдЪLinuxрддреЗ рдереЗрдЯ рдХрд░реНрдирд▓рдордзреНрдпреЗ рд╕рдорд╛рдХрд▓рд┐рдд рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. LSM рд╕реЛрд░реНрд╕ рдХреЛрдбрдордзреАрд▓ рдХреЛрдгрддреНрдпрд╛рд╣реА рдмрджрд▓рд╛рд╕рд╛рдареА рдирд╡реАрди рдХрд░реНрдирд▓ рд╕рдВрдХрд▓рдирд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ. рдХрд░реНрдирд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдордзреНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░реНрдпрд╛рдп рд╕рдХреНрд╖рдо рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЕрдиреНрдпрдерд╛ рдмреВрдЯ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ LSM рдХреЛрдб рд╕рдХреНрд░рд┐рдп рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА. рддрдерд╛рдкрд┐, рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрддрд╣реА, рддреЗ OS рдмреВрдЯрд▓реЛрдбрд░ рдкрд░реНрдпрд╛рдпрд╛рджреНрд╡рд╛рд░реЗ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.

LSM рдЪреЗрдХ рд╕реНрдЯреЕрдХ
LSM рдХреЛрд░ рдХрд░реНрдирд▓ рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рд╣реБрдХрд╕рд╣ рд╕реБрд╕рдЬреНрдЬ рдЖрд╣реЗ рдЬреЗ рдЪреЗрдХрд╕рд╛рдареА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕реВ рд╢рдХрддрд╛рдд. LSM рдЪреЗ рдореБрдЦреНрдп рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдореНрд╣рдгрдЬреЗ рддреЗ рд╕реНрдЯреЕрдХ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗрдд. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдорд╛рдирдХ рддрдкрд╛рд╕рдгреНрдпрд╛ рдЕрдЬреВрдирд╣реА рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ LSM рдЪреНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░рд╛рдордзреНрдпреЗ рдлрдХреНрдд рдЕрддрд┐рд░рд┐рдХреНрдд рдирд┐рдпрдВрддреНрд░рдгреЗ рдЖрдгрд┐ рдирд┐рдпрдВрддреНрд░рдгреЗ рдЬреЛрдбрд▓реА рдЬрд╛рддрд╛рдд. рдореНрд╣рдгрдЬреЗ рдмрдВрджреА рдорд╛рдЧреЗ рдШреЗрддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА. рд╣реЗ рдЖрдХреГрддреАрдордзреНрдпреЗ рджрд░реНрд╢рд╡рд┐рд▓реЗ рдЖрд╣реЗ; рдЬрд░ рдирд┐рдпрдорд┐рдд DAC рддрдкрд╛рд╕рдгреНрдпрд╛рдВрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓рд╛, рддрд░ рдкреНрд░рдХрд░рдг LSM рд╣реБрдХрдкрд░реНрдпрдВрдд рдкреЛрд╣реЛрдЪрдгрд╛рд░ рдирд╛рд╣реА.
SELinux рдлреНрд▓реВрдХ рд░рд┐рд╕рд░реНрдЪ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдордЪреА рдлреНрд▓рд╛рд╕реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рд░рдЪрдирд╛, рд╡рд┐рд╢реЗрд╖рддрдГ 'рдХрд┐рдорд╛рди рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╛рдЪреЗ рддрддреНрддреНрд╡' (principle of least privilege) рд╕реНрд╡реАрдХрд╛рд░рд▓реЗ рдЖрд╣реЗ. рдирд╛рд╡рд╛рдкреНрд░рдорд╛рдгреЗрдЪ, рдпрд╛ рд╕рдВрдХрд▓реНрдкрдиреЗрдЪреЗ рд╕рд╛рд░ рд╣реЗ рдЖрд╣реЗ рдХреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдХрд┐рдВрд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд▓рд╛ рдХреЗрд╡рд│ рдЗрдЪреНрдЫрд┐рдд рдХреГрддреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рдЕрдзрд┐рдХрд╛рд░ рджреЗрдгреЗ. рд╣реЗ рддрддреНрддреНрд╡ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рд╡реЗрд╢ рдкреНрд░рдХрд╛рд░рд╛рджреНрд╡рд╛рд░реЗ (mandatory access typing) рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗ рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ SE рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдЕрдзрд┐рдХрд╛рд░рд╛рдВрд╡рд░ рдирд┐рдпрдВрддреНрд░рдг рдареЗрд╡рд▓реЗ рдЬрд╛рддреЗ.Linux рдбреЛрдореЗрди => рдкреНрд░рдХрд╛рд░ рдореЙрдбреЗрд▓рд╡рд░ рдЖрдзрд╛рд░рд┐рдд.
access SE рдЪреНрдпрд╛ рд╕рдХреНрддреАрдЪреНрдпрд╛ рдЯрд╛рдпрдкрд┐рдВрдЧрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рджLinux рдпреБрдирд┐рдХреНрд╕ рдУрдПрд╕рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдбреАрдПрд╕реА рдореЙрдбреЗрд▓рдкреЗрдХреНрд╖рд╛ рдпрд╛рдд рдЕрдзрд┐рдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг рдХреНрд╖рдорддрд╛ рдЖрд╣реЗрдд.LinuxрдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣реА FTP рд╕рд░реНрд╡рд░ рдЬреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреЛрд░реНрдЯ рдирдВрдмрд░рд╡рд░ рдРрдХреЗрд▓ рддреНрдпрд╛рд╡рд░ рдирд┐рд░реНрдмрдВрдз рдШрд╛рд▓реВ рд╢рдХрддрд╛, рдЬреНрдпрд╛рдореБрд│реЗ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлреЛрд▓реНрдбрд░рдордзреАрд▓ рдлрд╛рдИрд▓реНрд╕ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдорд┐рд│реЗрд▓, рдкрд░рдВрддреБ рддреНрдпрд╛ рдбрд┐рд▓реАрдЯ рдХрд░рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реАрдд.
рдПрд╕рдИрдЪреЗ рдореБрдЦреНрдп рдШрдЯрдХLinux рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗрдд:
- рдзреЛрд░рдг рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рд░реНрд╡реНрд╣рд░ - рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг рдЖрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдореБрдЦреНрдп рдпрдВрддреНрд░рдгрд╛.
- рд╕рд┐рд╕реНрдЯрдо рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдг рдбреЗрдЯрд╛рдмреЗрд╕.
- рдПрд▓рдПрд╕рдПрдо рдЗрд╡реНрд╣реЗрдВрдЯ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░рд╕рд╣ рд╕рдВрд╡рд╛рдж.
- рд╕реЗрд▓рд┐рдирдХреНрд╕рдлреНрд╕ тАФ рдПрдХ рдЫрджреНрдо-рдПрдлрдПрд╕, рдЬреЗ /proc рд╕рд╛рд░рдЦреЗрдЪ рдЕрд╕рддреЗ рдЖрдгрд┐ /sys/fs/selinux рдордзреНрдпреЗ рдорд╛рдЙрдВрдЯ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рддреЗ. рдХрд░реНрдирд▓рджреНрд╡рд╛рд░реЗ рдЧрддрд┐рдорд╛рдирдкрдгреЗ рднрд░рд▓реЗ рдЬрд╛рддреЗ. Linux рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рджрд░рдореНрдпрд╛рди рдЖрдгрд┐ рддреНрдпрд╛рдд рдПрд╕рдИ рд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдпрд▓реА рдЕрд╕рддрд╛рддLinux.
- рд╡реЗрдХреНрдЯрд░ рдХреЕрд╢реЗрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рд╛ - рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╡рд╛рдврд╡рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╣рд╛рдпрдХ рдпрдВрддреНрд░рдгрд╛.

рдПрд╕рдИ рдСрдкрд░реЗрд╢рди рдпреЛрдЬрдирд╛Linux
рд╣реЗ рд╕рд░реНрд╡ рдЕрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ.
- SE рд╕рдВрдЬреНрдЮрд╛рдВрдордзреНрдпреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдпLinuxрд╡рд░реАрд▓ рдкреНрд░рддрд┐рдореЗрдд рджрд╛рдЦрд╡рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, DAC рдкрдбрддрд╛рд│рдгреАрдирдВрддрд░ рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░ рдЕрдиреБрдордд рдХреГрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ. рдСрдкрд░реЗрд╢рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареАрдЪреА рд╣реА рд╡рд┐рдирдВрддреА LSM рдЗрд╡реНрд╣реЗрдВрдЯ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░рдХрдбреЗ рдкрд╛рдард╡рд▓реА рдЬрд╛рддреЗ.
- рддрд┐рдереВрди, рд╡рд┐рдирдВрддреА, рд╡рд┐рд╖рдп рдЖрдгрд┐ рд╡рд╕реНрддреВрдЪреНрдпрд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрднрд╛рд╕рд╣, SE рдореЙрдбреНрдпреВрд▓рдХрдбреЗ рдкрд╛рдард╡рд▓реА рдЬрд╛рддреЗ.Linux LSM рд╕реЛрдмрдд рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рд▓реЗрд▓реЗ рдЕтАНреЕрдмрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рдЖрдгрд┐ рд╣реБрдХ рд▓реЙрдЬрд┐рдХ.
- рдПрдЦрд╛рджреНрдпрд╛ рд╡рд┐рд╖рдпрд╛рдЪреНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░реАрд▓ рдкреНрд░рд╡реЗрд╢рд╛рд╕рдВрдмрдВрдзреА рдирд┐рд░реНрдгрдп рдШреЗрдгрд╛рд░рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреЙрд▓рд┐рд╕реА рдПрдирдлреЛрд░реНрд╕рдореЗрдВрдЯ рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ, рдЖрдгрд┐ рддреЛ рдПрд╕рдИ рдХрдбреВрди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЛ.Linux рдПрдПрдирдПрдЪрдПрд▓.
- рдкреНрд░рд╡реЗрд╢ рдХрд┐рдВрд╡рд╛ рдирдХрд╛рд░ рдпрд╛рдмрд╛рдмрдд рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдкреЙрд▓рд┐рд╕реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рд░реНрд╡реНрд╣рд░ рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░реНтАНрдпрд╛ рдирд┐рдпрдорд╛рдВрд╕рд╛рдареА рдНрдХреНрд╕реЗрд╕ рд╡реЗрдХреНрдЯрд░ рдХреЕрд╢реЗ (AVC) рдХреЕрд╢рд┐рдВрдЧ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдХрдбреЗ рд╡рд│рддреЗ.
- рдХреЕрд╢реЗрдордзреНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдпрдорд╛рд╕рд╛рдареА рдЙрдкрд╛рдп рд╕рд╛рдкрдбрд▓рд╛ рдирд╛рд╣реА, рддрд░ рд╡рд┐рдирдВрддреА рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдг рдбреЗрдЯрд╛рдмреЗрд╕рдХрдбреЗ рдкрд╛рдард╡рд┐рд▓реА рдЬрд╛рддреЗ.
- рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ AVC рдордзреАрд▓ рд╢реЛрдз рдкрд░рд┐рдгрд╛рдо рдкреЙрд▓рд┐рд╕реА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкрд░рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
- рдЖрдврд│рд▓реЗрд▓реЗ рдзреЛрд░рдг рд╡рд┐рдирдВрддреА рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреГрддреАрд╢реА рдЬреБрд│рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рдСрдкрд░реЗрд╢рдирд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ. рдЕрдиреНрдпрдерд╛, рдСрдкрд░реЗрд╢рди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдЖрд╣реЗ.
SE рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗLinux
SELinux рддреАрдирдкреИрдХреА рдПрдХрд╛ рдореЛрдбрдордзреНрдпреЗ рдЪрд╛рд▓рддреЗ:
- рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА - рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдгрд╛рдВрдЪреЗ рдХрдареЛрд░ рдкрд╛рд▓рди.
- рдЕрдиреБрдЬреНрдЮреЗрдп - рдирд┐рд░реНрдмрдВрдзрд╛рдВрдЪреЗ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ; рдЬрд░реНрдирд▓рдордзреНрдпреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯреАрдк рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ.
- рдЕрдХреНрд╖рдо-рд╕реБрд░рдХреНрд╖рд╛ рдзреЛрд░рдгреЗ рдкреНрд░рднрд╛рд╡реА рдирд╛рд╣реАрдд.
SE рдХреЛрдгрддреНрдпрд╛ рдореЛрдбрдордзреНрдпреЗ рдЖрд╣реЗ рддреЗ рдкрд╣рд╛Linux рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдб рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛.
[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=рд▓рдХреНрд╖реНрдп
setenforce рдордзреАрд▓ рдлрд░рдХ рд╣рд╛ рдЖрд╣реЗ рдХреА рдЬреЗрд╡реНрд╣рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рд╣реЛрддреЗ, рддреЗрд╡реНрд╣рд╛ SE рдореЛрдбLinux SELINUX рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдкреЕрд░рд╛рдореАрдЯрд░рдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдиреБрд╕рд╛рд░ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓. рд╢рд┐рд╡рд╛рдп, enforcing <=> disabled рд╕реЗрдЯрд┐рдВрдЧрдордзреАрд▓ рдмрджрд▓ рдХреЗрд╡рд│ /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
SE рдЧреБрдгрдзрд░реНрдо рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареАLinux рдХрд╛рд╣реА рдорд╛рдирдХ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЬ -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 - рд╢реНрд░реЗрдгреА.
рдкреНрд░рд╡реЗрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдд рдЖрд╣реЗ
SE рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА semodule рд╡рд╛рдкрд░рд╛.LinuxрддреНрдпрд╛рдВрдирд╛ рдЬреЛрдбрд╛ рдЖрдгрд┐ рдХрд╛рдврд╛.
[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 рд▓реЙрдЧрд┐рди SE рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдЬреЛрдбрддреЗLinux рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╣, рджреБрд╕рд░реА рдХрдорд╛рдВрдб рдпрд╛рджреА рджрд╛рдЦрд╡рддреЗ. рд╢реЗрд╡рдЯреА, -r рд╕реНрд╡рд┐рдЪ рдЕрд╕рд▓реЗрд▓реА рд╢реЗрд╡рдЯрдЪреА рдХрдорд╛рдВрдб SE рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдореЕрдкрд┐рдВрдЧ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЗ.Linux рдУрдПрд╕ рдЦрд╛рддреНрдпрд╛рдВрдирд╛. рдПрдордПрд▓рдПрд╕/рдПрдорд╕реАрдПрд╕ рд░реЗрдВрдЬ рд╡реНрд╣реЕрд▓реНрдпреВрдЬрдЪреА рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдорд╛рдЧреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рдд рд╕реНрдкрд╖реНрдЯ рдХреЗрд▓реА рдЖрд╣реЗ.
[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 рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╡рд╛рдкрд░рдХрд░реНрддреЗ рдЖрдгрд┐ рдПрд╕рдИ рднреВрдорд┐рдХрд╛рдВрдордзреАрд▓ рдореЕрдкрд┐рдВрдЧ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗLinux.
[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 рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рднреВрдорд┐рдХрд╛ рдореЕрдкрд┐рдВрдЧ рдПрдВрдЯреНрд░реА рд╣рдЯрд╡рд╛;
- - рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╢реА рд╕рдВрд▓рдЧреНрди рднреВрдорд┐рдХрд╛рдВрдЪреА рд╕реВрдЪреА;
рдлрд╛рдЗрд▓реНрд╕, рдкреЛрд░реНрдЯреНрд╕ рдЖрдгрд┐ рдмреБрд▓рд┐рдпрди рд╡реНрд╣реЕрд▓реНрдпреВ
рдкреНрд░рддреНрдпреЗрдХ SE рдореЙрдбреНрдпреВрд▓Linux рдлрд╛рдЗрд▓ рдорд╛рд░реНрдХрд┐рдВрдЧ рдирд┐рдпрдорд╛рдВрдЪрд╛ рдПрдХ рд╕рдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдкрд░рдВрддреБ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рддреБрдореНрд╣реА рддреБрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдирд┐рдпрдо рджреЗрдЦреАрд▓ рдЬреЛрдбреВ рд╢рдХрддрд╛. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ /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
рд▓рдХреНрд╖рдгреАрдп рд╕рдВрдЦреНрдпреЗрдиреЗ рдПрд╕рдИ рдореЙрдбреНрдпреВрд▓Linux рдпрд╛рдд рдмреБрд▓рд┐рдпрди рдореВрд▓реНрдпреЗ рдШреЗрдК рд╢рдХрдгрд╛рд░реЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдЖрд╣реЗрдд. рдЕрд╢рд╛ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рдЪреА рд╕рдВрдкреВрд░реНрдг рдпрд╛рджреА 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.
рдмрд╣реБрддреЗрдХ рдкреНрд░рд╢рд╛рд╕рдХ рдпреЗрдереЗрдЪ рдЕрд╕рддрд╛рдд Linux `setencorce 0` рдЪрд╛рд▓рд╡реВрди рд╡рд┐рд╖рдп рд╕рдВрдкрд╡рдгреНрдпрд╛рдЪрд╛ рддреАрд╡реНрд░ рдореЛрд╣ рд╣реЛрдИрд▓. рдЦрд░рдВ рд╕рд╛рдВрдЧрд╛рдпрдЪрдВ рддрд░, рдкрд╣рд┐рд▓реНрдпрд╛рдВрджрд╛ рдореА рддреЗрдЪ рдХреЗрд▓рдВ рд╣реЛрддрдВ. рд╣рд╛ рдирд┐рд╢реНрдЪрд┐рддрдЪ рдПрдХ рдЙрдкрд╛рдп рдЖрд╣реЗ, рдкрдг рд╕рд░реНрд╡реЛрддреНрддрдо рдирд╛рд╣реА.
SE рдбрд┐рдЭрд╛рдЗрдирдЪреНрдпрд╛ рдЕрд╡рдЬрдбрдкрдгрд╛рдореБрд│реЗLinux рд╣реЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реЛрдкреЗ рдЕрд╕реВ рд╢рдХрддреЗ. рдлрдХреНрдд 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
