๐ก SELinux ๋?
๊ด๋ฆฌ์๊ฐ ์์คํ ์์ธ์ค ๊ถํ์ ํจ๊ณผ์ ์ผ๋ก ์ ์ดํ ์ ์๊ฒ ํ๋ Linux ์์คํ ์ฉ ๋ณด์ ์ํคํ ์ฒ์ด๋ค. SELinux๋ ์์คํ ์ ์ ํ๋ฆฌ์ผ์ด์ , ํ๋ก์ธ์ค, ํ์ผ์ ๋ํ ์์ธ์ค ์ ์ด๋ฅผ ์ ์ํ๊ณ ์ ์ฑ ์์ ํ์ฉ๋ ์์ธ์ค๋ง์ ์คํํ๋ค.
์ ํต์ ์ผ๋ก Linux์ UNIX ์์คํ ์ DAC(Discretionary Access Control)๋ฅผ ์ฌ์ฉํด์์ง๋ง, SELinux๋ Linux์ฉ MAC(Mandatory Access Control) ์์คํ ์ ์์์ด๋ค. DAC์ ๊ฒฝ์ฐ์๋ ํ์ผ๊ณผ ํ๋ก์ธ์ค์ ์์ ์๊ฐ ์๊ณ ๋ฃจํธ ์ฌ์ฉ์๊ฐ DAC ์์คํ ์ผ๋ก ์ ์ฒด ์์ธ์ค ์ ์ด ๊ถํ์ ๊ฐ๋๋ค. ํ์ง๋ง SELinux์ ๊ฐ์ MAC ์์คํ ์์๋ ์์ธ์ค ๊ด๋ จ ๊ด๋ฆฌ ์ ์ฑ ์ด ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ ๋๋ ํ ๋ฆฌ์ DAC ์ค์ ์ด ๋ณ๊ฒฝ๋๋๋ผ๋ ๋ค๋ฅธ ์ฌ์ฉ์๋ ํ๋ก์ธ์ค๊ฐ ๋๋ ํ ๋ฆฌ์ ์์ธ์ค ํ์ง ๋ชปํ๋๋ก ๋์ด์๋ค.
* SELinux ์ ๊ธฐ๋ณธ *
Security-Enhanced Linux์ ์ค์๋ง๋ก ๋ณด์์ด ํฅ์๋ ๋ฆฌ๋ ์ค๋ผ๊ณ ์ ์๋์ด ์๋ค. SELinux ์์์๋ ๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์ค์ ํ์ผ์ด๋ ์ฌ์ฉํ ์ ์๋ ํด๋์ ์์น์ ๋ํด์ ๊ถํ์ด ๋ช ํํ๊ฒ ์ ์๋์ด ์๋ค. ์๋ฅผ ๋ค์ด, httpd ํ๋ก์ธ์ค๊ฐ php๋ฅผ ํตํด์ ํน์ ๊ฒฝ๋ก์ ํ์ผ์ write ํ๋ ๊ฒ๋ SELinux context type์ด ๋ง์์ผ๋ง ๊ฐ๋ฅํ๋ค.
SELinux๋ enforcing, permissive, disabled ์ธ ๊ฐ์ง ์ ์ฑ ์ ์ค์ ํ ์ ์๋ค. enforcing์ ๊ฒฝ์ฐ ๋ณด์ ์ ์ฑ ์ ์ ์ฉํ๋ ๊ฒ์ด๊ณ , permissive์ ๊ฒฝ์ฐ๋ ๊ฒฝ๊ณ ๋ง ๋ณด์ฌ์ฃผ๊ณ , disabled๋ ์์ ๋ก๋ฉํ์ง ์๋ ๊ฒ์ด๋ค.
โ SELinux ์ค์ ๋ฐฉ๋ฒ
1. SELinux ๊ธฐ๋ณธ, ํ์ฌ ์ค์ ํ์ธ ๋ฐ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ
getenforce # ํ์ฌ ์ค์ ํ์ธ
# ์์ ์ค์ ๋ณ๊ฒฝ
setenforce 0 # permissive
setenforce 1 # enforcing
# ์๊ตฌ์ ์ธ ์ค์ ๋ณ๊ฒฝ
vi /etc/selinux/config
2. chcon์ ์ด์ฉํ context type ๋ณ๊ฒฝ
# php ํ๋ก์ธ์ค๊ฐ httpd ์์์ ํ์ผ ์ฐ๊ธฐ ๊ถํ์ด ํ์ํ ๋ (์ํ๋ ๊ฒฝ๋ก์ ์ค์ )
chcon -t httpd_sys_rw_content_t -R /var/www/html/phpfile
=> SELinux๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ค์ ์ ๋ฌธ์ ๋ ์ฌ๋ผ์ง๊ฒ ์ง๋ง ๋ณด์์ด ์ฝํด์ง๋ ๋ฌธ์ ๊ฐ ์๋ค. ๋ฐ๋ผ์, SELinux๋ฅผ ์ ์ฉํ ์ํ์์ ํน์ ํด๋ or ํ์ผ์ context type์ ์ํฉ์ ๋ง๊ฒ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋๋ฉด ์ข์ ๊ฒ์ด๋ค.
3. SELinux ์ค์ ๊ฐ ํ์ธ ๋ฐ ๋ณ๊ฒฝ
getsebool htttpd_can_network_connect on
getsebool htttpd_can_network_connect 1
# ์ฐ๊ฒฐ์ ํ์ฉํ์ง ์์ ๋
getsebool htttpd_can_network_connect off
=> ๋ถ์ธ(boolean)์ด๋ SELinux์ ๊ธฐ๋ฅ์ ๋ํ ํ์ฑํ/๋นํ์ฑํ ์ค์ ์ด๋ค. SELinux ๊ธฐ๋ฅ์ ์ผ๊ฑฐ๋ ๋ ์ ์๋ ์๋ฐฑ ๊ฐ์ง ์ค์ ์ด ์์ผ๋ฉฐ, ์ด ์ค ๋ค์๋ ์ด๋ฏธ ์ฌ์ ์ ์๋์ด ์๋ค. ์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก httpd ํ๋ก์ธ์ค์์ ๋คํธ์ํฌ ์ฐ๊ฒฐ ํ์ฉ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค.
Reference
'Back-end > CS ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] Domain, Name Server, Sub Domain ์ ๊ฐ๋ (0) | 2022.06.20 |
---|---|
APM์ ๊ฐ๋ ๋ฐ ๊ตฌ๋ ์๋๋ฆฌ์ค (0) | 2022.05.16 |
[CS] ์๋ฒ๋ ๋ฌด์์ธ๊ฐ? (0) | 2022.04.14 |
[CS] TCP/IP ๊ฐ๋ ์ ๋ฆฌ (0) | 2022.04.09 |
[CS] OSI 7 ๊ณ์ธต์ ๋ชจ๋ ๊ฒ! (0) | 2022.04.08 |