рдкрд╛рдХ рдХрд▓рд╛ NSA SELinux

рдПрдирдПрд╕рдП рд▓реЛрдЧреЛ рд╣рд╛рдп рд╣рдорд░! рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде, рдореИрдВ рдПрдирдПрд╕рдП рд╡рд┐рд╖рдп рдкрд░ рд╕рдореНрдорд╛рдирд┐рдд рд╕рдореБрджрд╛рдп рдХреЛ рдЧрдкрд╢рдк рд╕реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп "рдЯрд░реНрди рд╕реЗрдиреНрд╕реНрдпреВрдХреНрд╕" рдФрд░ "рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рд╡рд░реНрд╖реЛрдВ рдХреЛ рд╕рдорд░реНрдкрд┐рдд" рдХреЗ рдмреАрдЪ рдПрдХ рдХреНрд░реЙрд╕ рд▓рд┐рдЦрдХрд░ рдЙрдирдХреА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЕрдВрддрд░ рднрд░реЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рддреНрдп рд╕реЗ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рджреВрд░ рд╣реИрдВ - рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛рдлреА рд╕рд░рд▓, рдкрд╛рд░рджрд░реНрд╢реА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрддреНрд░, рдФрд░ рдмрд▓реНрдХрд┐ рд╕рдВрдХреАрд░реНрдг рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рднреА рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ SELinux рдХреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдХрд┐рд╕ рддрд░рдл рдЬрд╛рдирд╛ рд╣реИ, рддреЛ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдпрд╣ рд╕рдм рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВрдиреЗ рдкрд░реНрдпрд╛рдкреНрдд рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдВ рдХреА рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХреЗрдВред рдЦреИрд░, рд╡рд┐рд╢реНрд╡-рдкреНрд░рд╕рд┐рджреНрдз рд╕реВрдЪрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмрд╣реБрдд рд╣реА рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ :-)
рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдирдПрд╕рдП рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдкрд░ рд╕реНрдкрд░реНрд╢ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЖрд░рдПрд╕рдП, рд╡рд╛рдпрд░рдЯреИрдкрд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдореАрдбрд┐рдпрд╛ рдкрд╣рд▓реБрдУрдВ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ - рдХреЛрдИ рдкреНрд░рдЪрд╛рд░, рдХреЛрдИ FUD, рдХреЗрд╡рд▓ рддрдХрдиреАрдХред рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбрд┐рдЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ, рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдПрдордПрд▓рдПрд╕ рдХреЗ рдмрд╣реБрдд рджрд┐рд▓ рд╕реЗ рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рд╕рдВрднрд╡рддрдГ рд╣рдорд╛рд░реА рдХрдордЬреЛрд░рд┐рдпреЛрдВ (рд╣рдо рднреА рдЧрд▓рддрд┐рдпрд╛рдВ рдХрд░рддреЗ рд╣реИрдВ) рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдореИрдВ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЖрдк рдХрд┐рд╕реА рдЕрдЬреНрдЮрд╛рдд рдЬрд╛рдирд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ SELinux рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рджреБрд╢реНрдорди рд╕реЗ рдирд┐рд╡рд╛рд╕реА рдмреБрд░рд╛рдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рд╛рд╣рд╕рдкреВрд░реНрд╡рдХ рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд╕рднреА рдПрдВрдбреНрд░реЙрдЗрдб (> 4.3) рдФрд░ рдХрдИ рд╡рд┐рддрд░рдгреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рдорд┐рд▓ рд╣реИред
рддреЛ, рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдХрдИ рд╕реНрдкреЙрдЗрд▓рд░ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рд╕рдкреНрддрд╛рд╣ рддрдХ рдмреИрдардиреЗ рд╕реЗ рдбрд░рддреЗ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реАрдбрд┐рдВрдЧ

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

рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╕реВрдЪрдирд╛
SELinux рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдЗрддрдиреА рдЕрдлрд╡рд╛рд╣реЗрдВ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рдорд╛рддреНрд░рд╛ рдХрд┐рддрдиреА рдЫреЛрдЯреА рд╣реИ, рдХреЗрд╡рд▓ рддреАрди рдЪреАрдЬреЗрдВ рд╣реИрдВ:
  1. рдЖрд░рдПрдЪ рдЧрд╛рдЗрдб : рдпрджрд┐ рдХреЛрдИ рдЯреАрдо рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╡рд░рдг рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЯреИрдм рдореЗрдВ рдЦреЛрд▓реЗрдВ, рдЙрдкрдпреЛрдЧреАред
  2. рдПрд▓реА рдмрд┐рд▓реЙрдпрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ : рдЗрд╕реЗ рддрдереНрдпреЛрдВ рдХрд╛ рдореБрдЦреНрдп рд╕рдВрдЧреНрд░рд╣ рдорд╛рдиреЗрдВред рдЗрд╕рд╕реЗ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдкрддрд╛ рд╣реИ рдХрд┐ Google рд╕реЗ рдХреНрдпрд╛ рдкреВрдЫрдирд╛ рд╣реИред
  3. рд▓реЗрдЦрди рдиреАрддрд┐рдпрд╛рдВ ред рджрд╕ рд╕рд╛рд▓ рдкреБрд░рд╛рдиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ SELinux рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдЪреБрдирдирд╛ рд╣реИред

рдпрд╣ рдореБрдЦреНрдп рдмрд╛рдд рд╣реИ рдХрд┐ рдореИрдВ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЕрдиреНрдпрдерд╛ рдЖрдк рдЗрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рд▓реМрдЯреЗрдВрдЧреЗред рдХрдИ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ , рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдмреВрд▓рд┐рдпрди рдЪрд░ рдХреЛ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрди рддрдХ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗред

рдЗрд╕рд▓рд┐рдП, рдЬрдм рдЖрдк рдпрд╣ рд╕рдм рдкрдврд╝реЗрдВрдЧреЗ, рддреЛ рд╣рдо рдЦреБрдж рдХреЛ рд╕рд░рд▓ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
  1. Unconfined_t / unconfined_u рдХреНрдпрд╛ рд╣реИ, рдФрд░ SELinux рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
  2. рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛, рдПрдордПрд▓рдПрд╕ рдпрд╛ рдПрдорд╕реАрдПрд╕ рдХреНрдпрд╛ рд╣реИ?
  3. * .Te рдФрд░ * .if рд╕реЗ * .fc рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
