рд▓реЗрдЦ рдХрд╛ рдПрдХ рдЕрдиреБрд╡рд╛рдж рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рдЬреАрд╡рди, рдмреНрд░рд╣реНрдорд╛рдВрдб рдФрд░ рдЙрд╕ рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдорд┐рд▓ рдЬрд╛рдПрдВрдЧреЗ рдЬреЛ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╣реИрдВред"рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдЪреНрдЪрд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рд╣рдореЗрд╢рд╛ рд╡рд╣реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рд╡реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ ..."
тАХрдбреЙрдЧрд▓рд╕ рдПрдбрдореНрд╕, рдж рд╣рд┐рдЪрд╣рд╛рдЗрдХрд░ рдЧрд╛рдЗрдб рдЯреВ рдж рдЧреИрд▓реЗрдХреНрд╕реА
рд╕реБрд░рдХреНрд╖рд╛ред рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ред рдЕрдиреБрдкрд╛рд▓рдиред рдиреАрддрд┐ред рд░рд╛рдЬрд╡рдВрд╢ рдХреЗ рд╕рд░реНрд╡рдирд╛рд╢ рдХреЗ рдЪрд╛рд░ рдШреБрдбрд╝рд╕рд╡рд╛рд░ред рд╣рдорд╛рд░реЗ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдмреИрдХрдЕрдк, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛, рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдЖрджрд┐ - рд╣рдо рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реЗ рд╕рд┐рд╕реНрдЯрдо рдЬрд╣рд╛рдВ рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд░рджрд╛рддрд╛ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрдврд╝реА рд╣реБрдИ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдорд┐рд╢рди рдЗрдореНрдкреЙрд╕рд┐рдмрд▓ рд╕реЗ
рдПрдерди рд╣рдВрдЯ рдХреЗ рдХрд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИред
рдЗрд╕ рджреБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ
рдиреАрд▓реЗ рд░рдВрдЧ рдХреА рдЧреЛрд▓реА рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЬреАрд╡рди рдХреЗ рдмрдбрд╝реЗ рд╕рд╡рд╛рд▓, рдмреНрд░рд╣реНрдорд╛рдВрдб рдФрд░ рдЙрд╕ рд╕рдм рдХреЗ рдЬрд╡рд╛рдм рдХреЛ рдХрднреА рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗред рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╣ рдЙрддреНрддрд░ 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 рдЪрд╛рд▓реВ рдХрд░реЗрдВредрд╕рдВрджрд░реНрдн: