๊ทธ๋ฆฌ๊ณ ๋ค์๋ ์ค์ํ ๋ณด์์ ์ค์ ์ด๋ค. ๋ช ๊ฐ์ง๋ฅผ ์์๋ณด์.
1-1. ๊ธฐ๋ณธ ์ปดํ์ผ๋ฌ gcc/c++๋ฅผ root๋ง ์ฌ์ฉํ๋๋ก ํผ๋ฏธ์
๋ณ๊ฒฝํ๊ธฐ
1-2. ์ฃผ์ ๋ช
๋ น์ด์ ํ๊ฒฝ ์ค์ ํ์ผ, ํํฐ์
, ์๋น์ค ๋ฐ๋ชฌ ๋ฑ ๋ฐฑ์
ํด๋๊ธฐ
โช ์ค์ํ ๋ช
๋ น์ด๊ฐ ๋ค์ด์๋ /usr/bin ๋๋ ํฐ๋ฆฌ
โช ์์คํ
์ค์ ๋ช
๋ น์ด๊ฐ ๋ค์ด์๋ /usr/sbin,
โช ๊ฐ์ข
์ค์ ํ์ผ๋ค์ด ๋ค์ด์๋ /etc/,
โช ๋ถํ
๊ณผ ๊ด๋ จ๋ /boot, ๊ทธ๋ฆฌ๊ณ
โช Linux ์ด์์ฒด์ ๊ฐ ๋ค์ด์๋ ํ๋๋์คํฌ์ธ /dev/sda2(์ด๊ฒ์ lsblk ํด๋ณด๋ฉด ํ์ธํ ์ ์๋ค)๋ฅผ ๋ค๋ฅธ ๋์คํฌ์ ๋ฐฑ์
ํด๋๋ ๊ฒ์ด ์ข๋ค.
1-3. chkconfig๋ก ์์ ์๋น์ค๋ฅผ ๋ฐ๋ ๋ฒจ ๋ณ๋ก ์ ํํ๊ธฐ
1-4. xinetd ์ํผ ๋ฐ๋ชฌ์ ๊ดํ ๋ณด์๋ ์ฃผ์ํ๋ค.
1-5. SSH ๋ฑ ์๊ฒฉ์ฐ๊ฒฐ์ ์ฌ์ฉ์์ ํฌํธ๋ก ์ ํํ๊ธฐ
=========================================================์ฌ๊ธฐ๋ถํฐ ์์
1-6. ํจ์ค์๋์ root ๋ก๊ทธ์ธ ์ฝ์์ ๊ดํ ๋ณด์๋ ์ฃผ์ํ๋ค.
=>์ธ๋ถ์์ ssh๋ telnet, ftp ๋ฑ์ผ๋ก ์ ์ํ๋ฉด ์ ์ํ ์ฌ์ฉ์์ ํ ๋๋ ํฐ๋ฆฌ๋ก ๊ฐ๊ฒ ๋๊ณ ์ฝ์์ /dev/pts/1, 2, ...๋ฅผ ๋ฐ๊ฒ ๋์ด ์๋ค. root์ ์ ์์ ๋ง๊ธฐ ์ํด์๋ /etc/securetty ํ์ผ์์ ๊ท์ ๋ฅผ ํ๋ฉด ๋๋ค.
==>์ ์ ํ '!๋ช
๋ น์ด'๋ ํ์ฌ ํธ์คํธ์์ ์์
ํ๋ ๊ฒ์ด๊ณ , ๊ทธ๋ฅ '๋ช
๋ น์ด'๋ ์ฐ๊ฒฐ๋ ํ๊ฒ ๋จธ์ ์์ ์์
ํ๋ ๊ฒ์ด๋ค.
1-7. su์ sudo ์ฌ์ฉ์ ์ ํํ๊ธฐ
=>root ๊ด๋ฆฌ์๋ก ์์
์ ์ค๋ํ๋ฉด ํด์ปค์๊ฒ root์ ํจ์ค์๋๋ root ๊ถํ์ ํ์ผ ๋ฑ์ด ๋
ธ์ถ๋ ์ ์์ด์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋ณดํต์ ์ผ๋ฐ ์ฌ์ฉ์๋ก ์์
ํ๋ค๊ฐ root ๊ถํ์ด ํ์ํ ์์
์ ์ํํด์ผ ํ ๋ su -c '๋ช
๋ น์ด'๋ sudo '๋ช
๋ น์ด'๋ฅผ ์ฌ์ฉํด์ ์ผ์์ ์ผ๋ก root ๊ถํ์ ์ป๋๋ค. ํนํ root๊ฐ ์์
ํ๋ ์ธ์
์ ๊ฐ๋ก์ฑ์ ์ธ๋ถ์์ root ๊ถํ์ ์ป์ ์๋ ์๋ค. sudo ๊ถํ์ /etc/sudoers ํ์ผ์์ ์ผ๋ฐ ์ฌ์ฉ์๋ฅผ ๊ถํ์ ์ฃผ์ด์ ๋ฃ์ด์ฃผ๊ฑฐ๋ %wheel(Ubuntu์์๋ %sudo) ๊ทธ๋ฃน์ ๋ฃ์ ์๋ ์๋ค.
(https://heroineyen.tistory.com/79 13๋ฒ)
1-8. ์ฌ์ฉ์ ํจ์ค์๋ ๊ด๋ฆฌํ๊ธฐ
chage centos์์ผ๋ก ํด์ centos ์ฌ์ฉ์์ ์ต์ ํจ์ค์๋ ๊ธฐ๊ฐ, ์ต๋ ํจ์ค์๋ ๊ธฐ๊ฐ, ๋ง์ง๋ง ํจ์ค์๋ ๋ณ๊ฒฝ(๊ณ์ ์ ํจ๊ธฐ๊ฐ) ๋ฑ์ ์ง์ ํ ์ ์๋ค.
1-9. ์ค์ ๋ช
๋ น์ด๋ฅผ root๋ง ์คํ์ํค๊ธฐ
=>ํด๋น ํ์ผ์ ๋ํ ์์ฑ ๋ณ๊ฒฝ์ ๋ง์์ผ ํ๋๋ฐ 'chattr +i ๋์_ํ์ผ'์์ผ๋ก ํด์ฃผ๋ฉด ๋๋ค.
1-10. ์ปค๋์ด๋ ์์คํ
์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ ๋ฐฐ๋(banner) ํ์ผ ๊ด๋ฆฌํ๊ธฐ
=>๋ฐฐ๋๋ฅผ ๊ด๋ฆฌํด์ผ ํ๋ ์ด์ ๋ ์์คํ
์์ ์คํ๋๊ณ ์๋ ์๋ฒ ์๋น์ค ๋ฐ๋ชฌ์ ์ ๋ณด๋ฅผ ์ธ๋ถ๋ก ๋
ธ์ถํ์ง ์๊ธฐ ์ํด์์ด๋ค.
Linux ์ค์น ์ ์ผ๋ฐ ์ฌ์ฉ์ ๊ถํ์ผ๋ก
โธ cat /etc/issue(์ฝ์ ๋ก๊ทธ์ธ ๋ฉ์์ง),
โธ cat /etc/issue.net(์๊ฒฉ ๋ก๊ทธ์ธ ๋ฉ์์ง),
โธ cat /etc/redhat-release(์๊ฒฉ ๋ก๊ทธ์ธ Linux ์ ๋ณด ๋ฉ์์ง)์์ ์์คํ
์ ๋ฒ์ ์ ๋ณด๋ฅผ ๋ณด์ด๊ณ , <=uname -a
โธ cat /etc/motd์์ Telnet์ด๋ ssh ๋ก๊ทธ์ธ ์ ์ฑ๊ณต ๋ฉ์์ง ๋ฑ์ด ๋ณด์ด๋ฏ๋ก ์ด๋ค์ ๋ค๋ฅธ ๋ฌธ์๋ก ์ฑ์ ๋ฃ๊ฑฐ๋ ๋น์๋๋ ๊ฒ์ด ์ข๋ค.
๋ SSH(openssh-server), vsFTP(vsftpd), HTTP(httpd) ์๋ฒ๋ฅผ ์ค์นํ ๋ค
โธ SSH ์๋ฒ์ ๋ฐฐ๋์ ๋ณด(/etc/ssh/sshd_config:129์ค-Banner none),
โธ vsFTP ์๋ฒ์ ๋ฐฐ๋์ ๋ณด(/etc/vsftpd/vsftpd.conf:85์ค-ftpd_banner=Welcome ~ ),
โธ HTTP ์๋ฒ์ ๋ฐฐ๋์ ๋ณด(/etc/httpd/conf/httpd.conf:44์ค-ServerTokens OS, ๊ทธ๋ฆฌ๊ณ 536์ค-ServerSignature on) ๋ฑ๋ ์ฃผ์#์ฒ๋ฆฌํด์ ๊ฐ์ถ๊ฑฐ๋ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋์ฒดํด์ ๋ณด์ด์ง ์๊ฒ ํด๋์ด์ผ ํ๋ค.
=>Linux์์๋ ๋ฐฉํ๋ฒฝ ์ค์ ์์
CLI๋ก firewall-cmd ......
iptables ...............์
GUI๋ก firewall-config ํด์ ๊ฐ๊ฐ ๋ค์ด๊ฐ์ ๋ฐฉํ๋ฒฝ์ ์กฐ์ ํ ์ ์๋ค!!!
=>์ด์ ๋ถํฐ Linux์์๋ firewall-cmd ~์ iptables ~ ์ค์ ํ ๊ฒ์ด ์ ์คํ๋์ง ์์ ๋ ๋งค์ฐ ๋ง๋ค!!! ๋ฐ๋ผ์ GUI ํ๋ฉด์์ ์ค์ ํ๋ ๊ฒ์ด ํ์คํ๋ค!!!
firewall-cmd ~ > iptables ~ > firewall-config ์์๋ก ์ ์ ์ฉ๋๋ค.
(๋ฌด์ง๋ง์งํ์ง๋ง ํ์ดํ
!!!!)
1-11. ๊ฐ์ ํ์ผ์์คํ
์ธ /proc ํ์ผ ์กฐ์ ํ๊ธฐ
=> /proc๋ฅผ ํตํ ์์คํ
์ค์ ๊ณผ ์ธ๋ถ ๊ณต๊ฒฉ ๋ง๊ธฐ
Linux ์์คํ
์ ์์คํ
์ด ๋ถํ
ํ ๋ ํ๋๋์คํฌ์ ์ ์ฅ๋ /etc/sysctl.conf ํ์ผ์ ์ค์ ๋ ์ปค๋ ๊ฐ์ ์ฌ์ฉํ๋ค. ํ์ง๋ง ์์คํ
์(์ฝ๊ฒ ๋งํด CPU๋) ํ๋๋์คํฌ์์ ์ ๋ณด๋ฅผ ์ฝ๋ ๊ฒ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ์์ ์ ๋ณด๋ฅผ ์ฝ๋ ๊ฒ์ด 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 ํ์ผ์ ์ค์ ๋ง ์กด์ฌํ๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด์ ์์คํ
์ฌ์ฉ ์ค์ ๋ณด์์ ๋ํ SELinux๋ฅผ setenforce 0 ํด์ ์ผ์์ ์ผ๋ก Permissive๋ก ํด๋๋๋ฐ, ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ /proc์์์ ์ค์ ์ด๊ธฐ ๋๋ฌธ์ ํ์ฌ ์คํ๋๋ ์์คํ
์์ ์ผ์์ ์ผ๋ก ์ ์ฉ๋๋ ์ค์ ์ด๊ณ ๋จธ์ ์ด ๋ฆฌ๋ถํ
๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์ด ์ ๋ณด๋ ์ฌ๋ผ์ง๊ณ ์๋ HDD์ /etc/selinux/config ์์์ ์ค์ ์ด ์ ์ฉ๋์ด ๋ค์ Enforcing์ด ๋๋ ๊ฒ์ ์๊ฐํด๋ณด๋ฉด ์ดํด๊ฐ ๋ ๊ฒ์ด๋ค.
์ฐธ๊ณ ๋ก D RAM๊ณผ S RAM์ด ์๋ค.
D RAM์ ์ ๊ธฐ๊ฐ ์์ ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ฅ๋๋ค. ์ฉ๋์ด ํฌ๋ค. S RAM์ ์ ๊ธฐ๊ฐ ์์ด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค. ์ฉ๋์ด ์๋ค. CPU์ L1 ์บ์ ๋ฉ๋ชจ๋ฆฌ, ๋ง๋๋ณด๋์ L2 ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค. ๊ทธ๋ํฝ์ L3 ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค. CPU+L1 ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ํต์ ์ผ๋ก S RAM์ธ๋ฐ ๋์ ์๋๊ฐ ๋๋ฆฌ๋ค. ์ฉ๋์ด ์๋ค. 16๊ธฐ๊ฐ๋ D RAM ๋๋ถ์ ๊ฐ๋ฅํ๋ค. SD ์นด๋๋ S RAM ์นด๋๋ค. ๊ทผ๋ฐ ์ ๊ธฐ๊ฐ ์์ผ๋ฉด ์ ์ฅ์ด ์๋๋ค. ํ๋ ๋ง๊ณ SD ์นด๋ ๊ฐ์ ๋ฐ ๊ฒ์์ ์ ์ฅํ๋ฉด ์๋๊ฐ ๋น ๋ฅด๋ค. ํ๋๋ณด๋ค๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋น ๋ฅด๋๊น.
/proc ํ์ผ์์คํ
์ ๋ฉ๋ชจ๋ฆฌ์์์ ์คํ๋๊ณ ์๋ ๋ชจ๋ Linux ์ปค๋ ์์๋ค์ ๋ํ ์ ๋ณด๋ฅผ PID๋ก ๊ตฌ๋ณํด์ ๋ณด๊ดํ๊ณ ์๋ค. ํ์ง๋ง ์ด /proc ํ์ผ์ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ ๋จธ์ ์ด ์คํ๋๋ ๋์๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ผ์์ ์ผ๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์ /proc๋ฅผ '๊ฐ์ ํ์ผ ์์คํ
'์ผ๋ก ๋ถ๋ฅธ๋ค. ๋ฐ๋ผ์ /proc ํ์ผ์์คํ
์์ ์ค์ํ ์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์ฌ๋ถํ
ํ์๋ ๊ณ์ ๊ทธ ์ค์ ์ด ์ ์ฉ๋๊ฒ ํ๋ ค๋ฉด ํ๋๋์คํฌ์ ์๋ /etc/sysctl.conf ํ์ผ์ ์ค์ ์ ์ ์ฅํด ๋์ด์ผ ํ๋ค.
=>๋ณด์์ธก๋ฉด์์ ๋ณด๋ฉด ์ธ๋ถ์์ DDoS์ ๊ฐ์ ๊ณต๊ฒฉ์ด ์์ ๋
HDD๋ก ๋ค์ด๊ฐ์ /etc/sysctl.conf ํ์ผ์ ์ด๊ณ ์ค์ ์ ๋ณ๊ฒฝํด์ ์ ์ฅํ๋ ์์
๋ณด๋ค ํ์ฌ ์คํ๋๊ณ ์๋ RAM์์ ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ๋ฐ๋ก ์ ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ /proc ๊ฐ์ ํ์ผ์์คํ
์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ํจ๊ณผ๊ฐ ์ข๋ค!!!
a) sysctl -a ํด์ HDD์ ์ ์ฅ๋ ๋ชจ๋ ์ค์ ์ ๋ณด๊ณ
b) sysctl -w net.ipv4.ip_forward=0 ํด์ ์ํ๋ ํญ๋ชฉ์ ์ค์ ์ ๋ณ๊ฒฝํ ๋ค
c) sysctl -a |grep "ip_forward" ํด์ ํ์ธํ๊ณ
d) cat /proc/sys/net/ipv4/ip_forward ํด์ ํ์ผ์์คํ
์์๋ ๋ณ๊ฒฝ์ ํ์ธํ ์ ์๋ค.
โ Telnet, FTP๋ SSH, HTTP ์๋น์ค์ ์ด๋ฆฐ ํฌํธ ๋ฑ ์กฐ์ ํ๊ธฐ
=>nano /proc/sys/net/ipv4/ip_local_port_range ํด์ ํ์ผ์ ์ด๊ณ
30000 35000์์ผ๋ก ์์ ํด์ ์ด ํฌํธ ์ด์ธ์ ํฌํธ๊ฐ ์ฐ๊ฒฐ๋๋ฉด ๊ด๋ฆฌ์๊ฐ ์์์ฐจ๋ฆฌ๊ธฐ ์ฝ๊ฒ ์ค์ ํด์ ์ ์ฅํ๋ค.
โก SYN Flooding ๊ณต๊ฒฉ ๋ง๊ธฐ
SYN Flooding ๊ณต๊ฒฉ์ ๋ ๋
ธ๋ ๊ฐ TCP ์ฐ๊ฒฐ์ธ 3-way handshakes๋ฅผ ์ด์ฉํ ์ผ์ข
์ DoS (Deny of Service) ๊ณต๊ฒฉ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก TCP์์์ 3-way handshakes ์ฐ๊ฒฐ์ ํด๋ผ์ด์ธํธ๊ฐ ๋จผ์ ์๋ฒ์๊ฒ SYN๋ฅผ ๋ณด๋ด์ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์ ์์ฒญํ๋ฉด >์๋ฒ๋ SYN+ACK๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด์ ์ฐ๊ฒฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ >๊ทธ๋ฌ๋ฉด ์ด์ ํด๋ผ์ด์ธํธ๊ฐ 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๋ผ๊ณ ํจ)์ ์ฉ๋์ด ๋ค ์ฐจ๋ฉด ์๋ฒ๊ฐ ์๋น์ค ๋ถ๋ฅ์ด ๋๊ฒ ๋๋ค.
=>์ด๋ฐ syn_flooding ๊ณต๊ฒฉ์ ๋ง์ผ๋ ค๋ฉด ์๋ฒ์ ๋ก๊ทธ๊ฐ ์ ์ฅ๋๋ ์ด backlog queue ์ฉ๋์ ๋๋ ค์ syn_flooding ๊ณต๊ฒฉ์ ๊ฒฌ๋๋ผ ๋์ ๊ด๋ฆฌ์๊ฐ ์กฐ์น๋ฅผ ์ทจํด์ ๋ง์ผ๋ฉด ๋๋ค.
=>iptables์์ --J drop๊ณผ --J reject๊ฐ ์๋๋ฐ ๋ชจ๋ ์ฐ๊ฒฐ์ ๊ฑฐ๋ถํ๋ ๊ฒ์ด์ง๋ง drop์ ๋ก๊ทธํ์ผ์ ๋จ๊ธฐ์ง ์๊ณ ๊ฑฐ๋ถํ๋ฉฐ, reject๋ ๋ก๊ทธํ์ผ๋ก ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ๊ฑฐ๋ถํ๋ค.
โข Smurf / Land ๊ณต๊ฒฉ ๋ง๊ธฐ
โ ์ค๋จธํ ๊ณต๊ฒฉ์ ํด์ปค๊ฐ ๋ฌด์ํ ์ถ๋ฐ์ง ์ฃผ์๊ฐ ๊ฐ์ง์ธ ์ฌ์ค IP ํจํท์ผ๋ก ์๋ฒ์๊ฒ SYN๋ก ๋ณด๋ด๋ฉด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ SYN+ACK๋ฅผ ๋ณด๋ด์ผ ํ๋๋ฐ ํด๋ผ์ด์ธํธ ์ฃผ์๊ฐ ๊ฐ์ง์ด๋ฏ๋ก SYN+ACK๋ฅผ ๋ณด๋ด๋ ๊ฒฐ๊ตญ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ACK๋ฅผ ๋ฐ์ง ๋ชปํ๊ณ ์ฐ๊ฒฐ ๋๊ธฐ ํ์์์์ ๊ฑธ๋ฆด ๋๊น์ง ๊ณ์ ํฌํธ๋ฅผ ์ด์ด๋๊ณ (half-open ์ํ) ๊ธฐ๋ค๋ฆฌ๋ ์ํ๊ฐ ๋๋ฏ๋ก ์ํํ๋ค.
=>์ด๋ฐ smurf ๊ณต๊ฒฉ์ ์๋ฐฉํ๋ ค๋ฉด TCP ์ฐ๊ฒฐ์ ์ด๊ธฐํํ๋ tcp_syncookies ๊ฐ์ 1๋ก ๋ง๋ค์ด์ ์จ์ ํ ํจํท๋ง ๋ฐ๊ฒ ํด๋๋ฉด ๋๋ค. ์ฌ์ค IP ๋ฑ์ ์ ์ ์ธํฐ๋ท์์ ์๋๋์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ธํฐ๋ท ์ฐ๊ฒฐ ํ๋์ ๊ธฐ๋กํ๋ cookies์ ๋ค์ด๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ฒ์ผ๋ก ์ถ๋ฐ์ง ์ฃผ์๋ฅผ ์์ด๋ ๊ฐ์ง ์ฌ์ค IP๋ฅผ ๊ฑธ๋ฌ๋ธ๋ค๊ณ ๋ด๋ ๋๋ค.
โ ๋๋ ๊ณต๊ฒฉ์ ํด์ปค๊ฐ ์ถ๋ฐ์ง ์ฃผ์์ ํฌํธ๋ฅผ ์์๋ก ๋ณ๊ฒฝํด์ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง ์ฃผ์๋ฅผ ๋์ผํ๊ฒ ํ๋ ํจํท์ ๋ณด๋ธ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ๋ ์๊ธฐ ์์ ๊ณผ ์ฐ๊ฒฐ์ ๋งบ์์ผ๋ก์จ ์คํ ์๋๊ฐ ๋๋ ค์ง๊ณ ๋์์ด ๋ง๋น๋๋ค.
=>ํจํท ํค๋๋ฅผ ๊ฒ์ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฃ์ด์ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง๊ฐ ๋์ผํ ์ฃผ์๋ฅผ ๊ฐ์ง ํจํท์ ๋ง๊ฒ ํด์ผ ํ๋ค.
โฃ ICMP Redirect ๋ง๊ธฐ
๋ก์ปฌ์์ ํ๊ฒ์ ์ฐพ์ ๋ ping์ผ๋ก ์ฐพ๋๋ฐ ์ด ping์์ ์ฌ์ฉํ๋ ICMP ํ๋กํ ์ฝ์ ์
์ฉํ ICMP Redirect ๊ณต๊ฒฉ์ ํด์ปค๊ฐ ์์ ์ MAC ์ฃผ์๋ฅผ ARP Spoofing ๊ธฐ๋ฒ ๋ฑ์ผ๋ก ๋ก์ปฌ์ ์๋ ์ฃผ๋ก ๋ผ์ฐํฐ(๊ฒ์ดํธ์จ์ด)์ MAC ์ฃผ์๋ฅผ ์์ ์ MAC ์ฃผ์์ ๊ฐ๊ฒ ์์ฌ์(MAC cloned) ๋ก์ปฌ ํธ์คํธ๋ค์ ๋ผ์ฐํฐ๋ก ๊ฐ๋ ํจํท์ด ํด์ปค ๋จธ์ ์๋ ๊ฒฝ๊ณผํ๋๋ก ๊ฒฝ๋ก ๋ณ๊ฒฝ์ ํด์ ์ด๋ค์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ณด๊ฒํ๋ ๊ณต๊ฒฉ์ด๋ค.
=>์ด๋ฐ icmp redirect์์ ์ฌ์ฉํ๋ ๊ฒฝ๋ก ๋ณ๊ฒฝ์ ๋ง์์ฃผ๋ฉด ๋๋ค.
โค Reverse Path Filtering์ผ๋ก DDoS(IP spoofing) ๋ง๊ธฐ
ํด์ปค๋ ์์์ ๊ฐ์ง IP ์ฃผ์๋ฅผ ๋ฌด์ ํ์ผ๋ก ์์ฑํด์ ํ๊ฒ ์๋ฒ์ ํน์ ์๋น์ค๋ฅผ ์์ฒญํ๋ SYN๋ฅผ ๋ณด๋ด๋ Smurf ๊ณต๊ฒฉ๊ณผ ์ ์ฌํ DDoS(Distributed DoS) ๊ณต๊ฒฉ์ ์ํํ๊ธฐ๋ ํ๋ค.
=>์ด๋ฅผ ๋ง๊ธฐ ์ํด์๋ ๋ค์ด์ค๋ ํจํท์ ํค๋๋ฅผ ๋ณด๊ฑฐ๋ ์ญ์ผ๋ก ์ถ์ ํด์ ์ฌ์ค IP ์ฃผ์์ด๊ฑฐ๋ ์ถ๋ฐ์ง ์ฃผ์๊ฐ ๋ถ๋ถ๋ช
ํ ํจํท์ ๋ง์ผ๋ฉด ๋๋ค.
โฅ Faked(Rogue) IP Filtering ํ๊ธฐ
โฆ Source Route ํจํท ์ ์ก ๋ง๊ธฐ
โง ping์ด๋ tracert์ ์๋ตํ์ง ์๊ธฐ
์ผ๋ฐ์ ์ธ ์ธ๋ถ๊ณต๊ฒฉ์ ๋๋นํ๊ธฐ
1. Buffer Overflow ๊ณต๊ฒฉ
2 ๊ฐ์ข
์ค๋ฅ๋ฅผ ์ด์ฉํ ๊ณต๊ฒฉ
โ ์๋ฒ ํ๋ก๊ทธ๋จ ์ค์ ์ ์ค๋ฅ๋ฅผ ์ด์ฉํ ๊ณต๊ฒฉ
โก ์ด๊ธฐ ํจ์ค์๋ ๊ณ์ ์ฌ์ฉ์ ์ด์ฉํ ๊ณต๊ฒฉ
โข API(์ดํ๋ฆฌ์ผ์ด์
) ์ค๋ฅ๋ฅผ ํตํ ๊ณต๊ฒฉ
โฃ Server ์ค์ผ ๊ณต๊ฒฉ(XSS, CSRF)
โค Session Hijacking ๊ณต๊ฒฉ
โฅ SQL Injection ๊ณต๊ฒฉ
โฆ OS Injection ๊ณต๊ฒฉ
โง Directory Traverse ๊ณต๊ฒฉ
์ค์ต
1-8. ์ฌ์ฉ์ ํจ์ค์๋ ๊ด๋ฆฌํ๊ธฐ
chage centos์์ผ๋ก ํด์ centos ์ฌ์ฉ์์ ์ต์ ํจ์ค์๋ ๊ธฐ๊ฐ, ์ต๋ ํจ์ค์๋ ๊ธฐ๊ฐ, ๋ง์ง๋ง ํจ์ค์๋ ๋ณ๊ฒฝ(๊ณ์ ์ ํจ๊ธฐ๊ฐ) ๋ฑ์ ์ง์ ํ ์ ์๋ค.
1) chage ๋ช ๋ น์ด
[1] change age์ ์ฝ์๋ก ๊ณ์ ์ ํจ์ค์๋ ๋ณ๊ฒฝ์ ๋ํ ์ ์ฑ ์ ์ธ์ฐ๋ ๋ช ๋ น์ด์ด๋ค.
[2] Minimum Password Age
- ํจ์ค์๋ ์ต์์ฌ์ฉ๊ธฐ๊ฐ์ผ๋ก ํจ์ค์๋๋ฅผ ๋ณ๊ฒฝ ํ 7์ผ ๋์ ํจ์ค์๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค.
[3] Maximum Password Age
- ํจ์ค์๋ ๋ณ๊ฒฝ ํ 60์ผ ๋ด์ ๋ค๋ฅธ ํจ์ค์๋๋ก ๋ณ๊ฒฝํ์ฌ์ผ ํ๋ค.
[4] Last Password Change
- ๋ง์ง๋ง์ผ๋ก ํจ์ค์๋๋ฅผ ๋ณ๊ฒฝํ ๋ ์ง์ด๋ค.
- ์ด ๋ ์ง๋ถํฐ Maximum Password Age ๊น์ง๊ฐ ํจ์ค์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๊ฐ์ด๋ค.
[5] Password Expiration Warning
- ํจ์ค์๋ ๋ง๋ฃ ์ด ๊ธฐ๊ฐ(3์ผ) ์ ๋ถํฐ ๊ฒฝ๊ณ ๋ฉ์ธ์ง๋ฅผ ํ์ํ๋ค.
[6] Password Inactive
- ํจ์ค์๋ ๋ง๋ฃ ํ ์ด ๊ธฐ๊ฐ(1์ผ) ํ ๊ณ์ ์ ์ ๊ทผ๋ค.
[7] Account Expiration Date
- ๊ณ์ ์ ์ ํจ๊ธฐ๊ฐ์ ๋งํ๋ค.
- ์ด ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค
(์ถ์ฒ: https://ccurity.tistory.com/155)
chage -l centos๋ก ํ์ธํ ์ ์๋ค.
1-10. ์ปค๋์ด๋ ์์คํ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ ๋ฐฐ๋(banner) ํ์ผ ๊ด๋ฆฌํ๊ธฐ
/etc/motd
์ผํ ์ค2์์ SSH๋ก ์ ์ํ๋๋ ๋ฐฐ๋๊ฐ ๋ฌ๋ค
vsftp ๋ฐ๋ชฌ ์ค์น
yum -y install vsftpd
nano -c /etc/vsftpd/vsftpd.conf
์ค์ ํ์ผ.๊ตฌ์ฑํ์ผ์ ๋ณธ๋ค. (https://heroineyen.tistory.com/82์์ ๋๊ธ๋ฑ ์ด 2๋ฒ)
์ด๋ ๊ฒ ์ฃผ์์ฒ๋ฆฌ๋ฅผ ํ๋ฉด ์ธ๋ถ์์ ๋ณ๊ฒฝ๋ ๋ฐฐ๋๋ฅผ ๋ณผ ์ ์๋ค.
๋ฐฉํ๋ฒฝ ์ด๊ณ ftp ์ฒดํฌ, systemctl start vsftpd, enable ๊น์ง ํด์ฃผ๊ณ LISTEN ์ฒดํฌ ํด๋ณด๋ฉด ์ ์ด๋ ค ์๋ค.
setenforce 0๋ ํด์ค๋ค.
BT์์ ์ ์ํ์ ๋ ๋ฐฐ๋๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ฌ๋ค.
centos2์์ ์ ์ํ์ ๋๋ ๋๊ฐ์ด ๋ฌ๋ค.
=>Linux์์๋ ๋ฐฉํ๋ฒฝ ์ค์ ์์
CLI๋ก firewall-cmd ......
iptables ...............์
GUI๋ก firewall-config ํด์ ๊ฐ๊ฐ ๋ค์ด๊ฐ์ ๋ฐฉํ๋ฒฝ์ ์กฐ์ ํ ์ ์๋ค!!!
=>์ด์ ๋ถํฐ Linux์์๋ firewall-cmd ~์ iptables ~ ์ค์ ํ ๊ฒ์ด ์ ์คํ๋์ง ์์ ๋๊ฐ ๋งค์ฐ ๋ง๋ค!!! ๋ฐ๋ผ์ GUI ํ๋ฉด์์ ์ค์ ํ๋ ๊ฒ์ด ํ์คํ๋ค!!!
iptables -A INPUT -p tcp --dport=21 -j ACCEPT
service iptables reload
์ด๋ฐ ๋ช ๋ น์ด๋ ์๋ค.
์ฐธ๊ณ ๋ก ์์๋ ๊ฒ
==>์ ์ ํ '!๋ช ๋ น์ด'๋ ํ์ฌ ํธ์คํธ์์ ์์ ํ๋ ๊ฒ์ด๊ณ , ๊ทธ๋ฅ '๋ช ๋ น์ด'๋ ์ฐ๊ฒฐ๋ ํ๊ฒ ๋จธ์ ์์ ์์ ํ๋ ๊ฒ์ด๋ค.
!ls ํ์ฌ ๋ชฉ๋ก ๋ณด์ฌ์ค, ls ํ๊ฒ ๋จธ์ ๋ณด์ฌ์ค
!pwd์ pwd์ ์ฐจ์ด
bt ํ ์คํธ ํ์ผ ๋ง๋ค์ด์ ์ ์ก
์ ์๋ค
mkdir CENT๋ ๊ฐ๋ฅํ๋ค.
ํ์ผ ์ฝ๊ฑฐ๋ uname-a๋ ์๋จนํ๋ ๊ฑธ ๋ณด๋ฉด ํ์ผ ๋ง๋ค๊ณ ์ก์์ ์ ๋๋ง ๋๋ ๋ชจ์.
uname -a
[root@localhost centos1]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
1-11. ๊ฐ์ ํ์ผ์์คํ
์ธ /proc ํ์ผ ์กฐ์ ํ๊ธฐ
=> /proc๋ฅผ ํตํ ์์คํ
์ค์ ๊ณผ ์ธ๋ถ ๊ณต๊ฒฉ ๋ง๊ธฐ
Linux ์์คํ
์ ์์คํ
์ด ๋ถํ
ํ ๋ ํ๋๋์คํฌ์ ์ ์ฅ๋ /etc/sysctl.conf ํ์ผ์ ์ค์ ๋ ์ปค๋ ๊ฐ์ ์ฌ์ฉํ๋ค. ํ์ง๋ง ์์คํ
์(์ฝ๊ฒ ๋งํด CPU๋) ํ๋๋์คํฌ์์ ์ ๋ณด๋ฅผ ์ฝ๋ ๊ฒ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ์์ ์ ๋ณด๋ฅผ ์ฝ๋ ๊ฒ์ด 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 ํ์ผ์ ์ค์ ๋ง ์กด์ฌํ๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด์ ์์คํ
์ฌ์ฉ ์ค์ ๋ณด์์ ๋ํ SELinux๋ฅผ setenforce 0 ํด์ ์ผ์์ ์ผ๋ก Permissive๋ก ํด๋๋๋ฐ, ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ /proc์์์ ์ค์ ์ด๊ธฐ ๋๋ฌธ์ ํ์ฌ ์คํ๋๋ ์์คํ
์์ ์ผ์์ ์ผ๋ก ์ ์ฉ๋๋ ์ค์ ์ด๊ณ ๋จธ์ ์ด ๋ฆฌ๋ถํ
๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์์ ์ด ์ ๋ณด๋ ์ฌ๋ผ์ง๊ณ ์๋ HDD์ /etc/selinux/config ์์์ ์ค์ ์ด ์ ์ฉ๋์ด ๋ค์ Enforcing์ด ๋๋ ๊ฒ์ ์๊ฐํด๋ณด๋ฉด ์ดํด๊ฐ ๋ ๊ฒ์ด๋ค.
์ฐธ๊ณ ๋ก D RAM๊ณผ S RAM์ด ์๋ค.
D RAM์ ์ ๊ธฐ๊ฐ ์์ ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ฅ๋๋ค. ์ฉ๋์ด ํฌ๋ค. S RAM์ ์ ๊ธฐ๊ฐ ์์ด๋ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค. ์ฉ๋์ด ์๋ค. CPU์ L1 ์บ์ ๋ฉ๋ชจ๋ฆฌ, ๋ง๋๋ณด๋์ L2 ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค. ๊ทธ๋ํฝ์ L3 ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค. CPU+L1 ์บ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ํต์ ์ผ๋ก S RAM์ธ๋ฐ ๋์ ์๋๊ฐ ๋๋ฆฌ๋ค. ์ฉ๋์ด ์๋ค. 16๊ธฐ๊ฐ๋ D RAM ๋๋ถ์ ๊ฐ๋ฅํ๋ค. SD ์นด๋๋ S RAM ์นด๋๋ค. ๊ทผ๋ฐ ์ ๊ธฐ๊ฐ ์์ผ๋ฉด ์ ์ฅ์ด ์๋๋ค. ํ๋ ๋ง๊ณ SD ์นด๋ ๊ฐ์ ๋ฐ ๊ฒ์์ ์ ์ฅํ๋ฉด ์๋๊ฐ ๋น ๋ฅด๋ค. ํ๋๋ณด๋ค๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋น ๋ฅด๋๊น.
/proc ํ์ผ์์คํ
์ ๋ฉ๋ชจ๋ฆฌ์์์ ์คํ๋๊ณ ์๋ ๋ชจ๋ Linux ์ปค๋ ์์๋ค์ ๋ํ ์ ๋ณด๋ฅผ PID๋ก ๊ตฌ๋ณํด์ ๋ณด๊ดํ๊ณ ์๋ค. ํ์ง๋ง ์ด /proc ํ์ผ์ ๊ฐ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ์ด ์๋๋ผ ๋จธ์ ์ด ์คํ๋๋ ๋์๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ผ์์ ์ผ๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์ /proc๋ฅผ '๊ฐ์ ํ์ผ ์์คํ
'์ผ๋ก ๋ถ๋ฅธ๋ค. ๋ฐ๋ผ์ /proc ํ์ผ์์คํ
์์ ์ค์ํ ์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์ฌ๋ถํ
ํ์๋ ๊ณ์ ๊ทธ ์ค์ ์ด ์ ์ฉ๋๊ฒ ํ๋ ค๋ฉด ํ๋๋์คํฌ์ ์๋ /etc/sysctl.conf ํ์ผ์ ์ค์ ์ ์ ์ฅํด ๋์ด์ผ ํ๋ค.
๋ฉ๋ชจ๋ฆฌ์ ์๋ ๊ฐ์ ํ์ผ ์์คํ
์ปดํจํฐ๊ฐ ์คํ๋๊ณ ์๋ ๋์์ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด
ls /proc/sys/net/ipv4
์ค์ ๊ฐ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ณ ์ฝ์ด์ ๋์์ ํด์ฃผ๋ ๊ฒ
์ผํ ์ค์ ํ๋์จ์ด ์ค์ ๊ฐ์ ์ฌ๊ธฐ์ ์๋ค.
์ฝ์ผ๋ ค๋ฉด ์ด๋ ๊ฒ ํด์ค๋ผ.
๊ฐ์ฌ๋ ๊บผ์ 00์ผ๋ก ์์ํ๋ ์ ํ์ผ๊น์ง ๋์ ์์์
[root@localhost ~]# cat /usr/lib/sysctl.d/00-system.conf
# Kernel sysctl configuration file
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
๊ป๋ค ์ผ๋ฉด ๋๋ ๊ธฐ๋ณธ ์ค์ ์ธ 0์ผ๋ก ๋ค์ ๋ณ๊ฒฝ๋์ด ์์ ๊ฒ์ด๋ค. proc ๊ฐ์๋ฉ๋ชจ๋ฆฌ์์ ์์ ํ์ผ๋๊น.
์ค์ ์ ๋ฐ๊พธ๋ ค๋ฉด ์ด๋ฆ์ ์ง์ด๋ฃ์ด.
ใ ใ
์ผํ ์ค 7์์๋ ๋ค์์ฒ๋ผ ํ์ํ ๋ด์ฉ์ ์ค์ ํด๋ ์ ์๋ค.
nano /etc/sysctl.conf ํ๋ฉด /usr/lib/sysctl.d/00-system.conf ํ์ผ์ ์ค์ ์ด ์๊ณ , ์ด ์ค์ ์ ๋ฎ์ด์ฐ๋ ค๋ฉด /etc/sysctl.conf ํ์ผ์ ์ ์ด์ /etc/sysctl.d/<name>.conf ํด์ฃผ๋ฉด ๋๋ค๊ณ ๋ณด์ธ๋ค.
echo "net.ipv4.ip_local_port_range=32768 40000" >> /etc/sysctl.conf
vm.swappiness=20 ๋ฑ๋ฑ
sysctl -p ํด์ ์ค์ ์ ๋ณธ๋ค.
sysctl -a
๋ฐ๊ฟจ๋ค.
๋ฐ๋์ด์๋ค.
=>๋ณด์์ธก๋ฉด์์ ๋ณด๋ฉด ์ธ๋ถ์์ DDoS์ ๊ฐ์ ๊ณต๊ฒฉ์ด ์์ ๋
HDD๋ก ๋ค์ด๊ฐ์ /etc/sysctl.conf ํ์ผ์ ์ด๊ณ ์ค์ ์ ๋ณ๊ฒฝํด์ ์ ์ฅํ๋ ์์
๋ณด๋ค ํ์ฌ ์คํ๋๊ณ ์๋ RAM์์ ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ๋ฐ๋ก ์ ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ /proc ๊ฐ์ ํ์ผ์์คํ
์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ํจ๊ณผ๊ฐ ์ข๋ค!!!
/proc ์ค์ ๋ฒ
a) sysctl -a ํด์ HDD์ ์ ์ฅ๋ ๋ชจ๋ ์ค์ ์ ๋ณด๊ณ
b) sysctl -w net.ipv4.ip_forward=0 ํด์ ์ํ๋ ํญ๋ชฉ์ ์ค์ ์ ๋ณ๊ฒฝํ ๋ค
c) sysctl -a |grep "ip_forward" ํด์ ํ์ธํ๊ณ
d) cat /proc/sys/net/ipv4/ip_forward ํด์ ํ์ผ์์คํ
์์๋ ๋ณ๊ฒฝ์ ํ์ธํ ์ ์๋ค.
[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
1
ํ๋์จ์ด ์ค์ ๋ฒ ๋ง์ง๋ง์ค
โ Telnet, FTP๋ SSH, HTTP ์๋น์ค์ ์ด๋ฆฐ ํฌํธ ๋ฑ ์กฐ์ ํ๊ธฐ
์ ์์๊ฐ ์กฐ์
=>nano /proc/sys/net/ipv4/ip_local_port_range ํด์ ํ์ผ์ ์ด๊ณ
30000 35000์์ผ๋ก ์์ ํด์ ์ด ํฌํธ ์ด์ธ์ ํฌํธ๊ฐ ์ฐ๊ฒฐ๋๋ฉด ๊ด๋ฆฌ์๊ฐ ์์์ฐจ๋ฆฌ๊ธฐ ์ฝ๊ฒ ์ค์ ํด์ ์ ์ฅํ๋ค.
โก SYN Flooding ๊ณต๊ฒฉ ๋ง๊ธฐ
SYN Flooding ๊ณต๊ฒฉ์ ๋ ๋
ธ๋ ๊ฐ TCP ์ฐ๊ฒฐ์ธ 3-way handshakes๋ฅผ ์ด์ฉํ ์ผ์ข
์ DoS (Deny of Service) ๊ณต๊ฒฉ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก TCP์์์ 3-way handshakes ์ฐ๊ฒฐ์ ํด๋ผ์ด์ธํธ๊ฐ ๋จผ์ ์๋ฒ์๊ฒ SYN๋ฅผ ๋ณด๋ด์ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์ ์์ฒญํ๋ฉด >์๋ฒ๋ SYN+ACK๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ด์ ์ฐ๊ฒฐ์ ๊ธฐ๋ค๋ฆฌ๊ณ >๊ทธ๋ฌ๋ฉด ์ด์ ํด๋ผ์ด์ธํธ๊ฐ 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๋ผ๊ณ ํจ)์ ์ฉ๋์ด ๋ค ์ฐจ๋ฉด ์๋ฒ๊ฐ ์๋น์ค ๋ถ๋ฅ์ด ๋๊ฒ ๋๋ค.
=>์ด๋ฐ syn_flooding ๊ณต๊ฒฉ์ ๋ง์ผ๋ ค๋ฉด ์๋ฒ์ ๋ก๊ทธ๊ฐ ์ ์ฅ๋๋ ์ด backlog queue ์ฉ๋์ ๋๋ ค์ syn_flooding ๊ณต๊ฒฉ์ ๊ฒฌ๋๋ผ ๋์ ๊ด๋ฆฌ์๊ฐ ์กฐ์น๋ฅผ ์ทจํด์ ๋ง์ผ๋ฉด ๋๋ค.
=>iptables์์ --J drop๊ณผ --J reject๊ฐ ์๋๋ฐ ๋ชจ๋ ์ฐ๊ฒฐ์ ๊ฑฐ๋ถํ๋ ๊ฒ์ด์ง๋ง drop์ ๋ก๊ทธํ์ผ์ ๋จ๊ธฐ์ง ์๊ณ ๊ฑฐ๋ถํ๋ฉฐ, reject๋ ๋ก๊ทธํ์ผ๋ก ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ๊ฑฐ๋ถํ๋ค.
...๋ผ๋๋ฐ.. ์ดํด ๋๋์????? ์ ์ดํด๊ฐ ์๋ผ์ ๊ธ์ด ์์ต๋๋ค.
1. "3-way-handshake"์ ์์์ผ, SYN Flooding ๊ณต๊ฒฉ์ ์ดํดํ ์ ์๋ค.
TCP๋ ์ธ ์ฐจ๋ก์ ํจํท๋ค์ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ๋ง TCP ์ฐ๊ฒฐ(connection)์ด ์ฑ๋ฆฝ(establish)๋ฉ๋๋ค. ํจํท์ ์ฃผ๊ณ ๋ฐ๋ ๋ด์ฉ๋ค์ ์๋์ ๊ฐ์ต๋๋ค.
โ Client๋ SYN ํจํท(sequence number ํฌํจ)์ ์์ฑํด์, Server์๊ฒ ์ ๋ฌํฉ๋๋ค. ์ผ์ข ์, "ํฌํธ ์ด๋ ค์๋์?" ๋ผ๊ณ ๋ฌธ์ ๋๋๋ฆฌ๋ ๊ณผ์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ฉ๋๋ค.
โก Server๋ SYN ํจํท(sequence number ํฌํจ)๊ณผ ๋ฐ์ SYN์ ๋๋ต ๊ฒฉ์ธ ACK ํจํท(acknowledgement number ํฌํจ)์ Client์๊ฒ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Server๋ Client์ ์ ์์ ๋ฐ์๋ค์ด๊ธฐ ์ํด, RAM(๋ฉ๋ชจ๋ฆฌ)์ ์ผ์ ๊ณต๊ฐ์ ํ๋ณดํด๋ก๋๋ค.
์ผ์ข ์, "๋ค, ์ด๋ ค์์ต๋๋ค." ๋ผ๊ณ ๋๋ตํ๋ ๊ณผ์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ฉฐ, acknowledgement number์ ๊ฐ์, ๋ฐฉ๊ธ ๋ฐ์ SYN ํจํท์ sequence number ๊ฐ์ ์ผ์ ๊ฐ์ ์ฆ๊ฐ์์ผ์ ๋ณด๋ ๋๋ค.
โข ๊ทธ๋ฆฌ๊ณ ๋ค์ Client๋ ๋ฐฉ๊ธ ๋ฐ์ SYN์ ๋๋ต ๊ฒฉ์ธ ACK ํจํท(acknowledgement number ํฌํจ)์ Server์๊ฒ ์ ๋ฌํฉ๋๋ค. ์ผ์ข ์, "๊ทธ๋ผ ๋ค์ด๊ฐ๊ฒ ์ต๋๋ค~" ๋ผ๊ณ ๋๋ตํ๋ ๊ณผ์ ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋ง์ฐฌ๊ฐ์ง๋ก acknowledgement number์ ๊ฐ์, ๋ฐฉ๊ธ ๋ฐ์ SYN ํจํท์ sequence number ๊ฐ์ ์ผ์ ๊ฐ์ ์ฆ๊ฐ์์ผ์ ๋ณด๋ ๋๋ค.
์ด๋ ๊ฒ Client๋ Server์ Established ์ํ๋ก ์ฐ๊ฒฐ์ด ๋ฉ๋๋ค.
์ ์ธ ์ฐจ๋ก์ ํจํท์ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ ์ผ๋ จ์ ํ์์ ํ๊ฒฐํ์ฌ ์ ์ํ๋ ๋ชจ์ต๊ณผ ๊ฐ์์, 3-way-handshake(์ ์) ๋ผ๋ ์ด๋ฆ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
*์ฐธ๊ณ : ์ฐ๊ฒฐ์ ๋์ ๋์๋ 4-way-handshake ๋ผ๋ ๋ฐฉ์์ผ๋ก ๋์ต๋๋ค.
2. SYN Flooding ๊ณต๊ฒฉ์ ๋ฌด์์ธ๊ฐ?
SYN Flooding์, ์ 3-way-handshake์ โก๋ฒ ๊ณผ์ ์์ ์ธ๊ธํ๋ ๋ด์ฉ์ ์ง์คํ์ ์ผ ํฉ๋๋ค.
"โก Server๋ SYN ํจํท๊ณผ ACK ํจํท์ Client์๊ฒ ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Server๋ Client์ ์ ์์ ๋ฐ์๋ค์ด๊ธฐ ์ํด, RAM(๋ฉ๋ชจ๋ฆฌ)์ ์ผ์ ๊ณต๊ฐ์ ํ๋ณดํด๋ก๋๋ค."
Client๊ฐ โ SYN ํจํท๋ง์ ๊ณ์์ ์ผ๋ก ๋ณด๋ด๊ณ โขACK ํจํท์ ์๋ณด๋ด๊ฒ ๋๋ฉด, Server๋ Client์ ์ฐ๊ฒฐ์ ๋ฐ์๋ค์ด๊ธฐ ์ํด RAM(๋ฉ๋ชจ๋ฆฌ) ๊ณต๊ฐ์ ์ ์ ๋ ๋ง์ด ํ๋ณดํด๋ ์ํ์์ ๋๊ธฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ Server์ RAM์ด ๊ฝ ์ฐจ๊ฒ ๋๋ฉด ๋์ด์ ์ฐ๊ฒฐ์ ๋ฐ์๋ค์ผ ์ ์๊ฒ๋๊ณ , Server๋ ์๋น์ค๋ฅผ ์๋น์ค๋ฅผ ๊ณ์ํ ์๊ฐ ์๊ฒ ๋์ฃ .
์ค์ต
SYN flooding ๋ง๊ธฐ- ๋ฐฑ๋ก๊ทธ ํ ๋๋ฆฌ๊ธฐ, ๋ฐฉํ๋ฒฝ์ ์ฐจ๋จ ์ ์ฑ ์ถ๊ฐํ๊ธฐ
[root@localhost centos1]# cat /proc/sys/net/ipv4/tcp_max_syn_backlog
128 #์ฉ๋์ด 128K
[root@localhost centos1]# sysctl -w net.ipv4.tcp_max_syn_backlog=10240
net.ipv4.tcp_max_syn_backlog = 10240 #10๋ฉ๊ฐ๋ก ๋๋ ค์ค๋ค.
[root@localhost centos1]# iptables -I INPUT 1 -p tcp --dport 22 -j REJECT #REJECT๋ ๋ก๊ทธํ์ผ๋ก ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ๊ฑฐ๋ถํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ธ๋ ์ ์ ์๋ค.
[root@localhost centos1]# iptables -I INPUT 1 -p tcp --dport 22 -m recent --update --seconds 1 --hitcount 10 --name SSH -j DROP #DROP์ ๋ก๊ทธํ์ผ์ ๋จ๊ธฐ์ง ์๊ณ ๊ฑฐ๋ถํ๋ค. ์์ธ๋ ์ ์ ์๋ค.
DROP๊ณผ REJECT
REJECT๋ ๋ก๊ทธํ์ผ๋ก ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ๊ฑฐ๋ถํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ธ๋ ์ ์ ์๋ค.
DROP์ ๋ก๊ทธํ์ผ์ ๋จ๊ธฐ์ง ์๊ณ ๊ฑฐ๋ถํ๋ค. ์์ธ๋ ์ ์ ์๋ค.
์ ์ฟ ํค 1๋ก ์ค์ ํ๊ธฐ
[root@localhost centos1]# sysctl -w net.ipv4.tcp_syncookies=1
net.ipv4.tcp_syncookies = 1
[root@localhost centos1]# cat /proc/sys/net/ipv4/tcp_syncookies
1
โข Smurf / Land ๊ณต๊ฒฉ ๋ง๊ธฐ
โ ์ค๋จธํ ๊ณต๊ฒฉ์ ํด์ปค๊ฐ ๋ฌด์ํ ์ถ๋ฐ์ง ์ฃผ์๊ฐ ๊ฐ์ง์ธ ์ฌ์ค IP ํจํท์ผ๋ก ์๋ฒ์๊ฒ SYN๋ก ๋ณด๋ด๋ฉด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ SYN+ACK๋ฅผ ๋ณด๋ด์ผ ํ๋๋ฐ ํด๋ผ์ด์ธํธ ์ฃผ์๊ฐ ๊ฐ์ง์ด๋ฏ๋ก SYN+ACK๋ฅผ ๋ณด๋ด๋ ๊ฒฐ๊ตญ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ACK๋ฅผ ๋ฐ์ง ๋ชปํ๊ณ ์ฐ๊ฒฐ ๋๊ธฐ ํ์์์์ ๊ฑธ๋ฆด ๋๊น์ง ๊ณ์ ํฌํธ๋ฅผ ์ด์ด๋๊ณ (half-open ์ํ) ๊ธฐ๋ค๋ฆฌ๋ ์ํ๊ฐ ๋๋ฏ๋ก ์ํํ๋ค.
=>์ด๋ฐ smurf ๊ณต๊ฒฉ์ ์๋ฐฉํ๋ ค๋ฉด TCP ์ฐ๊ฒฐ์ ์ด๊ธฐํํ๋ tcp_syncookies ๊ฐ์ 1๋ก ๋ง๋ค์ด์ ์จ์ ํ ํจํท๋ง ๋ฐ๊ฒ ํด๋๋ฉด ๋๋ค. ์ฌ์ค IP ๋ฑ์ ์ ์ ์ธํฐ๋ท์์ ์๋๋์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ธํฐ๋ท ์ฐ๊ฒฐ ํ๋์ ๊ธฐ๋กํ๋ cookies์ ๋ค์ด๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ฒ์ผ๋ก ์ถ๋ฐ์ง ์ฃผ์๋ฅผ ์์ด๋ ๊ฐ์ง ์ฌ์ค IP๋ฅผ ๊ฑธ๋ฌ๋ธ๋ค๊ณ ๋ด๋ ๋๋ค.
ํ์์์ ์ด๋ ๊ฒ ๋ฐฐ์ ๋๋ฐ ์ค๊ฐ๋ ์ด์๋ค.
์ค๋จธํ ๊ณต๊ฒฉ์ SYN ๋ฐ ACK ํจํท์ ๋ณด๋ด์ง ์์ต๋๋ค. ์ค๋จธํ ๊ณต๊ฒฉ์ ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ก ๋ง์ ์์ ์ธํฐ๋ท ์ ์ด ๋ฉ์์ง ํ๋กํ ์ฝ (ICMP) ํจํท์ ๋ณด๋ด๋ ๋ถ์ฐ ์๋น์ค ๊ฑฐ๋ถ (DDoS) ๊ณต๊ฒฉ ์ ํ์ ๋๋ค. ํจํท์ ๋์์ธ ๊ณต๊ฒฉ์ ์์กฐ๋ ์์ค IP ์ฃผ์๋ก ๋ณด๋ด์ง๋๋ค. ์ค๋จธํ ๊ณต๊ฒฉ์ ๋ชฉํ๋ ํผํด์์ ๋คํธ์ํฌ๋ฅผ ํธ๋ํฝ์ผ๋ก ๊ณผ๋ถํ์ํค๊ณ , ํฉ๋ฒ์ ์ธ ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ์ ์๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค.
SYN ๋ฐ ACK ํจํท์ ๋ค๋ฅธ ์ ํ์ DDoS ๊ณต๊ฒฉ์ธ SYN ํ๋ฌ๋ ๊ณต๊ฒฉ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๋์ ์๋ฒ์ ๋๋์ SYN ํจํท์ ๋ณด๋ด์ ๋ชจ๋ ๊ฐ๋ฅํ ๋ฆฌ์์ค๋ฅผ ์๋นํ๊ณ , ํฉ๋ฒ์ ์ธ ํธ๋ํฝ ์ฒ๋ฆฌ๋ฅผ ๋ฐฉํดํ๋ ๊ฒ์ด ๋ชฉํ์ ๋๋ค.
์ค๋จธํ ๊ณต๊ฒฉ(Smurf attack)์ ํฌ์์์ ์คํธํ๋ ์๋ณธ IP๋ฅผ ๊ฐ์ง ์๋ง์ ์ธํฐ๋ท ์ ์ด ๋ฉ์์ง ํ๋กํ ์ฝ(ICMP)ํจํท๋ค์ด
IP ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํจํฐ ๋คํธ์ํฌ๋ก ๋ธ๋ก๋์บ์คํธํ๋ ๋ถ์ฐ ์๋น์ค ๊ฑฐ๋ถ ๊ณต๊ฒฉ์ด๋ค.
chatGPT
๋คํธ์ํฌ์ ๋๋ถ๋ถ์ ์ฅ์น๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ณธ IP ์ฃผ์์ ์๋ต์ ๋ณด๋์ผ๋ก์จ ์ด์ ์๋ตํ๋ค. ์ด ํจํท์ ์๋ตํ๊ณ ํจํท์ ์์ ํ๋ ๋คํธ์ํฌ์ ๊ธฐ๊ณ ์๊ฐ ๋งค์ฐ ๋ง๋ค๋ฉด ํฌ์์์ ์ปดํจํฐ๋ ํธ๋ํฝ์ผ๋ก ๋์ณ๋๊ฒ ๋๋ค. ์ด๋ก ์ธํด ํฌ์์์ ์ปดํจํฐ๋ ๋์์ด ๋ถ๊ฐ๋ฅํด์ง ์ ๋๋ก ๋๋ ค์ง๊ฒ ๋ ์ ์๋ค.
- ์ถ์ฒ๋, Wikipedia
์ฌ๋ฌ ํธ์คํธ๊ฐ ๊ณต๊ฒฉ ๋์์๊ฒ ๋ง์ ์์ ICMP Echo Request๋ฅผ ๋ณด๋ด๊ฒ ํ์ฌ ๊ณต๊ฒฉ ๋์์ด ๋ง๋น๋ฉ๋๋ค.
๊ณต๊ฒฉ ํ๋ก์ฐ๋ฅผ ํ ๋ฒ ์ดํด ๋ณผ๊น์!?
๊ณต๊ฒฉ์๊ฐ ๊ณต๊ฒฉ๋์์ด ์ํด์๋ ๋คํธ์ํฌ์ ping์ ๋ณด๋ผ ๋
์ถ๋ฐ์ง ip๋ฅผ ๊ณต๊ฒฉ ๋์์ ip๋ก ๋ณ์กฐํด์ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค!
๊ณต๊ฒฉ ๋์์ด ์ํด์๋ ๋คํธ์ํฌ ์์ ๋ชจ๋ ํธ์คํธ๋ค์๊ฒ ICMP Echo Request๊ฐ ์ ๋ฌ๋ฉ๋๋ค!
ICMP Echo Request๋ฅผ ๋ฐ์ ๋ชจ๋ ํธ์คํธ๋ค์ด ๊ณต๊ฒฉ ๋์์๊ฒ ์๋ต ํจํท์ ๋ ๋ฆฝ๋๋ค!
์์.. ์ด๋ ๊ฒ ๋์ ๊ฐ์ จ์ต๋๋ค.... ใธในใน...
์ฌ๊ธฐ์ ๋๋๋ฉด ์๋๋์ฃ ~
SMURF ๋์ ๋ฐฉ์ ๋๊ฐ์ญ๋๋ค!
1. ๋ค๋ฅธ ๋คํธ์ํฌ๋ก๋ถํฐ ์์ ์ ๋คํธ์ํฌ๋ก ๋ค์ด์ค๋ IP broadcast ํจํท์ ๋ง์ผ๋ฉด ๋ฉ๋๋ค!
๊ทธ๋ ๋ค๋ฉด, ๋๊ฐ ๋ง์ ์ ์์๊น์!?
์ฐ๋ฆฌ์ ๋๊ตด๋งจ์ด ํด๊ฒฐํด ์ฃผ์๋ค์!!
์ ๋ต์ ๋ฐ๋ก ๋ผ์ฐํฐ! ๋คํธ์ํฌ์ ๊ฒฝ๊ณ๋ฅผ ๋ด๋นํ๋ ๋ผ์ฐํฐ์ IP broadcast ํจํท์ ๋ํ ์ค์ ์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
2. ํธ์คํธ๋ค์ IP broadcast ์ฃผ์๋ก ์ ์ก๋ ICMP ํจํท์ ๋ํ์ฌ ์๋ตํ์ง ์๋๋ก ์ค์ !
์ธํฐ๋ท ํ๋กํ ์ฝ(IP) ๋ธ๋ก๋์บ์คํธ๋ ๊ธฐํ ์ธํฐ๋ท ์ด์ฉ ์ธก๋ฉด์ ์ด์ฉํ์ฌ ์ธํฐ๋ท ๋ง์ ๊ณต๊ฒฉํ๋ ํ์. '์ค๋จธํ'์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ๊ณต๊ฒฉํ๋๋ฐ, ์ค๋จธํ์ IP์ ์ธํฐ๋ท ์ ์ด ๋ฉ์์ง ํ๋กํ ์ฝ(ICMP)์ ํน์ฑ์ ์ด์ฉํ๋ค๊ณ ์๋ ค์ ธ ์๋ค. ICMP๋ ์๋ ๋คํธ์ํฌ ๋ ธ๋์ ๊ด๋ฆฌ์๋ค์ด ๋คํธ์ํฌ์ ์ ๋ณด๋ฅผ ๊ตํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ๋ก์ ์ด์ฉ ์ค์ธ ๋ ธ๋๋ค์ด ์๋์ง ๋ณด๊ธฐ ์ํด ํ(ping) ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํ์ฌ ๋์ ์ค์ธ ๋ ธ๋๊ฐ ์์ฝ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ฒ ํ๋ค. ์ค๋จธํ ํ๋ก๊ทธ๋จ์ ๋ง์น ๋ค๋ฅธ ๋คํธ์ํฌ ์ฃผ์(์ด๊ฒ์ ์ค๋จธํ ์ฃผ์๋ผ ํจ)๋ก๋ถํฐ ์์ฑ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋คํธ์ํฌ ํจํท์ ๋ง๋ค์ด ์ฃผ์ด์ง ๋คํธ์ํฌ ๋ด์ ๋ชจ๋ IP ์ฃผ์๋ค, ์ฆ IP ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ก ICMP ํ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ๋ค. ์ด ํ ๋ฉ์์ง์ ๋ํ ์๋ต์ ์ค๋จธํ ์ฃผ์๋ก ๋ณด๋ด์ง๋๋ฐ, ์์ฒญ๋ ์์ ํ๊ณผ ๊ทธ์ ๋์ํ ใ ๋ค์ฝ ๋ฉ์์ง๋ก ์ธํด ๋คํธ์ํฌ๋ ์ค์๊ฐ ํธ๋ํฝ์ ์ฒ๋ฆฌํ ์ ์์ ๋งํ ๋ง์ ์ ๋ณด๋ก ๋์ณ ํ๋ฅด๊ฒ ๋๋ค.
์ค๋จธํ ๊ณต๊ฒฉ์ ๋ฌด๋ ฅํ์ํค๋ ๋ฐฉ๋ฒ์ ๊ฐ ๋คํธ์ํฌ ๋ผ์ฐํฐ์์ IP ๋ธ๋ก๋์บ์คํธ ์ฃผ์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋ฏธ๋ฆฌ ์ค์ ํด ๋๋ ๊ฒ์ด๋ค.
โ ๋๋ ๊ณต๊ฒฉ์ ํด์ปค๊ฐ ์ถ๋ฐ์ง ์ฃผ์์ ํฌํธ๋ฅผ ์์๋ก ๋ณ๊ฒฝํด์ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง ์ฃผ์๋ฅผ ๋์ผํ๊ฒ ํ๋ ํจํท์ ๋ณด๋ธ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์๋ฒ๋ ์๊ธฐ ์์ ๊ณผ ์ฐ๊ฒฐ์ ๋งบ์์ผ๋ก์จ ์คํ ์๋๊ฐ ๋๋ ค์ง๊ณ ๋์์ด ๋ง๋น๋๋ค.
=>ํจํท ํค๋๋ฅผ ๊ฒ์ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฃ์ด์ ์ถ๋ฐ์ง์ ๋ชฉ์ ์ง๊ฐ ๋์ผํ ์ฃผ์๋ฅผ ๊ฐ์ง ํจํท์ ๋ง๊ฒ ํด์ผ ํ๋ค.
Land ๊ณต๊ฒฉ์ ๋์ ์ปดํจํฐ๋ก ์์กฐ๋ TCP SYN ํจํท์ ๋ณด๋ด๋ ๊ฑฐ๋ถ ์๋น์ค (DoS) ๊ณต๊ฒฉ ์ ํ ์ค ํ๋๋ก, ์์ค ๋ฐ ๋์ IP ์ฃผ์์ ํฌํธ ๋ฒํธ๊ฐ ๋์ผํ ํจํท์ ๋ณด๋ ๋๋ค. ์ด๋ก ์ธํด ๋์ ์ปดํจํฐ๊ฐ SYN-ACK ํจํท์ ๋ณด๋ด๊ณ , ์์ค IP ์ฃผ์๊ฐ ๋์ IP ์ฃผ์์ ๋์ผํ๊ธฐ ๋๋ฌธ์, ๋์ ์ปดํจํฐ๊ฐ ์์ ์๊ฒ ๊ณ์ SYN-ACK ํจํท์ ๋ณด๋ด๋ ๋ฌดํ ๋ฃจํ์ ๋น ์ง ์ ์์ผ๋ฉฐ, ์ด๋ ์์คํ ์ด ์ถฉ๋ํ๊ฑฐ๋ ์๋ตํ์ง ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋, ์ค๋จธํ ๊ณต๊ฒฉ๊ณผ ๋ฌ๋ฆฌ, Land ๊ณต๊ฒฉ์ ํ๋์ ์ธ DDoS ๊ณต๊ฒฉ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ, ํจ๊ณผ๊ฐ ๋จ์ด์ง๊ณ ๋ฐฉ์ดํ๊ธฐ ์ฌ์์์ ๋๋ค. ํ๋์ ์ธ DDoS ๊ณต๊ฒฉ์ ๋ณดํต ๋ด๋ท๊ณผ ์ฆํญ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋๋์ ํธ๋ํฝ์ ์์ฑํ์ฌ ๋์์ ๋คํธ์ํฌ๋ฅผ ๊ณผ๋ถํ์ํค๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
โฃ ICMP Redirect ๋ง๊ธฐ
๋ก์ปฌ์์ ํ๊ฒ์ ์ฐพ์ ๋ ping์ผ๋ก ์ฐพ๋๋ฐ ์ด ping์์ ์ฌ์ฉํ๋ ICMP ํ๋กํ ์ฝ์ ์
์ฉํ ICMP Redirect ๊ณต๊ฒฉ์ ํด์ปค๊ฐ ์์ ์ MAC ์ฃผ์๋ฅผ ARP Spoofing ๊ธฐ๋ฒ ๋ฑ์ผ๋ก ๋ก์ปฌ์ ์๋ ์ฃผ๋ก ๋ผ์ฐํฐ(๊ฒ์ดํธ์จ์ด)์ MAC ์ฃผ์๋ฅผ ์์ ์ MAC ์ฃผ์์ ๊ฐ๊ฒ ์์ฌ์(MAC cloned) ๋ก์ปฌ ํธ์คํธ๋ค์ ๋ผ์ฐํฐ๋ก ๊ฐ๋ ํจํท์ด ํด์ปค ๋จธ์ ์๋ ๊ฒฝ๊ณผํ๋๋ก ๊ฒฝ๋ก ๋ณ๊ฒฝ์ ํด์ ์ด๋ค์ ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ณด๊ฒํ๋ ๊ณต๊ฒฉ์ด๋ค.
=>์ด๋ฐ icmp redirect์์ ์ฌ์ฉํ๋ ๊ฒฝ๋ก ๋ณ๊ฒฝ์ ๋ง์์ฃผ๋ฉด ๋๋ค.
[root@localhost centos1]# cat /proc/sys/net/ipv4/conf/default/send_redirects
1
[root@localhost centos1]# sysctl -w net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.default.send_redirects = 0
[root@localhost centos1]# cat /proc/sys/net/ipv4/conf/default/send_redirects
โค Reverse Path Filtering์ผ๋ก DDoS(IP spoofing) ๋ง๊ธฐ
ํด์ปค๋ ์์์ ๊ฐ์ง IP ์ฃผ์๋ฅผ ๋ฌด์ ํ์ผ๋ก ์์ฑํด์ ํ๊ฒ ์๋ฒ์ ํน์ ์๋น์ค๋ฅผ ์์ฒญํ๋ SYN๋ฅผ ๋ณด๋ด๋ Smurf ๊ณต๊ฒฉ๊ณผ ์ ์ฌํ DDoS(Distributed DoS) ๊ณต๊ฒฉ์ ์ํํ๊ธฐ๋ ํ๋ค.
=>์ด๋ฅผ ๋ง๊ธฐ ์ํด์๋ ๋ค์ด์ค๋ ํจํท์ ํค๋๋ฅผ ๋ณด๊ฑฐ๋ ์ญ์ผ๋ก ์ถ์ ํด์ ์ฌ์ค IP ์ฃผ์์ด๊ฑฐ๋ ์ถ๋ฐ์ง ์ฃผ์๊ฐ ๋ถ๋ถ๋ช
ํ ํจํท์ ๋ง์ผ๋ฉด ๋๋ค.
โฅ Faked(Rogue) IP Filtering ํ๊ธฐ
โฆ Source Route ํจํท ์ ์ก ๋ง๊ธฐ
โง ping์ด๋ tracert์ ์๋ตํ์ง ์๊ธฐ
์ผ๋ฐ์ ์ธ ์ธ๋ถ๊ณต๊ฒฉ์ ๋๋นํ๊ธฐ
1. Buffer Overflow ๊ณต๊ฒฉ
2 ๊ฐ์ข
์ค๋ฅ๋ฅผ ์ด์ฉํ ๊ณต๊ฒฉ
โ ์๋ฒ ํ๋ก๊ทธ๋จ ์ค์ ์ ์ค๋ฅ๋ฅผ ์ด์ฉํ ๊ณต๊ฒฉ
โก ์ด๊ธฐ ํจ์ค์๋ ๊ณ์ ์ฌ์ฉ์ ์ด์ฉํ ๊ณต๊ฒฉ
โข API(์ดํ๋ฆฌ์ผ์ด์
) ์ค๋ฅ๋ฅผ ํตํ ๊ณต๊ฒฉ
โฃ Server ์ค์ผ ๊ณต๊ฒฉ(XSS, CSRF)
โค Session Hijacking ๊ณต๊ฒฉ
โฅ SQL Injection ๊ณต๊ฒฉ
โฆ OS Injection ๊ณต๊ฒฉ
โง Directory Traverse ๊ณต๊ฒฉ