SELinux рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реБрд░реБрдЖрддреА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

SELinux рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реБрд░реБрдЖрддреА рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛

рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд╡рд┐рджреНрдпрд╛рд░реНрдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпреЗ рдЧрдпреЗ рдЖрд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж "рд▓рд┐рдирдХреНрд╕ рд╕реБрд░рдХреНрд╖рд╛"

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

SELinux рдХреЗ рддреАрди рдореЛрдб рд╣реИрдВ:

  1. рд▓рд╛рдЧреВ рдХрд░рдиреЗ - рдиреАрддрд┐ рдирд┐рдпрдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рд╡реЗрд╢ рдирд┐рд╖реЗрдзред
  2. рдЕрдиреБрдореЛрджрдХ - рдиреАрддрд┐ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпреЛрдВ рдХрд╛ рд▓реЙрдЧ рд░рдЦрдирд╛, рдЬрд┐рдиреНрд╣реЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  3. рд╡рд┐рдХрд▓рд╛рдВрдЧ - SELinux рдХреЛ рдкреВрд░реНрдгрддрдГ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореМрдЬреВрдж рд╣реИрдВ /etc/selinux/config

SELinux рдореЛрдб рдмрджрд▓рдирд╛

рд╡рд░реНрддрдорд╛рди рдореЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ

$ getenforce

рдореЛрдб рдХреЛ рдЕрдиреБрдореЗрдп рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ

$ setenforce 0

рдпрд╛, рд╕реЗ рдореЛрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдореЛрджрдХ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛

$ setenforce 1

рдпрджрд┐ рдЖрдкрдХреЛ SELinux рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

$ vi /etc/selinux/config

рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, SELINUX рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрджрд▓реЗрдВ:

SELINUX=disabled

SELinux рдХреА рд╕реНрдерд╛рдкрдирд╛

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

$ vi /etc/selinux/config
SELINUX=permissive

рдореЛрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдиреБрдореЛрджрдХ, рдирд╛рдо рдХреЗ рд╕рд╛рде рд░реВрдЯ рдореЗрдВ рдПрдХ рдЦрд╛рд▓реА рдЫрд┐рдкреА рд╣реБрдИ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ autorelabel

$ touch /.autorelabel

рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ

$ init 6

рдиреЛрдЯ: рд╣рдо рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЕрдиреБрдореЛрджрдХ рдЕрдВрдХрди рдХреЗ рд▓рд┐рдП, рдореЛрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рдж рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд░рд┐рдмреВрдЯ рдХреЗ рджреМрд░рд╛рди рд╕рд┐рд╕реНрдЯрдо рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЕрдЯрдХ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдорд╛рд░реНрдХрд┐рдВрдЧ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдорд╛рд░реНрдХрд┐рдВрдЧ рдкреВрд░реА рд╣реЛ рдЬрд╛рдП рдФрд░ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рд╣реЛ рдЬрд╛рдП, рддреЛ рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореЛрдб рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗрдФрд░ рдпрд╣ рднреА рдЪрд▓рд╛рдПрдБ:

$ setenforce 1

рдЕрдм рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ SELinux рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдХреНрд╖рдо рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

рд▓реЙрдЧ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛

рдЖрдкрдХреЛ рдорд╛рд░реНрдХрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХрд╛ SELinux рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдкреЛрд░реНрдЯ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрджрд┐ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЖрдкрдХреЛ рд▓реЙрдЧ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред SELinux рд▓реЙрдЧ рд╕реНрдерд┐рдд рд╣реИ /var/log/audit/audit.log, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдвреВрдВрдврдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреВрд░реА рдЪреАрдЬрд╝ рдкрдврд╝рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдвреВрдВрдврдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдСрдбрд┐рдЯ2рд╡реНрд╣рд╛рдИ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрди рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрдБ:

$ audit2why < /var/log/audit/audit.log

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

SELinux рдиреАрддрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛

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

1. рддрд╛рд░реНрдХрд┐рдХ рдорд╛рди (рд╕реНрд╡рд┐рдЪ)

рд╕реНрд╡рд┐рдЪ (рдмреВрд▓рд┐рдпрди) рдЖрдкрдХреЛ рдирдИ рдиреАрддрд┐рдпрд╛рдВ рдмрдирд╛рдП рдмрд┐рдирд╛, рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкреЙрд▓рд┐рд╕реА рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ SELinux рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд░реАрдмреВрдЯ рдпрд╛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

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

$ semanage boolean -l

рдпрд╣ рдХрдорд╛рдВрдб рдЙрдкрд▓рдмреНрдз рд╕реНрд╡рд┐рдЪреЛрдВ рдХреЛ рдЙрдирдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ (рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж) рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдЧрд╛ред рдЖрдк рдХреЗрд╡рд▓ ftp рдкрд░рд┐рдгрд╛рдо рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП grep рдЬреЛрдбрд╝рдХрд░ рдЕрдкрдиреА рдЦреЛрдЬ рдХреЛ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

$ semanage boolean -l | grep ftp

рдФрд░ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓реЗрдЧрд╛

ftp_home_dir        -> off       Allow ftp to read & write file in user home directory

рдпрд╣ рд╕реНрд╡рд┐рдЪ рдЕрдХреНрд╖рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВрдЧреЗ setsebool $ setsebool ftp_home_dir on