рдЙрддреНрддрд░
  1. рдЕрд╕реАрдорд┐рдд рдбреЛрдореЗрди / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдЙрд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде, рдЖрдк SELinux рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╢реАрди рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдПрдорд╕реАрдПрд╕ред MLS == MLS_SENS = 1 рдХреЗ рд╕рд╛рде MCSред
  3. рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ - рдХреБрдЫ рднреА рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ txt рд▓рд┐рдЦрдиреЗ рдореЗрдВ, рдореБрдЦреНрдп Makefile рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ред

рд╕рдорд╕реНрдпрд╛ рдмрдпрд╛рди рдФрд░ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд

рдЕрдм рдЬрдмрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рд╣рдо рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рд░реНрд╡рд░
рдЖрдкрдХреА рдЕрдиреБрдорддрд┐ рд╕реЗ, рдореИрдВ рдЗрд╕реЗ рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рдиреАрдЪреЗ рд░рдЦреВрдВрдЧрд╛ред YMMV, рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдмрд┐рдпрди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ KVM рдореЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХреЛрдИ рднреА рд╡рд┐рддрд░рдг рдХрд░реЗрдЧрд╛ред рд╡рд░реНрдЪреБрдЕрд▓ - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдиреНрдпреВрдирддрдо - рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддреЗрдЬрд╝ рд╣реИред
рд╡рд┐рд╡рд░рдг
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдмрд┐рдпрди рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕реНрдерд╛рдкрдирд╛, рдЫреЛрдЯреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ:
  • рдбрд┐рд╕реНрдХ рдмреНрд░реЗрдХрдбрд╛рдЙрди (рдЬрд┐рддрдирд╛ 4GB!):
    • / dev / vda1 64MB рдХреЗ рд░реВрдк рдореЗрдВ / рдмреВрдЯ, ext2ред
    • рдмрд╛рдХреА рдХреЗ рд░реВрдк рдореЗрдВ LUKS: aes256: cbc-Essiv: рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝, рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╣реИрдВред
    • рд╢реЗрд╖ рдХреЗ рдЕрдВрджрд░ - рд╕рдм рдХреБрдЫ LVM рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╣реИред
  • рдпрд╣рд╛рдБ рддреБрд░рдВрдд fstab рд╣реИ
    root@sandbox:~# cat /etc/fstab # /etc/fstab: static file system information. # <file system> <mount point> <type> <options> <dump> <pass> /dev/vda1 /boot ext2 defaults 0 2 /dev/mapper/vg0-root / btrfs defaults 0 1 /dev/mapper/vg0-usr /usr btrfs defaults 0 2 /dev/mapper/vg0-var /var btrfs defaults 0 2 /dev/mapper/vg0-tmp /tmp btrfs defaults 0 2 /dev/mapper/vg0-rhome /root btrfs defaults 0 2 /dev/mapper/vg0-swap none swap sw 0 0 
  • рдмрд╛рдж рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗрдХреНрд╢рди рдмрдирд╛рдП рдЧрдП рд╣реИрдВред
  • рд╣рдордиреЗ рдПрдХ рдПрд╕рдПрд╕рдПрдЪ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдиреНрдпреВрдирддрдо рдкреНрд░рдгрд╛рд▓реА рд░рдЦреА, рдЗрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВред
  • рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рддреБрд░рдВрдд рд╢реЗрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреБрдВрдЬреА рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ:
     root@sandbox:~# ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key 256 f6:9b:ad:dd:93:cb:3d:c2:83:76:45:c3:02:e8:6a:1d root@sandbox (ECDSA) 
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рд╣рдо ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЖрдзрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдерд╛:
 sed -i 's/wheezy/jessie/g' /etc/apt/sources.list # that's no bloody enterprise aptitude update && aptitude dist-upgrade -VR # let's go testing, it's stable enough aptitude install vim bash-completion deborphan -VR # a little comfort couldn't hurt aptitude install policycoreutils auditd setools selinux-basics -VR # last is just helper scripts, optional vim /etc/network/interfaces # make interfaces static aptitude purge isc-dhcp-client console-setup console-setup-linux kbd iproute module-init-tools $(deborphan) 
рд╣рдо ssh рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд░реВрдЯ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ:
 @local$ ssh-keygen -b 521 -t ecdsa -f selinux-test @remote# mkdir /root/.ssh && cat selinux-test.pub > /root/.ssh/authorized_keys2 && chown && chmod 
рдЦреИрд░, рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЗрдХрдЯреНрдард╛ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдХрд░реНрдиреЗрд▓ рдбрд╛рд▓рддреЗ рд╣реИрдВ - рд╣рдо рдиреАрддрд┐ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг, рдореЙрдбреНрдпреВрд▓ рдХреЗ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, PaX рдФрд░ GRSecurity рдкреИрдЪ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреЛ рд╡реИрд╕реЗ рддреЛ SELinux рдХреЗ рд╕рд╛рде рднреА рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕рдХрд╛ рдПрдХ рдФрд░ рд╕рдордп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛)ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡реИрдирд┐рд▓рд╛ рдХрд░реНрдиреЗрд▓ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рдВ, рдбреЗрдмрд┐рдпрди рд░рд╛рд╕реНрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рджрд░реНрд╢рдХреЛрдВ рдХреА рдЖрд╡рд╛рдЬ, рдореИрдВ рдЖрдкрдХреЛ рд╕реБрдирддрд╛ рд╣реВрдВ - рд▓реЗрдХрд┐рди рдЖрдЬ рд╕рдореБрд░рд╛рдИ рдХрд╛ рддрд░реАрдХрд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдврд╛рдВрдЪреЗ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдпреЛрдЧ рдореЗрдВ, рд╣рдо рдЕрднреА рднреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ UID = 0 рд╣реИрдВ, рдФрд░ рд╣рдо рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдПрд░рд┐рдЬрд╝реЛрдирд╛ (рдпрд╛ рд╕реНрдерд╛рдиреАрдп virtualka) рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реАрдЯрд┐рдВрдЧ:
 mkdir src && cd src && wget -c http://kernel.org/pub/linux/kernel/v3.0/linux-3.10.18.tar.bz2 && tar jxf linux*tar.bz2 && cd linux* && make menuconfig && make -j$((2* $(grep processor /proc/cpuinfo | wc -l))) deb-pkg && make clean 
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░рдг рдореЗрдВ, SELinux рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (рд╣рд╛рдБ, рдпрд╣ рд╡рд╛рдХреНрдп рдЕрднреАрд╖реНрдЯ рд╣реИ!): рд╕реЗрд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдСрдкреНрд╕, рдЗрдореЗрдЬрд╢реЗрдХ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╣реИрдмрд╕реНрдЯреНрд░реЗрдЬ рдореЗрд░реА рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдареАрдХ рдирд╣реАрдВ рд╣реИ
.config
 # if you are lazy to configure yourself, here's my .config, usable on KVM+libvirt wget -O - $aboveimage | dd bs=1 skip=3991 | xzcat 
