์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
๋๋ฌด์ํค์์ ์ฌ์ฉํ๊ณ ์๋ Access Control List ํ[1] |
1. ๊ฐ์[ํธ์ง]
๋ฐฉํ๋ฒฝ, ์น ์ฌ์ดํธ ๋ฑ์์ ์ ๋ณด ์ด์ฉ ์ฃผ์ฒด๊ฐ ์ ๋ณด(๊ฐ์ฒด)์ ๋ํด ์ด๋ค ๊ถํ์ ๊ฐ์ง๋์ง ์ ํด ๋์ ๋ชฉ๋ก. ์ฃผ๋ก ์์์ ์ ๊ทผํต์ ๋ฐฉ์[2]์์ ์ฌ์ฉํ๋ค. ๋ชจ๋์ํค์ ๋๋ฌด์ํค์์ ์ ๊ทผ ์ ํ์ ์ฌ์ฉ๋๋ค. ๊ฐํน "์ํด"์ด๋ผ๊ณ ์ฝ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ "์์ด์จ์"๋ก ์ฝ๋๋ค.
1.1. the seed์์์ ACL[ํธ์ง]
- [์ธํฐํ์ด์ค ๋ณด๊ธฐยท์ ๊ธฐ]
the seed์์ ์ง์ํ๋ ๊ธฐ๋ฅ์ด๋ค. ACL์ ๊ฑฐ๋ถ ๋์์ ํด๋นํ๋ ๊ฒฝ์ฐ ํน์ ๊ธฐ๋ฅ์ ์ด์ฉ์ด ์ ํ๋๋ค. ๋ฌธ์์ ACL์ด ์ง์ ๋์๋์ง ์ฌ๋ถ๋ ๋ฌธ์ ์ญ์ฌ ๋ฐ ACL ๋ฉ๋ด์์ ํ์ธํ ์ ์๋ค. ์ฐธ๊ณ ๋ก ๋๋ฌด์ํค ๋ฌธ์์ ๊ฑธ๋ฆฌ๋ ACL์ ๋ค์๊ณผ ๊ฐ๋ค. ์์ธํ ์ด๋ํ๋ ค๋ฉด ์ด๊ณณ์ ๋ณด์. ACL์ ๊ด๋ฆฌ์๋ง ๋ณ๊ฒฝํ ์ ์๋ค. ๋จ, ํด์งํต ๋ฌธ์๋ ํ์ผํด์งํต, ์ํค์ด์ ๋ฌธ์์ ๊ฒฝ์ฐ์๋ ์๋ฌด๋ ๋ณ๊ฒฝํ ์ ์๋ค.
- (a,b,c,d์ผ๋ก ACL ๋ณ๊ฒฝ) r(์ซ์) (0) ์ด์์ง ์ด๋ฆ ()
- a: ์ค์ /ํด์ ์ฌ๋ถ. ์ค์ (insert)์ ํด์ (delete)๋ก ๋๋๋ค.
- c: ํ์ฉ/๊ฑฐ๋ถ ์ฌ๋ถ. ํ์ฉ(allow)๊ณผ ๊ฑฐ๋ถ(deny), ์ด๋ฆ๊ณต๊ฐACL ์คํ(gotons)[5]์ผ๋ก ๋๋๋ค.
- d: perm, member, ip, aclgroup, geoip์ผ๋ก ๋๋๋ค.
- ip:127.0.0.1, member:๊ด๋ฆฌ์(์ฌ์ธก ๊ด๋ฆฌ์) ๋ฑ ํน์ ์ฌ์ฉ์๋ง ํ์ฉ/๊ฑฐ๋ถํ ์ ์์ผ๋ฉฐ[6][7], ๊ถํ๋ณ๋ก ๋๋ ์๋ ์๋ค.
- ๊ถํ์ perm:์ผ๋ก ์์ํ๋ฉฐ, any(์๋ฌด๋), member(๋ก๊ทธ์ธํ ์ฌ์ฉ์), admin(๊ด๋ฆฌ์), member_signup_15days_ago(๊ฐ์ ํ 15์ผ์ด ์ง๋ ์ฌ์ฉ์),
member_not_suspend(์ฐจ๋จ๋์ง ์์ ์ฌ์ฉ์)[8],suspend_account(์ฐจ๋จ๋ ์ฌ์ฉ์), blocked_ipacl(์ฐจ๋จ๋ ์์ดํผ)[9], document_contributor(ํด๋น ๋ฌธ์์ 1๋ฒ์ด๋ผ๋ ๊ธฐ์ฌํ ์ฌ์ฉ์), match_username_and_document_title(์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋ฌธ์ ์ ๋ชฉ์ด ์ผ์นํ๋ ๊ฒฝ์ฐ)[10], contributor(์ํค ๊ธฐ์ฌ์)[11])๋ก ๋๋๋ค. - ACLGroup์ aclgroup์ผ๋ก ์์ํ๋ฉฐ ํน์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ค. ํ์ฌ๊น์ง ํ์ธ๋ ๊ฒ์ผ๋ก๋ ๊ฒฝ๊ณ , ํธ์ง์์ฒญ ์ฐจ๋จ, ์ฐจ๋จ๋ ์ฌ์ฉ์[12], IDC[13], ๋ก๊ทธ์ธ ํ์ฉ ์ฐจ๋จ[14], VPNGate[15]๊ฐ ์๋ค. ์ด์ค ๋ก๊ทธ์ธ ํ์ฉ ์ฐจ๋จ ๊ทธ๋ฃน์ด๋ VPNGate ๊ทธ๋ฃน์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ด๋ฆ๊ณต๊ฐ์์ perm:member ๋ค์์ ์์นํ๊ณ ์์ด ๋ก๊ทธ์ธ์ ํธ์ง์ด ๊ฐ๋ฅํ๋๋ก ๋์ด ์๋ค.
๋ฌธ์ ACL์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด ์ด๋ฆ๊ณต๊ฐ ACL์ด ์ ์ฉ๋๋๋ฐ, ๋ง์ฝ ๋ฌธ์ ACL์ ํด๋น ์ฌ์ฉ์๊ฐ ์ ์๋์ด ์์ง ์๋ค๋ฉด ๋ฌด์กฐ๊ฑด ๊ฑฐ๋ถ๋๋ค.[16]
๊ด๋ฆฌ์์ ์ฌ์ฉ์ ๋ฌธ์์ ์์ ๊ฐ์ ํ์์ด ์๋๋ผ (everyone, everyone, everyone, admin, everyone)์ ๊ฐ์ ํ์์ผ๋ก ๊ธฐ๋ก๋์ด ์๋๋ฐ, ์ด๊ฒ์ ํ์ฌ ์ฌ์ฉ ์ค์ธ ACL์ด ์๋ ๊ณผ๊ฑฐ์ ์ฌ์ฉํ๋ ACL๋ฒ์ ์์ ์ค์ ํ ๋ด์ฉ์ผ๋ก ๋น์์๋ ํ์ฌ์ฒ๋ผ ์์ธํ ์ค์ ์ด ๋ถ๊ฐ๋ฅํ์ผ๋ฉฐ, ๋จ์ํ ๋ชจ๋ ์ฌ์ฉ์, ๋ก๊ทธ์ธํ ์ฌ์ฉ์, ๊ด๋ฆฌ์๋ก๋ง ์ค์ ์ด ๊ฐ๋ฅํ์ผ๋ฉฐ ๊ด๋ฆฌ์์ ์ฌ์ฉ์ ๋ฌธ์์ ๋์ค๋ ๋ฒ์ ์ abcdeํ๊ธฐ๋ก ์๋ถํฐ ์์๋๋ก ์ฝ๊ธฐ ๊ถํ, ์ฐ๊ธฐ ๊ถํ, ์ญ์ ๊ถํ, ํ ๋ก ๊ถํ, ์ด๋ ๊ถํ์ด๋ค.[17] ๊ฐ๋ ABCDEF ํ๊ธฐ๋ false ์ด๋ ๊ฒ์ด ๋์ค๋๋ฐ ์ด๊ฒ์ ๋น์ ๋ด ACL(true)์ ์๋ก ๊ตฌ๋ถ์ ์ง๊ธฐ ์ํจ์ด์๋ค. ๋์ค์ ๋ด ACL์ด ์ฌ๋ผ์ง๋ฉด์ ์๋ฏธ์์ด์ง๊ธฐ๋ ํ์ง๋ง.
1.1.1. IPACL[ํธ์ง]
์์ ๋ฌธ์ ACL๊ณผ๋ ๋ค๋ฅด๋ฉฐ, IP์ ์ ๊ทผ์ ์ ์ดํ๋ ๊ธฐ๋ฅ์ด์๋ค.[18] 4.18.0 ์
๋ฐ์ดํธ๋ฅผ ํตํด ACLGroup ๊ธฐ๋ฅ์ด ๋์ ์ถ๊ฐ๋๋ฉด์ ์ญ์ ๋์๋ค. IP ์ ๊ทผ ์ ์ด ๊ธฐ๋ฅ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒฝ์ฐ๋ณด๋ค๋ IP ์ฐจ๋จ ๊ธฐ๋ฅ์ด๋ผ๊ณ ๋ ๋ง์ด ๋ถ๋ ๋ค.
1.2. ๋ชจ๋์ํค์์์ ACL[ํธ์ง]
๋ชจ๋์ํค๋ ACL ์ค์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ผ๋ฉฐ, ๋๋ฌด์ํค์ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ show(์ด๋), editpage(ํธ์ง) ๋ฑ ๋ฌธ์ action์ ๊ถํ์ ์ง์ ํ๋ ๋ฐฉ์์ด๋ค. ๋ฌธ์ ๋ ๋ณ๋ณํ ๊ด๋ฆฌ ์ธํฐํ์ด์ค๊ฐ ์์ด ์ง์ ์ผ์ผ์ด ํ์ผ์ ์์ ํด์ผ ๋ฐ์์ด ๋์๋ค๋ ์ ์ธ๋ฐ, ์ด ๋๋ฌธ์ ๋ฆฌ๊ทธ๋ฒ ๋ค ์ํค๋ ๋ถ๊ด๋ฆฌ์๋ฅผ ๋ฝ๋ ๋ฐ ์๊ทน์ ์ด๊ฒ ๋์๋ค. ์ฌ์ ํ ์ฌํ ์ดํ ๊ธฐ๋ฅ์ด ๊ธ๋ฐฉ ๋ง๋ค์ด์ง ๊ฑธ๋ก ๋ด์๋ ๋ชป ๋ง๋ค์๋ค๊ธฐ๋ณด๋ค๋ ๊ท์ฐฎ์์ ๋ฃ์ง ์์์ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค.
๋ฆฌ๊ทธ๋ฒ ๋ค ์ํค์์๋ 2015๋ ๋ฆฌ๊ทธ๋ฒ ๋ค ์ํค ์ฌ์ ํ ์ฌํ ์ดํ ์ํค์ง๊ธฐ๋ผ๋ ์๋ฆฌ๋ฅผ ๋์ ํ๋ฉด์ ๊ธฐ์ด์ ์ธ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๋ง๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๋ชจ๋์ํค ๊ธฐ๋ณธ ์ ์ฉ ์ฌ๋ถ๋ ์ ์ ์๋ค.
๋ฆฌ๊ทธ๋ฒ ๋ค ์ํค์์๋ 2015๋ ๋ฆฌ๊ทธ๋ฒ ๋ค ์ํค ์ฌ์ ํ ์ฌํ ์ดํ ์ํค์ง๊ธฐ๋ผ๋ ์๋ฆฌ๋ฅผ ๋์ ํ๋ฉด์ ๊ธฐ์ด์ ์ธ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๋ง๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๋ชจ๋์ํค ๊ธฐ๋ณธ ์ ์ฉ ์ฌ๋ถ๋ ์ ์ ์๋ค.
1.3. ๋ฏธ๋์ด์ํค์์์ ๋ณดํธ ๊ธฐ๋ฅ[ํธ์ง]
๋ฏธ๋์ด์ํค ์์ง์ ๊ฒฝ์ฐ ์ญ์ ์์ฑ, ์ญ์ , ํธ์ง์ด๋ ์ด๋, ์ด๋์ ์ ํํ๋ ๊ธฐ๋ฅ์ด ์กด์ฌํ๋, ์ด ์ชฝ์์๋ ACL์ด ์๋ '๋ณดํธ'๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ์ํค๋ฐฑ๊ณผ์ ๊ฒฝ์ฐ ํ์ ์์ (์ ๊ท ๊ฐ์
ํ ์ฌ์ฉ์ ์ ์ธ)์ '์ค๋ณดํธ'๋ก, ๊ด๋ฆฌ์ ์์ ์ '์์ ๋ณดํธ'๋ก ๋ถ๋ฆฐ๋ค.
[1] ์ฌ์ค์ ๊ด๋ฆฌ์๋ค์ด Access Control List์ ์ค์ ํ๋ฉด, ํ์ ์๋์ผ๋ก ๋ฃ์ด์ผ ํ๋ค. ์ผ๋ฐ ์ฌ์ฉ์๊ฐ ํด๋น ํ๋ค์ ๋ฌด๋จ์ผ๋ก ์ฝ์
ํ๊ฑฐ๋ ์ ๊ฑฐํ๋ฉด ํธ์ง๊ถ ๋จ์ฉ์ผ๋ก ๊ฐ์ฃผ๋์ด ์ ์ฌ๋ฅผ ๋ฐ์ ์ ์๋ค. ๋จ, ์ค์ ํธ์ง์ ํ๊ณผ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ ํด๋นํ๋ ์ ๊ทผ์ ํ ํ์ ๋ถ์ด๊ฑฐ๋ ๋ผ๋ ๊ฒ์ด ํ์ฉ๋๋ค.
[2] ๊ณผ๊ฑฐ์ SELinux๊ฐ ์๋ ์์ ๋ฆฌ๋
์ค๊ฐ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๋ค. ์์์ ์ ๊ทผํต์ ๋ ์ฌ์ฉ์ ID๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฃ์ ์ ๊ทผํ๋ ๊ฒ์ ์ ์ดํ๋ ๋ฐฉ์์ด๋ค. ์ฌ๊ธฐ์ ACL์ ์ ๊ทผ ํ์ฉ ์์ด๋๋ฅผ ์ ์ฅํด๋๋ ๋ชฉ๋ก์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
[3] ์ฐธ๊ณ ๋ก ์ด๊ฒ ๊ฑฐ๋ถ๋๋ฉด ํธ์ง์ ๋น๋กฏํ ๋ชจ๋ ๊ถํ(ACL ํ์ธ ์ ์ธ)์ด ๊ฑฐ๋ถ๋๋ค. ํธ์ง์ ๋ค์ด๊ฐ๋ฉด ๋ฌธ์์ RAW(๋ฌธ๋ฒ์ ํฌํจํ ๋ชจ๋ ๊ธ์)๋ฅผ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ. ์ด์ธ์๋ ๋ฌธ์์ ๋ด์ฉ์ ๋ณผ ์ ์๋ ๊ธฐ๋ฅ์ด ๋งํ๋ค. ๊ณผ๊ฑฐ์๋ ๋๋๋ฆฌ๊ธฐ ๊ธฐ๋ฅ์ ์ด์ฉํด์ ๋ด์ฉ์ ๋ณผ ์ ์๋ ๋ฒ๊ทธ๊ฐ ์์์ผ๋ ์ธ์ ๋ถํฐ์ธ๊ฐ ํจ์น๋์๋ค. ์ฝ๊ธฐ ACL์ ๊ณผ๊ฑฐ์๋ ๊ฐ๋ณ ๋ฌธ์์์ ์กฐ์ ํ ์ ์์์ผ๋, ์ด๋ ์์ ๋ถํฐ๋ ์กฐ์ ํ ์ ์์ผ๋ฉฐ, ์ด๋ฆ๊ณต๊ฐ(๋ค์์คํ์ด์ค)์์๋ง ์กฐ์ ์ด ๊ฐ๋ฅํ๋ค. ๋ํ์ ์ผ๋ก ํด์งํต ๋ค์์คํ์ด์ค๋ perm:admin ACL์ด ์ ์ฉ๋์ด ์๋ค.
[4] ์ด๊ฒ ๊ฑฐ๋ถ๋๋ฉด ์ด๋, ์ญ์ ๋ ๊ฑฐ๋ถ๋๋ค.
[5] gotons๋ก ์ค์ ์, ํด๋น ์ฌ์ฉ์๋ ์ด๋ฆ๊ณต๊ฐ ACL ๊ท์น์ ํต๊ณผํ ๊ฒฝ์ฐ ํ์ฉ๋๋ค.
[7] ์ฆ, ์ผ๋ฐ ์ฌ์ฉ์์ ๋ํ ๊ถํ๋ ์ค์ ํ ์ ์๋ค.
[8] ์ฐจ๋จ ์์ดํผ/์ฌ์ฉ์ ๊ถํ์ด ๋ถ๋ฆฌ๋๋ฉด์ ํจ๋ ฅ์ด ์์ด์ง ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
[10] ์ฌ์ฉ์ ๋ฌธ์์ ์ด๋ฆ๊ณต๊ฐ ACL์ ์ฌ์ฉ๋๋ฉฐ, ํด๋น ์ฌ์ฉ์๋ง ํธ์งํ ์ ์๋๋ก ํ๋ค.
[11] ์์์ ๋ฌธ์์ 1๋ฒ์ด๋ผ๋ ๊ธฐ์ฌํ ์ฌ์ฉ์. ์ผ๋ฐ ๋ฌธ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฉ๋๋ ACL์ด์์ผ๋, 2020๋
8์ 25์ผ ACL ๊ฐํธ ์ดํ์๋ ๊ฑฐ์ ๋ณด์ด์ง ์๋๋ค.
[12] ์ด๋ฆ๋๋ก ์ฐจ๋จ๋ ์์ดํผ๋ ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ทธ๋ฃน์ผ๋ก, ๊ธฐ์กด ์ฐจ๋จ์ ๋ชจ๋ ์ผ๊ด ์ ์ฉ๋์๋ค.
[13] ๋ฐ์ดํฐ์ผํฐ IP ๋ฑ ์ผ๋ฐ์ ์ผ๋ก ์ธํฐ๋ท ์ ์์ ์ฌ์ฉ๋๋ ๋์ญ์ด ์๋ ๊ฒฝ์ฐ ์ ์ฉ๋๋ฉฐ ACL ๊ฐํธ ์ ์๋ ์์ดํผ ์ฐจ๋จ ํํ๋ก ๋์ด ์์์ผ๋ ๊ฐํธํ ๋ณ๋ ๊ทธ๋ฃน์ผ๋ก ๋ถ๋ฆฌ๋์๋ค.
[14] ์์ดํผ ์ค ๋ก๊ทธ์ธํ ๊ฒฝ์ฐ ์ด์ฉ์ ํ์ฉํ๋ ๊ฒ์ผ๋ก, ACL ๊ฐํธ ์ ์๋ ์ฐจ๋จ์ ๋ก๊ทธ์ธ ํ์ฉ ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ ๋ฐฉ์์ผ๋ก ์ด๋ฃจ์ด์ก๋ค.
[15] VPNGate์ ๊ณต์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ์์ดํผ๊ฐ ์ํ๋ ๋์ญ์ผ๋ก, ํด๋น ๊ทธ๋ฃน์ ์ํด ํธ์ง์ด ๋งํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฒ์ํ์ VPNGate ํด์ ์ธ์ฆ์ ํ๋ฉด ํ์ด์ค๋ค.
[16] ์ฆ perm:member๋ง ์ก์
:gotons์ผ๋ก ์ด๋ฆ๊ณต๊ฐ ACL์ ์ ์ฉํ๋ ๊ฒฝ์ฐ ์์ดํผ๋ก ํธ์ง์ ์ ์ฉํ ACL์ด ์์ด ํธ์ง์ด ๊ฑฐ๋ถ๋๋ค. (๋์ ํธ์ง ์์ฒญ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ ํธ์ง ์์ฒญ ํ์ด์ง๋ก ์ด๋๋๋ค.)
[18] ๊ทธ๋์ IP Access Control List => IPACL์ด๋ค.