iptables๋ก ๋ฐฉํ๋ฒฝ ์ค์ ํ๊ธฐ
์ด์์ ์ผ๋ก CentOS ์๋ฒ์์ ์คํ๋๊ณ ์๋ ๋ชจ๋ ์๋น์ค๋ ๋ณ๋๋ก ๋ณด์ ์ดํ์ด๋ ์ค์ ์ ์ถ๊ฐ์ ์ผ๋ก ํด์ฃผ์ง ์์๋ ๋ํดํธ๋ก ๋ด์ฅ๋์ด ์๋ ์ ๊ทผํต์ ์ค์ ์ผ๋ก ๋คํธ์ํฌ๋ก๋ถํฐ ์์ ํ๋๋ก ์ค๊ณ๋์ด ์๋ค. ํ์ง๋ง ์์น ์๋ ์ธ๋ถ ์ฌ์ฉ์์ ์ ์๊ณผ DDoS์ ๊ฐ์ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ์์คํ
์ ํ์ค์ ์ผ๋ก ์์ ํ์ง ์๋ค. ๋คํธ์ํฌ ๋ณด์์ ๋ชฉ์ ์ ์ค์ง ๊ถํ ์๋ ์ฌ์ฉ์๋ค๋ง ์๋ฒ ์๋น์ค์ ์ ์ํด์ ํ์ฉ๋ ๋ฒ์ ๋ด์์ ์๋น์ค๋ฅผ ์ด์ฉํ๊ฒ ํ๋ ๊ฒ์ด๋ค.
๋ด๋ถ ๋คํธ์ํฌ๋ ์ธ๋ถ ๋คํธ์ํฌ๋ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ด๋ ํธ์คํธ๋ผ๋ ํด์ปค์ ์นจํฌ๋จธ์ ์ด ๋ ์ ์๋ค. ๋ด๋ถ ๋ก์ปฌ ๋คํธ์ํฌ์์๋ ์์
์์ง๋์ด๋ง(Social Engineering) ๋ฑ์ผ๋ก ์นจํฌํด ๋ค์ด์ฌ ์ ์์ผ๋ฏ๋ก ๋ด๋ถ ๋คํธ์ํฌ๋ ์ํ์ด ๋ ์ ์์ด์ ๊ด๋ฆฌ์ ๊ฐ๊ณผํด์๋ ์ ๋๋ค.
ํด์ปค๋ ์ธ๋ถ ๋คํธ์ํฌ๋ฅผ ํตํด์ ๋ฐฉํ๋ฒฝ์ ๋ซ๊ณ ์์คํ
์ ๋ก๊ทธ์ธํ ๊ถํ์ ์ป์ผ๋ ค๊ณ ์ ์ฐ๋ ์ฌ๋์ด์ง๋ง ๋ด๋ถ์ธ์ ๋ก์ปฌ ๋์ ํตํด์ ์์ ์๊ฒ ํ๊ฐ๋์ง ์์ ์๋น์ค์ ์ ๊ทผํ๋ ค๋ ์ฌ์ฉ์๋ก, ์๋ฅผ ๋ค์ด์ ์๊ธ๋ช
์ธ์๊ฐ ์ ์ฅ๋์ด ์๋ ๊ฒฝ๋ฆฌ๊ณผ ํ์ผ์๋ฒ์ ์ด๋ ์์
๋ถ ์ง์์ด ์ ์ํ๋ ค๊ณ ์๋ํ๋ ๊ฒฝ์ฐ์ด๋ค. ๋ฐ๋ผ์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ์ฅํ๊ณ ์๋ค๋ฉด ๋ก์ปฌ ์ฌ์ฉ์๋ค๋ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ํด ๋์ด์ผ ํ๋๋ฐ, ์ด ๊ฒฝ์ฐ ๊ฒฝ๋ฆฌ๊ณผ ํ์ผ์๋ฒ์ ์ ๊ทผ๊ถํ์ด ์๋ ์ด๋ค์ ๋ง๊ธฐ ์ํด์ ๋ฐฉํ๋ฒฝ์ ๊ฑธ์ด ๋์ด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ํ ์์
์ ์์ฃผ ์ํํ๊ณ ์ค์ํ ์ค์ ๋ค์ด ์ ์ฅ๋์ด ์๋ IT ๋ถ์์ ์ง์์ฉ ํธ์คํธ์๋ ๋ด๋ถ๋ ๋ฌผ๋ก ์ด๊ณ ์๊ฒฉ์์๋ ์ ๊ทผ๋ ์ ํ์์ผ ๋๋ ๊ฒ์ด ํ์ํ๋ค. Network์์ ๋ผ์ฐํฐ์ ์ค์ ํ๋ ACL(Access Control List)๊ณผ ์ ์ฌํ ๊ฐ๋
์ผ๋ก ์ดํดํ๋ฉด ๋๋ค.
iptables์์ ์ฌ์ฉ๋๋ ์ฉ์ด
์ฉ์ด ์ค๋ช
policy ํจํท์๊ฒ ์ ์ฉ๋๋ ๋ฃฐ ์ ์ฑ
์ด๋ค.
tables filter(๊ฑธ๋ฌ์ค), nat(์ฃผ์์ ํ), mangle(์์), raw(์์ํํ)๊ฐ ์๋๋ฐ iptables์์๋ ์ฃผ๋ก filter๋ฅผ ์ฌ์ฉํ๊ณ INPUT(๋ค์ด์ด), OUTPUT(๋๊ฐ), FORWARD(์ ๋ฌ) ์ฒด์ธ์ ๊ฐ์ง๋ค. iptables -t filter --list ํด์ ํ์ธํ ์ ์๋ค .
chain ์ผ๋จ์ ๋ฃฐ์ ๋งํ๋๋ฐ ํ๋์ ์ฒด์ธ์ ์ฌ๋ฌ ๋ฃฐ์ด ํ ์ค์ ํ๋ ์ฉ ๋ค์ด์๋ค.
match ๋ฃฐ์์์ ๊ฐ ์กฐ๊ฑด์ ๋งํ๋๋ฐ --source(-s ์ถ๋ฐ์ง), --destination(-d ๋ชฉ์ ์ง), --protocol(-p ํ๋กํ ์ฝ), --in-interface(-i ์
๋ ฅ_์ธํฐํ์ด์ค), --out- interface(-o ์ถ๋ ฅ_์ธํฐํ์ด์ค), --state(์ํ), --jump(-j ์ ํ), --match(-m ๋งค์น), --syn(-y ๋๊ธฐํ), --frag(-f ๋จํธํ), --dport(๋ชฉ์ ์ง_ํฌํธ), --sport(์ถ ๋ฐ์ง_ํฌํธ), --mode(-m ๋ชจ๋) ๋ฑ์ด ์๋ค.
stateful ์ ์ฉํ ์๋น์ค์ ๋ํ ์ํ๋ก์จ NEW(์๋ก ์ฐ๊ฒฐ), ESTABLISHED(๊ธฐ์กด ์ฐ๊ฒฐ), RELATED(๊ด๋ จ๋ ์ฐ๊ฒฐ), ๊ทธ๋ฆฌ๊ณ INVALID(๋ฌดํจ ์ฐ๊ฒฐ) ๋ฑ์ด ์๋ค. ์ด๋ค์ ์ฌ๋ฟ ์จ ์ค ๋ , ๋ค์ ๋น์นธ ์์ด ์ด์ด์ ์จ์ค๋ค.
target ๋ฃฐ๊ณผ ์ผ์นํ ๋์ ํ๋์ผ๋ก ACCEPT(๋ฐ์์ค), DROP(๋ก๊ทธํ์ผ ์์ด ๋ฒ๋ฆผ), REJECT(๋ก๊ทธํ์ผ ๋จ๊ธฐ๊ณ ๋ฒ๋ฆผ), LOG(๋ก๊ทธ๋ก ๊ธฐ๋กํจ), RETURN(์ก์ ์์๊ฒ ๋๋๋ ค ๋ณด๋), QUEUE(๋๊ธฐ์ด์ ์ ์ฅํจ) ๋ฑ์ด ์๋ค.
๊ธฐํ ์ด์ธ์๋ PREROUTING(๋จผ์ ๋ฃฐ์ ์ ์ฉ ํ ๋ค ์คํํจ), POSTROUTING(๋จผ์ ์คํํ ๋ค ๋ฃฐ์ ์ ์ฉํจ)๋ ์๊ณ , ๊ท์น(๋ฃฐ)์ ๋ฐ๋ฅธ ํ๋์ผ๋ก ACCEPT, DROP, REJECT ์ด์ธ์ NAT์์ ์ฌ์ฉํ๋ MASQUERADE(๋๊ฐ๋ ํจํท์ ์ถ๋ฐ์ง ์ฃผ ์์ ํฌํธ๋ณํ), SNAT(๋๊ฐ๋ ํจํท์ ์ถ๋ฐ์ง ์ฃผ์๋ณํ), DNAT(๋ค์ด์ค๋ ํจ ํท์ ๋ชฉ์ ์ง ์ฃผ์๋ณํ), ๊ทธ๋ฆฌ๊ณ LOG(๋ก๊ทธ ๊ธฐ๋ก) ์ต์
์ด ์๋ค.
๋ฐฉํ๋ฒฝ ์ค์ ์ ์ธ ๊ฐ์ง๋ก ํ ์ ์๋๋ฐ
1) firewall-config ํด์ GUI๋ก ์ค์ ํ๊ฑฐ๋
firewall-cmd --zone=public --add-ports=80/tcp, ....
2) iptables -A INPUT -p tcp --dport 22 -j REJECT
3) /etc/sysconfig/iptables ํ์ผ์ ์ง์ ๊ธฐ๋กํ๊ธฐ
=>์กฐ์ง์์๋ CentOS1 ์๋ฒ์์ ์ค์ ํ ๋ฐฉํ๋ฒฝ ๋ฃฐ์ธ /etc/sysconfig/iptables ํ์ผ์ ๋ณต์ฌํด์ CentOS2 ์๋ฒ์ ๋ถ์ฌ ๋ฃ์ผ๋ฉด CentOS2๋ ๊ฐ์ ๋ฐฉํ๋ฒฝ ๋ฃฐ์ด ์ ์ฉ๋๊ฒ ๋๋ค.
๊ด๋ฆฌ์๊ฐ ์กฐ์ง์ ์ ์ฉ๋๋ ์ ์ฑ
์ ๋ฐ๋ผ์ ํ๋์ ํ๋ณธ ๋ฐฉํ๋ฒฝ ์ค์ ์ ํด๋๊ณ ๋ชจ๋ ์๋ฒ์ ์ผ๊ด์ ์ผ๋ก ์ ์ฉ์ํฌ ์ ์๋ค.
ํจํท ํํฐ๋ง ์๋์ ์ดํด๋ณด์.
โ ์ธ๋ถ์์ ์์คํ
์ผ๋ก ํจํท A๊ฐ ๋ค์ด์ค๋ฉด
โ ๋จผ์ ํจํท A ํค๋์์ ๋ชฉ์ ์ง ์ฃผ์๋ฅผ ํ์ธํ๋ ๋ผ์ฐํ
(routing) ๊ณผ์ ์ ๊ฑฐ์น ๋ค,
โก ํจํท A์ ๋ชฉ์ ์ง๊ฐ ์ด ์์คํ
์ด๋ฉด ํจํท์ ACCEPT ํ๊ณ INPUT ์ฒด์ธ์ผ๋ก ๋ณด๋ด์ CPU๊ฐ ์ฒ๋ฆฌํ๊ฒ ํ๊ณ , ์ ์ฑ
์ ํจํท A๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋์ด ์์ผ๋ฉด ํด๋น ํจํท์ REJECTํ๊ฑฐ๋ DROP์ํจ๋ค.
โข ๋ชฉ์ ์ง๊ฐ ๋ค๋ฅธ ๋คํธ์ํฌ๋ ์์คํ
์ด๋ผ๋ฉด FORWARD ์ฒด์ธ์ด ์ค์ ๋์ด ์์ ๋ ํจํท A๋ฅผ ํด๋น ๋ชฉ์ ์ง๋ก ๋ณด๋ธ๋ค.
โ ๋ฐ๋๋ก ๋ด๋ถ ์์คํ
์์ ํจํท B๋ฅผ ์ธ๋ถ๋ก ์ ์กํ๋ค๋ฉด
โ ๋จผ์ OUTPUT ์ฒด์ธ์ผ๋ก ํจํท B๋ฅผ ๋ณด๋ด๊ณ ,
โก ๋ผ์ฐํฐ๋ ์ค์์น๊ฐ ํจํท B๋ฅผ ๋ฐ์์ FORWARD ์ฒด์ธ์ ํตํด์ ์ํ๋ ๋ชฉ์ ์ง๋ก ๋ผ์ฐํ
๊ณผ์ ์ ๊ฑฐ์ณ์ ๋ด ๋ณด๋ธ๋ค.
iptables ์ ์ฑ
(policy)
iptables policy์๋ INPUT, FORWARD(๋ด ๋ฐ๋ก ๋ณด๋), OUTPUT ์ฒด์ธ(chain)์ฒ๋ผ ๋ด์ฅ๋ '๋ด์ฅ ์ฒด์ธ'์ด ์๊ณ iptables์ -N ์ต์
์ ์ฃผ๊ณ ์๋ก ์์ฑํ๋ '์ฌ์ฉ์_์ ์ ์ฒด์ธ'๋ ์๋ค. Linux ์๋ฒ๋ก ๋์ฐฉ๋๋ ๋ชจ๋ ํจํท์ INPUT ์ฒด์ธ์ผ๋ก ๋ค์ด์ค๊ณ , Linux ์๋ฒ์์ ์์ฑ๋ ๋ชจ๋ ํจํท์ OUTPUT ์ฒด์ธ์ ํตํด์ ๋๊ฐ๋ฉฐ, Linux๋ฅผ ๊ฑฐ์ณ์ ํน์ ๋ชฉ์ ์ง๋ก ๊ฐ๋ ํจํท์ FORWARD ์ฒด์ธ์ผ๋ก ๋๊ฐ๋๋ก ์ค์ ํด์ค๋ค.
์ฒด์ธ ๋ฃฐ(์ํธ๋ฆฌ)์ ๋ํ ์กฐ์
์ฒด์ธ ์ข
๋ฅ ์ค๋ช
A(ppend) ์ถ๊ฐ๋ก์จ ํด๋น ์ฒด์ธ์ ๋ฃฐ์์ ๋งจ ๋์ ์๋ฆฌํ๋ค.
I(nsert) ๋ผ์ ๋ฃ๊ธฐ๋ก์จ ์ฒด์ธ์ ์์์ด๋ ์ด๋ ํฌ์ธํธ์๋ ์๋ฆฌํ ์ ์๋ ๋ฐ '-I ์ฒด์ธ ๋ฃฐ_๋ฒํธ'์์ผ๋ก ์ง์ ํด์ ์ด๋ ๊ณณ์ด๋ผ๋ ์์น์ํฌ ์ ์๋ค. ๋๋ถ๋ถ ์ฒด์ธ์ ์์์ ๋ฃฐ์ ๋ ๋ ์ฌ์ฉ๋๋ค. ๋ฃฐ 1๋ค์ -I INPUT 2 ~ ์์ผ๋ก ๋ฃ์ผ๋ฉด ์ดํ์ ๋ฃฐ์ ๋ฒํธ๊ฐ ํ๋์ฉ ๋ฐ๋ฆฌ๊ฒ ๋ ๋ค.
R(eplace) ๋์ฒด๋ก์จ '-R ์ฒด์ธ ๋ฃฐ_๋ฒํธ'์์ผ๋ก ์ฌ์ฉํ๋ฉด ํด๋น ๋ฃฐ์ด ์๋ก์ด ๋ฃฐ ๋ก ๋์ฒด๋๋ค.
D(elete) ์ญ์ ์ธ๋ฐ, ๊ทธ๋ฅ -D๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค์น๋๋ ์ฒซ ๋ฒ์งธ ๋ฃฐ์ ์ญ์ ํ๊ณ , '-D ์ฒด์ธ ๋ฃฐ_๋ฒํธ'์์ผ๋ก ํด์ฃผ๋ฉด ํด๋น ๋ฃฐ๋ง ์ญ์ ํ๋ค.
์ต์
-C(์ฒด์ธ ๊ท์นํ์ธ), -L(์ฒด์ธ ๊ท์น๋ณด๊ธฐ), -F(์ง์ ํ ์ฒด์ธ๋ด์ ๋ชจ๋ ๊ท ์น์ ๊ฑฐ), -N(์ฌ์ฉ์_์ ์ ์ฒด์ธ์์ฑ), -X(์ฌ์ฉ์_์ ์ ์ฒด์ธ์ญ์ ), -P( ์ง์ ํ ์ฒด์ธ์ ์ฑ
๋ณ๊ฒฝ), --line-numbers(์ฒด์ธ ๋ฃฐ์ ์ค๋ฒํธ ๋งค๊ธฐ๊ธฐ) ๋ฑ์ด ์๋ค.
โ ๋ฃฐ์ ๊ธฐ๋ณธ๊ตฌ์กฐ๋
iptables -A INPUT –p tcp –m multiport —dports 80,443(OR 20:100) –i(์ธํฐํ์ด์ค)0 eth0 –s(์ถ๋ฐ์ง ์ฃผ์) 192. 168.100.0/24(OR 192.168.100.100) –d(๋ชฉ์ ์ง) 10.10.10.0/24(OR 10.10.10.10) –m state —state NEW,ESTABLISHED -j ACCEPT์์ด๋ค. --state NEW,RELATED ๋ฑ์ ์ฌ์ฉํ๋ ค๋ฉด ์์ -m state๋ ํจ๊ป ์์ด์ผ ํ๊ณ , ์ฌ๋ฌ ํฌํธ๋ฅผ ํ ๋ฒ์ ์ฃผ๋ ค๋ฉด ์์ -m multiport๊ฐ --dports ์์ ์์ด์ผ ํ๋ค. ์ฌ๋ฌ ํฌํธ๋ 80,443 ํ๋ฉด 80๊ณผ 443 ํฌํธ๊ฐ ๋๊ณ , 20:100 ํ๋ฉด 20~100๋ฒ๊น์ง ํฌํธ์ ํด๋น๋๋ค. ํน์
iptables -A INPUT -p tcp --dport 22 -j REJECT์์ผ๋ก ๊ฐ๋จํ๊ฒ ํ ์๋ ์๋ค.
โ ์ฒด์ธ ๊ท์น์
1) ์ฒด์ธ์ ์๋ ๋ฃฐ(๊ฐ ์ค์ ์ํธ๋ฆฌ๋ผ๊ณ ๋ถ๋ฆ)์ ์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ๋ด๋ ค๊ฐ๋ฉด์ ๊ฒ์ฌ ๋๊ณ ,
2) ๋งค์น๋๋ ๋ฃฐ ์ํธ๋ฆฌ๋ฅผ ๋ง๋๋ฉด ๊ทธ๊ณณ์์ ๋ ์ด์ ์๋๋ก ๋ด๋ ค๊ฐ์ง ์๊ณ ์ฒด์ธ์ ๋ฒ์ด๋์ ํ๊ฒ์๊ฒ ์ง์ ํ ์ก์
์ ์ ์ฉ์ํจ๋ค.
3) ์ถ๊ฐ(-A INPUT ~ ) ํ๋ฉด ๋งจ ์๋์ ์ ์ฅ๋๋ค. ๋ฐ๋ผ์ ์ค์ํ๊ฑฐ๋ ๊ธด๊ธํ ์ํธ๋ฆฌ๋ I ๋ก ๋งจ ์๋ก ๊ฐ๊ฒ ํด์ผ ํ๋ค.
4) ๋ณ๊ฒฝํ๋ค๋ฉด -I INPUT 2 ~ ์์ผ๋ก ๋ ๋ฒ์งธ ์ํธ๋ฆฌ๋ก ๋ง๋ค ์ ์๋ค.
5) ๊ต์ฒดํ๋ค๋ฉด -R INPUT 3 ~ ์์ผ๋ก ์ธ ๋ฒ์งธ ์ํธ๋ฆฌ๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
6) ๋ชจ๋ ์ฒด์ธ์ ๋์๋ ์๋ฌต์ (implicity)์ผ๋ก deny๊ฐ ์๋ค!!! ๋ฐ๋ผ์ ์์์ ํ์ด์ค ๊ฒ์ ํ์ด์ฃผ์ง ์์ผ๋ฉด ๋์ค์๋ ๋ชจ๋ ๊ฑฐ๋ถ๋๊ฒ ๋๋ค. ์ด๊ฒ์ ๋ง์น tcp_wrapper(/etc/hosts.allow, /etc/hosts.deny)์์ ํ๋ก์ธ์ค๊ฐ ๋จผ์ /etc/hosts.allow๋ฅผ ๋จผ์ ๋ณด๊ณ ๋์ค์ /etc/hosts. deny ํ์ผ์ ๋ณด๊ณ ์ฒ๋ฆฌํด์ฃผ๋ ๊ฒ๊ณผ ์ ์ฌํ ๋ฉ์นด๋์ฆ์ด๋ค. ๋ ๋ผ์ฐํฐ์ ์ค์ ํด์ฃผ๋ ACL์์๋ ๋์ผํ ๊ท์น์ด ์๋ค.
์ค์ต
iptables-save > /home/centos/Desktop/iptables.ori
iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED --dport=22 -j DROP
iptables -I INPUT 2 -p tcp -m multiport --dports=22,80,443 -j REJECT
iptables -R INPUT 2 -p tcp --dport 22 -j REJECT
iptables -D INPUT 13
์ ์ผ ์๋์ชฝ ์ค ํ๋๋ฅผ ์์ด๋ค.
iptables -F INPUT
์์ ์์ด๋ค.
์ฒด์ธ ์ ์ฅ๊ณผ ๋ณต์
โช ์ฒด์ธ์ ์ ์ฅํ๋ค๋ฉด iptables-save > /etc/iptables.ori์์ผ๋ก ํด์ฃผ๊ณ
โช ์ฒด์ธ์ ๋ณต์ํ๋ค๋ฉด iptables-restore < /etc/iptables.ori์์ผ๋ก ํด์ฃผ๋ฉด ๋๋ค.
iptables-restore < /home/centos/Desktop/iptables.ori
ํฌํธ ์ง์ ์
--sport 23, --dport 21, --m multiport --dports 21:80, -m multiport --dports 20,21
-m multiport --dports 20,21:80, -m mac --mac-source 00:11:22:33:44:55
! --dport 23 ํ๋ฉด 23 ํฌํธ๋ง ์ ์ธ๋๋ค. ! -p tcp ํ๋ฉด tcp ํ๋กํ ์ฝ๋ง ์ ์ธํ๊ณ ์ ์๋ฏธ์ด๋ค.
์ค์ต
์ผํ ์ค์์
iptables -A INPUT -p tcp --dport 22 -j REJECT(๋งจ ์๋์ ์ถ๊ฐ)
๋ง์๋ดค์
์ฐ๋ถํฌ์์ ssh์ ์์ด ๊ฐ๋ฅํ๋ค
iptables -I INPUT 1 -p tcp --dport 22 -j REJECT
์ด์ ๋ ์๋๋ค.
iptables -I INPUT 2 ! -p tcp -j DROP
tcp์๋ ๋ ๋ค ๊ฑฐ์ ํด ๋ก๊ทธ ๋จ๊ธฐ์ง๋ ๋ง๊ณ
ํ์ด ์๊ฐ๋ค.
(icmp)
iptables -I INPUT 2 -p icmp -j REJECT
๋ณด
1) ๋ก์ปฌ์์ ์์ฒญํ๋ ping(ICMP ํจํท) ์ด์ธ์ ๊ฒ์ ๋ชจ๋ ๋ง๋ ์ค์
iptables -I INPUT 1 ! -s 127.0.0.1 -p icmp -j DROP
=>icmp๋ ping, tracert์์ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ
2) DDoS ๋ฑ์ ๊ณต๊ฒฉ์ผ๋ก ์ธํ ํจํท๊ฑฐ๋ถ ์ค์
3) Syn Flooding(--tcp-flags SYN,RST ์ต์
์ ์ฌ์ฉ)์ Smurf(๊ฐ์ง IP ์ฃผ์๋ฅผ ๋ง๋๋ฐ
–d 255.255.255.255, -d 0.0.0.0/8, ....)๋ฅผ ๋ง๋ ์ค์
4) DoS ๊ณต๊ฒฉ์ ๋ฐ๊ณ ์๋ ์น ์๋ฒ ํ์ธ
โ ์๋ฅผ ๋ค์ด์ ์น ์๋ฒ์ 1์ด์ 100๋ฒ ์ด์ HTTP ์์ฒญ์ด ๋ค์ด์จ๋ค๋ฉด DoS ๊ณต๊ฒฉ์ผ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค.
=>์ด๋ฐ SYN ํจํท์ ๋ค์์ฒ๋ผ ๋ง์๋์ด์ผ ํ๋ค.
iptables –I INPUT 2 –m state --state NEW,RELATED –p tcp --dport 80 –j ACCEPT ํด์ 80๋ฒ ์น ์๋ฒ๋ก ํฅํ๋ ์ผ๋ฐ ์์ฒญ์ ํ๋ฝํ๊ณ ,
โก ์ด๋น 50๋ฒ ์ด์์ 80๋ฒ ํฌํธ๋ก ์ฐ๊ฒฐ์์ฒญ์ ํด์ค๋ ํจํท์ ๋ฒ๋ฆฐ๋ค๋ฉด
iptables -I INPUT 3 -p tcp --dport 80 -m limit --limit 50/s –j DROP ํด์ค๋ค.
โข ์น ์๋ฒ์ ๋ถ๋น 1,000๊ฐ์ ์ฐ๊ฒฐ์์ฒญ์ด ์๊ณ ์ด์ค 50๊ฐ๊ฐ ์ผ์์ ์ฐ๊ฒฐ๋๊ณ ์๋ค๋ฉด, ์ด 50์ฌ๊ฐ ์ค ์ผ๋ถ๋ ์ก์์ ์ฃผ์๋ ํจํท ๊ธธ์ด ์ด์ ๋ฑ์ผ๋ก ์ฐ๊ฒฐ๋์ง ๋ชปํ์ ์๋ ์์ง๋ง ์ด๋ฐ ํจํท๋ ์ญ์ DoS ๊ณต๊ฒฉ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
iptables –I INPUT 3 –p tcp —dport 80 –m limit —limit 1000/m —limit-burst 50 –j DROP ํด์ฃผ๋ฉด ๋๋ค.
5) IP ์์ฅ('์ฌ์ค IP'๋ก ๋ค์ด์ค๋ ํจํท) ๋ง๊ธฐ
192.168.0.0, 172.16.0.0, 10.0.0.0 ์ฃผ์๋ก ์์๋๋ IP๋ค์ด๋ค.
โฃ ๊ฑฐ๋ถํ ํจํท๋ง ๊ธฐ๋กํ๊ฒ ํ๋๋ฐ 192.168.100.101(BT)์์ ๋ค์ด์ค๋ ํจํท์ ๊ฑฐ๋ถํ๋ค๋ฉด
a. iptables –nL --line-numbers ํด์ ๋ฃฐ์ ์ค ๋ฒํธ๋ฅผ ๋ณด๊ณ , ๋งจ ์๋ REJECT(6) ์์
b. iptables –I INPUT 6 –p tcp –s 192.168.100.101(BT) —dport 22 –j LOG ํด์ค๋ค. ์ด ๋ค์ —log-level 4๋ฅผ ์ถ๊ฐํ๋ฉด warning ๋ ๋ฒจ ์ด์๋ง ๊ธฐ๋กํ๊ณ , —log-prefix "LOGGED"์์ผ๋ก ํด์ฃผ๋ฉด ๋ก๊ทธํ์ผ์ LOGGED~ ์์ ๋ฉ์์ง๋ก ๋ณผ ์ ์๊ฒ ๋๋ค.
*** ๊ฒฝ๊ณ ๋ ๋ฒจ DINWECAE(Debug>Info>Notice>Warn>Err>Critic>Alert>Emerg)
Firewall ์ค์ ์
โ CentOS์์๋
firewall-config ํด์ GUI๋ก ์ค์ ๊ฐ๋ฅ
OR firewall-cmd --permanent --zone=public --add-ports 22/tcp ํ ๋ค
firewall-cmd --reload ํด์ค๋ค.
โ Ubuntu์์๋
ufw deny from 10.10.10.0/24 to any port 22 proto tcp์์ด๋ค.
โ Ubuntu์์๋ iptables๋ CentOS์์์ ๊ฐ์ด ๋์ผํ๊ฒ ์ ์ฉ๋๋ค!!!
iptables -A INPUT -p tcp -s 10.10.10.0/24 -d 0.0.0.0 -j REJECT
์ค์ต
ufw status verbose
ufw enable && ufw status verbose
ufw allow 80/tcp
ufw status numbered
Backup
backup์ restore๋ฅผ ์ํด์ ์ฌ์ฉ๋๋ค. ๊ด๋ฆฌ์๋ ๋ฐฑ์
์ ๋ ์ ํด๋๊ณ ํ์ํ๋ฉด ๋งค์ฐ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ๋ณต์ํ ์ ์์ด์ผ ํ๋ค.
Windows 2016 ์๋ฒ์์๋ Windows backup ๋๊ตฌ๊ฐ ๋ด์ฅ๋์ด์ ธ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฑ์
ํ ์ ์๋ ์๊ฐ ๋ฑ์ scheduler ๋ฑ์ผ๋ก ์ง์ ํด๋๋ค.
=>Linux์์๋ crond(crontab -e) ๋ฑ์ผ๋ก ์๊ฐ์ ์ค์ ํด์ ๋ฐฑ์
ํด์ค ์ ์๋ค.
Bacula๋ผ๋ ๊ฐ๋ ฅํ GUI ๋๊ตฌ๋ ์๋ค.
Bacula(Bacula management server) ๋ฐฑ์
์๋ฒ
๋ฐํ๋ผ ์๋ฒ๋ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋น๊ตํด๋ ์์์์ด ๋ฐฑ์
๊ณผ ๋ณต์์ ์ํํด์ฃผ๋ ๋งค์ฐ ๊ฐ๋ ฅํ๊ณ ํ๋ถํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ ๋๊ตฌ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌด๋ฃ์ด๋ค. ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ฐ๋
์ผ๋ก ์๋๋๋ฉฐ
Bacula ์๋ฒ๋ค๋ ๋ชจ๋ ๋ฐฑ์
/๋ณต์ ๊ด๋ จ ์ง์๋ฅผ ํด์ฃผ๋ Director(dir), ์ค์ ๋ฐฑ์
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ Storage(sd), ์ฝ์์์ ๋ช
๋ น์ด๋ฅผ ์ํํ๊ฒ ํด์ฃผ๋ Console,
๋ฐฑ์
ํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ํค๋ ๋ฆฌ์ผ ์๋ฒ๋ค์ธ Agent(fd)๊ฐ ์๋ค.
bat(Bacula Admin Tool)์ ๊ทธ๋ํฝ ๋๊ตฌ์ด๋ค.
Bacula ํด๋ผ์ด์ธํธ๋ ์ค์ ์น, ํ์ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ ๋ฑ์ผ๋ก์จ Bacula ์๋ฒ์ ๋ฐฑ์
๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ํค๋ ๋ฆฌ์ผ ์๋ฒ ๋จธ์ ๋ค์ ๋งํ๋ค.
์ค์ต
yum -y install epel-release
yum -y groups mark install "Development Tools"
yum -y install bacula-director-mysql bacula-storage-mysql bacula-console bacula-console-bat
yum -y groupinstall "Development Tools"
yum -y install mariadb-server
systemctl start mariadb
systemctl enable mariadb.service
mysqladmin -u root -h localhost password "rootoor"
ํ์ด์ด์์์ bacula๋ ํด๋ผ์ด์ธํธ, mysql ์ฒดํฌ
๊ถํ ์ฃผ๊ณ ๊ฐฑ์ ํ๊ณ ๋์จ๋ค.
์ด์ ๋ฐํ๋ผ์ mysql ์ฐ๋ํด์ผ๊ฒ ๋ค.
/usr/libexec/bacula/grant_mysql_privileges -prootoor
/usr/libexec/bacula/create_mysql_database -prootoor
/usr/libexec/bacula/make_mysql_tables -prootoor
nano /etc/bacula/bacula-dir.conf
/usr/sbin์์ /data๋ก
๋๋จธ์ง๋ ์ค๋ ์ด์ด์!!