рд╣рдорд╛рд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЖрдзрд╛рд░ рддреИрдпрд╛рд░ рд╣реИред
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдиреАрддрд┐ рд╕рднрд╛
рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдиреАрддрд┐рдпреЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдбрд┐рдмреЗрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рддрд┐рд░реЛрдз рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛рдпрд╛ред
up'n'enter рд╢реИрд▓реА
 wget http://oss.tresys.com/files/refpolicy/refpolicy-2.20130424.tar.bz2 tar jxf refpolicy-2.20130424.tar.bz2 cp -rp refpolicy custom #all our modifications asroot# mkdir /usr/share/selinux/custom # so we can 'make install' here asroot# mkdir /etc/selinux/custom asroot# chown $USER:$USER /etc/selinux/custom /usr/share/selinux/custom asroot# touch /etc/selinux/custom/setrans.conf && chown $USER:$USER /etc/selinux/custom/setrans.conf # we'll need it later asroot# aptitude install selinux-utils python-selinux policycoreutils checkpolicy # these are for policy build 
рдЕрдЧрд▓рд╛, рдкреИрдХреЗрдЬ рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
 #!/bin/bash # sample deb build for custom selinux policy # harvests policy from local system version='0.0.1' name='selinux-policy-custom' description='Custom MLS SELinux policy' cf="${name}-control" cc="${name}-Copyright" # depends and conflicts shamessly ripped from selinux-policy-mls read -d '' cheader << EOF Section: non-free Priority: optional Homepage: http://selinux/ Standards-Version: 3.9.2 Package: ${name} Version: ${version} Maintainer: secadm_r <here.can+be@your.email> Pre-Depends: Depends: policycoreutils (>= 2.1.0), libpam-modules (>= 0.77-0.se5), python, libselinux1 (>= 2.0.35), libsepol1 (>= 2.1.0) Conflicts: cron (<= 3.0pl1-87.2sel), fcron (<= 2.9.3-3), logrotate (<= 3.7.1-1), procps (<= 1:3.1.15-1), selinux-policy-refpolicy-strict, selinux-policy-refpolicy-targeted, sysvinit (<= 2.86.ds1-1.se1) Architecture: all Copyright: ./selinux-policy-custom-Copyright Description: ${description} EOF read -d '' postinst << "EOF" File: postinst 755 #!/bin/sh -e set -e if [ "$1" = configure ]; then /usr/sbin/semodule -s custom -b /usr/share/selinux/custom/base.pp $(find /usr/share/selinux/custom/ -type f ! -name base.pp | xargs -r -n1 echo -n " -i") fi #DEBHELPER# exit 0 EOF function make_policy() { cd custom make clean rm -rf /usr/share/selinux/custom/* make install cd .. } function make_files() { echo 'SELinux custom policy copyright:TODO' > ${cc} echo -e "$cheader" > ${cf} echo -e "$postinst" >> ${cf} echo -en "\nFiles: " >> ${cf} # our setrans file echo -e " /etc/selinux/custom/setrans.conf /etc/selinux/custom" >> ${cf} # /etc/selinux dir find /etc/selinux/custom -type f ! -name \*LOCK | xargs -r -n1 -If -- sh -c 'echo " f $(dirname f)"' >> ${cf} # /usr/share/selinux/custom dir find /usr/share/selinux/custom -type f | xargs -r -n1 -If -- sh -c 'echo " f $(dirname f)"' >> ${cf} } function cleanup() { rm -f ${cc} ${cf} } function build_deb() { equivs-build ${cf} [ $? -eq 0 ] && cleanup } rm ./${name}*deb # glob is ok make_policy make_files build_deb scp -P 22 -i ~/.ssh/selinux-test selinux*deb root@selinux:/tmp/ 
рдкреВрд░реНрдг рдкреБрдирд░рд╛рд╡рд░реНрддрди рдХрд╛ рд╕рдордп ~ 30 рд╕реЗрдХрдВрдб рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рдЪреБрдирд╛ рдЧрдпрд╛ - "рдорд╛рдереЗ", рдЬрд┐рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЖрд░рдкреАрдПрдо рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
  • рд╣рдо рд╕рдм рдХреБрдЫ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ (рд╕реНрд╡рдЪреНрдЫ рдмрдирд╛рддреЗ рд╣реИрдВ)
  • рд╣рдо рдиреАрддрд┐рдпрд╛рдВ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ)
  • рд╣рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ (рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИ), рдкреИрдХреЗрдЬ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ
  • рд╕рд░реНрд╡рд░ рдореЗрдВ / tmp рднрд░реЗрдВ
  • рдкреЛрд╕реНрдЯрд╕реНрдЯреАрди рдореЗрдВ, рд╡рд╣ рдЦреБрдж рдкрд╛рдПрдЧрд╛ рдХрд┐ рдЙрд╕рдиреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╕реЗрдореЛрдбреНрдпреВрдЕрд▓ рдЦреАрдВрдЪреЗ рдФрд░ рдкреЙрд▓рд┐рд╕реА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░реЗ

