setuid s(4xxx), setgid s(2xxx), sitckybit t(1xxx)๋ ๊ธฐ์กด ๊ถํ์ x๊ฐ ์์ ๋๋ง ์ ์ฉ๋๊ณ , ์์ผ๋ฉด S, T๊ฐ ๋ถ๋๋ฐ, ์ ๋๋ก ์คํ๋์ง ์๋๋ค.
์ผ๋ฐ์ ์ผ๋ก Linux์์ A ๋ช
๋ น์ด๊ฐ ์คํ๋๋ ์์๋ '$HOME/bin์ด๋ $PATH์์ A ๋ช
๋ น์ด์ ์์น๋ฅผ ์ฐพ๊ณ =>A ๋ช
๋ น์ด ์คํ์์ ์คํ๊ถํ์ ํ์ธํด์ ์คํ๊ถํ์ด ์์ผ๋ฉด A ๋ช
๋ น์ด๋ฅผ ์คํ์ํค๊ณ , ์์ผ๋ฉด A ๋ช
๋ น์ด(ํ์ผ)์ SetUID๊ฐ ์ค์ ๋์ด ์๋์ง ๋ณด๊ณ =>SetUID๊ฐ ์ค์ ๋์ด ์์ผ๋ฉด ํ์ฌ ์คํ์์ UID๋ก A ๋ช
๋ น์ด๋ฅผ ์คํํ๋ค, ๊ทธ๋ฌ๋ UID๊ฐ ์์ผ๋ฉด ์คํ์ด ์ ๋๋ค '์ด๋ค. ๋ณด์์ ์ํํ์ง๋ง ํ์ฉ์ ์ ์ฉํ๋ฏ๋ก Linux ์์คํ
์ ์ด๋ฐ ์ค์ ์ ์ ์งํ๊ณ ์๋ค. ๋ฐ๋ผ์ ๊ด๋ฆฌ์๊ฐ SetUID๊ฐ ์ค์ ๋ ํ์ผ๋ค์ ๋ ๊ฐ์ํด์ผ ํ๋ค. ์์ ์๋ ๋ง์ ํ์ผ๋ค์ SetUID๊ฐ ์ค์ ๋์ด์ ธ ์์์ง๋ง ํ์ฌ๋ ์ด๋ฐ ๋ณด์์ ๋ฌธ์ ๋ก ์ธํด์ ๋ง์ด ์ค์ด๋ค์๋ค. SetUID๋ก ์ค์ ๋ ๋ถ๋ชจ ๋๋ ํฐ๋ฆฌ ์๋์ ์์ฑ๋๋ ์์ ๋๋ ํฐ๋ฆฌ/ํ์ผ์ ๋ชจ๋ ๋ถ๋ชจ ๋๋ ํฐ๋ฆฌ์ ์์ฑ์ ์์(inherited)ํ๊ฒ ๋๋ค.
user ๊ถํ์ s๊ฐ ์๋ ํผ๋ฏธ์
์ SetUID๊ฐ ์ค์ ๋์๋ค๊ณ ํ๋ค. root ์์ ์ ํ์ผ์ด๋ ๋ช
๋ น์ด์ SetUID๊ฐ ์ค์ ๋์ด ์์ผ๋ฉด ์ผ๋ฐ ์ฌ์ฉ์๋ ํด๋น ๋ช
๋ น์ด๋ ํ์ผ์ ์คํํ ์ ์๊ฒ ๋๋ค.
=>centos ์์ฉ์๊ฐ cat /etc/shadow ํ๋ฉด
/usr/bin/cat ๋ช
๋ น์ด๋ -r-xr-x-r-x์ด์ด์ other๋ x ๊ถํ์ด ์์ด์ ์คํํ ์ ์๋ค.
/etc/shadow ํ์ผ์ --------- root root ์ด์ด์ ์ค์ง root๋ง ์์
ํ๊ฒ ๋์ด ์๋ค.
=>chmod 4222 /usr/bin/cat ํด์ cat ๋ช
๋ น์ด์ SetUID๋ฅผ ๊ฑธ๊ฑฐ๋
chmod 4222 /etc/shadow ํด์ /etc/shadow ํ์ผ์ SetUID๋ฅผ ๊ฑฐ๋ฉด
์ผ๋ฐ ์ฌ์ฉ์ centos๋ ์ด /etc/shadow ํ์ผ์ ์ฝ์ ์ ์๋ค!!!
SetUID๋ SetGID๋ฅผ ์์ ๋ ค๋ฉด chmod 0555์์ผ๋ก ํ๊ฑฐ๋ chomod u-s ํ๋ฉด ๋๋ค.
find / -user root -perm +4000 2> /dev/null
์ด ๋ช
๋ น์ Linux/Unix ์์คํ
์์ ์คํ๋๋ "find" ๋ช
๋ น์ด์
๋๋ค. "find" ๋ช
๋ น์ด๋ ์์คํ
์ ํ์ผ ์์คํ
์์ ํ์ผ์ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ๊ธฐ์ "-user root"๋ ๋ฃจํธ ์ฌ์ฉ์๊ฐ ๋ง๋ ํ์ผ์ ๊ฒ์ํ๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
"-perm +4000"์ ์ํผ์ ์ ๊ถํ์ด ์๋ ํ์ผ์ ๊ฒ์ํ๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ํ์ผ์ "setuid" ๋๋ "setgid" ๋นํธ๊ฐ ์ค์ ๋ ํ์ผ์ ๋๋ค. "setuid" ๋๋ "setgid" ๋นํธ๊ฐ ์ค์ ๋ ํ์ผ์ ํด๋น ํ์ผ์ด ์คํ๋ ๋ ํ์ผ์ ์์ ์ ๋๋ ๊ทธ๋ฃน์ ๊ถํ์ผ๋ก ์คํ๋ฉ๋๋ค.
"2> /dev/null"์ ์ค๋ฅ ์ถ๋ ฅ์ ๋ฌด์ํ๊ณ ์๋ฌ๊ฐ ๋ฐ์ํด๋ ์ถ๋ ฅํ์ง ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด ๋ถ๋ถ์ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํ์๋์ง ์๋๋กํ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค.
๋ฐ๋ผ์ ์ด ๋ช ๋ น์ ์์คํ ์์ ๋ฃจํธ ์ฌ์ฉ์๊ฐ ๋ง๋ค๊ณ ์ํผ์ ์ ๊ถํ์ด ์๋ ํ์ผ์ ๊ฒ์ํ๊ณ ์ถ๋ ฅํฉ๋๋ค. ์ถ๋ ฅ ์ค์๋ ์ค๋ฅ ๋ฉ์์ง๊ฐ ํฌํจ๋์ง ์์ต๋๋ค.
other ๊ถํ์ t๊ฐ ์๋ ํผ๋ฏธ์
์ Sticky bit๊ฐ ์ค์ ๋์๋ค๊ณ ํ๋ค. ์ผ๋ฐ ์ฌ์ฉ์๋ค์ด ๊ณต๋์ผ๋ก ์ด์ฉํ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ํ๋ ๋ง๋ค์ด์ ํ์ผ ๋ฑ์ ๋ฃ์ด๋๊ณ ๊ฑฐ๊ธฐ์ Sticky bit๋ฅผ ์ค์ ํด๋๋ฉด /tmp ๋๋ ํฐ๋ฆฌ์ฒ๋ผ ์ผ๋ฐ ์ฌ์ฉ์๋ค์ ๊ณต์ฉ ๋๋ ํฐ๋ฆฌ๊ฐ ๋๋ค.
ํด๋น ๋๋ ํฐ๋ฆฌ๊ฐ root ์์ ์ผ์ง๋ผ๋ ๋๊ตฌ๋(other) ๋ค์ด์์ ์์
์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์๊ฐ ๊ณต์ง์ฌํญ์ ์ฌ๋ฆฌ๊ฑฐ๋ ๊ต์๊ฐ ๊ณผ์ ํ์ผ์ ํ์๋ค์๊ฒ ์ฌ๋ฆฌ๊ฒ ํ ๋ ๋ฑ์์ ์ด์ฉ๋ ์ ์๋ค.
ํน์ ํ์ผ/๋๋ ํฐ๋ฆฌ์ ๋ํด์ ํ์ํ ์ฌ์ฉ์๋ ๊ทธ๋ฃน์ ๋ํด์ root ๊ด๋ฆฌ์๊ฐ setUID๋ setGID๋ฅผ ์ค์ ํด์ฃผ์ง๋ง, Sticky bit๋ก ์ค์ ํด๋๋ฉด ๊ด๋ฆฌ์์ ๊ฐ์ญ ์์ด ๋๊ตฌ๋ ์ฝ๊ฒ ํด๋น ํ์ผ/๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
paul์ /home/centos๋ฅผ ๋ณผ ์ ์๋ค.
SetUID๋ฅผ ํตํ ์นจํฌ ์ 2๊ฐ์ง
ํด์ปค๋ ํจ์ค์๋๊ฐ ์ฝํ๊ฑฐ๋ ์ธ์
์ ์ด์ด๋๊ณ ์๋ ์ผ๋ฐ ์ฌ์ฉ์ ๊ณ์ ์ ํ์ณ์ ์ผ๋จ ํ๊ฒ ์์คํ
์์ ์นจํฌํ ๋ค์, ๊ถํ์์น์ ํตํด์ root ๊ถํ์ ์ป์ ๋ค, ์ค์ํ ํ์ผ์ SetUID๋ฅผ ์ค์ ํ๊ฑฐ๋ ๊ฐ์์ ์ผ๋ฐ ์ฌ์ฉ์ hacker๋ฅผ ๋ง๋ค์ด ๋๊ณ , ๋์ค์ ์ด SetUID๋ฅผ ์ค์ ํด๋ ํ์ผ์ด๋ hacker ์ฌ์ฉ์๋ฅผ ํตํด์ root ๊ถํ์ ์ฝ๊ฒ ์ป๊ธฐ๋ ํ๋ค. root ๊ถํ์ ์ค์ํจ์ ๊นจ๋ซ๊ฒ ํด์ฃผ๋ ๋ ๊ฐ์ง ์๋ฅผ ์ดํด๋ณด์.
1) Race Condition ์นจํฌ
Linux๋ C ํ๋ก๊ทธ๋จ์ผ๋ก ์์ฑ๋์ด ์๋ค. Linux๊ฐ ๋ฉํฐํ์คํน์ด์ด์ ๋์์ ์ฌ๋ฌ ์์
์ ์ํํ ์ ์๋๋ฐ ์์
์ ๋ค์ผ๋ฉด์ ๋ฆฌํฌํธ๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ์ฒ๋ผ ์์คํ
์ด ๋์์ ํ๋ ์ด์์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ค๊ณ ํ ๋ ์์์น ๋ชปํ ๊ถํ๋ฌธ์ ๊ฐ ์๊ธฐ๊ฒ ๋๋๋ฐ ์ด๋ฅผ ์ด์ฉํ ๊ณต๊ฒฉ์ด race condition ๊ณต๊ฒฉ์ด๋ค. ๋ฉํฐํ์คํฌ ์์
์ ์์ฃผ ์ ๋ฐํ ์๊ฐ ์ฐจ์ด(time slot์ผ๋ก ๋ถ๋ฆ)๋ก ์์
์ ๋๋ ๋ค ์คํ์์(sequences)๋ฅผ ๋ถ์ฌํด์ ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋๋ธ ๋ค ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๋๋ฐ ์ฌ๋์ ์ด ์ฐจ์ด๋ฅผ ์ ์ ์๋ค.
์ค์ต
yum -y install gcc-c++
cp -arp /etc/passwd /etc/passwd.bak
nano racec.c
gcc racec.c -o racec
chmod 4777 /etc/passwd (SETUID)
ls -l /etc/passwd
head -1 /etc/passwd
./racec /etc/passwd hacker::0:0:root:/root:/bin/bash
์ด ๋ช ๋ น์ "./racec"๋ผ๋ ์คํ ํ์ผ์ ์คํํ๋ ๊ฒ์ ๋๋ค. "./"๋ ํ์ฌ ๋๋ ํ ๋ฆฌ์์ ์คํ ํ์ผ์ ์ฐพ์ผ๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. "racec"๋ ์คํ ํ์ผ์ ์ด๋ฆ์ ๋๋ค.
๊ทธ ๋ค์์๋ "/etc/passwd"์ ๊ฐ์ ๊ฒฝ๋ก์ ํจ๊ป "hacker::0:0:root:/root:/bin/bash"์ ๊ฐ์ ๋ฌธ์์ด์ด ์ ๋ฌ๋ฉ๋๋ค. ์ด ๋ฌธ์์ด์ "/etc/passwd" ํ์ผ์ ์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ์๋ํ๋ ๊ฒ์ผ๋ก ์ถ์ธก๋ฉ๋๋ค.
"/etc/passwd" ํ์ผ์ Linux/Unix ์์คํ ์์ ์ฌ์ฉ์ ๊ณ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ํ์ผ์ ๋๋ค. ๊ฐ ์ค์ ์ผํ๋ก ๊ตฌ๋ถ๋ ํ๋๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ํ๋๋ ์ฌ์ฉ์ ์ด๋ฆ, ์ํธํ๋ ๋น๋ฐ๋ฒํธ, ์ฌ์ฉ์ ID, ๊ทธ๋ฃน ID, ์ฌ์ฉ์ ํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก, ๋ก๊ทธ์ธ ์ ธ ๊ฒฝ๋ก ๋ฑ์ ํฌํจํฉ๋๋ค.
"hacker::0:0:root:/root:/bin/bash"๋ ์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๋๋ค. ์ด ์ฌ์ฉ์๋ "hacker"๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง๋ฉฐ, ์ํธํ๋ ๋น๋ฐ๋ฒํธ๊ฐ ์์ผ๋ฏ๋ก ๋๊ตฌ๋ ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ID์ ๊ทธ๋ฃน ID๋ ๋ชจ๋ 0์ผ๋ก ์ค์ ๋์ด ์์ผ๋ฉฐ, ์ฌ์ฉ์ ํ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ "/root"๋ก ์ค์ ๋์ด ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก, ์ด ์ฌ์ฉ์๋ "/bin/bash" ๋ก๊ทธ์ธ ์ ธ์ ์ฌ์ฉํฉ๋๋ค.
์ด ๋ช ๋ น์ด๋ ์์คํ ์ ์์์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๋ ค๋ ์ ์์ ์ธ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ผ๋ฏ๋ก, ๋ณด์ ์ํ์ด ๋ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์คํ๊ฒ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
hacker@centos1 centos]# cat /etc/passwd
hacker::0:0:root:/root:/bin/bash
[hacker@centos1 centos]# su centos
su: user centos does not exist
์ด ๋ช ๋ น์ด๋ "hack.c"๋ผ๋ ์์ค ์ฝ๋ ํ์ผ์ ์ปดํ์ผ๋ฌ์ธ GCC๋ฅผ ์ฌ์ฉํ์ฌ ์คํ ๊ฐ๋ฅํ "hackk"๋ผ๋ ์ด๋ฆ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ์ปดํ์ผํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
"-o" ์ต์ ์ ์ถ๋ ฅ ํ์ผ์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ "hack.c" ํ์ผ์์ ์์ฑ๋ ์คํ ํ์ผ์ ์ด๋ฆ์ "hackk"๊ฐ ๋ฉ๋๋ค.
"GCC"๋ GNU Compiler Collection์ ์ฝ์์ด๋ฉฐ, C์ C++์ ๋น๋กฏํ ๋ค์ํ ์ธ์ด๋ก ์์ฑ๋ ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ปดํ์ผ๋ฌ๋ ์์ค ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ํํ๋ก ๋ง๋ค์ด ์ค๋๋ค.
๋ฐ๋ผ์ ์ด ๋ช ๋ น์ด๋ "hack.c" ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ์ฌ ์คํ ๊ฐ๋ฅํ "hackk" ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค.
hack.c ์์ค ์ฝ๋๋ฅผ ์ปดํ์ผํ์ฌ ์คํ ๊ฐ๋ฅํ hackk ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์์ฑํด์ฃผ๊ณ , 4777๋ก setuid๋ฅผ ์คฌ๋ค.
"find / -user root -perm 777 -print | less" ๋ช ๋ น์ด๋ ์ ์ฒด ํ์ผ ์์คํ ์์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ ("/")๋ฅผ ์์์ผ๋ก ์ฌ์ฉ์ "root"๊ฐ ์์ ํ ๊ถํ์ด "777"๋ก ์ค์ ๋ ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐพ์ต๋๋ค.
"-print" ์ต์ ์ ์ฐพ์ ๋ชจ๋ ์ผ์นํ๋ ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์ ์ถ๋ ฅํฉ๋๋ค.
ํ์ดํ ๊ธฐํธ "|"๋ "find" ๋ช ๋ น์ ์ถ๋ ฅ์ "less" ๋ช ๋ น์ผ๋ก ๋ณด๋ด์ด ์ถ๋ ฅ์ ํ ํ๋ฉด์ฉ ๋ณด์ฌ์ค๋๋ค.
์ด ๋ช ๋ น์ด๋ ์ง๋์น๊ฒ ๊ถํ์ด ๊ฐ๋ฐฉ๋ ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ๋ฅผ ์ฐพ์ ๋ณด์ ์ํ์ ์ค์ผ ๋ ์ ์ฉํฉ๋๋ค.
2) ํ์ผ ๊ต์ฒด๊ธฐ๋ฒ
์ด๋ฒ์๋ ๊ธฐ์กด์ root ์์ ์ ์คํ ํ์ผ์ ์
์ฑ์ฝ๋๋ก ๊ต์ฒดํด์ ํด์ปค๊ฐ root ๊ถํ์ ์ป์ด ๋ณด์.
SSL(Secure Socket Layer)
SSL์ ์ด์ฉํ ํค๋ก ssh, scp, https, sftp ๋ฑ์ ํ์ฉํ๋ฉด ์ผ๋ฐ์ ์ธ ํ๋ฌธ์ฅ ์ฐ๊ฒฐ์ด ์๋ ํค๋ฅผ ์ฌ์ฉํ๋ ์ํธํ๋ ์ฐ๊ฒฐ์ ์ด๋ฃจ๋ฏ๋ก ๋ณด์์ด ์ข์์ง๋ค. ์ ๋ช
ํฌํธ ์ฌ์ดํธ๋ ์ด๋ฏธ ๋ถํน์ ์ฌ์ฉ์๋ค์ด ์ ์ํ๋ ๊ฒ์ ๋๋นํด์ ๊ฐ ๋ธ๋ผ์ฐ์ ๋ณ๋ก ์ธ์ฆ์๋ฅผ ๋ฃ์ด ๋์๋ค. ์ค์๊ธฐ์
์์๋ ์์ ์ SSL์ ์ฌ์ฉํ๋ ์๋น์ค์ ์ ์ํ๋ ค๋ฉด ๋ธ๋ผ์ฐ์ ์ SSL ํค๊ฐ ์์ด์ผ ํ๋ค.
์ธ์ฆ์์ ๋ด์ฉ์ CN(Common Name), O(Organization), OU(Organizational Unit) ๋ฑ๊ณผ Fingerprints์์ SHA-256๊ณผ ๊ฐ์ ์ํธํ ์๊ณ ๋ฆฌ์ฆ, Period of Validity์์ ํค์ ์ ํจ๊ธฐ๊ฐ ๋ฑ์ ๋ณผ ์ ์๋ค. ์ ๋ช
์ฌ์ดํธ๋ ๊ฐ์ข
์น ๋ธ๋ผ์ฐ์ ์ ์ด๋ฏธ ํด๋น ์ฌ์ดํธ์ ์ธ์ฆํค๋ฅผ ๋ฃ์ด์ ๋๊ตฌ๋ ๋ค์ด๊ฐ ์ ์๊ฒ ํ ์ด์ ๋ https ์ํ์์๋ ํต์ ์ค์ ํจํท์ด ์ถ์ถ๋์ด๋ ์ด ์ธ์ฆ์์ ํค๊ฐ ์์ผ๋ฉด ๋ด์ฉ์ ๋ณ๊ฒฝํ์ง ๋ชปํ๊ฑฐ๋ ๋ณผ ์ ์๊ฒ ํ๊ธฐ ์ํด์์ด๋ค.
SSL์ ์ธ์ฆ์๋ฅผ ์์ฑํด์ ํด๋ผ์ด์ธํธ๋ค์ ์น๋ธ๋ผ์ฐ์ ์๊ฒ ๋ฐฐํฌํด์, ์๋ฒ ์ธํฐํ์ด์ค(์์ผ)๋ก ์ ์ํ๋ ํด๋ผ์ด์ธํธ๋ค์ ์ธ์ฆํด์ฃผ๋ ๋ชจ๋์ด๋ค. ์๋ฒ์ ์์ฒด์ ์ผ๋ก ์ธ์ฆํ ์ธ์ฆ์๋ฅผ ๋๊ฑฐ๋ VeriSign, COMODO, DigiCert, Global sign, Go Daddy, Microsoft Root, Thawte Premium,..๊ณผ ๊ฐ์ ๊ณต์ ์ธ ์ธ์ฆ๊ธฐ๊ด์์ ๋ฐํํ ์ธ์ฆ์๋ฅผ ๋๊ณ ํด๋ผ์ด์ธํธ๊ฐ ๋ค์ด๋ฐ์์ ์์ ์ ์น ๋ธ๋ผ์ฐ์ ์ ๋ฃ์ด๋๊ณ ์ ์ํ๊ฒ ํ๋ค. ์ธ์ฆ์๋ heartbleed๋ผ๋ ์ทจ์ฝ์ ๋ ๋ฐ๊ฒฌ๋๊ธฐ๋ ํ์ง๋ง ํ์ฌ ๋๋ถ๋ถ ์ฌ์ดํธ๋ SSL์ ์ฌ์ฉํด์ https๋ก ์ ์ํ๊ฒ ํ๋ค.
SSL์ Transport(TCP) ์ธต์ TLS ํ๋กํ ์ฝ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ SSL์ TLS๋ก๋ ๋ถ๋ฅด๋๋ฐ HTTPS(HTTP over SSL), SMTPS(SMTP over SSL), SFTP OR FTPS(FTP over SSL) ๋ฑ์ด ์๋ค. FTPS๋ ์ฌ์ฉ์๋ช
, ํจ์ค์๋, ๊ทธ๋ฆฌ๊ณ ์ธ์ฆ์๋ก ์ธ์ฆํ๊ณ , SFTP(FTP over SSH)๋ ์ฌ์ฉ์์ ํจ์ค์๋๋ก ์ธ์ฆํ๋ฉฐ, FTP๋ anonymous(์ต๋ช
) ์ฌ์ฉ์์ ํจ์ค์๋ ์์ด๋ ์ธ์ฆ๋๋ค.
๊ฐ๋ ์ด SSL๊ณผ SSH๋ฅผ ํผ๋ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ
โช SSH๋ A๊ฐ B์ ์ ์ํ ๋ ํ๋ฌธ์ฅ Telnet ๋์ A์ ์ธ์ฆ์๋ก B์๊ฒ์ ํ๋ฝ(์ธ์ฆ)๋ฐ์ ์ฐ๊ฒฐํด์ฃผ๋ ๋๊ตฌ์ด๊ณ
โช SSL์ A๊ฐ ssh๋ก B์ ์ ์ํ ๋ B์ ์ธ์ฆ์๋ก A๋ฅผ ์ธ์ฆํด ์ฃผ๋ ํค ์์ฑ ๋ชจ๋์ด๋ค.
์กฐ์ง์์ https:// ~ ์น ์๋ฒ๋ฅผ ์ด์ํ ๋(์ด ์น ์๋ฒ์ ์ ์์ ์ ํํ๋ .htpasswd ์ค์ ๊ณผ ํจ๊ป) ํด๋ผ์ด์ธํธ ๋ธ๋ผ์ฐ์ ์ ์ด SSL ํค๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ฌ์ฉ์๋ง ์ ์ํ ์ ์๋๋ก ํด์ ๋ณด์์ ๋์ฑ ๊ฐํํ ์๋ ์๋ค.
์กฐ์ง์์ ์ฌ์ค ์น ์๋ฒ๋ฅผ ์ด์ํ๋ ๊ฒฝ์ฐ
1. '๊ฐ์ธํค(key) ์์ฑ =>
2. ์ธ์ฆ์ ์์ฒญ์(csr) ์์ฑ =>
3. ์ ์ ์ธ์ฆ์(crt) ์์ฑ(OR ์ฌ์ฉ์ ๊ฐ์ธํค key์ ๊ณต๊ฐํค crt๋ฅผ ํฉ์น pem) =>
4. ์น ์๋ฒ์ค์ ์ /etc/httpd/conf/httpd.conf ํ์ผ์์ ์ธ์ฆ์ ์์น ์ง์ =>
5. SSL ์ค์ ์ ์ํ ssl.conf ํ์ผ์์ ์ธ์ฆ์ ์์น ์ง์ =>
6. ํด๋ผ์ด์ธํธ์ ์น๋ธ๋ผ์ฐ์ ์ ํด๋น ์๋ฒ์ crt ํค ๋ฑ๋ก =>
7. ํด๋ผ์ด์ธํธ๊ฐ ์ด crt ํค๋ก ์ธ์ฆ ๋ฐ์์ ํด๋น ์น ์๋ฒ์ https:// ~ ๋ก ์ ์' ์์ผ๋ก ์งํํ๋ค.
=>์ฌ์ค ์ฌ์ดํธ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์์ผ๋ก SSL์ ๊ตฌ์ถํ์ง๋ง ๋ถํน์ ๋ค์๊ฐ ์ ์ํ๋ ๊ณต์ ์ฌ์ดํธ๋ผ๋ฉด ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ค์ ์ํ ํค๋ฅผ ๊ทธ๋ค์ ์น๋ธ๋ผ์ฐ์ ๋ณ๋ก ๋ฃ์ด๋๋ ๋ฐฉ๋ฒ๋ ํจ๊ป ์ฐ๊ตฌํด๋ฌ์ผ ํ๋ค. ํ์ง๋ง ์ด๊ฒ์ด ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ ๋ช
์ฌ์ดํธ๋ ๋๊ธฐ์
์ ๋ถํน์ ๋ค์์ ํด๋ผ์ด์ธํธ๋ค์ ์ํ ๊ฐ์ข
๋ธ๋ผ์ฐ์ ์ ์์ ๋ค ์ฌ์ดํธ์ ๋ํ ์ธ์ฆ์๋ฅผ ๋ฏธ๋ฆฌ ๋ฃ์ด๋๋ค.
์ฌ์ค ์ฌ์ดํธ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์์ผ๋ก SSL์ ๊ตฌ์ถํ์ง๋ง ๊ณต์ ์ฌ์ดํธ๋ก ๋ถํน์ ๋ค์๊ฐ ์ ์ํ๋ค๋ฉด ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ค์ ์ํ ํค๋ฅผ ๊ทธ๋ค์ ์น๋ธ๋ผ์ฐ์ ๋ณ๋ก ๋ฃ์ด๋๋ ๋ฐฉ๋ฒ๋ ํจ๊ป ์ฐ๊ตฌํด๋ฌ์ผ ํ๋ค. ํ์ง๋ง ์ด๊ฒ์ด ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ ๋ช
์ฌ์ดํธ๋ ๋๊ธฐ์
์ ๋ถํน์ ๋ค์์ ํด๋ผ์ด์ธํธ๋ค์ ์ํ ๊ฐ์ข
๋ธ๋ผ์ฐ์ ์ ์์ ๋ค ์ฌ์ดํธ์ ๋ํ ์ธ์ฆ์๋ฅผ ๋ฏธ๋ฆฌ ๋ฃ์ด๋๋ค.
์ค์ต
yum -y install mod_ssl httpd httpd-tools
SSL์ ๊ด๋ จ๋ http์ ๊ด๋ จ๋ ๋ชจ๋ ํจํค์ง ์ค์น
cd /etc/pki/tls <<ํค๋ง
cat private/localhost.key
๋๋ฉ์ธ ์น์๋ฒ ๊ฐ์ธํค ์ใ ์ฑ
## When you send these two ~.csr and ~.key files to Quthorized Cerificate bureau, you get ~.crt file
## key => csr => ert (key+crt=pem) : /etc/pki/tls
## Not public key, but private key will be made for www.kahn.edu domain web server
crt ๋ฐ๊ธ ์๋ฃ
์คํ
์ด ์ฝ๋๋ ์ํ์น ์น ์๋ฒ์์ SSL(์ํธํ๋ ํต์ )์ ์ฌ์ฉํ์ฌ www.kahn.edu ๋๋ฉ์ธ์ผ๋ก ๋ค์ด์ค๋ HTTPS ์์ฒญ์ ๋ํ ๊ฐ์ ํธ์คํธ๋ฅผ ์ ์ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฆ ๊ธฐ๋ฐ ๊ฐ์ ํธ์คํธ(Name VirtualHost) ์ค์ ์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ, *:443 ํฌํธ๋ฅผ ์ฌ์ฉํ์ฌ HTTPS ์ฐ๊ฒฐ์ ์์ ํฉ๋๋ค.
<VirtualHost> ํ๊ทธ๋ ๊ฐ์ ํธ์คํธ๋ฅผ ์ ์ํ๊ธฐ ์ํ ๋ธ๋ก์ ๋๋ค. ์ด ๋ธ๋ก์์๋ ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ด ์ํ๋ฉ๋๋ค.
SSLEngine on: SSL ์์ง์ ํ์ฑํํฉ๋๋ค.SSLCertificateFile: SSL ์ธ์ฆ์ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ /etc/pki/tls/certs/www.kahn.edu.crt ํ์ผ์ ์ฌ์ฉํฉ๋๋ค.SSLCertificateKeyFile: SSL ์ธ์ฆ์์ ๊ฐ์ธ ํค ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ /etc/pki/tls/certs/www.kahn.edu.key ํ์ผ์ ์ฌ์ฉํฉ๋๋ค.DocumentRoot: HTTP ์์ฒญ์ ๋ํด ์น ์๋ฒ๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๋ฌธ์์ ์์น๋ฅผ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ /var/www/html์ ์ฌ์ฉํฉ๋๋ค.ServerName: ๊ฐ์ ํธ์คํธ์ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ www.kahn.edu๋ฅผ ์ฌ์ฉํฉ๋๋ค.ErrorLog: ์ค๋ฅ ๋ก๊ทธ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์์๋ /var/log/ssl_kahn_edu_error.log ํ์ผ์ ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ผ์ ์ด ์ค์ ์ www.kahn.edu ๋๋ฉ์ธ์ผ๋ก ๋ค์ด์ค๋ HTTPS ์์ฒญ์ ๋ฐ์๋ค์ด๊ณ , /etc/pki/tls/certs ๋๋ ํ ๋ฆฌ์์ SSL ์ธ์ฆ์์ ๊ฐ์ธ ํค ํ์ผ์ ์ฐธ์กฐํ์ฌ SSL ์ํธํ๋ฅผ ์ฌ์ฉํ์ฌ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค. ์ด ์์ฒญ์ /var/www/html ๋๋ ํ ๋ฆฌ์ ๊ธฐ๋ณธ ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ค๋ฅ ๋ก๊ทธ๋ /var/log/ssl_kahn_edu_error.log ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค.
nano -c /etc/httpd/conf.d/ssl.conf (์ํ์น ์น ๋ธ๋ผ์ฐ์ ์ SSL์ค์ ๋ณ๊ฒฝ)
๋ฐฉํ๋ฒฝ๋ ์ด์ด์ค๋ค.(http,https)
setenforce 0
service httpd restart
์๋ฌ ๋ ์ ์ด๊ฑธ๋ก ์ฝ๋ ๋ฐ๊ฟ์ฃผ๊ณ ์ฌ์์ ํ๋ค
.htpasswd๋ ์น ์๋ฒ์ ์ ์ ํ ๋ ๋ณ๋์ ํจ์ค์๋๊ฐ ์์ด์ผ ์ ์ํ ์ ์๋ค.
http ๋์ ํค๊ฐ ํผ๋ฃกํ https๋ก ์ ์ํ๊ธฐ๋ ํ์ง๋ง ใด์ฌ๊ธฐ์ .htpasswd๋ฅผ ์ค์ ํด์ฃผ๋ฉด๋์ฑ ๋ณด์์ด ๊ฐํด์ง๋ค.
nano /etc/httpd/conf/auth-basic.conf
/var/www/html/index.html์ ์ง๋๊ฐ์ผ ๋๋๋ฐ ๊ฑฐ๊ธฐ์ auth basic์ ๊ฑธ์ด๋จ์ผ๋ htpasswd์ ์ธ์ฆ์ ๊ฑฐ์ณ์ผ ๋ค์ด๊ฐ ์ ์๋ค.
ํด๋น ์ฝ๋๋ Apache ์น ์๋ฒ์์ Basic ์ธ์ฆ์ ์ฌ์ฉํ๋ ์ค์ ์ ํ๋ ์ฝ๋์ ๋๋ค.
<Directory> ํ๊ทธ๋ก ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ /var/www/html/auth-basic ๋๋ ํ ๋ฆฌ๊ฐ ์ง์ ๋์์ต๋๋ค.AuthType Basic์ Basic ์ธ์ฆ์ ์ฌ์ฉํ๊ฒ ๋ค๋ ์ค์ ์ ๋๋ค.AuthName์ ๋ก๊ทธ์ธ ๋ํ์์์ ๋ํ๋ ๋ฉ์์ง๋ฅผ ์ง์ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ "Basic Authentication"์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค.AuthUserFile์ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ์ํธ๋ฅผ ์ ์ฅํ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ /etc/httpd/conf/.htpasswd ํ์ผ์ด ์ง์ ๋์ด ์์ต๋๋ค.require valid-user๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ๊ฑฐ์ณ์ผ ํ๋ค๋ ์ค์ ์ ๋๋ค.
์ด ์ค์ ์ ์ ์ฉํ๋ฉด /var/www/html/auth-basic ๋๋ ํ ๋ฆฌ์ ์ ๊ทผํ ๋, ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๊ฒ ๋๊ณ , ์ ๋ ฅํ ์ ๋ณด๊ฐ /etc/httpd/conf/.htpasswd ํ์ผ์ ๋ฑ๋ก๋ ์ฌ์ฉ์ ์ ๋ณด์ ์ผ์นํ๋ ๊ฒฝ์ฐ์๋ง ํด๋น ๋๋ ํ ๋ฆฌ์ ์ ๊ทผํ ์ ์๊ฒ ๋ฉ๋๋ค.
htpasswd -c /etc/httpd/conf/.htpasswd centos
์ด ๋ช ๋ น์ด๋ /etc/httpd/conf/.htpasswd ํ์ผ์ centos ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ถ๊ฐํฉ๋๋ค. "-c" ์ต์ ์ ํ์ผ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ํ์ผ์ ์์ฑํ๊ณ , ์ด๋ฏธ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ๋ฎ์ด์์ฐ๋ผ๋ ์๋ฏธ์ ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ช ๋ น์ด๋ฅผ ์คํํ๋ฉด ์๋ก์ด /etc/httpd/conf/.htpasswd ํ์ผ์ด ์์ฑ๋๋ฉฐ, ์ด ํ์ผ์๋ "centos" ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๊ฐ ์ ์ฅ๋ฉ๋๋ค. ์ดํ์ ์ด ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ด ํ์ํ ๋๋ ํ ๋ฆฌ์ ์ ๊ทผํ๋ ค๊ณ ํ ๋๋ ์ด ํ์ผ์ ์ ์ฅ๋ ์ธ์ฆ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ํด์ผ ํฉ๋๋ค.
๋ณด์ ์ด์ค
cp -arp /etc/pki/tls/certs/www.kahn.edu.crt /home/centos/Desktop(๋ณต์ฌ, ๋ด ๋ฐ ์ค๋ผ๊ณ )
shared๋ ์๋๊ณ ~~~ usb๋ ์๋ผ์~~
scp /home/centos/Desktop/www.kahn.edu.crt ubuntu@192.168.100.134:/home/ubuntu/Desktop/www.kahn.edu.crt์ด๊ฑธ๋ก ๋ณด๋๋ค... ์๊ฐ ์๊น์...
ํ๊ฒ๋จธ์ ํ๋ฐ ํค๋ฅผ ๋ณด๋๋ค.
[root@centos1 centos]# ls /var/www/html
index.html
[root@centos1 centos]# rm -rf /var/www/html/index.html
mkdir /var/www/html/auth-basic auth-basic์ ๋ง๋ค์ด ์ค๋ค.
echo "<h1>Secured CentOS Web Page</h1>" > /var/www/html/auth-basic/index.html ๊ทธ ์๋์ index.html์ ๋ง๋ค์ด์คฌ๋ค.
service httpd restart
์ด๊ฒ ๋จ๊ธด ํ๋๋ฐ... ์ ์ค๊ฐ ๊ณผ์ ์
์ด๊ฒ ์ ๋ฐ๊น??
์ํผ ....ใ ใ ์ข ๋ฃ