рдЕрдм рд╣рдорд╛рд░рд╛ ftp рдбреЗрдореЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдЧрд╛ред
рдиреЛрдЯ: рдЖрдк рдмрд┐рдирд╛ рд╡рд┐рд╡рд░рдг рдХреЗ рднреА рдЙрдкрд▓рдмреНрдз рд╕реНрд╡рд┐рдЪреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ getsebool -a

2. рд▓реЗрдмрд▓ рдФрд░ рд╕рдВрджрд░реНрдн

рдпрд╣ SELinux рдиреАрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рддрд░реАрдХрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓, рдлрд╝реЛрд▓реНрдбрд░, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдкреЛрд░реНрдЯ рдХреЛ SELinux рд╕рдВрджрд░реНрдн рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рд▓реЗрдмрд▓ рдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
    $ ls -Z /etc/httpd
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдФрд░ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП, рд▓реЗрдмрд▓рд┐рдВрдЧ рдХреЛ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрди рд▓реЗрдмрд▓ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдкреНрд░рдХреНрд░рд┐рдпрд╛

$ ps тАУauxZ | grep httpd

рдмрдВрджрд░рдЧрд╛рд╣

$ netstat -anpZ | grep httpd

рдЙрджрд╛рд╣рд░рдг
рдЖрдЗрдП рдЕрдм рд▓реЗрдмрд▓ рдФрд░ рд╕рдВрджрд░реНрдн рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╣реИ /var/www/html/ ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╨╡╤В /home/dan/html/. SELinux рдЗрд╕реЗ рдиреАрддрд┐ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдорд╛рдиреЗрдЧрд╛ рдФрд░ рдЖрдк рдЕрдкрдиреЗ рд╡реЗрдм рдкреЗрдЬ рдирд╣реАрдВ рджреЗрдЦ рдкрд╛рдПрдВрдЧреЗред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

$ ls тАУlz /var/www/html
 -rw-rтАФrтАФ. root root unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/

рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдорд┐рд▓ рдЧрдпрд╛ httpd_sys_content_t HTML рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВред рд╣рдореЗрдВ рдЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдХреЛ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрджрд░реНрдн рд╣реИ:

-rw-rтАФrтАФ. dan dan system_u:object_r:user_home_t:s0 /home/dan/html/

рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЖрджреЗрд╢:

$ semanage fcontext -l | grep '/var/www'

рдПрдХ рдмрд╛рд░ рд╕рд╣реА рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдорд┐рд▓ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдо рд╕рдВрджрд░реНрдн рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдореИрдиреЗрдЬ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред /home/dan/html рдХрд╛ рд╕рдВрджрд░реНрдн рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢ рдЪрд▓рд╛рдПрдБ:

$ semanage fcontext -a -t httpd_sys_content_t тАШ/home/dan/html(/.*)?тАЩ
$ semanage fcontext -l | grep тАШ/home/dan/htmlтАЩ
/home/dan/html(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
$ restorecon -Rv /home/dan/html

рд╕реЗрдореИрдиреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджрд░реНрдн рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд░рд┐рд╕реНрдЯреЛрд░рдХреЙрди рдХрдорд╛рдВрдб рдлрд╛рдЗрд▓реЛрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджрд░реНрдн рд▓реЛрдб рдХрд░реЗрдЧрд╛ред рд╣рдорд╛рд░рд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЕрдм рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ /home/dan/htmlрдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрджрд░реНрдн рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ httpd_sys_content_t.

3. рд╕реНрдерд╛рдиреАрдп рдиреАрддрд┐рдпрд╛рдВ рдмрдирд╛рдПрдВ

рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд╣рд╛рдБ рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐рдпрд╛рдБ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдХрд╛рдо рдХреА рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдСрдбрд┐рдЯ.рд▓реЙрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ (avc/denial) рдорд┐рд▓рддреА рд╣реИрдВред рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдиреАрддрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдЖрдк рдСрдбрд┐рдЯ2рд╡реНрд╣рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдиреАрдп рдиреАрддрд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ httpd (рдЕрдкрд╛рдЪреЗ) рдпрд╛ smbd (samba) рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рд╣рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдиреАрддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ:

apache
$ grep httpd_t /var/log/audit/audit.log | audit2allow -M http_policy
samba
$ grep smbd_t /var/log/audit/audit.log | audit2allow -M smb_policy

рдпрд╣рд╛рдВ http_policy ╨╕ smb_policy рдпреЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╕реНрдерд╛рдиреАрдп рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рд╣реИрдВред рдЕрдм рд╣рдореЗрдВ рдЗрди рдмрдирд╛рдИ рдЧрдИ рд╕реНрдерд╛рдиреАрдп рдиреАрддрд┐рдпреЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди SELinux рдиреАрддрд┐ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

$ semodule тАУI http_policy.pp
$ semodule тАУI smb_policy.pp

рд╣рдорд╛рд░реА рд╕реНрдерд╛рдиреАрдп рдиреАрддрд┐рдпрд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рдЪреБрдХреА рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдЕрдм рдСрдбрд┐рдЯ.рд▓реЙрдЧ рдореЗрдВ рдХреЛрдИ рдПрд╡реАрд╕реА рдпрд╛ рдбреЗрдиреЗрд▓ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ SELinux рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рдкреНрд░рдпрд╛рд╕ рдерд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк SELinux рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВрдЧреЗред

рд╕реНрд░реЛрдд: www.habr.com

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