SELinux, рдкрд╣рд▓рд╛ рдкрд░рд┐рдЪрд┐рддред

рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рд╣реИ, рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рддреИрдпрд╛рд░ рд╣реИ, рд╕рдВрджрд░реНрдн рдиреАрддрд┐ рднрд░реА рд╣реБрдИ рд╣реИ, рдЕрдм рдЖрдк рдордЬрд╝реЗрджрд╛рд░ рднрд╛рдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред (рдЗрд╕ рдЪрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реБрдП, рджреЗрд╢рджреНрд░реЛрд╣реА рд╡рд┐рдЪрд╛рд░ рдиреЗ рдЗрд╕реЗ 2 5 :-) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ред
рдкрд╣рд▓реА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП, рдорд╛рдирджрдВрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЗрдиреНрд╣реЗрдВ рдЪреБрдирд╛:
 $ sed '/^#/d;/^$/d' build.conf TYPE = mls NAME = custom DISTRO = debian UNK_PERMS = reject DIRECT_INITRC = n MONOLITHIC = n UBAC = y CUSTOM_BUILDOPT = MLS_SENS = 4 MLS_CATS = 32 MCS_CATS = 32 QUIET = n 
рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕реЗ рдЕрдВрддрд░ рдиреНрдпреВрдирддрдо рд╣реИрдВ: MLS рд╕рдХреНрд╖рдо рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдиреАрддрд┐ / mls рдФрд░ config / appconfig-mls рд╕реЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ); рдбрд┐рдмрд┐рдпрди рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдЯреНрд░реЛ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореИрдХреНрд░реЛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ; рдпрджрд┐ рдкреЙрд▓рд┐рд╕реА рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рддреЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреЙрд▓рд┐рд╕реА рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрдЧреА - рдЕрдЪрд╛рдирдХ рдХрд░реНрдиреЗрд▓ рдмрд╣реБрдд рдирдпрд╛ рд╣реИ; рдЦреИрд░, рдореИрдВрдиреЗ рд╕реНрддрд░реЛрдВ рдФрд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рджрд┐рдпрд╛ рд╣реИ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреЛрдкрдиреАрдпрддрд╛ рдХреЗ рдХреЗрд╡рд▓ 4 рд╕реНрддрд░ рд╣реЛрдВрдЧреЗ, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 32 рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреАред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд╕рд╛рд░ рд╕реБрдореЗрд░реБ рдЕрдиреЛ
рдПрдХ рдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ, MONOLITHIC = y рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдиреАрддрд┐ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ - рдиреАрддрд┐ рдмрдирд╛рдПрдВред рдкрд░рд┐рдгрд╛рдо рдиреАрддрд┐ рд╣реИред рдиреАрддрд┐ рдХрд╛ рдкрд╛рдареАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред рдпрд╣реАрдВ, рдПрдХ рд╕рд░рд▓ рд░реВрдк рдореЗрдВ, рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рдкреВрд░реЗ рдвреЗрд░ рд╕реЗ рдХреГрдкрдпрд╛ рдПрдо 4 рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ SELinux рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд╡рд░реНрдгрд┐рдд рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ (рдЪреЗрддрд╛рд╡рдиреА: рдЦрд░рд╛рдм рд╕рд╛рджреГрд╢реНрдп рд╕рдордп!): рдЕрдЧрд░ secadm_r рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рд┐рд╖рдж рдХреЗ рдкреНрд░рдореБрдЦ рдХреА рддрд░рд╣ рд╣реИ, рдкрд╣реБрдБрдЪ рд╕реНрддрд░ рдФрд░ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЛ рдордВрдЬреВрд░реА рджреЗ рд░рд╣рд╛ рд╣реИ, рддреЛ SELinux рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдЕрдзрд┐рдХрд╛рд░реА рд╣реИ рдЬреЛ рдЗрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдиреАрддрд┐ рдореЗрдВ .conf, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЦреЗрддреЛрдВ рдХреЗ рд╕рд╛рде рд╕реВрдЪрд┐рдпрд╛рдБ:
1. рдХреМрди (рд╕реНрдХреЙрдирдЯреЗрдХреНрд╕реНрдЯ) - рдХрд╣рд╛рдБ (рдЯреЛрдВрдЯреЗрдХреНрд╕реНрдЯ) - рдХрд┐рд╕рд╕реЗ (рд╡рд░реНрдЧ) - рдХреНрдпреЛрдВ (рдХреЙрд▓) (рдкреНрд▓рд╕, рдПрдордПрд▓рдПрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ: рдореБрдЭреЗ рдЕрдкрдирд╛ рдкреНрд░рд╡реЗрд╢ рд╕реНрддрд░ рднреА рджрд┐рдЦрд╛рдУ, рдФрд░ рдЕрдЧрд░ рдпрд╣ рдЗрд╕рд╕реЗ рдХрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореИрдВ рднреА рдирд┐рдпрдореЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦреВрдВрдЧрд╛ )ред

рд╣рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ: рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдмрдирд╛рдПрдВ ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рдиреАрддрд┐ / рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ редconf рдФрд░ рд╕рд╣реА - рдореИрдВ рдХрдВрдмрд╛рдЗрдВрдб рд╕рдореВрд╣ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдХреНрд╖рдо (modulename = off) рдХрд░рддрд╛ рд╣реВрдВред рдкреНрд▓рд╕ - рддреЗрдЬреА рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛, рдХрдо рдореЙрдбреНрдпреВрд▓ред рдорд╛рдЗрдирд╕ - рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХрдо рдЖрдВрдХрд▓рдиред рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдордЭрд╛рдКрдВрдЧрд╛:
contrib_off
 grep -A5 contrib policy/modules.conf | grep "= module$" | wc -l # total number grep -A5 contrib policy/modules.conf | grep "= module$" | sed 's/ = module//' | xargs -r -n1 -I__n -- sh -c 'sed -i "s/^__n = module$/__n = off/" policy/modules.conf' # kekeke # turn some servicess off too (xserver + postgresql) # turn _on_ logrotate,mta,postfix,ulogd, and whatever you think you need 
