์ํผ๋ฐ๋ชฌ์ ๋ํ ๋ณด์
๋ง์ฝ ์์ ํ์ทจํ๋ ๋ฐ๋ชฌ์ด /etc/services์ ์ถ๊ฐ๋๊ณ , ํด๋น ๋ฐ๋ชฌ์ ์ค์ ์ด /etc/xinetd.d์ ์กด์ฌํ๋ค๋ฉด, xinetd๋ ํด๋น ํฌํธ๋ก ๋ค์ด์ค๋ ์์ฒญ์ ๊ทธ ๋ฐ๋ชฌ์๊ฒ ์ ๋ฌํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด telnet ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํ ๋ xinetd์ ํฌํธ๊ฐ ์ด๋ฏธ ์์ ํ์ทจํ๋ ๋ฐ๋ชฌ์ ํฌํธ๋ก ์ง์ ๋์ด ์์ผ๋ฏ๋ก, ์ด ํฌํธ๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐํ๋ฉด xinetd ๋ฐ๋ชฌ์ด ํ
๋ท์ ์์ฒญ์ ๋ฐ์ ์ฐ๊ฒฐํด์ค ๋ ์ฌ์ฉ์์ ์์ ํ์ทจํ ์ ์๋ค.
๋ง์ฝ ์์ ํ์ทจํ๋ ๋ฐ๋ชฌ์ด ํน์ ํฌํธ์ ์ฐ๊ฒฐ๋์ด ์๊ณ , xinetd๊ฐ ํด๋น ํฌํธ๋ก ๋ค์ด์ค๋ ์์ฒญ์ ๊ทธ ๋ฐ๋ชฌ์๊ฒ ์ ๋ฌํ๋๋ก ์ค์ ๋์ด ์๋ค๋ฉด, ์ฌ์ฉ์๊ฐ ๊ทธ ํฌํธ๋ก telnet๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํ๋ฉด, ํด๋น ๋ฐ๋ชฌ์ ์ฌ์ฉ์์ ์์ ์ ๊ทผํ๊ฑฐ๋ ํ์ทจํ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ง์ฝ ์์ ํ์ทจํ๋ ๋ฐ๋ชฌ์ด ํน์ ํฌํธ์ ์ฐ๊ฒฐ๋์ด ์๊ณ , xinetd๊ฐ ํด๋น ํฌํธ๋ก ๋ค์ด์ค๋ ์์ฒญ์ ๊ทธ ๋ฐ๋ชฌ์๊ฒ ์ ๋ฌํ๋๋ก ์ค์ ๋์ด ์๋ค๋ฉด, ์ฌ์ฉ์๊ฐ ๊ทธ ํฌํธ๋ก telnet๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐํ๋ ค๊ณ ์๋ํ๋ฉด, ํด๋น ๋ฐ๋ชฌ์ ์ฌ์ฉ์์ ์์ ์ ๊ทผํ๊ฑฐ๋ ํ์ทจํ ์ ์๊ฒ ๋ฉ๋๋ค.
๋ฐฑ๋์ด๋
๋ฐฑ๋์ด๋ ์์คํ
์ ์ ์์ ์ธ ์ธ์ฆ ์ ์ฐจ๋ฅผ ์ฐํํ์ฌ ๋น๋ฐ๋ฆฌ์ ์ ๊ทผํ ์ ์๋ ๋น๋ฐ ๊ฒฝ๋ก๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๋ ๋ณด์ ์์คํ
์ ์ฐํํ๊ฑฐ๋ ์ ์ดํ ์ ์๋ ๋ฅ๋ ฅ์ ์ ๊ณตํ๋ฏ๋ก, ์
์์ ์ธ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
conlimit์ผ๋ก ์๊ฒฉ์์ SSH ์ฐ๊ฒฐ ์๋ฅผ ์ ํํ ์๋ ์๋ค.
conlimit์ ์๊ฒฉ์์ SSH ์ฐ๊ฒฐ ์๋ฅผ ์ ํํ ์ ์๋ ๋ช
๋ น์ด์
๋๋ค. conlimit ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ IP ์ฃผ์์์ SSH ์ฐ๊ฒฐ์ ํ์ฉํ ์ ์๋ ์ต๋ ์์ SSH ์ฐ๊ฒฐ์ ์๋ํ ํ ์ ์ ๋์ ์ฐ๊ฒฐ์ ์ฐจ๋จํ๋ ์๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
/etc/ssh/sshd_config ์ค์ ์์ SSH ์ฐ๊ฒฐ์ ์ ํํ ์๋ ์๋ค.
port 20022 ์์ผ๋ก ํฌํธ๋ ์ง์ ํ๊ณ ,
PermitRootLogin no AllowUsers centos ubuntu
์์ผ๋ก root ๋ก๊ทธ์ธ์ ๋ง๊ณ ์ ์ ๊ฐ๋ฅํ user๋ค์ ์ค์ ํด์ค ์๋ ์๋ค.
PAM
/etc/pam.d ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ์ค์ ์ ํด๋๋ฉด sshd ๋ฑ์ ์๋ ๊ฐ๋ณ์ ์ธ ์ค์ ๋ณด๋ค ์ฐ์ ํ๋ค.
์ผ๊ด์ฑ ์๋ ์ค์ ์ ํ ์ ์๋ค.
PAM์ ์ฌ์ฉ์ ์ธ์ฆ, ๊ณ์ ์ ํ, ํจ์ค์๋ ๊ด๋ฆฌ ๋ฑ ๋ค์ํ ์ธ์ฆ ์์
์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ์คํ๋ API๋ฅผ ์ ๊ณตํ๋ ์์คํ
์ธ๋ฐ,
PAM์ ์ค์ ํด๋๋ฉด ๊ฐ๊ฐ์ ์ค์ ์ด ํ์ ์์คํ
์ ์ผ๊ด ์ ์ฉ๋๋ค.
PAM์ ์ฅ์ ์ ์ ์ฐ์ฑ์ ์๋ค. ๊ฐ๋ฐ์๋ค์ PAM ๋ชจ๋์ ์์ฑํ๊ณ , ์ด๋ฅผ ์กฐํฉํ์ฌ ์ํ๋ ์ธ์ฆ ๋ฐฉ์์ ๊ตฌํํ ์ ์๋ค.
์์คํ
๊ด๋ฆฌ์๋ ์ด๋ฌํ ๋ชจ๋๋ค์ ์ด์ฉํ์ฌ ๊ฐ ์๋น์ค๋ณ๋ก ์๋ก ๋ค๋ฅธ ์ธ์ฆ ๋งค์ปค๋์ฆ์ด ํ์ํ ๊ฒฝ์ฐ์๋ ์ ์ฐํ๊ฒ ๋์ํ ์ ์๋ค.
์ฌ์ฉ์ ๊ด๋ จ ํ์ผ
/etc/passwd : ์ฌ์ฉ์ ๊ณ์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ ํ์ผ
/etc/shadow : ์ฌ์ฉ์์ ์ํธํ๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ ์ฅ๋์ด ์๋ ํ์ผ
/etc/group : ๊ทธ๋ฃน ์ ๋ณด๊ฐ ์ ์ฅ๋๋ ํ์ผ
/etc/login.defs : ์ฌ์ฉ์ ๊ณ์ ์์ฑ๊ณผ ๊ด๋ จ๋ ๊ธฐ๋ณธ ์ค์ ์ ์ ์ ํ๋ ํ์ผ
/etc/default/useradd : useradd ๋ช
๋ น์ด์ ๊ธฐ๋ณธ ์ต์
์ ์ค์ ํ๋ ํ์ผ
/etc/skel : ์๋ก์ด ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ์ ๋ณต์ฌ๋ ์ด๊ธฐ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ๋ฅผ ํฌํจํ๋ ๋๋ ํฐ๋ฆฌ
/etc/login.defs์์ ํ ์ ์๋ ์ค์
์ํธ ์์ฑ ์๊ณ ๋ฆฌ์ฆ ๋ณ๊ฒฝ(๋ ๊ฐ๋จํ๊ฒ)
์ฌ์ฉ์๋ฅผ ๋ง๋ค๋ฉด์ ํจ์ค์๋๋ ํ๊บผ๋ฒ์ ๋ง๋ค๊ธฐ
JavaScript
๋ณต์ฌ
adduser tester1 ; echo "tester1:tester1" | chpasswd
ํฐ๋ฏธ๋์ ๋ํ ๊ฒ๋ค
ํฐ๋ฏธ๋
|
์ค๋ช
|
console
|
์ฌ์ฉ์์ ์ปดํจํฐ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ๋งํ๋ค.
|
tty (Tele-TYpewriter)
|
tty1~tty11๊น์ง ์๋๋ฐ root๊ฐ ์ด ๊ฐ์ ํฐ๋ฏธ๋์ ํตํด์ ์ ์ํ ์ ์๋ค. ๋ณดํต tty0๋ ๋ชจ๋ํฐ/ํค๋ณด๋์๊ฒ ํ ๋น๋๊ณ , tty1 ์ด์๋ถํฐ ๊ฐ์์ฝ์์ด ๋๋ค. ๋ฐ๋ผ์ tty1๋ง ๋๋๋ ๊ฒ์ด ๋ณด์์ ์ข์ ์ ์๋ค. ๋ณดํต ๋ฐ๋ ๋ฒจ3 CLI์์ ์คํ๋๋ ์ฝ์์ด๋ค. terminal์ด๋ผ๊ณ ๋ ํ๋ค.
|
ttys
|
(TTYserial) IoT์ Arduio ๋ฑ์์ ์ธ๋ถ์ Serial(COM ํฌํธ) ์ ์ ์ ์ด๋ฆฌ๋ CLI ์ฝ์์ด๋ค.
|
vc
|
(virtual console) pts(Pseudo Terminal Slave)๋ก์จ X manager์ ์ํด์ X.org ์ ์ ์ ์ด๋ฆฌ๋ GUI ์ฝ์ ๋ก telnet, ssh ๋ฑ terminal ์ ์ ์ ์ฌ์ฉ๋๋ค. pts/1~pts/11๋ก ํ์๋๋๋ฐ ์๊ฒฉ์ง์์ root ์ ์์ ๋ง์ผ ๋ ค๋ฉด ์ด ํ๋ฉด์ ๋น์๋๊ฑฐ๋ ํ์ํ console, vc1, tty1๋ง ์ฃผ์#์ ์ ๊ฑฐํด๋๋ฉด ๋๋ค. ๋ฐ๋ ๋ฒจ5 GUI์์ ์ค ํํ๋ ์ฝ์์ด๋ค. vc๋ /dev/pts์ด๋ค.
|
pty(Pseudo Terminal device)
|
GUI ํ๊ฒฝ์ xterm, screen ๋ฑ์์ ์ฌ์ฉ๋๋ ํฐ๋ฏธ๋๋ก์จ ๋ณดํต ๊ฒ์๊ธฐ ๋ฑ์์ ์ด๋ฆฌ๋ ๊ทธ๋ํฝ/ํ
์คํธ์ ๊ฐ์์ฝ์์ด๋ค.
|
hvc (HyperVisor Console)
|
HyperVisor Serial ์ฐ๊ฒฐ์ ์ํ ์ฝ์์ด๋ค.
|
JavaScript
๋ณต์ฌ
cat /etc/securetty
su์ sudo
su
์ผ๋ฐ ์ฌ์ฉ์๊ฐ root ๊ด๋ฆฌ์๋ก ์์ ํ ์ ํ๋๋ ๊ฒ์ผ๋ก ๋ค์ ์ผ๋ฐ ์ฌ์ฉ์๋ก ๋์๊ฐ๋ ค๋ฉด exit ํด์ผ ํ๋ค.
sudo
์ผ๋ฐ ์ฌ์ฉ์๊ฐ /etc/sudoers ํ์ผ์ ๋ค์ด ์๊ฑฐ๋ %wheel ๊ทธ๋ฃน์ ์ผ์์ผ ๋ root ๊ด๋ฆฌ์ ๊ถํ์ ๋ช
๋ น์ด๋ฅผ ์ผ์์ (5๋ถ)์ผ๋ก root์ ํจ์ค์๋๋ฅผ ๋ฃ์ง ์์๋ root ๊ถํ์ ์ฌ์ฉํ ์ ์๋ ์ฌ์ ํ ์ผ๋ฐ ์ฌ์ฉ์ ์ํ์ด๋ค. ๋ฐ๋ผ์ ์ผ๋ฐ ์ฌ์ฉ์๋ก ๋์๊ฐ ๋ exit ํ ํ์๊ฐ ์๋ค.
root ์ฌ์ฉ์์๊ฒ ์์คํ
์ ์ด๋ค ์ปดํจํฐ์์๋ ๋ชจ๋ ์ฌ์ฉ์๋ก ๋ชจ๋ ๋ช
๋ น์ ์คํํ ์ ์๋ ๊ถํ์ ๋ถ์ฌํฉ๋๋ค.
root: ์ด ๊ท์น์ด ์ ์ฉ๋๋ ์ฌ์ฉ์ (์ฌ๊ธฐ์๋ root ์ฌ์ฉ์).
์ฒซ ๋ฒ์งธ ALL: ์ด ๊ท์น์ด ์ ์ฉ๋๋ ํธ์คํธ (์ฌ๊ธฐ์๋ ๋ชจ๋ ํธ์คํธ).
(ALL): root ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์๋ก ๋ช
๋ น์ ์คํํ ์ ์๋ ๊ถํ (์ฌ๊ธฐ์๋ ๋ชจ๋ ์ฌ์ฉ์).
๋ ๋ฒ์งธ ALL: root ์ฌ์ฉ์๊ฐ ์คํํ ์ ์๋ ๋ช
๋ น (์ฌ๊ธฐ์๋ ๋ชจ๋ ๋ช
๋ น).
vim /etc/pam.d/su์ ์ค์ ํด์ฃผ๋ฉด
wheel ๊ทธ๋ฃน์ ์ํ ์ ๋ค๋ง su๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ค์ ๋ช ๋ น์ด๋ root๋ง ์ฌ์ฉํ๊ฒ ํ๋ค.
root์กฐ์ฐจ ์์ฑ์ ๋ณ๊ฒฝํ์ง ๋ชปํ๋ ๋ช
๋ น์ด
chattr +i /etc/bin
lsattr
chmod 750 /usr/bin/top
$PATH
PATH๋ ์ปดํจํฐ๊ฐ ๋ช
๋ น์ด๋ฅผ ์คํํ ํ์ผ์ ์ฐพ์ ์์น์ ๋ชฉ๋ก์ด๋ค. echo $PATH๋ฅผ ์
๋ ฅํ๋ฉด, ๊ทธ ์์น์ ๋ชฉ๋ก์ ๋ณผ ์ ์๋ค.
์๋ฅผ ๋ค์ด, PATH๊ฐ /usr/bin:/bin:/usr/local/bin๋ผ๋ฉด, ls์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ์คํํ ๋ ์ปดํจํฐ๋ ์ฐจ๋ก๋ก /usr/bin, /bin, /usr/local/bin ๋๋ ํ ๋ฆฌ์์ ํด๋น ๋ช
๋ น์ด๋ฅผ ์ฐพ์ต๋๋ค.
๋ฐ๋ผ์ echo $PATH ๋ช
๋ น์ด๋ ํ์ฌ ์์คํ
์์ ๋ช
๋ น์ด๋ฅผ ์ฐพ์ ์ ์๋ ์์น๋ฅผ ํ์ธํ๋ ๋ฐ ์ ์ฉํ๋ค.
๋ช
๋ น์ด๋ฅผ ์คํํ ๋ ์์์๋ถํฐ ์ฐจ๋ก๋ก ๋๋ ํฐ๋ฆฌ์์ ํด๋น ๋ช
๋ น์ด๋ฅผ ์ฐพ์ ์คํํด์ค๋ค.
FTP ๋ฐฐ๋ ์ค์
๊ฐ์ํ์ผ ์์คํ /proc
Linux ์์คํ
์ ์์คํ
์ด ๋ถํ
ํ ๋ ํ๋๋์คํฌ์ ์ ์ฅ๋ /etc/sysctl.conf ํ์ผ์ ์ค์ ๋ ์ปค๋ ๊ฐ์ ์ฌ์ฉํด์ ์์คํ
์ ์ด์ํ๋ค. ํ์ง๋ง ์์คํ
์ ํ๋๋์คํฌ์์ ์ ๋ณด๋ฅผ ์ฝ๋ ๊ฒ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ์์ ์ ๋ณด๋ฅผ ์ฝ๋ ๊ฒ์ด 1,000๋ฐฐ๋ ๋น ๋ฅด๋ฏ๋ก ํ๋๋์คํฌ /etc/sysctl.conf ํ์ผ์ ์ค์ ๋ ์ปค๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ /proc ๋๋ ํฐ๋ฆฌ์ ์ฌ๋ ค๋๊ณ ์ฌ์ฉํ๋ฉด ํจ์จ์ด ํจ์ฌ ์ข๊ฒ ๋๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์๋ /proc ํ์ผ์์คํ
์ ํ๋๋์คํฌ์ ์๋ /etc/sysctl.conf ํ์ผ์ ๋ณต์ฌ๋ณธ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ปค๋์ ๋ํ ๋ํดํธ modular ๋ฐฉ์(HDD์์ ์ ๋ณด๋ฅผ ์ฝ์ด ์ด, ํฐ ์ฉ๋์ ํ๋ก๊ทธ๋จ)๊ณผ monolithic ๋ฐฉ์(HDD์ ์ ๋ณด๋ฅผ RAM์ผ๋ก ์ฎ๊ธด ๋ค RAM์์ ์ ๋ณด๋ฅผ ์ฝ์ด ์ด, ์์ ์ฉ๋์ ํ๋ก๊ทธ๋จ)์ ์ฐจ์ด์ ์ ์ฌํ ๊ฐ๋
์ผ๋ก ๋ณผ ์ ์๋ค.
/etc/sysctl.conf๋ Windows์์์ ๋ ์ง์คํธ๋ฆฌ์ ์ ์ฌํ ๊ฐ๋
์ผ๋ก ์ฌ๊ธฐ์ ์ค์ ํ ๋๋ก ๋จธ์ ์ด ์คํ๋๋ค. HDD์ /etc/sysctl.conf ํ์ผ์์ ์ด๋ ์ปค๋์ ์ค์ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด RAM์ /proc ํ์ผ์์คํ
์ ํด๋น ๊ฐ์ด ๋ฐ๋ก ๋ณ๊ฒฝ๋์ด ๋ฐ์๋๋ค. ๋ฐ๋ผ์ ์์คํ
์ค์ ํ์ผ /etc/sysctl.conf์์์ ๊ฐ ์ค์ ๊ฐ๊ณผ ๊ฐ์ ํ์ผ์์คํ
/proc ๋๋ ํฐ๋ฆฌ์ ๊ฐ ํ์ผ์์์ ์ค์ ๊ฐ์ ๊ฐ๋ค. ํ์ง๋ง ๋จธ์ ์ด ๊บผ์ง๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ ๋ณด๊ฐ ํ๋ฐ์ฑ(volatile)์ด์ด์ ๋ชจ๋ ์์ด์ง๋ฏ๋ก /proc์ ๋ด์ฉ์ด ๋ชจ๋ ์์ด์ง๊ณ ํ๋๋์คํฌ์ ์๋ /etc/sysctl.conf ํ์ผ์ ์ค์ ๋ง ์กด์ฌํ๊ฒ ๋๋ค.
/proc ํ์ผ์์คํ
์ ๋ฉ๋ชจ๋ฆฌ์์์ ์คํ๋๊ณ ์๋ ๋ชจ๋ Linux ์ปค๋ ์์๋ค์ ๋ํ ์ ๋ณด๋ฅผ PID๋ก ๊ตฌ๋ณํด์ ๋ณด๊ดํ๊ณ ์๋ค. ํ์ง๋ง ์ด /proc ํ์ผ์ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ ๋จธ์ ์ด ์คํ๋๋ ๋์๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ผ์์ ์ผ๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์ /proc๋ฅผ '๊ฐ์ ํ์ผ ์์คํ
'์ผ๋ก ๋ถ๋ฅธ๋ค. ๋ฐ๋ผ์ /proc ํ์ผ์์คํ
์์ ์ค์ํ ์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์ฌ๋ถํ
ํ์๋ ๊ณ์ ๊ทธ ์ค์ ์ด ์ ์ฉ๋๊ฒ ํ๋ ค๋ฉด ํ๋๋์คํฌ์ ์๋ /etc/sysctl.conf ํ์ผ์ ์ค์ ์ ์ ์ฅํด ๋์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด์ ์์คํ
์ฌ์ฉ ์ค์ ๋ณด์์ ๋ํ SELinux๋ฅผ setenforce 0 ํด์ ์ผ์์ ์ผ๋ก Permissive๋ก ํด๋๋๋ฐ, ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ /proc์์์ ์ค์ ์ด๊ธฐ ๋๋ฌธ์ ํ์ฌ ์คํ๋๋ ์์คํ
์์ ์ผ์์ ์ผ๋ก ์ ์ฉ๋๋ ์ค์ ์ด๊ณ ๋จธ์ ์ด ๋ฆฌ๋ถํ
๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์ด ์ ๋ณด๋ ์ฌ๋ผ์ง๊ณ ์๋ HDD์ /etc/selinux/config ์์์ ์ค์ ์ด ์ ์ฉ๋์ด ๋ค์ Enforcing์ด ๋๋ ๊ฒ์ ์๊ฐํด๋ณด๋ฉด ์ดํด๊ฐ ๋ ๊ฒ์ด๋ค.
โ nano /etc/sysctl.conf ํด์ ํ์ผ์ ์ด๊ณ ์ํ๋ ํ๋ผ๋ฏธํฐ_๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝ ⇒ ์๊ตฌ โก echo “๊ฐ” >> /proc/ํ๋ผ๋ฏธํฐ_๋ณ์ ํด์ /proc์์์ ํ๋ผ๋ฏธํฐ_๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝ ⇒์ผ์์ โข sysctl –w ํ๋ผ๋ฏธํฐ_๋ณ์=๊ฐ ํด์ ์ํ๋ ํ๋ผ๋ฏธํฐ_๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํด์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณ๊ฒฝ ⇒ ์ผ์์
๊ฐ์ ํ์ผ ์์คํ ์ ์ฐ๋ ์ด์ ?
1. ํ๋๋ณด๋ค ์ฒ ๋ฐฐ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๊ณ ,
๊ธํ ์์
์ ํ ๋ ๋งค์ฐ ์ข๋ค. ํฌํธ 80๋ฒ์ ๋ง์ ๋ ํ๋ ์ค์ ์ผ๋ก ๋ง๋ ๊ฒ๋ณด๋ค ์ผ์์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ ๋ง์์ฃผ๋ ๊ฒ์ด ๊ต์ฅํ ์ ์ฉ์ด ๋น ๋ฅด๋ค. ์ด๋ ์ธ์์ ํ๋๋ฅผ ์ด๊ณ ์ค์ ์ ๋ฐ๊พธ๊ณ ์ค์ ์ ์ฉ์ ํด์ฃผ๊ณ … ๋ฉ๋ชจ๋ฆฌ๋ ๋ช
๋ น์ด ํ๋๋ก ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ค. ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ RAM์ DRAM ์ ๊ธฐ๊ฐ ์์ผ๋ฉด ๋ ์๊ฐ๋ค. SRAM์ ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ค. ๊ป๋ค ์ผ๋ ์ด์์๋ค. ์ ๊ธฐ๊ฐ ์์ด๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๋๊น Non-volitile ์ฉ๋์ ์์ง๋ง ๋น์ธ๋ค. CPU, Motherboard, graphic card์ ์๋ ๊ฒ์?????ใ
ฃl3 cache memory
/proc ๊ฐ์ ํ์ผ ์์คํ ๊ณผ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ Swap memory์ ์ฐจ์ด์
/proc ๊ฐ์ ํ์ผ ์์คํ
/proc๋ ์ปดํจํฐ์ ๋์ ๊ฐ์ ์ด์์ฒด์ ์ '์ ๋ณด ์ผํฐ'๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ํ์ฌ ์์คํ
์ด ์ด๋ป๊ฒ ๋์๊ฐ๊ณ ์๋์ง์ ๋ํ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ค์ด ์์ต๋๋ค.
ํ๋๋์คํฌ์ ์ ์ฅ๋ ๊ฒ์ด ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ฌ๋ ค๋ก๋๋ค. ๊ทธ๋์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์์ด์.
/proc ๋๋ ํฐ๋ฆฌ๋ฅผ ํตํด ์ค์ ์ ์ผ์์ ์ผ๋ก ๋ณ๊ฒฝํ๊ฑฐ๋ ์ปค๋์ ๋์์ ํ์ธํ ์ ์์ต๋๋ค.
Swap ๋ฉ๋ชจ๋ฆฌ
swap ๋ฉ๋ชจ๋ฆฌ๋ ์ปดํจํฐ์ '์ถ๊ฐ ์ ์ฅ ๊ณต๊ฐ'์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
์ปดํจํฐ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ(RAM)๊ฐ ๋ค ์ฐจ๋ฉด, ์ฌ์ฉํ์ง ์๋ ์ผ๋ถ๋ฅผ swap ๊ณต๊ฐ์ ์ ์ ๋์๋ก๋๋ค.
swap์ ํ๋๋์คํฌ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค๋ ๋๋ฆฝ๋๋ค.
ํ์ํ ๋ ๋ค์ ๊ฐ์ ธ์ ์ฌ์ฉํฉ๋๋ค.
์ค์ ๋ฉ๋ชจ๋ฆฌ๋, ์ค์ ๋ฉ๋ชจ๋ฆฌ Ram์ด ๊ฐ๋ ์ฐผ์ง๋ง ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ ๋ ๋์คํฌ ๊ณต๊ฐ์ ์ด์ฉํ์ฌ ๋ถ์กฑํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ฒดํ ์ ์๋ ๊ณต๊ฐ์ ์๋ฏธํฉ๋๋ค.
์ค์ ๋์คํฌ ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ์ฌ์ฉํ๋ ๊ฐ๋
์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์๋๋ฉด์์๋ ์ค์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ํ๋๋์คํฌ๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์๋๋ฉด์์๋ ํ์ ํ ๋จ์ด์ง๋ค๊ณ ํ ์ ์์ต๋๋ค.
์ฐจ์ด์
/proc๋ ์์คํ
์ ์ํ์ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๊ฐ์์ '์ ๋ณด ์ผํฐ'์
๋๋ค. ์ค์ ์ ์ฅ ๊ณต๊ฐ์ ์ฐจ์งํ์ง ์๊ณ , ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
swap์ ์ฃผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ์์๋ก ์ฌ์ฉํ๋ '์ถ๊ฐ ์ ์ฅ ๊ณต๊ฐ'์
๋๋ค. ํ๋๋์คํฌ์ ์์ด์ ์ค์ ์ ์ฅ ๊ณต๊ฐ์ ์ฐจ์งํ๊ณ ๋๋ฆด ์ ์์ต๋๋ค.
๊ฐ๋จํ ๋งํ๋ฉด, /proc์ ์ปค๋๊ณผ ์์คํ
์ ํ์ฌ ์ํ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ธํ๊ณ ์กฐ์ํ ์ ์๋ '์ ๋ณด ์ผํฐ'์ด๊ณ , swap์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ์ฌ์ฉํ๋ '์ถ๊ฐ ์ ์ฅ ๊ณต๊ฐ'์
๋๋ค.
Swap, buffer, cache ๋ฉ๋ชจ๋ฆฌ ์ค๋ช ๊ณผ ์ฐจ์ด์
Swap ๋ฉ๋ชจ๋ฆฌ:
์ค๋ช
: RAM์ด ๊ฐ๋ ์ฐผ์ ๋ ์ฌ์ฉ๋๋ ๋์คํฌ ๊ณต๊ฐ์ผ๋ก, ๋นํ์ฑ ํ๋ก์ธ์ค๋ฅผ ์์๋ก ์ ์ฅํฉ๋๋ค.
ํน์ง: ํ๋ ๋๋ผ์ด๋ธ๋ SSD์ ์์นํ๋ฏ๋ก RAM๋ณด๋ค ๋๋ฆฝ๋๋ค.
Buffer ๋ฉ๋ชจ๋ฆฌ:
์ค๋ช
: ๋ฐ์ดํฐ๋ฅผ ํ ์ฅ์น์์ ๋ค๋ฅธ ์ฅ์น๋ก ์ ์กํ๋ ๋์ ์ผ์์ ์ผ๋ก ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์
๋๋ค. ์๋ฅผ ๋ค์ด, ํค๋ณด๋ ์
๋ ฅ์ CPU๊ฐ ์ฒ๋ฆฌํ ์ ์์ ๋๊น์ง ์ ์ฅํ๋ ์ญํ ์ ํฉ๋๋ค.
ํน์ง: ๋ฐ์ดํฐ ์ ์ก์ ์ผ์์ ์ธ ์ง์ฐ์ ์ค์ฌ์ฃผ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ๋น ๋ฅธ ์ก์ธ์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋ฉ๋๋ค.
Cache ๋ฉ๋ชจ๋ฆฌ:
์ค๋ช
: CPU์ RAM ์ฌ์ด์ ๊ณ ์ ๋ฉ๋ชจ๋ฆฌ๋ก, ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ ๋ช
๋ น์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
ํน์ง: RAM๋ณด๋ค ๋น ๋ฅด๊ณ ๋น์ธ๋ฉฐ, ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์ก์ธ์ค๋ฅผ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์ฐจ์ด์ :
์ฉ๋:
Swap์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
Buffer๋ ๋ฐ์ดํฐ ์ ์ก ์ค ์ ์ ๋ณด๊ดํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
Cache๋ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ก์ธ์คํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์๋:
Swap์ ๋น๊ต์ ๋๋ฆฝ๋๋ค.
Buffer์ Cache๋ ๋ ๋น ๋ฅธ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ํนํ Cache๋ ๊ณ ๊ฐ์ ๊ณ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ฐจ์ด์ ๋ค์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๋ชฉ์ ๊ณผ ๊ทธ์ ๋ฐ๋ฅธ ์ค๊ณ ๋ฐฉํฅ์ ๋ฐ์ํฉ๋๋ค.
์ค๋จธํ ๊ณต๊ฒฉ
์ถ๋ฐ์ง ip๋ฅผ ์์ ์ ip๊ฐ ์๋ ํ๊ฒ ๋จธ์ ์ ip๋ก ์์ธ๋ค(IP Spoofing). ๊ทธ๋ฆฌ๊ณ ํน์ ๋คํธ์ํฌ์ ๋ธ๋ก๋์บ์คํธ ์์ญ์ ICMP echo request ํจํท๋ฅผ ๋ณด๋ธ๋ค. ๊ทธ๋ฌ๋ฉด ๊ทธ ๋คํธ์ํฌ ๋ด์ ํธ์คํธ๋ค์ด ICMP echo reply ํจํท์ผ๋ก ์๋ตํ๋๋ฐ, ์ถ๋ฐ์ง ip๊ฐ ํ๊ฒ ๋จธ์ ์ ip๋ก ์์กฐ๋์ด ์์ผ๋ฏ๋ก ํ๊ฒ ๋จธ์ ์ DoS ๊ณต๊ฒฉ์ ๋ฐ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด ๋ด๊ฐ ์น๊ตฌ์ธ ๊ฒ์ฒ๋ผ ์์ฌ ๋ด ๋ฐ์ ๋ฒํธ๋ฅผ ๋ฐ๊ฟ์ ์ฌ๋ฌ ์ ํ๋ฒํธ๋ถ์ ์๋ ๋ชจ๋ ์ฌ๋์๊ฒ “์ฐ๋ฝ ์ฃผ์ธ์”๋ผ๊ณ ๋ฌด์์๋ก ๋ฟ๋ฆฐ๋ค. ๊ทธ๋ฌ๋ฉด ์๋ง์ ์ฐ๋ฝ์ฒ์์ ์ฐ๋ฝ์ด ๋ค ์ค๊ฒ ๋๊ณ , ๊ทธ ์น๊ตฌ๋ ํ ์ผ์ ๋ชปํ๊ฒ ๋๊ฑฐ๋ ๋ฐ๋๋ผ ์ง์ณ ๋ป์ด๋ฒ๋ฆฌ๊ฒ ๋๋ค.
๋์ ๋ฐฉ๋ฒ
ICMP ํํฐ๋ง:
๋ผ์ฐํฐ๋ ๋ฐฉํ๋ฒฝ์์ ๋ถํ์ํ ICMP ํธ๋ํฝ์ ์ฐจ๋จํ๊ฑฐ๋ ์ ํํฉ๋๋ค.
์ค๋จธํ ๊ณต๊ฒฉ์ ์ผ๋ถ๋ก ์ค๋ ICMP ์์ฒญ์ ๊ฑฐ๋ถํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
echo_ignore_all(๋๋ broadcast) ์ค์ 1๋ก ๋ฐ๊พธ๊ธฐ
proc/sys/net/ipv4/icmp_echo_ignore_all=1๋ก ๋ฐ๊พธ๊ธฐ
Shell
๋ณต์ฌ
sysctl -w net.ipv4.icmp_echo_ignore_all=1
์ด๋ฌํ ์ค์ ์ ์์คํ
์ด ICMP Echo Request (ping) ๋ฉ์์ง์ ์๋ตํ์ง ์๊ฒ ํ๊ฒ ํ๋ค.
์ถ๋ฐ์ง IP ๊ฒ์ฆ:
๋ผ์ฐํฐ์์ ์ถ๋ฐ์ง ์ฃผ์๊ฐ ์ ํจํ์ง ํ์ธํ์ฌ ์์กฐ๋ ์ถ๋ฐ์ง ์ฃผ์๋ก๋ถํฐ ์ค๋ ํธ๋ํฝ์ ์ฐจ๋จํฉ๋๋ค.
์ํฐ-DDoS ์๋น์ค ์ด์ฉ:
DDoS ๊ณต๊ฒฉ ๋ฐฉ์ด ์ ๋ฌธ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ํฝ์ ์๊ณผ ์ ํ์ ๋ชจ๋ํฐ๋งํ๊ณ ์์ฌ์ค๋ฌ์ด ํธ๋ํฝ์ ์ฐจ๋จํฉ๋๋ค.
+๋ด ๋คํธ์ํฌ์ ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ก ์ค๋ ICMP ์์ฒญ ์ฐจ๋จ(๋ด ์ ํ๋ฒํธ๋ถ์ ์ฐ๋ฝ ๋ชปํ๊ฒ ๋ง๊ธฐ)
๋ด ์๋ฒ๊ฐ ์ฆํญ๊ธฐ๋ก ์ฌ์ฉ๋๋ ๊ฒ์ ๋ง๊ธฐ ์ํด ์ฌ์ฉ
๋ผ์ฐํฐ๋ ๋ฐฉํ๋ฒฝ์์ ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ก ๋ค์ด์ค๋ ICMP ์์ฒญ์ ์ฐจ๋จํ๋๋ก ์ค์ ํฉ๋๋ค.
Land ๊ณต๊ฒฉ
๋๋ ๊ณต๊ฒฉ์ ํด์ปค๊ฐ ์ถ๋ฐ์ง ์ฃผ์์ ํฌํธ๋ฅผ ์์๋ก ๋ณ๊ฒฝํด์ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง ์ฃผ์๋ฅผ ๋์ผํ๊ฒ ํ๋ ํจํท์ ๋ณด๋ธ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ๋ ์๊ธฐ ์์ ๊ณผ ์ฐ๊ฒฐ์ ๋งบ์์ผ๋ก์จ ์คํ ์๋๊ฐ ๋๋ ค์ง๊ณ ๋์์ด ๋ง๋น๋๋ค.
=>ํจํท ํค๋๋ฅผ ๊ฒ์ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฃ์ด์ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง๊ฐ ๋์ผํ ์ฃผ์๋ฅผ ๊ฐ์ง ํจํท์ ๋ง๊ฒ ํด์ผ ํ๋ค.
SYN FLOODING ๊ณต๊ฒฉ
=>SYN Flooding ๊ณต๊ฒฉ์ ๋ ๋
ธ๋ ๊ฐ TCP ์ฐ๊ฒฐ์ธ 3-way handshakes๋ฅผ ์ด์ฉํ ์ผ์ข
์ DoS(Deny of Service) ๊ณต๊ฒฉ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก TCP์์์ 3-way handshakes ์ฐ๊ฒฐ์ a. ํด๋ผ์ด์ธํธ๊ฐ ๋จผ์ ์๋ฒ์๊ฒ SYN๋ฅผ ๋ณด๋ด์ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์ ์์ฒญํ๋ฉด b. ์๋ฒ๋ SYN+ACK๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด์ ์ฐ๊ฒฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ c. ์ด์ ํด๋ผ์ด์ธํธ๊ฐ ACK๋ฅผ ์๋ฒ๋ก ๋ณด๋ด์ ์๋ก ์ฐ๊ฒฐ๋๋ ๊ณผ์ ์ ๊ฐ์ง๋ค.
ํ์ง๋ง ํด๋ผ์ด์ธํธ(ํด์ปค)๋ ์ด๋ฐ ์ฐ๊ฒฐ์ ๊ต๋ฌํ๊ฒ ์์ฌ์ ์นจํฌํ๋๋ฐ a. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ SYN1๋ฅผ ๋ณด๋ด๊ณ , b. ์๋ฒ๊ฐ SYN1+ACK1์ ๋ณด๋ด์ค๋ฉด, c. ์๋๋๋ก๋ผ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ACK1์ ์๋ต์ผ๋ก ๋ณด๋ด์ ์ฐ๊ฒฐํด์ผ ํ๋๋ฐ ACK1์ ๋ณด๋ด์ง ์๊ณ , ๋ ๋ค๋ฅธ SYN2๋ฅผ ๋ณด๋ธ๋ค. c. ์ด์ ์๋ฒ๊ฐ ์ด์ ๋ํ SYN2+ACK2๋ฅผ ๋ณด๋ด๋ฉด, d. ACK2๋ฅผ ์๋ต์ผ๋ก ๋ณด๋ด์ง ์๊ณ , ๋ SYN3๋ฅผ ๋ณด๋ด๊ณ ,...ํ๋ ์์ผ๋ก ๊ณ์ SYN๋ง ๋ณด๋ด๊ณ ์ค์ ์ฐ๊ฒฐ์ ๋งบ์ง ์๋ ๊ณต๊ฒฉ์ด๋ค. e. ๊ทธ๋ฌ๋ฉด ์๋ฒ๋ ๊ฐ๊ฐ์ ์ฐ๊ฒฐ์์ฒญ SYN1, SYN2, SYN3, ...๋ฅผ ๋ก๊ทธ์ ํ์ผ๋ก ์ ์ฅํด ๋๊ณ ํฌํธ๋ฅผ ์ด์ด๋๊ณ (์ด๋ฅผ half-open ์ํ๋ก ๋ถ๋ฆ) ๊ฐ๊ฐ์ ACK๋ฅผ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๊ธฐ๋ค๋ฆฐ๋ค. ๊ณ์๋ SYN ์์ฒญ์ผ๋ก ์ธํด ์ฐ๊ฒฐ ์ค์ ์ ๋ณด๋ฅผ ์ ์ฅํด๋๋ ๋ก๊ทธํ์ผ(Backlog Queue๋ผ๊ณ ํจ)์ ์ฉ๋์ด ๋ค ์ฐจ๋ฉด ์๋ฒ๊ฐ ์๋น์ค ๋ถ๋ฅ์ด ๋๊ฒ ๋๋ค.
๋์1: backlog queue ์ฉ๋ ๋๋ฆฌ๊ธฐ
=>์ด๋ฐ syn_flooding ๊ณต๊ฒฉ์ ๋ง์ผ๋ ค๋ฉด ์๋ฒ์ ๋ก๊ทธ๊ฐ ์ ์ฅ๋๋ ์ด backlog queue ์ฉ๋์ ๋๋ ค์ syn_flooding ๊ณต๊ฒฉ์ ๊ฒฌ๋๋ผ ๋์ ๊ด๋ฆฌ์๊ฐ ์ ์ ์ (proactive)์กฐ์น๋ฅผ ์ทจํด์ ๋ง์ผ๋ฉด ๋๋ค.
๋์2: tcp_syncookies ์ฌ์ฉ
์๋ฒ๊ฐ ๊ณต๊ฒฉ์ผ๋ก ์ธํด ๊ณผ๋ถํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๋ฉด์๋ ์ง์ง ์ฐ๊ฒฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณต
tcp_syncookies ์ค์ ์ SYN ์ฟ ํค ๊ธฐ๋ฅ์ ํ์ฑํํ๋ ๊ฒ์ผ๋ก, ์ด๋ SYN ํ๋ฌ๋ ๊ณต๊ฒฉ๊ณผ ๊ฐ์ DDoS ๊ณต๊ฒฉ์ ๋ฐฉ์ดํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
SYN ํ๋ฌ๋ ๊ณต๊ฒฉ์์๋ ๊ณต๊ฒฉ์๊ฐ ๋๋์ SYN ํจํท์ ์๋ฒ๋ก ๋ณด๋ด์ด ์ฐ๊ฒฐ ํ๋ฅผ ํฌํ์ํค๊ณ , ํฉ๋ฒ์ ์ธ ์ฐ๊ฒฐ ์์ฒญ์ด ์๋ฒ์ ๋๋ฌํ์ง ๋ชปํ๊ฒ ํฉ๋๋ค.
tcp_syncookies ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด, ์๋ฒ๋ ์ ์ฒด TCP ์ฐ๊ฒฐ ์ํ๋ฅผ ์ถ์ ํ๊ธฐ ๋ณด๋ค๋ SYN ์ฟ ํค๋ผ๋ ํน๋ณํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๋ณด๊ดํ๊ณ ๊ธฐ๋กํฉ๋๋ค. ์ด ๋ฐฉ์์ ์ฐ๊ฒฐ ํ์ ์ฌ์ฉ๋๋ ์์์ ํฌ๊ฒ ์ค์ด๋ฏ๋ก, ์๋ฒ๊ฐ SYN ํ๋ฌ๋ ๊ณต๊ฒฉ์ ๋ํ ๋ด์ฑ์ ํฅ์์ํฌ ์ ์๊ฒ ํฉ๋๋ค.
Shell
๋ณต์ฌ
sudo sysctl -w net.ipv4.tcp_syncookies=1
์ฐ๊ฒฐ ์์ฒญ์ด ๋๋ฌด ๋ง์ ์๋ฒ์ SYN ํ๊ฐ ๊ฐ๋ ์ฐจ๋ฉด, ์๋ฒ๋ SYN ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๊ธฐ๋กํฉ๋๋ค. (SYN ์ฟ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ ์ ์ฉ๋์ผ๋ก ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ค.)
SYN ์ฟ ํค๋ ์ฐ๊ฒฐ ์์ฒญ์ ํน์ ์ ๋ณด๋ฅผ ์ํธํํ์ฌ ๋ง๋ ์์ ๋ฐ์ดํฐ ์กฐ๊ฐ์
๋๋ค.
์๋ฒ๋ ์ฐ๊ฒฐ ์์ฒญ์ ๋ํ ์ ๋ณด๋ฅผ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ง ์๊ณ , SYN ์ฟ ํค๋ง ๋ณด๊ดํฉ๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฐ๋ฅธ ์๋ต(ACK ํจํท)์ ๋ณด๋ด๋ฉด, ์๋ฒ๋ SYN ์ฟ ํค๋ฅผ ํ์ธํ์ฌ ์ฐ๊ฒฐ์ ์๋ฃํฉ๋๋ค.
tcp_syncookies ๊ธฐ๋ฅ์ ๋ ๊ฐ๋จํ๊ฒ ์ค๋ช
ํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ณต๊ฒฉ ์ํฉ: ๊ณต๊ฒฉ์๊ฐ ์๋ฒ์๊ฒ ์๋ง์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋ด ์๋ฒ๋ฅผ ๊ณ ๊ฐ์ํค๋ ค๊ณ ํฉ๋๋ค.
SYN ์ฟ ํค ์ฌ์ฉ: ์๋ฒ์ ์ฐ๊ฒฐ ๋๊ธฐ์ด์ด ๊ฐ๋ ์ฐจ๋ฉด, tcp_syncookies๊ฐ ์ผ์ ธ์๋ค๋ฉด ์๋ฒ๋ ํน๋ณํ "SYN ์ฟ ํค"๋ฅผ ๋ง๋ค์ด ์ด ์ ๋ณด๋ฅผ ๋ณด๊ดํฉ๋๋ค. ์ด๊ฒ์ ์ผ์ข
์ ๋น๋ฐ ๋ฉ๋ชจ ๊ฐ์ ๊ฒ์
๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์ ์ฝ: ์๋ฒ๋ ์ด SYN ์ฟ ํค๋ง ๊ฐ๋จํ ๊ธฐ๋กํ๊ณ , ๋ค๋ฅธ ์ฐ๊ฒฐ ์ ๋ณด๋ ๋ฒ๋ฆฝ๋๋ค. ์ด๋ก ์ธํด ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํฉ๋๋ค.
์ง์ง ์ฐ๊ฒฐ ํ์ธ: ํด๋ผ์ด์ธํธ๊ฐ ์ง์ง๋ก ์ฐ๊ฒฐํ๋ ค๊ณ ํ ๋, ์๋ฒ๋ SYN ์ฟ ํค๋ฅผ ํ์ธํ๊ณ ์ฐ๊ฒฐ์ ์๋ฃํฉ๋๋ค.
๊ฐ๋จํ ๋งํ๋ฉด, tcp_syncookies๋ ์๋ฒ๊ฐ ๊ณต๊ฒฉ์ผ๋ก ์ธํด ๊ณผ๋ถํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ๋ฉด์๋ ์ง์ง ์ฐ๊ฒฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.