[์์คํ
๋ณด์] - ์ฌ์ฉ์ ์ธ์ฆ
backdoor --> root ๊ถํ์ ๋
ธ๋ฆผ.
์ธ์ฆ = Authentication
-----
PAM (Pluggable Authentication Modules) :
- ์ฌ์ฉ์์ ์ฌ์ฉ ๊ถํ์ ์ ์ดํ๋ ๋ชจ๋
- ๋ฆฌ๋
์ค์์ ์ฌ์ฉํ๋ ์ธ์ฆ ๋ชจ๋
์ฌ์ฉ์ ์ ๋ณด๊ฐ ๋ด์ ์ฃผ์ ์์คํ
ํ์ผ : /etc/passwd , /etc/shadow
--> ๋ฌธ์ ์ :
- ํต์ผ๋ ์ ์ฑ
์ด ์๋ค.
- ์ฌ์ฉ์ ์ธ์ฆ ๋ฐฉ์์ด ์์ดํ์ฌ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ด ์กด์ฌ. (๊ณ์ ๋ง๋ค ๋ค๋ฅธ shell์ ์ฌ์ฉํ ์๋ ์์.)
<PAM์ ๋์ ์๋ฆฌ>
1. ์ธ์ฆ์ด ํ์ํ ์์ฉํ๋ก๊ทธ๋จ์ ๋ ์ด์ /etc/~ ๋ฅผ ์ฐธ์กฐํ์ง ์๊ณ 'PAM'๋ชจ๋์ ์ฌ์ฉ์ ์ธ์ฆ์ ์์ฒญํ๋ค.
ใ กใ กใ กใ กใ ก
<PAM์ ๊ธฐ๋ณธ ๊ตฌ์กฐ>
(1์ด) Module type
- auth : ์ฌ์ฉ์์๊ฒ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฒญํ๊ณ ์
๋ ฅ ๋ฐ์ ์ ๋ณด๊ฐ ๋ง๋์ง ๊ฒ์ฌํ๋ ๋ชจ๋.
- account : ๊ณ์ ์ ๋ํ ์ ๊ทผ ํต์ ๋ฐ ๊ณ์ ์ ์ฑ
์ ๊ด๋ฆฌํ๋ ๋ชจ๋.
- password : ์ฌ์ฉ์๊ฐ ํจ์ค์๋๋ฅผ ๋ณ๊ฒฝ๊ฐ๋ฅํ๋๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐฑ์ ํ๋ ๋ชจ๋.
- session : ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ๋ฐ๊ธฐ ์ /ํ ์ํํด์ผ ํ ์ผ์ ์ ์ํ๋ ๋ชจ๋.
(2์ด) Control Flag - ์ด๋ค ๋์์ ํด์ผํ๋์ง ๊ฒฐ์
- requisite : ์ธ์ฆ ๊ฒฐ๊ณผ๊ฐ ์คํจ์ธ ๊ฒฝ์ฐ --> ์ธ์ฆ ์ข
๋ฃ.
์ธ์ฆ ๊ฒฐ๊ณผ๊ฐ ์ฑ๊ณต์ธ ๊ฒฝ์ฐ --> ๋ค์ ์ธ์ฆ ๋ชจ๋ ์คํ.
- required : ์ธ์ฆ ๊ฒฐ๊ณผ์ ๊ด๊ณ์์ด ๋ค์ ์ธ์ฆ ์คํ.
- sufficient : ์ธ์ฆ ๊ฒฐ๊ณผ๊ฐ ์ฑ๊ณต์ผ ๊ฒฝ์ฐ ์ธ์ฆ ์ข
๋ฃ.
- optional : ์ผ๋ฐ์ ์ผ๋ก ์ต์ข
์ธ์ฆ ๊ฒฐ๊ณผ์ ๋ฐ์ํ์ง ์์.
- include : ๋ค๋ฅธ PAM ํธ์ถ.
(3์ด / 4์ด) Module Name / Module Arguments
<root ๊ณ์ ์๊ฒฉ ์ ์ ์ ํ>
์ธ๋ถ์์ root ๊ณ์ ์ผ๋ก ์๊ฒฉ์ ์์ ํ์ฉํ๋ฉด ๋ฐ์ ๊ฐ๋ฅํ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ :
# ๋ฌด์์ ๋์
๊ณต๊ฒฉ(Brute Force Attack)
- ํน์ ํ ์ํธ๋ฅผ ํ๊ธฐ์ํด ๊ฐ๋ฅํ ๋ชจ๋ ๊ฐ์ ๋์
ํ๋ ๊ณต๊ฒฉ.
- ex) pw๋ฅผ 8์๋ฆฌ ์ค์ ํ ๊ฒฝ์ฐ --> 3๊ฐ์ ์์
13์๋ฆฌ --> 6๊ฐ์ ์์
# ์ฌ์ ๋์
๊ณต๊ฒฉ(Dictionary Attack)
- ์ ์ถ๋ ์ ๋ณด๋ก ๊ณต๊ฒฉ์๊ฐ ๋ฏธ๋ฆฌ ์ฌ์ ์ ๋ง๋ค์ด ๊ณต๊ฒฉ.(์ด๋ฏธ ์ป์ ์ ๋ณด๋ฅผ ์ด์ฉ)
- ex) ํด๋น ๊ณ์ ์ ์ฃผ์ธ์ด ์ฃผ๋ก ์์ ์ ์์ผ์ ์ด์ฉํ์ฌ ๊ณ์ ์ด๋ฆ์ ๋ง๋ ๋ค๋ฉด, ์ฌ์ฉ์์ ์์ผ์ ์์๋ด์ด ๊ฐ์ ๋ง๋ค์ด๋ธ๋ค.
ํด๊ฒฐ ์ ์ฑ
ใ
กใ
กใ
กใ
กใ
ก
vi /etc/pam.d/login
auth required /lib/security/pam_securetty.so --> ์๊ฒฉ์ ์์ root๋ก ์ ์ ๋ถ๊ฐ.
ใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
ก
<ํจ์ค์๋ ๋ณต์ก์ฑ ์ค์ >
- ํจ์ค์๋ ๋ณต์ก์ฑ ์ค์ : ์ฌ์ฉ์๊ฐ ํจ์ค์๋ ์ค์ ์ ๋์๋ฌธ์, ์ซ์, ํน์๊ธฐํธ๊ฐ ํผํฉ๋ ์ผ์ ๊ธธ์ด ์ด์์ผ๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ.
- ์ผ๋ฐ์ ์ธ ํจ์ค์๋ ๊ถ๊ณ : 8์๋ฆฌ ์ด์, ์๋ฌธ.์ซ์.ํน์๋ฌธ์
lcredit=-1 : ์๋ฌธ์ ์ต์ 1์ ์ด์.
ucredit=-1 : ๋๋ฌธ์ ์ต์ 1์ ์ด์.
dcredit=-1 : ์ซ์ ์ต์ 1์ ์ด์.
ocredit=-1 : ํน์๋ฌธ์ ์ต์ 1์ ์ด์.
minlen=8 : ํจ์ค์๋ ์ต์๊ธธ์ด 8์ ์ด์.
difok=N : ๊ธฐ์กด ํจ์ค์๋์ ๋น๊ต๋ฅผ ํ์ง ์๋๋ค.
--> difok ๊ฐ Yes๋ก ์ค์ ๋ ๊ฒฝ์ฐ : [ Ex) kkkk์ ukkk์ผ๋ก ๋ณ๊ฒฝ์ ์๋ํ๋ฉด ๊ธฐ์กด ํจ์ค์๋์ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ํจ์ค์๋ ๋ณ๊ฒฝ์ ๊ฑฐ๋ถํ๋ค.]
ex)
ํจ์ค์๋ ์ ์ฑ
์ธ ๊ฒฝ์ฐ : ์ต์๊ธธ์ด 6์ ์ด์, ์๋ฌธ์ 2์, ๋๋ฌธ์ 1์, ํน์๊ธฐํธ 3์, ์ซ์ 2์.
-->
minlen=8
lcredit=-2
ucredit=-1
ocredit=-3
dcredit=-2
-->
ํด๊ฒฐ ์ ์ฑ
ใ
กใ
กใ
กใ
กใ
ก
vi /etc/security/pwquality.conf ์ ๋ถ์ฌ๋ฃ์ผ๋ฉด ์ ์ฑ
์ด ์ค์ ๋๋ค. (--> ์ฒ์์๋ ๋ค ์ฃผ์ ์ฒ๋ฆฌ ๋์ด ์์.)
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-2 ucredit=-1 ocredit=-3 dcredit=-2
ใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
ก
<๊ณ์ ์ ๊ธ ์๊ณ๊ฐ ์ค์ >
- ๋ก๊ทธ์ธ ์ฐ์ ์คํจ ์ ๋ช๋ฒ์งธ ๋ก๊ทธ์ธ ์คํจ์ ์ฐจ๋จํ ๊ฒ์ธ์ง ์ค์ .
- ๋ฌด์์ ๋์
๊ณต๊ฒฉ์ ๋ฐฉ์ง
deny=5 : 5ํ ์
๋ ฅ ์คํจ ์ ๊ณ์ ์ ๊ธ.
unlock_time=120 : ๊ณ์ ์ ๊น ํ ์ผ์ ์๊ฐ(120์ด)์ด ์ง๋๋ฉด ์๋์ผ๋ก ๊ณ์ ์ ๊น ํด์ .(๋จ์๋ ์ด)
no_magic_root : root ์๊ฒ๋ ๊ณ์ ์ ๊ธ ์ค์ ์ ํ์ง ์๋๋ค.
reset : ์ ์ ์ฑ๊ณต ์ ์คํจํ ํ์ ์ด๊ธฐํ.
ํด๊ฒฐ ์ ์ฑ
ใ
กใ
กใ
กใ
กใ
ก
vi /etc/pam.d/system-auth
auth required /lib/security/pam_tally.so deny=5 unlock_time=120 no_magic_root reset
account required /lib/security/pam_tally.so no_magic_root reset
ใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
ก
๋ ์ค์ ์ฐ๋ ์ด์ ๋ ์ฒซ์งธ์ค์ required๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋๊ธ