рдЬреИрд╕реЗ рд╣реА рд╣рдордиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ редconf , рд╣рдордиреЗ рдиреЛ рд░рд┐рдЯрд░реНрди рдХрд╛ рдмрд┐рдВрджреБ рдкрд╛рд╕ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдВрджрд░реНрднреЛрдВ рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рдЧрд▓рддрдлрд╣рдореА рдЗрд╕ рдмрд╛рдд рдХрд╛ рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рддреБрд░рдВрдд рдЕрджреНрднреБрдд рдСрдбрд┐рдЯ 2 рдХреНрд▓реЙрдХ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рдХрд╣рддрд╛ рд╣реВрдВ: рдпрд╣ рдСрдбрд┐рдЯ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдХрд╛рдлреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ -Rev рдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде) рд╣рдореЗрдВ рд╡рд╣ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдкреЙрд▓рд┐рд╕реА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпреЗ рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдореЗрдВ рдЕрдм рджрд┐рдЦрд╛рдИ рди рджреЗрдВред рдпрджрд┐ рдЖрдк рдХрд╣реАрдВ рднреА рд╣реИрдВ (рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣ рд╣реИ) рддреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЖрдк рдПрдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ
 grep something-something /var/log/audit/audit.log | audit2allow -M mymegamodule semodule -i mymegamodule 
рдЗрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЗрд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрднреА рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдХрдорд╛рдВрдб рдХреЗ рдЗрд╕ рд╕реЗрдЯ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ SELinux рд╕рдм рдХреБрдЫ (рд╕рдВрднрд╡рддрдГ рд▓рд╛рд▓рдЪреА) рдХреЛ рдХреБрдЫ-рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдФрд░ рдХреБрдЫ рдФрд░ рднреАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдордПрд▓рдПрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╡рд┐рдзрд┐ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА - рдХреНрдпреЛрдВрдХрд┐ рдПрдордПрд▓рдПрд╕ рдореЗрдВ рдпрд╣ рдПрдХ рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдкрд╣реБрдВрдЪ рдХреЛ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдФрд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдкрд░ рд▓рдЧрд╛рдП рдЧрдП рд╕рднреА рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреА рд╣рд░рдХрддреЗрдВ рдПрдХ рдИрдорд╛рдирджрд╛рд░ рдкреНрд░рд╡реЗрд╢ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рд╣реИрдВ: "рд╣рд╛рдБ, рдЖрдЬ рдореИрдВ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддрд╛, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред" рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдмрд╛рд╣рд░ рдПрдХ рдерд┐рдПрдЯрд░ рди рдмрдирд╛рдПрдВ, рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ SELinux рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рди рдХрд░реЗрдВ - рдпрд╣ рдПрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдкрд░ рд╕рднреА рдкреИрдХреЗрдЯреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЕрдиреБрдордд рдирд┐рдпрдореЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдЬреИрд╕рд╛ рд╣реИред

рдЕрдм рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдФрд░ рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдбрд╛рд▓реЗрдВ:
 dpkg -i /tmp/selinux-policy-custom*deb sed -i 's/^SELINUX=.*$/SELINUX=enforcing/;s/^SELINUXTYPE=.*$/SELINUXTYPE=custom/' /etc/selinux/config selinux-activate # if you installed helper package selinux-basics # if not: touch /.autorelabel # add 'selinux=1 security=selinux' to cmdline reboot # let's rock! 
рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдмреВрдЯ рд╣реЛрдЧрд╛, рд╕реНрдерд╛рдкрд┐рдд рдкреЙрд▓рд┐рд╕реА рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдВрджрд░реНрднреЛрдВ ( / etc / selinux / custom / contexts / files / * ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдлрд┐рд░ рд╕реЗ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВ рдФрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдВред

"рд░реЙрдХрд┐рдВрдЧ" рдХрдм рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдпрд╣ "рд╣рд┐рд▓рд╛" рдХрдм рд╣реИ

рдорд╣рд╛рд░рд╛рдЬ, рдпрд╣ рд╕рдм рд╣реЛ рдЧрдпрд╛ред рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ред рд╣рдо рд╣реЛрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рднреА ssh - рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред SELinux рд╕реЗ рдорд┐рд▓реЛред рдПрд▓реА рдмрд┐рд▓реМрдПрд░ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХреА рдЧрдИ:
SELinux рдХреНрдпрд╛ рд╣реИ?
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдПрдХ рдорд╢реАрди рдЬреЛ рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЙрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдБрдЪреЗрдВред рдпрд╣ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЕрдм рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рд▓рдЧреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдЕрдиреБрдорддрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджреЗрддрд╛ред
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЬреЛрдбрд╝реА рдХрд╛ рд╕рд╛рд░, рдЗрд╕ рдмрд╛рд░ рдмрд┐рдирд╛ рдЦрд░рд╛рдм рдЙрдкрдорд╛рдУрдВ рдХреЗ
рдпрджрд┐ рдЖрдк рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ:
  1. DAC рдкрд╣рд▓реЗред рдпрджрд┐ рдпрд╣ рдирд┐рд╖рд┐рджреНрдз рд╣реИ, рддреЛ рдпрд╣ SELinux рдХреЛ рднреА рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛, рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХреА рдЧрдИ рдЕрдиреБрдорддрд┐ рд╕рд╛рдорд╛рдиреНрдп, рдпреВрдирд┐рдХреНрд╕, рдЙрд╕ рд╕рдордп рд╕реЗ рд╣рдо рд╕рднреА рдХреЛ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдЧреА, рдЬрдм рд╣рдо рдЕрдкрдиреЗ рдкрд╣рд▓реЗ * nix рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдП рдереЗред
  2. рдлрд┐рд░ рдореИрдХред рдпрджрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ, рддреЛ рдЕрд╕реНрд╡реАрдХреГрдд рдХреА рдЕрдиреБрдорддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА SELinux рд╕реЗ рд╣реЛрдЧреАред рдХреБрдЫ рд╡рд┐рддрд░рдг (рдЖрд░рдПрдЪ) рдкрд░, " SELinux рдХреЛ рд░реЛрдХ рд░рд╣рд╛ рд╣реИ " рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА, рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рд╕рднреА рдХреЗ рдкрд╛рд╕ рдСрдбрд┐рдЯ рдореЗрдВ рдХреБрдЫ рд╣реЛрдЧрд╛ред
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡рд┐рддрд░рдг рдиреАрддрд┐ рдореЗрдВ RefPolicy рдореЗрдВ рдмрд╕ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рдвреВрдВрдвреЗрдВ рдФрд░ рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВред
рдЕрд░реЗ рд╣рд╛рдБ, рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдЗрд╕ рдХреНрд╖рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рди рдХреЗрд╡рд▓ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдБрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рдЖрднрд╛рд╕реА рд╕рд░реНрд╡рд░ рд╣реИ, рд╣рдореЗрд╢рд╛ VNC / SPICE / etc (FSKN рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ) рд╣реЛрддрд╛ рд╣реИред рд╣рдо рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдЗрд╕реЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдЬрд╛рдиреЗ рджреЗрддрд╛ рд╣реИред рдорд╣рд╛рди рд╕реНрдерд┐рддрд┐ рддреБрд░рдВрдд рдпрд╣ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ
рдмрд╛рд╣рд░ рдЬрд╛рдУ
  1. рдШрдмрд░рд╛рдУ рдорддред
  2. рд╣рдо рд░рд┐рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Ctrl + Alt + Del, acpid рднреЗрдЬрдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдХрд░реЗрдЧрд╛ред
  3. рд╣рдо рдмреВрдЯ рд╕реНрдЯреЗрдЬ рдкрд░ рдЧреНрд░рдм рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рд╕реЗрд▓рд┐рдирдХреНрд╕ = 1 рд╕реЗ рд╕реЗрд▓рд┐рдирдХреНрд╕ = 0 рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ
  4. рд╣рдо рдмреВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдорд╛рд░реА рдЕрд╕рдлрд▓рддрд╛рдУрдВ рдХреЗ рд╕рднреА рдХрд╛рд░рдгреЛрдВ рдореЗрдВ рд▓реЗрдЦрд╛рдкрд░реАрдХреНрд╖рд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рдо рдкреНрд░рд╡реЗрд╢ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПред рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдордиреЗ SELinux рд╡рд┐рдХрд▓рд╛рдВрдЧ рдХреЗ рд╕рд╛рде рдмреВрдЯ рдХрд┐рдпрд╛, рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдСрдбрд┐рдЯ рдХреЛ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реИред рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдмреВрдЯ рд╕реЗ рдХреЙрдкреА рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ SELinux рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рд╣рдо рдЕрднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред
 cp /var/log/audit/audit.log /root wc -l /root/audit.log 195 
рдЖрдкрджрд╛ рдХрд╛ рдкреИрдорд╛рдирд╛ рдЫреЛрдЯрд╛ рд╣реИ, рджреЛ рд╕реМ рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдкрд╣рд╛рдбрд╝ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:
рддреЛ, рд╣рдо рд╕рднреА рд╕реЗрдЯ рдЕрдк рд╣реИрдВ, рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рдореЛрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВред рдЗрд╕ рд╕рдордп рддрдХ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЙрдбрд░реНрдирд╛рдЗрдЬреЗрд╢рди рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЬреНрдЮрд╛рди рд╣реИ, рд░рд╛рдЬрдиреАрддрд┐ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рд╣реИ, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдХреЛрдИ рдХрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдлрд░рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ), рдПрдо 4 рд╕рд┐рдВрдЯреИрдХреНрд╕, рдПрдирдПрд╕рд╕реА рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, SELinux рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рджреЛ рджрд░реНрдЬрди рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдирд╛рдо рд╕реЗ рдПрдХ рджрд░реНрдЬрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬрд╛рдирддрд╛ рд╣реИред ред
рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рдкрд░ рдЪрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИред

рдПрдордПрд▓рдПрд╕

