SELinux рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдЪреАрдЯ рд╢реАрдЯ: 42 рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм

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




рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЬреАрд╡рди, рдмреНрд░рд╣реНрдорд╛рдВрдб рдФрд░ рдЙрд╕ рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдорд┐рд▓ рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╣реИрдВред

"рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдЪреНрдЪрд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рд╣рдореЗрд╢рд╛ рд╡рд╣реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рд╡реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ ..."

тАХрдбреЙрдЧрд▓рд╕ рдПрдбрдореНрд╕, рдж рд╣рд┐рдЪрд╣рд╛рдЗрдХрд░ рдЧрд╛рдЗрдб рдЯреВ рдж рдЧреИрд▓реЗрдХреНрд╕реА

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

рдЗрд╕ рджреБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдиреАрд▓реЗ рд░рдВрдЧ рдХреА рдЧреЛрд▓реА рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЬреАрд╡рди рдХреЗ рдмрдбрд╝реЗ рд╕рд╡рд╛рд▓, рдмреНрд░рд╣реНрдорд╛рдВрдб рдФрд░ рдЙрд╕ рд╕рдм рдХреЗ рдЬрд╡рд╛рдм рдХреЛ рдХрднреА рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗред рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╣ рдЙрддреНрддрд░ 42 рд╣реИред

"рд╣рд┐рдЪрд╣рд╛рдЗрдХрд░ рдЧрд╛рдЗрдб рдЯреВ рдж рдЧреИрд▓реЗрдХреНрд╕реА" рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ, рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ SELinux рдХреЗ рдкреНрд░рдмрдВрдзрди рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ 42 рдЙрддреНрддрд░ рджрд┐рдП рдЧрдП рд╣реИрдВред

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

2. рджреЛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВ: рд▓реЗрдмрд▓рд┐рдВрдЧ - рд▓реЗрдмрд▓рд┐рдВрдЧ (рдлрд╛рдЗрд▓реЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ, рдкреЛрд░реНрдЯреНрд╕, рдЖрджрд┐) рдФрд░ рдЯрд╛рдЗрдк рдкреНрд░рд╡рд░реНрддрди (рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ рдХрд░рддреА рд╣реИ)ред

3. рд╕рд╣реА рд▓реЗрдмрд▓ рдкреНрд░рд╛рд░реВрдк user:role:type:level (рд╡реИрдХрд▓реНрдкрд┐рдХ)ред

4. рдорд▓реНрдЯреА рд▓реЗрд╡рд▓ рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА (MLS ) рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдбреЗрдЯрд╛ рдХреЗ рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ (рдбреЛрдореЗрди) рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЧреБрдкреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖-рдЧреБрдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреА рд╣реИред

5. рдорд▓реНрдЯреА-рд╢реНрд░реЗрдгреА рд╕реБрд░рдХреНрд╖рд╛ (MCS ) рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди, рдУрдкрдирд╢рд┐рдлреНрдЯ рддрдВрддреНрд░, SELinux рд╕реИрдВрдбрдмреЙрдХреНрд╕, рдХрдВрдЯреЗрдирд░, рдЖрджрд┐)ред

6. рдмреВрдЯ рдкрд░ SELinux рдореЛрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрдиреЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░:

  • autorelabel=1 рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдВрдХрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ
  • selinux=0 рдХрд░реНрдиреЗрд▓ SELinux рдЕрд╡рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
  • enforcing=0 рдЕрдиреБрдорддрд┐ рдореЛрдб рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛

7. рдпрджрд┐ рдЖрдкрдХреЛ рдкреВрд░реА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

# touch /.autorelabel
#reboot


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

8. рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ SELinux рд╕рдХреНрд╖рдо рд╣реИ: # getenforce

9. SELinux рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: # setenforce [1|0]

10. SELinux рд╕реНрдЯреЗрдЯрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛: # sestatus

11. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓: /etc/selinux/config

