๐Ÿ“‚๋„คํŠธ์›Œํฌ&์„œ๋ฒ„/๐Ÿง๋ฆฌ๋ˆ…์Šค(Linux)

38์ผ์ฐจ(4.6) iptables๋กœ ๋ฐฉํ™”๋ฒฝ ์„ค์ •ํ•˜๊ธฐ Bacula(Bacula management server) ๋ฐฑ์—… ์„œ๋ฒ„

๐Ÿ‘ฉ‍๐ŸŽ“์ธํ…”๋ฆฌ๊ฐ์ž๐Ÿฅ” 2023. 4. 10. 18:58

  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๋กœ 

 

๋‚˜๋จธ์ง€๋Š” ์˜ค๋Š˜ ์ด์–ด์„œ!!