рдпрджрд┐ рдЖрдк рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдирджрдВрдб рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ , рддреЛ рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ ( рдЕрд▓рдЧ-рдЕрд▓рдЧ (рдкреАрдбреАрдПрдл) рдкреНрд░реЛрдлрд╛рдЗрд▓ (рдкреАрдбреАрдПрдл) рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╣реИрдВ , рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд░реНрдзрд╕реИрдирд┐рдХ рд╕рдВрдЧрдардиреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ), рдФрд░ рдХреБрдЫ рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рд╕реНрддреБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдХрдареЛрд░рддрд╛ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реБрдП рддреЛрддреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ ред рдПрдордПрд▓рдПрд╕ рдореМрдЬреВрджрд╛ SELinux рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ, рдКрд░реНрдзреНрд╡рд╛рдзрд░ (рд╕реНрддрд░реЛрдВ) рдФрд░ рдХреНрд╖реИрддрд┐рдЬ (рд╢реНрд░реЗрдгрд┐рдпреЛрдВ) рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рджреЛ рдФрд░ рд╕реНрддрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ "рд╕рд╣рд┐рд╖реНрдгреБрддрд╛" рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ рдЙрдЪреНрдЪ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдПрдХ рдЕрдзреАрдирд╕реНрде рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ ("рд╢реАрд░реНрд╖ рд░рд╣рд╕реНрдп" "рдЧреБрдкреНрдд" рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ), рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рд╣реА рд╕реНрддрд░ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХ рд╢реНрд░реЗрдгреА рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ рдмрд╛рдХреА рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
рдЪреВрдВрдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдЗрди рджреЛрдиреЛрдВ рд╕реНрддрд░реЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ SELinux рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ рд╕реВрдЪрдирд╛ рдХреЗ рд╡рд░реНрдЧреАрдХрд░рдг рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:рдмреЗрд╢рдХ, рдЗрд╕ рд╕рдм рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЕрдзреНрдпрдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдЕрдиреНрдпрдерд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддрдм рдЕрдиреБрдмрдВрдз рдХрд░реНрдордЪрд╛рд░реА рд╣реЛрдВрдЧреЗ рдЬреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ "рдЯреЙрдк рд╕реАрдХреНрд░реЗрдЯ" рдХреЗ рд╕рд╛рде рдЗрдВрд╕реНрдЯрд╛рдЧреНрд░рд╛рдо рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВрдЧреЗ :-)
рдЗрд╕ рдкреНрд░рдпреЛрдЧ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЗрди рд╕реНрддрд░реЛрдВ рдФрд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:
 root@sandbox:~# cat /etc/selinux/custom/setrans.conf Domain=Playbox # levels s0=SystemLow s3:c0.c31=SystemHigh s0-s3:c0.c31=SystemLow-SystemHigh s1=Confidential s2=Secret # employee categories s1.c0=Ninjas s1.c1=Pirates s1.c2=Jesuses # secret stuff s2.c0=Aliens s2.c1=BigBrother 
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдВрддрд░рд┐рдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдерд╛, рдЕрд░реНрдерд╛рддреНред s1 (рдЧреЛрдкрдиреАрдп) рд╕реНрддрд░ рдкрд░ рд╕рдЦреНрддреА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред рдмреЗрд╢рдХ, рд╣рдо IPSec рдФрд░ рдкреИрдХреЗрдЯ рд▓реЗрдмрд▓рд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЕрдиреНрдпрдерд╛ рдХреЛрдИ рднреА рдЗрд╕реЗ рдирд╣реАрдВ рджреЗрдЦреЗрдЧрд╛, рд╣рдо рдЦреБрдж рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕рдВрджрд░реНрдн рддрдХ рд╕реАрдорд┐рдд рд░рдЦрддреЗ рд╣реИрдВред рдЪреВрдБрдХрд┐ рд╣рдордиреЗ рдХреЗрд╡рд▓ рдЯреЗрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ, рдЖрдЗрдП рдПрдХ рд╕рд░реНрд╡рд░ рдЪреБрдиреЗрдВ рдЬреЛ рдХрд┐ RefPolicy рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдирд╣реАрдВ рд╣реИ:
nginx
nginx, , MCS ( s0). NIH . , , dpkg -L lsof , :
 /usr/sbin/nginx -- gen_context(system_u:object_r:nginx_exec_t,s1:c0.c2) /etc/init.d/nginx gen_context(system_u:object_r:nginx_initrc_exec_t,s1:c0.c2) /etc/nginx(/.*)? gen_context(system_u:object_r:nginx_etc_t,s1:c0.c2) /var/log/nginx(/.*)? gen_context(system_u:object_r:nginx_var_log_t,s1:c0.c2) /var/run/nginx(/.*)? gen_context(system_u:object_r:nginx_var_run_t,s1:c0.c2) /var/www(/.*)? gen_context(system_u:object_r:nginx_var_www_t,s1:c0.c2) /var/lib/nginx(/.*)? gen_context(system_u:object_r:nginx_var_lib_t,s1:c0.c3) 