12. SELinux рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрд╣рд╛рдБ рдЕрдкрд╛рдЪреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдореВрдирд╛ рд▓реЗрдмрд▓рд┐рдВрдЧ рд╣реИ:

  • рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡: /usr/sbin/httpdтЖТhttpd_exec_t
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛: /etc/httpdтЖТhttpd_config_t
  • рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛: /var/log/httpd тЖТ httpd_log_t
  • рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛: /var/www/html тЖТ httpd_sys_content_t
  • рд▓реЙрдиреНрдЪ рд╕реНрдХреНрд░рд┐рдкреНрдЯ: /usr/lib/systemd/system/httpd.service тЖТ httpd_unit_file_d
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛: /usr/sbin/httpd -DFOREGROUND тЖТ httpd_t
  • рдкреЛрд░реНрдЯ: 80/tcp, 443/tcp тЖТ httpd_t, http_port_t

httpd_t рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЪрд▓ рд░рд╣реА рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ httpd_t рд▓реЗрдмрд▓ рд╡рд╛рд▓реА рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреА рд╣реИред

13. рдХрдИ рдХрдорд╛рдВрдб рд╕рдВрджрд░реНрдн рдХреЛ рджреЗрдЦрдиреЗ, рдмрдирд╛рдиреЗ рдФрд░ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП -Z рддрд░реНрдХ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:

  • ls -Z
  • id -Z
  • ps -Z
  • netstat -Z
  • cp -Z
  • mkdir -Z

рдЬрдм рдЙрдирдХреА рдореВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде) рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ, рддреЛ рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред RPM рд╕рдВрд╕реНрдерд╛рдкрди рдХреЗ рджреМрд░рд╛рди рд╕рдВрджрд░реНрдн рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

14. SELinux рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЪрд╛рд░ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдиреАрдЪреЗ 15-21 рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рд▓реЗрдмрд▓рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдБ
  • рдХреБрдЫ рдХреЗ рдХрд╛рд░рдг SELinux рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
  • SELinux рдиреАрддрд┐ / рдЖрд╡реЗрджрди рдореЗрдВ рддреНрд░реБрдЯрд┐
  • рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

15. рдЕрдВрдХрди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ : рдпрджрд┐ рдЖрдкрдХреА рдлрд╝рд╛рдЗрд▓реЗрдВ /srv/myweb рдЧрд▓рдд рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд /srv/myweb , рддреЛ рдПрдХреНрд╕реЗрд╕ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

  • рдпрджрд┐ рдЖрдк рд▓реЗрдмрд▓ рдЬрд╛рдирддреЗ рд╣реИрдВ:
    # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
  • рдпрджрд┐ рдЖрдк рд╕рдорддреБрд▓реНрдп рдЪрд┐рд╣реНрдиреЛрдВ рд╡рд╛рд▓реА рдлрд╛рдЗрд▓ рдЬрд╛рдирддреЗ рд╣реИрдВ:
    # semanage fcontext -a -e /srv/myweb /var/www
  • рд╕рдВрджрд░реНрдн рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдирд╛ (рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП):
    # restorecon -vR /srv/myweb

16. рдорд╛рд░реНрдХрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛: рдпрджрд┐ рдЖрдк рдлрд╛рдЗрд▓ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдлрд╛рдЗрд▓ рдЕрдкрдиреЗ рдореВрд▓ рд╕рдВрджрд░реНрдн рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦреЗрдЧреАред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  • рд▓реЗрдмрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдХрдорд╛рдВрдб рдмрджрд▓реЗрдВ:
    # chcon -t httpd_system_content_t /var/www/html/index.html
  • рд▓рд┐рдВрдХ рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрджрд░реНрдн рдХрдорд╛рдВрдб рдмрджрд▓реЗрдВ:
    # chcon --reference /var/www/html/ /var/www/html/index.html
  • рд╕рдВрджрд░реНрдн рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП): # restorecon -vR /var/www/html/

17. рдЕрдЧрд░ SELinux рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реИ рдХрд┐ HTTPD рдкреЛрд░реНрдЯ 8585 рдкрд░ рд╕реБрди рд░рд╣рд╛ рд╣реИ, рддреЛ SELinux рдХреЛ рдмрддрд╛рдПрдВ:

# semanage port -a -t http_port_t -p tcp 8585

18. SELinux рдХреЛ рдЙрди рдмреВрд▓рд┐рдпрди рдорд╛рдиреЛрдВ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ SELinux рдиреАрддрд┐рдпреЛрдВ рдХреЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рдмрд┐рдирд╛ рд░рдирдЯрд╛рдЗрдо рдкрд░ SELinux рдиреАрддрд┐ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк httpd рдХреЛ рдИрдореЗрд▓ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рджрд░реНрдЬ рдХрд░реЗрдВ: # setsebool -P httpd_can_sendmail 1

19. SELinux рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо / рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SELinux рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдорд╛рди рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :

  • рд╕рднреА рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП: # getsebool -a
  • рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП: # semanage boolean -l
  • рдмреВрд▓рд┐рдпрди рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: # setsebool [_boolean_] [1|0]
  • рд╕реНрдерд╛рдпреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП, -P ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: # setsebool httpd_enable_ftp_server 1 -P

20. SELinux рдиреАрддрд┐рдпреЛрдВ / рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рдлреИрдВрд╕реА рдХреЛрдб рдкрде
  • рд╡рд┐рдиреНрдпрд╛рд╕
  • рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╕реНрдЯрдбрдЖрдЙрдЯ
  • рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд▓реАрдХ
  • рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╕реНрдореГрддрд┐
  • рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдЦреБрд▓реЗ рдЯрд┐рдХрдЯ (рдмреБрдЧрдЬрд╝рд┐рд▓рд╛ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рди рднреЗрдЬреЗрдВ; рдмреБрдЧрдЬрд╝рд┐рд▓рд╛ рдореЗрдВ рдХреЛрдИ SLA рдирд╣реАрдВ рд╣реИ)ред

21. рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реАрдорд┐рдд рдбреЛрдореЗрди рд╣реИрдВ, рддреЛ рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ :

  • рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  • рд▓рд╛рдЧреВ SELinux рдореЛрдб рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
  • etc_t/shadow_t рдореЗрдВ рд▓рд┐рдЦреЗрдВ
  • Iptables рдирд┐рдпрдо рдмрджрд▓реЗрдВ

22. рдиреАрддрд┐ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SELinux рдЯреВрд▓:

# yum -y install setroubleshoot setroubleshoot-server

рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд░рд┐рдмреВрдЯ рдпрд╛ рдкреБрдирд░рд╛рд░рдВрдн auditd ред

23. рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
 journalctl 
setroubleshoot рдЬреБрдбрд╝реЗ рд╕рднреА рд▓реЙрдЧ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

# journalctl -t setroubleshoot --since=14:20

24. рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ SELinux рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╕рднреА рд▓реЙрдЧ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП journalctl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0

25. рдпрджрд┐ рдПрдХ SELinux рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде setroubleshoot рд▓реЙрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, journalctl :

 Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e # sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. ***** Plugin restorecon (99.5 confidence) suggests ************************ If you want to fix the label, /var/www/html/index.html default label should be httpd_syscontent_t. Then you can restorecon. Do # /sbin/restorecon -v /var/www/html/index.html 


26. рд▓реЙрдЧрд┐рдВрдЧ: SELinux рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ:

  • / var / рд▓реЙрдЧ / рд╕рдВрджреЗрд╢
  • /var/log/audit/audit.log
  • /var/lib/setroubleshoot/setroubleshoot_database.xml

27. рд▓реЙрдЧрд┐рдВрдЧ: рдСрдбрд┐рдЯ рд▓реЙрдЧ рдореЗрдВ SELinux рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ:

# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today

28. рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП SELinux Access рд╡реЗрдХреНрдЯрд░ рдХреИрд╢ (AVC) рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП:

# ausearch -m avc -c httpd

29. audit2allow рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдирд┐рд╖рд┐рджреНрдз рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓реЙрдЧ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддреА рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж SELinux рдЕрдиреБрдорддрд┐ рдиреАрддрд┐ рдирд┐рдпрдо рдмрдирд╛рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • рдЕрд╕реНрд╡реАрдХреГрдд рдкрд╣реБрдВрдЪ рдХреЗ рдХрд╛рд░рдг рдХрд╛ рдПрдХ рдкрдардиреАрдп рд╡рд┐рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП: # audit2allow -w -a
  • рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рд╡рд░реНрддрди рдирд┐рдпрдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрд╕реНрд╡реАрдХреГрдд рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: # audit2allow -a
  • рдПрдХ рдХрд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП: # audit2allow -a -M mypolicy
  • -M рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рд╡рд░реНрддрди рдлрд╝рд╛рдЗрд▓ (.te) рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рдпрдо рдХреЛ рдиреАрддрд┐ рдкреИрдХреЗрдЬ (.pp) рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ: mypolicy.pp mypolicy.te
  • рдПрдХ рдХрд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: # semodule -i mypolicy.pp

30. рдЕрдиреБрдореЗрдп рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдбреЛрдореЗрди) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: # semanage permissive -a httpd_t

31. рдпрджрд┐ рдЖрдк рдЕрдм рдбреЛрдореЗрди рдХреЛ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: рддреЛ # semanage permissive -d httpd_t

32. рд╕рднреА рдЕрдиреБрдореЗрдп рдбреЛрдореЗрди рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: # semodule -d permissivedomains

33. MLS SELinux рдиреАрддрд┐ рд╕рдХреНрд╖рдо рдХрд░рдирд╛: # yum install selinux-policy-mls
/etc/selinux/config:

SELINUX=permissive
SELINUXTYPE=mls
# yum install selinux-policy-mls
/etc/selinux/config:

SELINUX=permissive
SELINUXTYPE=mls


рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ SELinux рдкрд░рдорд┐рд╢рди рдореЛрдб рдореЗрдВ рд╣реИ: # setenforce 0
рдЕрдЧрд▓реЗ рд░рд┐рдмреВрдЯ рдХреЗ рджреМрд░рд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП fixfiles рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

# fixfiles -F onboot # reboot

34. рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ MLS рд░реЗрдВрдЬ рд╡рд╛рд▓рд╛ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ: # useradd -Z staff_u john

useradd рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ useradd , рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдореМрдЬреВрджрд╛ SELinux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, staff_u ) рдореЗрдВ staff_u ред

35. SELinux рдФрд░ Linux рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП: # semanage login -l

36. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢реНрд░реЗрдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ: # semanage login --modify --range s2:c100 john

37. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд▓реЗрдмрд▓ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ): # chcon -R -l s2:c100 /home/john

38. рд╡рд░реНрддрдорд╛рди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП: # chcat -L

39. рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

/etc/selinux/_< selinuxtype > _/setrans.conf

40. рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓, рднреВрдорд┐рдХрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП:

# runcon -t initrc_t -r system_r -u user_u yourcommandhere

  • -t рдлрд╝рд╛рдЗрд▓ рд╕рдВрджрд░реНрдн
  • -r рднреВрдорд┐рдХрд╛ рд╕рдВрджрд░реНрдн
  • -u рд╕рдВрджрд░реНрдн

41. рд╡рд┐рдХрд▓рд╛рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░:

  • рдкреЙрдбрдореИрди: # podman run --security-opt label=disable тАж
  • Docker: # docker run --security-opt label=disable тАж

42. рдпрджрд┐ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреВрд░реНрдг рдПрдХреНрд╕реЗрд╕ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдкреЛрдбрдореИрди: # podman run --privileged тАж
  • # docker run --privileged тАж : # docker run --privileged тАж

рдФрд░ рдЕрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╡рд╛рдм рдЬрд╛рдирддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХреГрдкрдпрд╛: рдШрдмрд░рд╛рдПрдВ рдирд╣реАрдВ рдФрд░ SELinux рдЪрд╛рд▓реВ рдХрд░реЗрдВред

рд╕рдВрджрд░реНрдн:


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


All Articles