Cloud Engineering/Linux ๐Ÿง

[Linux/๋ฆฌ๋ˆ…์Šค] SELinux ๊ฐœ๋…๊ณผ SELinux ๋ชจ๋“œ

minjiwoo 2023. 1. 16. 18:22
728x90

SELinux ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  

๋ณดํ†ต ๋ฆฌ๋ˆ…์Šค๋Š” DAC ๋ชจ๋ธ์„ ๊ธฐ์ค€์œผ๋กœ ์ ‘๊ทผ์ œ์–ด๋ฅผ ํ•œ๋‹ค. DAC ๋ชจ๋ธ์€ Discretionary Access Control ์˜ ์•ฝ์ž๋กœ, ์ด๋Š” '์‚ฌ์šฉ์ž ๊ถŒํ•œ'์„ ๊ธฐ์ค€์œผ๋กœํ•˜์—ฌ ํŒŒ์ผ์ด๋‚˜ ์ž์›์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ทจ์•ฝ์ ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๊ทธ ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ์‹œ์Šคํ…œ ๊ถŒํ•œ ๋ฐ ์‹œ์Šคํ…œ ์ •๋ณด๊ฐ€ ์‰ฝ๊ฒŒ ํƒˆ์ทจ๋  ์ˆ˜ ์žˆ๋‹ค. SELinux ๋Š” ๋ฆฌ๋ˆ…์Šค์˜ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•ด์ฃผ๋Š” ์ปค๋„ ๋ชจ๋“ˆ์ด๋‹ค. 

MAC ๋ชจ๋ธ 

SELinux ๋Š” MAC ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค. MAC ๋ชจ๋ธ์€ ๊ฐ ์‚ฌ์šฉ์ž๋‚˜ ํ”„๋กœ์„ธ์Šค, ํŒŒ์ผ์— ๋ณด์•ˆ ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•œ๋‹ค. ์ด ๋ณด์•ˆ๋ ˆ์ด๋ธ”์„ ์ปจํ…์ŠคํŠธ(context)๋ผ๊ณ  ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๋‚˜ ํ”„๋กœ์„ธ์Šค์— ์ง€์ •๋œ ์ปจํ…์ŠคํŠธ์™€ ํŒŒ์ผ์— ์ง€์ •๋œ ์ปจํ…์ŠคํŠธ๊ฐ€ ์—ฐ๊ด€์„ฑ์ด ์—†์œผ๋ฉด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. 

ls -Z ๋ช…๋ น์–ด๋กœ ๊ฐ ํŒŒ์ผ์˜ ์ปจํ…์ŠคํŠธ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

ls -Z

 

SELinux ๋™์ž‘ ์›๋ฆฌ 

SELinux ์—์„œ ๋ณด์•ˆ ๋ ˆ์ด๋ธ”์€ ์ปจํ…์ŠคํŠธ, ์ •์ฑ… ํ—ˆ์šฉ ์Šค์œ„์น˜๋Š” ๋ถ€์šธ (boolean) ์„ ์˜๋ฏธํ•œ๋‹ค. SELinux๋ฅผ ํ™œ์„ฑํ™” ํ•˜๋ฉด ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์™€ ํŒŒ์ผ์— ์ปจํ…์ŠคํŠธ๊ฐ€ ๋ถ€์—ฌํ•˜๋ฉฐ, ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŒŒ์ผ์— ์ ‘๊ทผํ•  ๋•Œ ํ”„๋กœ์„ธ์Šค์˜ ์ปจํ…์ŠคํŠธ๊ฐ€ ํŒŒ์ผ์˜ ์ปจํ…์ŠคํŠธ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ฑ…์ด ์žˆ๋Š”์ง€ (๋ถ€์šธ ๊ฐ’) ํ™•์ธํ•œ๋‹ค. 

SELinux๋Š” ๋‹ค์Œ ๋„ค๊ฐ€์ง€ ์‚ฌํ•ญ์„ ์„ค์ •ํ•ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค. 

  1. ๋™์ž‘ ๋ชจ๋“œ : SELinux ๋™์ž‘ ์ œ์–ด
  2. ํŒŒ์ผ ์ปจํ…์ŠคํŠธ : ํŒŒ์ผ์— ๋Œ€ํ•œ ํ”„๋กœ์„ธ์Šค ์ ‘๊ทผ์ œ์–ด
  3. ํฌํŠธ ๋ ˆ์ด๋ธ” : ๋„คํŠธ์›Œํฌ ํฌํŠธ์— ๋Œ€ํ•œ ์ ‘๊ทผ ์ œ์–ด
  4. ๋ถ€์šธ : ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์˜จ/์˜คํ”„์„ค์ • (์˜ˆ์™ธ์ฒ˜๋ฆฌ)

 

SELinux ๋ชจ๋“œ ์ข…๋ฅ˜ 

1. Disabled ๋ชจ๋“œ : SELinux ๊ฐ€ ์™„์ „ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด์žˆ๋Š” ์ƒํƒœ์ด๋‹ค. ์‹œ์Šคํ…œ์€ DAC ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•œ๋‹ค.

2. Enforcing ๋ชจ๋“œ : SELinux๊ฐ€ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์œผ๋ฉฐ, SELinux ์ •์ฑ…์„ ๊ฐ•์ œํ•˜๋Š” ๋ชจ๋“œ์ด๋‹ค. 

3. Permissive ๋ชจ๋“œ : SELinux๊ฐ€ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์ง€๋งŒ SELinux์ •์ฑ…์„ ๊ฐ•์ œํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹  ์ •์ฑ…์„ ์œ„๋ฐ˜ํ–ˆ์„ ๋•Œ ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๋ฅผ ๋‚จ๊ธด๋‹ค. 

SELinux ๋ชจ๋“œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋Š” getenforce ์ด๋‹ค. 

getenforce

setenforce ๋ฅผ ํ†ตํ•ด SELinux ๋ชจ๋“œ๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์‹œ ) setenforce 0 , setenforce 1 

setenforce [ Enforcing | Permissive | 1 | 0 ]

 

728x90