, , (, , ..), . s1 (Confidential), . , . , , ( newrole -r secadm_r ), premissive ( setenforce 0 ), ( restorecon -RFvv / ), nginx sysadm_r ( run_init /etc/init.d/nginx start ). audit.log , . modname.if, , , ┬л┬╗ :
 template(`web_server_template',` type $1_t, web_server; allow blah blah; # so we can call web_server_template(nginxN) in modname.te ') 
modname.if , ┬л┬╗ . . , , :
 root@sandbox:~# cat nginx_local.te policy_module(nginx_local, 0.0.1) ################################################################## type nginx_t; type nginx_exec_t; type nginx_initrc_exec_t; type nginx_etc_t; type nginx_var_log_t; type nginx_var_run_t; type nginx_var_www_t; type nginx_var_lib_t; corecmd_executable_file(nginx_exec_t); init_script_file(nginx_initrc_exec_t) files_type(nginx_etc_t) logging_log_file(nginx_var_log_t) files_pid_file(nginx_var_run_t) files_type(nginx_var_www_t) files_type(nginx_var_lib_t) init_ranged_daemon_domain(nginx_t, nginx_exec_t, s1:c0.c2) 
corecommands.if, . тАФ , MLS, , nginx .
, , (grep nginx /var/log/audit/audit.log | grep 'sysctl'), , , sysctl:
 # /read kernel sysctl values require { type sysctl_kernel_t; class dir { search }; class file { open read }; } allow nginx_t sysctl_kernel_t:dir { search }; allow nginx_t sysctl_kernel_t:file { open read }; 
socket:
 # socket bind require { type node_t; type http_port_t; class tcp_socket { name_bind setopt bind create listen node_bind }; class capability { net_bind_service setuid setgid }; } allow nginx_t http_port_t:tcp_socket { name_bind }; allow nginx_t node_t:tcp_socket { node_bind }; allow nginx_t self:tcp_socket { bind create setopt listen }; allow nginx_t self:capability { net_bind_service setuid setgid }; 
рдФрд░ рдЗрд╕реА рддрд░рд╣ред audit2allow, MLS. require , , , . , -
 policy_module(nginx_local, 0.0.1) ################################################################## type nginx_t; type nginx_exec_t; type nginx_initrc_exec_t; type nginx_etc_t; type nginx_var_log_t; type nginx_var_run_t; type nginx_var_www_t; type nginx_var_lib_t; corecmd_executable_file(nginx_exec_t); init_script_file(nginx_initrc_exec_t) files_type(nginx_etc_t) logging_log_file(nginx_var_log_t) files_pid_file(nginx_var_run_t) files_type(nginx_var_www_t) files_type(nginx_var_lib_t) init_ranged_daemon_domain(nginx_t, nginx_exec_t, s1:c0.c2) # rules # /sys and /sys/devices/systemcpu/online require { type sysfs_t; class dir { search }; class file { read open }; } allow nginx_t sysfs_t:dir { search }; allow nginx_t sysfs_t:file { read open }; # /read kernel sysctl values require { type sysctl_kernel_t; type sysctl_t; class dir { search }; class file { open read }; } allow nginx_t sysctl_kernel_t:dir { search }; allow nginx_t sysctl_kernel_t:file { open read }; allow nginx_t sysctl_t:dir search; # self configs and symlinks require { type nginx_etc_t; class dir { open read search }; class file { open read getattr }; class lnk_file { read }; } allow nginx_t nginx_etc_t:dir { open read search }; allow nginx_t nginx_etc_t:file { open read getattr }; allow nginx_t nginx_etc_t:lnk_file { read }; # /etc/localtime, /etc/passwc, etc (no pun intended) require { type locale_t; type etc_t; class file { read open getattr }; } allow nginx_t locale_t:file { read open getattr }; allow nginx_t etc_t:file { read open getattr }; # pid file require { type var_run_t; class dir { search write add_name remove_name } ; class file { write read create open unlink }; } allow nginx_t var_run_t: dir { search }; allow nginx_t nginx_var_run_t: file { read write create open unlink }; allow nginx_t nginx_var_run_t: dir { search write add_name remove_name }; # libs require { type var_lib_t; class dir { search getattr }; } allow nginx_t var_lib_t:dir search; allow nginx_t nginx_var_lib_t: dir { search getattr }; # socket bind require { type node_t; type http_port_t; class tcp_socket { name_bind setopt bind create listen node_bind }; class capability { net_bind_service setuid setgid }; } allow nginx_t http_port_t:tcp_socket { name_bind }; allow nginx_t node_t:tcp_socket { node_bind }; allow nginx_t self:tcp_socket { bind create setopt listen }; allow nginx_t self:capability { net_bind_service setuid setgid }; # socket accept require { class tcp_socket { read write accept }; } allow nginx_t self:tcp_socket { read write accept }; # logs require { type var_log_t; class dir { search }; class file { open append }; } allow nginx_t var_log_t:dir { search }; allow nginx_t nginx_var_log_t:dir { search }; allow nginx_t nginx_var_log_t:file { open append }; # www require { class dir { search getattr }; class file { read getattr open }; } allow nginx_t nginx_var_www_t:dir { search getattr }; allow nginx_t nginx_var_www_t:file { read getattr open }; 
, .
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рднреВрдорд┐рдХрд╛рдПрдБ рдорд┐рд▓рддреА рд╣реИрдВ:
 root/sysadm_r@sandbox:~# adduser alice ...skipped... root/sysadm_r@sandbox:~# adduser bob ...skipped... root/secadm_r@sandbox:~# semanage user -a -R user_r -L s1 -r s1-s1:c0 ninjas root/secadm_r@sandbox:~# semanage user -a -R user_r -L s2 -r s2-s2:c0 aliens root/secadm_r@sandbox:~# semanage login -a -s ninjas alice root/secadm_r@sandbox:~# semanage login -a -s aliens bob # or, ninjas to supervise alice root/secadm_r@sandbox:~# restorecon -RFvv /home/ # thats all, folks. 
рдХреБрд▓ рд╣рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ:

Funky time

рдЦреИрд░, рдЕрдм, рдЕрдВрдд рдореЗрдВ, рд╕реНрд▓рд╛рдЗрдбреНрд╕ рд╣реЛрдВрдЧреЗред рдПрдХ рдкреВрд░реНрдг рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдирдПрд╕рдП рдХреЗ рдмрдЧрд▓ рдореЗрдВ, рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╡реАрдкреАрдПрд╕рдХреЗ рдЦрд░реАрджрд╛, рдФрд░ рдЙрд╕ рдкрд░ рдореИрдВрдиреЗ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛, рдЙрд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ред рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рд╕реАрдзреЗ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ SELinux рдХреНрдпрд╛ рд╣реИ, рд░реВрдЯ рдХреЗ рдиреАрдЪреЗ рдЬрд╛рдПрдВ рдФрд░ rm -rf / * рдкрд╣рд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рд┐рдЦреЗрдВ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рд╡рд┐рднрд╛рдЬрди рдФрд░ рд░реВрдЯрдХрд┐рдЯреНрд╕ рдЪрд▓рд╛рдПрдВ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдирдПрд╕рдП рдХреЛ рдПрдХ рдХреБрдЬрдХрд┐рди рдорд╛рдВ рдХреЛ рдпрд╣ рджрд┐рдЦрд╛рдПрдВред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕ рдЖрдХрд░реНрд╖рдХ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рдЗрд╕реЗ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдФрд░ рд╕реАрдорд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ:
рдЗрд╕ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо:
рдпрджрд┐ рдХрд┐рд╕реА рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдЖрдИрдПрд╕ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ "рдкреБрд╢ рдЕрдк" рдФрд░ "рд░реЛрд▓" рдЬреИрд╕реЗ рд╢рдмреНрдж рд╣реИрдВ, рддреЛ рдпрд╣ рд╣реИред рдХреБрд▓ рд╕рдордЭреМрддрд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдм SELinux рд╣реИред рд╕рдордЭреМрддрд╛ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдХрдм рддрдХ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдРрд╕рд╛ рднреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП SELinux рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рддреН:

рдореИрдВрдиреЗ рдПрдХ рдбреЛрдореЗрди рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЦрд┐рд▓реМрдирд╛ рд╕рдВрд╕реНрдХрд░рдг 0.0.2 рдХреЗ рд▓рд┐рдП рд╣реИред рд╕рдВрд╕реНрдХрд░рдг 0.0.1
рдпрд╣рд╛рдВ
: http://162.213.198.69
рдФрд░ рд╣рд╛рдВ, рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрд░реЛрдз рдХреГрдкрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВред рд╕рднреА рд░реВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдорд╛рд░рдиреЗ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рд╣реИред

рдиреЛрдЯ

* рдЯрд┐рдо рдорд┐рдирдЪрд┐рди, рд▓реБрд▓рд╛рдмреА

Source: https://habr.com/ru/post/In199202/


All Articles