рд▓реЗрдЦрдХреЛ рдЕрдиреБрд╡рд╛рдж рдкрд╛рдареНрдпрдХреНрд░рдордХрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ
рдпрд╣рд╛рдБ рддрдкрд╛рдИрдБрд▓реЗ рдЬреАрд╡рди, рдмреНрд░рд╣реНрдорд╛рдгреНрдб рд░ Linux рдорд╛ рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд╕рд╛рде рд╕рдмреИ рдХреБрд░рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рдкрд╛рдЙрдиреБрд╣реБрдиреЗрдЫред
"рдХреБрд░рд╛рд╣рд░реВ рд╕рдзреИрдВ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдБрджреИрдирдиреН рднрдиреНрдиреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рддреНрдп рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рд╣реЛ ..."
-рдбрдЧрд▓рд╕ рдПрдбрдореНрд╕, The Hitchhiker's Guide to the Galaxy
рд╕реБрд░рдХреНрд╖рд╛ред рдмрдвреЗрдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ред рдкрддреНрд░рд╛рдЪрд╛рд░ред рдиреАрддрд┐ред Apocalypse sysadmin рдХреЛ рдЪрд╛рд░ Horsemenред рд╣рд╛рдореНрд░реЛ рджреИрдирд┐рдХ рдХрд╛рд░реНрдпрд╣рд░реВ - рдЕрдиреБрдЧрдорди, рдмреНрдпрд╛рдХрдЕрдк, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди, рдЕрдкрдбреЗрдЯ рдЧрд░реНрдиреЗ, рдЖрджрд┐рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд - рд╣рд╛рдореА рд╣рд╛рдореНрд░рд╛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫреМрдВред рддреА рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдкрдирд┐ рдЬрд╣рд╛рдБ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдкреНрд░рджрд╛рдпрдХрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдкрд░рд┐рд╖реНрдХреГрдд рд╕реБрд░рдХреНрд╖рд╛ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫред рдХрд╛рдо рдЬрд╕реНрддреЛ рд▓рд╛рдЧреНрдЫ
рдпрд╕ рджреБрд╡рд┐рдзрд╛рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрджреИ, рдХреЗрд╣рд┐ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрд▓реЗ рд▓рд┐рдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрдЫрдиреН
The Hitchhiker's Guide to the Galaxy рдХреЛ рднрд╛рд╡рдирд╛рдорд╛, рдпрд╣рд╛рдБ рдирд┐рдпрдиреНрддреНрд░рдг рд░ рдкреНрд░рдпреЛрдЧрдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рекреи рдЙрддреНрддрд░рд╣рд░реВ рдЫрдиреНред
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 рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ? рдпрд╣рд╛рдБ Apache рд╡реЗрдм рд╕рд░реНрднрд░ рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЗрдПрдХреЛ рдЫ:
- рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡:
/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_something_t
.
13ред рдзреЗрд░реИ рдЖрджреЗрд╢рд╣рд░реВрд▓реЗ рддрд░реНрдХ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдЫрдиреН -Z
рд╣реЗрд░реНрди, рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рд╕рдиреНрджрд░реНрдн рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди:
ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд╕реНрдерд╛рдкрд┐рдд рд╣реБрдиреНрдЫрдиреН рдЬрдм рдлрд╛рдЗрд▓рд╣рд░реВ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЕрднрд┐рднрд╛рд╡рдХ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╣реБрдиреНрдЫрдиреН (рдХреЗрд╣реА рдЕрдкрд╡рд╛рджрд╣рд░реВ рд╕рд╣рд┐рдд)ред RPM рд▓реЗ рд╕реНрдерд╛рдкрдирд╛рдХреЛ рдХреНрд░рдордорд╛ рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫред
14ред SELinux рддреНрд░реБрдЯрд┐рд╣рд░реВрдХрд╛ рдЪрд╛рд░ рдореБрдЦреНрдп рдХрд╛рд░рдгрд╣рд░реВ рдЫрдиреН, рдЬрд╕рд▓рд╛рдИ рддрд▓рдХреЛ рдЕрдВрдХ резрел-реирез рдорд╛ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ:
- рд▓реЗрдмрд▓рд┐рдЩ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ
- SELinux рд▓рд╛рдИ рдерд╛рд╣рд╛ рд╣реБрдиреБ рдкрд░реНрдиреЗ рдХреБрд░рд╛рдХреЛ рдХрд╛рд░рдгрд▓реЗ
- SELinux рдиреАрддрд┐/рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рддреНрд░реБрдЯрд┐
- рддрдкрд╛рдИрдВрдХреЛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдореНрдЭреМрддрд╛ рд╣реБрди рд╕рдХреНрдЫ
15ред рд▓реЗрдмрд▓рд┐рдЩ рд╕рдорд╕реНрдпрд╛: рдпрджрд┐ рддрдкрд╛рдЗрдБрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдЫрдиреН /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 рд▓реЗ рдкреЛрд░реНрдЯ реорелреорел рдорд╛ рд╕реБрдирд┐рд░рд╣реЗрдХреЛ рдЫ, 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 рдиреАрддрд┐рд╣рд░реВ/рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН, рдЬрд╕рдорд╛:
- рдЕрд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдкрдерд╣рд░реВ
- рдХрдиреНрдлрд┐рдЧреНрдпреБрд░рд╛рд╕реА
- stdout рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдЧрд░реНрджреИ
- рдлрд╛рдЗрд▓ рд╡рд┐рд╡рд░рдг рдЪреБрд╣рд╛рд╡рдЯ
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рдореЗрдореЛрд░реА
- рдирд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдмрдиреЗрдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ
рдЯрд┐рдХрдЯрд╣рд░реВ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН (рдмрдЧрдЬрд┐рд▓рд╛рдорд╛ рдкреНрд░рддрд┐рд╡реЗрджрди рдкреЗрд╢ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН; рдмрдЧрдЬрд┐рд▓рд╛рдХреЛ рдХреБрдиреИ 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ред рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН journalctl
рд╡рд┐рд╢реЗрд╖ SELinux рдЯреНрдпрд╛рдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕рдмреИ рд▓рдЧрд╣рд░реВ рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:
# 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 рдкрд╣реБрдБрдЪ рднреЗрдХреНрдЯрд░ рдХреНрдпрд╛рд╕ (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
рдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ SELinux рдЕрдиреБрдорддрд┐ рдореЛрдбрдорд╛ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ: # setenforce 0
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН fixfiles
рдЕрд░реНрдХреЛ рд░рд┐рдмреБрдЯрдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдкреБрди: рд▓реЗрдмрд▓ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди:
# fixfiles -F onboot # reboot
34ред рд╡рд┐рд╢рд┐рд╖реНрдЯ MLS рджрд╛рдпрд░рд╛рдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН: # useradd -Z staff_u john
рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ useradd
, рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдЕрд╡рд╕реНрдерд┐рдд SELinux рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдорд╛ рдирдХреНрд╕рд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, 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ред SELinux рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдПрдХреЛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ:
- рдкреЛрдбрдореНрдпрд╛рди:
# podman run --security-opt label=disable тАж
- рдбрдХрд░:
# docker run --security-opt label=disable тАж
42ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХрдиреНрдЯреЗрдирд░рд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкреВрд░реНрдг рдкрд╣реБрдБрдЪ рджрд┐рди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ:
- рдкреЛрдбрдореНрдпрд╛рди:
# podman run --privileged тАж
- рдбрдХрд░:
# docker run --privileged тАж
рд░ рдЕрдм рддрдкрд╛рдИрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдиреИ рдЬрд╡рд╛рдл рдерд╛рд╣рд╛ рдЫред рддреНрдпрд╕реИрд▓реЗ рдХреГрдкрдпрд╛: рдирдбрд░рд╛рдЙрдиреБрд╣реЛрд╕реН рд░ SELinux рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рд╕рдиреНрджрд░реНрднрд╣рд░реВ:
SELinux byрдбреЗрди рд╡рд╛рд▓реНрд╢ SELinux рдиреАрддрд┐ рдкреНрд░рд╡рд░реНрддрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдЗрдБрдХреЛ рднрд┐рдЬреБрдЕрд▓ рдХрд╕рд░реА рдЧрд╛рдЗрдб рдбреЗрди рд╡рд╛рд▓реНрд╢ рджреНрд╡рд╛рд░рд╛рдХреЗрд╡рд▓ рдорд░реНрддреНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд▓рд┐рдирдХреНрд╕ byрдереЛрдорд╛ рдХреНрдпрд╛рдорд░реВрди SELinux рд░рдВрдЧ рдкреБрд╕реНрддрдХ byрдореЗрд░рд┐рди рдбрдлреА SELinux рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд░ рдкреНрд░рд╢рд╛рд╕рдХрдХреЛ рдЧрд╛рдЗрдб - Red Hat Enterprise Linux 7
рд╕реНрд░реЛрдд: www.habr.com