์˜์‚ฌ + iptables = :3

2010๋…„์— ํšŒ์‚ฌ๋Š” ์™€๊ฐ€์ด๋ฐ 50๊ฐœ์˜ ์„œ๋ฒ„์™€ ๊ฐ„๋‹จํ•œ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ(๋ฐฑ์—”๋“œ, ํ”„๋ŸฐํŠธ์—”๋“œ, ๋ฐฉํ™”๋ฒฝ)์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ๋ชจ๋ธ์ด ๋”์šฑ ๋ณต์žกํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์Šคํ…Œ์ด์ง•, ACL์ด ์žˆ๋Š” ๊ฒฉ๋ฆฌ๋œ VLAN, VRF๊ฐ€ ์žˆ๋Š” VPN, L2์— ACL์ด ์žˆ๋Š” VLAN, L3์— ACL์ด ์žˆ๋Š” VRF๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จธ๋ฆฌ๊ฐ€ ๋Œ๊ณ  ์žˆ๋‚˜์š”? ๋‚˜์ค‘์—๋Š” ๋” ์žฌ๋ฏธ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„œ๋ฒ„๊ฐ€ 16๋Œ€์ผ ๋•Œ, ๋„ˆ๋ฌด ๋งŽ์€ ์ด๊ธฐ์ข… ์„ธ๊ทธ๋จผํŠธ๋กœ ์ธํ•ด ๋ˆˆ๋ฌผ ์—†์ด ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋˜ ๋‹ค๋ฅธ ํ•ด๊ฒฐ์ฑ…์„ ์ƒ๊ฐํ•ด๋ƒˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Netfilter ์Šคํƒ์„ ๊ฐ€์ ธ์™€ Consul์„ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋กœ ์ถ”๊ฐ€ํ–ˆ๊ณ  ๋น ๋ฅธ ๋ถ„์‚ฐ ๋ฐฉํ™”๋ฒฝ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ผ์šฐํ„ฐ์˜ ACL์„ ๊ต์ฒดํ•˜๊ณ  ์ด๋ฅผ ์™ธ๋ถ€ ๋ฐ ๋‚ด๋ถ€ ๋ฐฉํ™”๋ฒฝ์œผ๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„๊ตฌ๋ฅผ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ œํ’ˆ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ๊ด€๋ฆฌ๋ถ€ํ„ฐ ๋„คํŠธ์›Œํฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์„œ๋กœ ๊ฒฉ๋ฆฌํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ๋ชจ๋“  ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๋Š” BEFW ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

๊ทธ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์™œ ์ด ์‹œ์Šคํ…œ์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด์•„์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฐ˜ ์•„๊ฐ€๋ฅด์ฝ”ํ”„ (์•ˆ๋ฌด์–ด)๋Š” ํšŒ์‚ฌ ๋ฏผ์Šคํฌ ๊ฐœ๋ฐœ ์„ผํ„ฐ ์œ ์ง€ ๊ด€๋ฆฌ ๋ถ€์„œ์˜ ์ธํ”„๋ผ ๋ณด์•ˆ ๊ทธ๋ฃน ์ฑ…์ž„์ž์ž…๋‹ˆ๋‹ค. Ivan์€ SELinux ํŒฌ์ด๊ณ  Perl์„ ์ข‹์•„ํ•˜๋ฉฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด ๋ณด์•ˆ ๊ทธ๋ฃน์˜ ์ˆ˜์žฅ์œผ๋กœ์„œ ์ •๊ธฐ์ ์œผ๋กœ ๋กœ๊ทธ, ๋ฐฑ์—…, R&D ์ž‘์—…์„ ํ†ตํ•ด Wargaming์„ ํ•ด์ปค๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ณ  ํšŒ์‚ฌ ๋‚ด ๋ชจ๋“  ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ์šด์˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์—ญ์‚ฌ ์ •๋ณด

์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ–ˆ๋Š”์ง€ ๋ง์”€๋“œ๋ฆฌ๊ธฐ ์ „์—, ์ฒ˜์Œ์— ์–ด๋–ป๊ฒŒ ์ด ์ผ์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์ด ์™œ ํ•„์š”ํ–ˆ๋Š”์ง€ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด 9๋…„ ์ „์ธ 2010๋…„์œผ๋กœ ๋Œ์•„๊ฐ€ ์›”๋“œ ์˜ค๋ธŒ ํƒฑํฌ(World of Tanks)๊ฐ€ ๋ง‰ ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. Wargaming์—๋Š” ์•ฝ 50๊ฐœ์˜ ์„œ๋ฒ„๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3
ํšŒ์‚ฌ ์„œ๋ฒ„ ์„ฑ์žฅ ์ฐจํŠธ.

์šฐ๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋‹น์‹œ์—๋Š” ์ตœ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3
2010๋…„ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ.

ํ”„๋ŸฐํŠธ์—”๋“œ์—๋Š” ์šฐ๋ฆฌ๋ฅผ ๋ฌด๋„ˆ๋œจ๋ฆฌ๋ ค๋Š” ์•…๋‹น๋“ค์ด ์žˆ์ง€๋งŒ ๋ฐฉํ™”๋ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์—๋Š” ๋ฐฉํ™”๋ฒฝ์ด ์—†์ง€๋งŒ ๊ฑฐ๊ธฐ์—๋Š” 50๊ฐœ์˜ ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๋ชจ๋‘ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

4๋…„ ๋งŒ์— ์„œ๋ฒ„ ํ•จ๋Œ€๋Š” 100๋ฐฐ, 5000๊ฐœ๋กœ ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ตœ์ดˆ์˜ ๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ค€๋น„ ๋‹จ๊ณ„: ํ”„๋กœ๋•์…˜์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์—†์—ˆ๊ณ  ๊ทธ๊ณณ์—์„œ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3
2014๋…„ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ.

๊ด€์„ฑ์— ๋”ฐ๋ผ ์šฐ๋ฆฌ๋Š” ๋™์ผํ•œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ ๋ชจ๋“  ์ž‘์—…์€ ๊ฒฉ๋ฆฌ๋œ VLAN์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ACL์€ ์ผ์ข…์˜ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€ํ•˜๋Š” VLAN์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

2016๋…„์—๋Š” ์„œ๋ฒ„ ์ˆ˜๊ฐ€ 8000๊ฐœ์— ์ด๋ฅด๋ €๊ณ  ์›Œ๊ฒŒ์ด๋ฐ์ด ๋‹ค๋ฅธ ์ŠคํŠœ๋””์˜ค๋ฅผ ํก์ˆ˜ํ•˜๊ณ  ์ถ”๊ฐ€ ์ œํœด ๋„คํŠธ์›Œํฌ๊ฐ€ ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ฒƒ ๊ฐ™์ง€๋งŒ ๊ผญ ๊ทธ๋ ‡์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. VLAN์€ ์ข…์ข… ํŒŒํŠธ๋„ˆ์—๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ VRF์™€ ํ•จ๊ป˜ VPN์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ๊ฒฉ๋ฆฌ๊ฐ€ ๋”์šฑ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ACL ์ ˆ์—ฐ ํ˜ผํ•ฉ๋ฌผ์ด ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3
2016๋…„ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ.

2018๋…„ ์ดˆ๊นŒ์ง€ ๊ธฐ๊ณ„ ๋ณด์œ  ๋Œ€์ˆ˜๋Š” 16๊ฐœ๋กœ ๋Š˜์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. 000๊ฐœ ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ์žˆ์—ˆ๊ณ  ์žฌ๋ฌด ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ํ์‡„ํ˜• ์„ธ๊ทธ๋จผํŠธ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋‚˜๋จธ์ง€๋Š” ๊ณ„์‚ฐํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ(Kubernetes), DevOps, VPN์„ ํ†ตํ•ด ์—ฐ๊ฒฐ๋œ ํด๋ผ์šฐ๋“œ ๋„คํŠธ์›Œํฌ(์˜ˆ: IVS)๊ฐ€ ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์น™์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๊ณ ํ†ต์Šค๋Ÿฌ์› ์–ด์š”.

์˜์‚ฌ + iptables = :3
2018๋…„ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ ๋ฐ ๊ฒฉ๋ฆฌ ๋ฐฉ๋ฒ•.

๊ฒฉ๋ฆฌ๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” L2์— ACL์ด ์žˆ๋Š” VLAN, L3์— ACL์ด ์žˆ๋Š” VRF, VPN ๋“ฑ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€.

๋ฌธ์ œ

๋ชจ๋‘๊ฐ€ ACL๊ณผ VLAN์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ญ๊ฐ€ ๋ฌธ์ œ ์•ผ? ์ด ์งˆ๋ฌธ์— ํ•ด๋กค๋“œ๋Š” ๊ณ ํ†ต์„ ์ˆจ๊ธด ์ฑ„ ๋Œ€๋‹ตํ•  ๊ฒƒ์ด๋‹ค.

์˜์‚ฌ + iptables = :3

๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ XNUMX๊ฐœ์˜ โ€‹โ€‹ํฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒˆ๋กœ์šด ๊ทœ์น™์— ๋Œ€ํ•œ ๊ธฐํ•˜ํ•™์  ๊ฐ€๊ฒฉ ์ธ์ƒ. ๊ฐ๊ฐ์˜ ์ƒˆ๋กœ์šด ๊ทœ์น™์€ ์ด์ „ ๊ทœ์น™๋ณด๋‹ค ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋” ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ํ•ด๋‹น ๊ทœ์น™์ด ์ด๋ฏธ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ์„ธ๊ทธ๋จผํŠธ ๋‚ด๋ถ€์—๋Š” ๋ฐฉํ™”๋ฒฝ์ด ์—†์Šต๋‹ˆ๋‹ค.. ์„ธ๊ทธ๋จผํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๋“  ์„œ๋กœ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์—ˆ๊ณ  ๋‚ด๋ถ€์—๋Š” ์ด๋ฏธ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๊ทœ์น™์€ ์˜ค๋žซ๋™์•ˆ ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šด์˜์ž๋Š” ํ•œ ์‹œ๊ฐ„ ์•ˆ์— ํ•˜๋‚˜์˜ ๋กœ์ปฌ ๊ทœ์น™์„ ์ง์ ‘ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ ์ž‘์—…์—๋Š” ๋ฉฐ์น ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ์‚ฌ ๊ทœ์น™์˜ ์–ด๋ ค์›€. ๋” ์ •ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด ๋ถˆ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ทœ์น™์€ 2010๋…„์— ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ž‘์„ฑ์ž ๋Œ€๋ถ€๋ถ„์€ ๋” ์ด์ƒ ํšŒ์‚ฌ์—์„œ ๊ทผ๋ฌดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋‚ฎ์€ ์ˆ˜์ค€์˜ ์ธํ”„๋ผ ์ œ์–ด. ์ด๊ฒƒ์ด ์ฃผ์š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ๋‚˜๋ผ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์ž˜ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค.

2018๋…„์— ํ•œ ๋„คํŠธ์›Œํฌ ์—”์ง€๋‹ˆ์–ด๊ฐ€ "ACL์ด ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค."๋ผ๋Š” ๋ง์„ ๋“ค์—ˆ์„ ๋•Œ์˜ ๋ชจ์Šต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์†”๋ฃจ์…˜

2018๋…„ ์ดˆ์— ์ด์— ๋Œ€ํ•ด ๋ญ”๊ฐ€ ์กฐ์น˜๋ฅผ ์ทจํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ†ตํ•ฉ ๊ฐ€๊ฒฉ์€ ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์ž‘์ ์€ ์žฅ์น˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ๊ฒฉ๋ฆฌ๋œ VLAN ๋ฐ ACL ์ง€์›์„ ์ค‘๋‹จํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…: ์šฐ๋ฆฌ๋Š” ์ธ์  ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ตœ๋Œ€ํ•œ์˜ ์•ก์„ธ์Šค ์ œ๊ณต์„ ์ž๋™ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” ๋ฐ๋Š” ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…: ๊ทœ์น™ ์ ์šฉ ์†๋„๋ฅผ ๋†’์ด๊ณ , ๋ถ„์‚ฐ ๋ฐ ๋ณ‘๋ ฌํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” rsync ๋˜๋Š” SFTP ์—†์ด ์ˆ˜์ฒœ ๊ฐœ์˜ ์‹œ์Šคํ…œ์— ๊ทœ์น™์ด ์ž์ฒด์ ์œผ๋กœ ์ „๋‹ฌ๋˜๋„๋ก ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์„ธ๊ทธ๋จผํŠธ ๋‚ด๋ถ€์—๋Š” ๋ฐฉํ™”๋ฒฝ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ๋‚ด์— ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๊ฐ€ ๋‚˜ํƒ€๋‚  ๋•Œ ์„ธ๊ทธ๋จผํŠธ ๋‚ด์˜ ๋ฐฉํ™”๋ฒฝ์ด ์šฐ๋ฆฌ์—๊ฒŒ ์˜ค๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…: ํ˜ธ์ŠคํŠธ ์ˆ˜์ค€์˜ ๋ฐฉํ™”๋ฒฝ(ํ˜ธ์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ฐฉํ™”๋ฒฝ)์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๊ฑฐ์˜ ๋ชจ๋“  ๊ณณ์—์„œ Linux๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  iptables๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ๊ทœ์น™์— ์–ด๋ ค์›€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์ฑ…: ๊ฒ€ํ†  ๋ฐ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ๊ทœ์น™์„ ํ•œ ๊ณณ์— ๋ณด๊ด€ํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ”„๋ผ์— ๋Œ€ํ•œ ํ†ต์ œ ์ˆ˜์ค€์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: ๋ชจ๋“  ์„œ๋น„์Šค์˜ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๊ณ  ์„œ๋น„์Šค ๊ฐ„ ์•ก์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ๊ธฐ์ˆ ์ ์ธ ํ”„๋กœ์„ธ์Šค๋ผ๊ธฐ๋ณด๋‹ค๋Š” ๊ด€๋ฆฌ์ ์ธ ํ”„๋กœ์„ธ์Šค์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์ผ์ฃผ์ผ์— 200~300๊ฐœ์˜ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๊ฐ€ ์žˆ์„ ๋•Œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ํ”„๋กœ๋ชจ์…˜์ด๋‚˜ ํœด์ผ ๊ธฐ๊ฐ„์—๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Š” DevOps์˜ ํ•œ ํŒ€์—๋งŒ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์„œ ์–ด๋–ค ํฌํŠธ, IP ๋ฐ ํ†ตํ•ฉ์ด ํ•„์š”ํ•œ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ํŒ€์— "๊ทธ๋‚˜์ €๋‚˜ ๊ฑฐ๊ธฐ์— ๋ฌด์—‡์ด ์žˆ๊ณ  ์™œ ๊ทธ๋Ÿฐ ์ด์•ผ๊ธฐ๋ฅผ ๊บผ๋ƒˆ๋‚˜์š”?"๋ผ๊ณ  ์งˆ๋ฌธํ•  ํŠน๋ณ„ํžˆ ํ›ˆ๋ จ๋œ ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž๊ฐ€ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ ์ถœ์‹œํ•œ ํ›„ 2019๋…„์˜ ๋„คํŠธ์›Œํฌ ์—”์ง€๋‹ˆ์–ด๋Š” ์ด๋ ‡๊ฒŒ ๋ณด์ด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์˜์‚ฌ

์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž์˜ ๋„์›€์œผ๋กœ ์ฐพ์€ ๋ชจ๋“  ๊ฒƒ์„ Consul์— ๋„ฃ๊ณ  ๊ฑฐ๊ธฐ์—์„œ iptables ๊ทœ์น™์„ ์ž‘์„ฑํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ์ด ์ผ์„ ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‚˜์š”?

  • ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ์„œ๋น„์Šค, ๋„คํŠธ์›Œํฌ ๋ฐ ์‚ฌ์šฉ์ž๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ iptables ๊ทœ์น™์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ์ œ์–ด๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ....
  • ์ด์ต.

Consul์€ ์›๊ฒฉ API๊ฐ€ ์•„๋‹ˆ๋ฉฐ ๋ชจ๋“  ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๊ณ  iptables์— ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ๋ถˆํ•„์š”ํ•œ ๊ฒƒ์„ ์ œ๊ฑฐํ•˜๋Š” ์ž๋™ ์ œ์–ด ์žฅ์น˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๋‚˜๋จธ์ง€๋Š” ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•ด๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์™œ ์˜์‚ฌ์ž…๋‹ˆ๊นŒ?

๊ทธ ์ž์ฒด๋กœ ์ž˜ ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 2014~15๋…„์—๋Š” ์ด๋ฅผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•˜๋Š” Vault์˜ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š์Œ. Consul์„ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋‹จ ํ•œ ๋ฒˆ์˜ ์‚ฌ๊ณ ์—๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ์žˆ์–ด์„œ ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค.

P2P ์—ฐ๊ฒฐ๋กœ ๋ณ€ํ™” ํ™•์‚ฐ ๊ฐ€์†ํ™”. P2P๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋น ๋ฅด๊ฒŒ ์ ์šฉ๋˜๋ฏ€๋กœ ๋ช‡ ์‹œ๊ฐ„์”ฉ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํŽธ๋ฆฌํ•œ REST API. Apache ZooKeeper๋„ ๊ณ ๋ คํ–ˆ์ง€๋งŒ REST API๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ชฉ๋ฐœ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

KV(Key Vault) ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ(์„œ๋น„์Šค ๊ฒ€์ƒ‰)๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.. ์„œ๋น„์Šค, โ€‹โ€‹์นดํƒˆ๋กœ๊ทธ, ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์šฐ๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด์›ƒ ํŒ€์—๊ฒŒ๋„ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ํฌ๊ฒŒ ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Wargaming ์Šคํƒ์˜ ์ผ๋ถ€์ธ Go๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด ์–ธ์–ด๋ฅผ ์ข‹์•„ํ•˜๊ณ  Go ๊ฐœ๋ฐœ์ž๋„ ๋งŽ์Šต๋‹ˆ๋‹ค.

๊ฐ•๋ ฅํ•œ ACL ์‹œ์Šคํ…œ. Consul์—์„œ๋Š” ACL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ์ž‘์„ฑํ•˜๋Š”์ง€ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์ด ๋‹ค๋ฅธ ๊ทœ์น™๊ณผ ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž„์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Consul์—๋Š” ๋‹จ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋น„์ฆˆ๋‹ˆ์Šค ๋ฒ„์ „์ด ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋‚ด์—์„œ ํ™•์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŽ˜๋”๋ ˆ์ด์…˜์„ ํ†ตํ•ด์„œ๋งŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ํ’ˆ์งˆ๊ณผ ์„œ๋ฒ„ ๋ถ€ํ•˜์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. Consul์€ ์†๋„๊ฐ€ ๊ณ ๋ฅด์ง€ ์•Š์€ ๋“ฑ ๋„คํŠธ์›Œํฌ์— ์ง€์—ฐ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ๋Ÿ‰์ด ๋งŽ์€ ์„œ๋ฒ„์—์„œ ์„œ๋ฒ„๋กœ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” P2P ์—ฐ๊ฒฐ ๋ฐ ์—…๋ฐ์ดํŠธ ๋ฐฐํฌ ๋ชจ๋ธ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ€์šฉ์„ฑ ๋ชจ๋‹ˆํ„ฐ๋ง์˜ ์–ด๋ ค์›€. ์˜์‚ฌ ์‹ ๋ถ„์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์˜ค๋ž˜ ์ „์— ์‚ฌ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Consul์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๋Œ€๋ถ€๋ถ„ ํ•ด๊ฒฐํ–ˆ๊ณ  ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ Consul์„ ์„ ํƒํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ํšŒ์‚ฌ๋Š” ๋Œ€์ฒด ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ๊ณ„ํš์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์œผ๋ฉฐ ํ˜„์žฌ Consul๊ณผ ํ•จ๊ป˜ ์ƒํ™œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Consul์˜ ์ž‘๋™ ๋ฐฉ์‹

์กฐ๊ฑด๋ถ€ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— XNUMX~XNUMX๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ํ•œ๋‘ ๋Œ€์˜ ์„œ๋ฒ„๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ์ •์กฑ์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋ˆ„๊ฐ€ ์˜ณ๊ณ  ๊ทธ๋ฅธ์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. XNUMX๊ฐœ ์ด์ƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์œผ๋ฉฐ ์ƒ์‚ฐ์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

ํด๋ผ์ด์–ธํŠธ๋Š” ์ˆœ์„œ์— ๊ด€๊ณ„์—†์ด ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์—์ด์ „ํŠธ, ํ”Œ๋ž˜๊ทธ๋งŒ ์‚ฌ์šฉ server = false.

์˜์‚ฌ + iptables = :3

๊ทธ ํ›„ ํด๋ผ์ด์–ธํŠธ๋Š” P2P ์—ฐ๊ฒฐ ๋ชฉ๋ก์„ ์ˆ˜์‹ ํ•˜๊ณ  ์„œ๋กœ ์—ฐ๊ฒฐ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

๊ธ€๋กœ๋ฒŒ ์ˆ˜์ค€์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ P2P๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์š”์ฒญ์€ ์„œ๋ฒ„์—์„œ ์„œ๋ฒ„๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณ„ํš์€ ๋†๋…ธ ํ”„๋กœํ† ์ฝœ. Consul๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Serf ํ”„๋กœํ† ์ฝœ์€ HashiCorp์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Consul์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์‚ฌ์‹ค

Consul์—๋Š” ์ž‘๋™ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์•Œ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์—„์„ ๋œ ์‚ฌ์‹ค๋“ค๋งŒ์„ ์ œ๊ณตํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Consul ์„œ๋ฒ„๋Š” ์œ ๊ถŒ์ž ์ค‘์—์„œ ๋งˆ์Šคํ„ฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.. Consul์€ ๊ฐ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์„œ๋ฒ„ ๋ชฉ๋ก์—์„œ ๋งˆ์Šคํ„ฐ๋ฅผ ์„ ํƒํ•˜๊ณ  ๋ชจ๋“  ์š”์ฒญ์€ ์„œ๋ฒ„ ์ˆ˜์— ๊ด€๊ณ„์—†์ด ๋งˆ์Šคํ„ฐ๋กœ๋งŒ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ๋™๊ฒฐ์€ ์žฌ์„ ์œผ๋กœ ์ด์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์œผ๋ฉด ๋ˆ„๊ตฌ๋„ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ˆ˜ํ‰์  ํ™•์žฅ์„ ์›ํ•˜์…จ๋‚˜์š”? ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์š”.

๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋Œ€ํ•œ ์š”์ฒญ์€ ์–ด๋Š ์„œ๋ฒ„๋กœ ์™”๋Š”์ง€์— ๊ด€๊ณ„์—†์ด ๋งˆ์Šคํ„ฐ์—์„œ ๋งˆ์Šคํ„ฐ๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ๋งˆ์Šคํ„ฐ๋Š” ์ „๋‹ฌ ์š”์ฒญ์— ๋Œ€ํ•œ ๋กœ๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๋กœ๋“œ์˜ 100%๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋ชจ๋“  ์„œ๋ฒ„์—๋Š” ์ตœ์‹  ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ๋ณธ์ด ์žˆ์ง€๋งŒ ํ•˜๋‚˜๋งŒ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

ํ™•์žฅํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋ถ€์‹ค ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ถ€์‹ค ๋ชจ๋“œ์—์„œ๋Š” ์ฟผ๋Ÿผ ์—†์ด ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ํฌ๊ธฐํ•˜์ง€๋งŒ ํ‰์†Œ๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๋น ๋ฅด๊ฒŒ ์ฝ๊ณ  ๋ชจ๋“  ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•˜๋Š” ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๋‹น์—ฐํžˆ ๋งˆ์Šคํ„ฐ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋…น์Œ๋ฉ๋‹ˆ๋‹ค.

Consul์€ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. ์—ฐํ•ฉ์ด ๊ตฌ์„ฑ๋˜๋ฉด ๊ฐ ์„œ๋ฒ„๋Š” ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ํ•ญ์ƒ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ์˜์ง€ํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋žœ์žญ์…˜ ์™ธ๋ถ€์—์„œ๋Š” ์ž‘์—…์˜ ์›์ž์„ฑ์ด ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. ์ƒํ™ฉ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋‹น์‹ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค. ๋‹ค๋ฅด๊ฒŒ ์›ํ•œ๋‹ค๋ฉด ์ž ๊ธˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

์ฐจ๋‹จ ์ž‘์—…์€ ์ž ๊ธˆ์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. ์š”์ฒญ์€ ์ง์ ‘์ด ์•„๋‹Œ ๋งˆ์Šคํ„ฐ์—์„œ ๋งˆ์Šคํ„ฐ๋กœ ์ด๋™ํ•˜๋ฏ€๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์ฐจ๋‹จํ•  ๋•Œ ์ฐจ๋‹จ์ด ์ž‘๋™ํ•œ๋‹ค๋Š” ๋ณด์žฅ์€ ์—†์Šต๋‹ˆ๋‹ค.

ACL์€ ๋˜ํ•œ ์•ก์„ธ์Šค๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ).. ACL์€ ํ•˜๋‚˜์˜ ํŽ˜๋”๋ ˆ์ด์…˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ, ์ฆ‰ ACL ๋ฐ์ดํ„ฐ ์„ผํ„ฐ(๊ธฐ๋ณธ DC)์— ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DC๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์œผ๋ฉด ACL์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ๋™๊ฒฐ๋œ ๋งˆ์Šคํ„ฐ๋กœ ์ธํ•ด ์ „์ฒด ์—ฐํ•ฉ์ด ๋™๊ฒฐ๋ฉ๋‹ˆ๋‹ค.. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŽ˜๋”๋ ˆ์ด์…˜์—๋Š” 10๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” ๋„คํŠธ์›Œํฌ ์ƒํƒœ๊ฐ€ ์ข‹์ง€ ์•Š๊ณ  ํ•˜๋‚˜๋Š” ๋งˆ์Šคํ„ฐ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ์™€ ๋Œ€ํ™”ํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์€ ์› ์•ˆ์— ๊ฐ‡ํž ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š”์ฒญ์ด ์žˆ์ง€๋งŒ ์‘๋‹ต์ด ์—†์œผ๋ฉฐ ์Šค๋ ˆ๋“œ๊ฐ€ ์ •์ง€๋ฉ๋‹ˆ๋‹ค. ์–ธ์ œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚ ์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ํ•œ๋‘ ์‹œ๊ฐ„๋งŒ ์ง€๋‚˜๋ฉด ์—ฐ๋ฐฉ ์ „์ฒด๊ฐ€ ๋ฌด๋„ˆ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์€ ์•„๋ฌด๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค.

์ƒํƒœ, ์ •์กฑ์ˆ˜ ๋ฐ ์„ ํƒ์€ ๋ณ„๋„์˜ ์Šค๋ ˆ๋“œ์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์žฌ์„ ๊ฑฐ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ƒํƒœ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์‚ด์•„์žˆ๋Š” ์˜์‚ฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ๋ฌผ์–ด๋ด๋„ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋‹ต์ด ์—†์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์ƒํƒœ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ๊ณ  ์ด๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ํŠน์ • ๋ถ€๋ถ„์„ ์žฌ๊ตฌ์ถ•ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Consul Enterprise์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฒ„์ „์—๋Š” ์œ„์˜ ๋‹จ์  ์ค‘ ์ผ๋ถ€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.. ์œ ๊ถŒ์ž ์„ ํƒ, ๋ฐฐํฌ, ๊ทœ๋ชจ ์กฐ์ • ๋“ฑ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. "๊ทธ๋Ÿฌ๋‚˜"๋Š” ๋‹จ ํ•˜๋‚˜๋ฟ์ž…๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๋ผ์ด์„ผ์Šค ์‹œ์Šคํ…œ์€ ๋งค์šฐ ๋น„์Œ‰๋‹ˆ๋‹ค.

์ƒ๋ช… ํ•ดํ‚น : rm -rf /var/lib/consul - ๋Œ€๋ฆฌ์ธ์˜ ๋ชจ๋“  ์งˆ๋ณ‘์— ๋Œ€ํ•œ ์น˜๋ฃŒ๋ฒ•. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ๋ณต์‚ฌ๋ณธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”. ์•„๋งˆ๋„ ์˜์‚ฌ๊ฐ€ ์ผํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด์ „

์ด์ œ Consul์— ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ „ ์˜ ์•ฝ์–ด์ด๋‹ค B์‘๋‹ตEndF๋ถ„๋…ธW๋ชจ๋‘. ์ฒซ ๋ฒˆ์งธ ํ…Œ์ŠคํŠธ ์ปค๋ฐ‹์„ ์ €์žฅ์†Œ์— ๋„ฃ๊ธฐ ์œ„ํ•ด ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์–ด๋–ป๊ฒŒ๋“  ์ œํ’ˆ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ด๋ฆ„์ด ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค.

๊ทœ์น™ ํ…œํ”Œ๋ฆฟ

๊ทœ์น™์€ iptables ๊ตฌ๋ฌธ์œผ๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

  • -N ์ด์ „
  • -P ์ž…๋ ฅ ๋“œ๋กญ
  • -A ์ž…๋ ฅ -m ์ƒํƒœ - ๊ด€๋ จ๋จ, ์„ค์ •๋จ ์ƒํƒœ -j ์ˆ˜๋ฝ
  • -A ์ž…๋ ฅ -i lo -j ์ˆ˜๋ฝ
  • -A ์ž…๋ ฅ -j BEFW

๋‹ค์Œ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๊ฒƒ์ด BEFW ์ฒด์ธ์œผ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ESTABLISHED, RELATED ๊ทธ๋ฆฌ๊ณ  ๋กœ์ปฌํ˜ธ์ŠคํŠธ. ํ…œํ”Œ๋ฆฟ์€ ๋ฌด์—‡์ด๋“  ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹จ์ง€ ์˜ˆ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

BEFW๋Š” ์–ด๋–ป๊ฒŒ ์œ ์šฉํ•ฉ๋‹ˆ๊นŒ?

์„œ๋น„์Šค

์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์„œ๋น„์Šค๊ฐ€ ์žˆ์œผ๋ฉฐ ํ•ญ์ƒ ํฌํŠธ, ์ฆ‰ ์‹คํ–‰๋˜๋Š” ๋…ธ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋…ธ๋“œ์—์„œ ๋กœ์ปฌ๋กœ ์—์ด์ „ํŠธ์—๊ฒŒ ๋ฌผ์–ด๋ณด๊ณ  ์–ด๋–ค ์ข…๋ฅ˜์˜ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒœ๊ทธ๋ฅผ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

Consul์— ์‹คํ–‰๋˜๊ณ  ๋“ฑ๋ก๋œ ๋ชจ๋“  ์„œ๋น„์Šค๋Š” iptables ๊ทœ์น™์œผ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” SSH๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค - ์—ด๋ฆฐ ํฌํŠธ 22. Bash ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค: ์ปฌ๊ณผ iptables, ๋‹ค๋ฅธ ๊ฒƒ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ

๋ชจ๋“  ์‚ฌ๋žŒ์ด ์•„๋‹Œ ์„ ํƒ์ ์œผ๋กœ ์•ก์„ธ์Šค๋ฅผ ์—ฌ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์„œ๋น„์Šค ์ด๋ฆ„์œผ๋กœ KV ์Šคํ† ๋ฆฌ์ง€์— IP ๋ชฉ๋ก์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์˜ˆ๋ฅผ ๋“ค์–ด, ์šฐ๋ฆฌ๋Š” 22๋ฒˆ์งธ ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ์‚ฌ๋žŒ์ด SSH_TCP_XNUMX ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ž‘์€ TTL ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด์ œ ์šฐ๋ฆฌ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ํ•˜๋ฃจ ๋™์•ˆ์˜ ์ž„์‹œ ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

์•ก์„ธ์Šค

์šฐ๋ฆฌ๋Š” ์„œ๋น„์Šค์™€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์„œ๋น„์Šค๊ฐ€ ์žˆ์œผ๋ฉฐ KV ์Šคํ† ๋ฆฌ์ง€๋Š” ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์ค€๋น„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์„ ํƒ์ ์œผ๋กœ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

๊ทธ๋ฃน

๋งค๋ฒˆ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด ์ˆ˜์ฒœ ๊ฐœ์˜ IP๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ํ”ผ๊ณคํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. KV์˜ ๋ณ„๋„ ํ•˜์œ„ ์ง‘ํ•ฉ์ธ ๊ทธ๋ฃนํ™”๋ฅผ ์ƒ๊ฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณ„์นญ(๋˜๋Š” ๊ทธ๋ฃน)์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ๋™์ผํ•œ ์›๋ฆฌ์— ๋”ฐ๋ผ ๊ฑฐ๊ธฐ์— ๊ทธ๋ฃน์„ ์ €์žฅํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์—ฐ๊ฒฐํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํŠน๋ณ„ํžˆ P2P์šฉ์ด ์•„๋‹Œ ์ „์ฒด ๊ทธ๋ฃน ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ทธ๋ฃน์— ๋Œ€ํ•ด SSH๋ฅผ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ TTL์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ผ์‹œ์ ์œผ๋กœ ๊ทธ๋ฃน์—์„œ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

ะ˜ะฝั‚ะตะณั€ะฐั†ะธั

์šฐ๋ฆฌ์˜ ๋ฌธ์ œ๋Š” ์ธ์  ์š”์†Œ์™€ ์ž๋™ํ™”์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์šฐ๋ฆฌ๋Š” Puppet๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ ์‹œ์Šคํ…œ(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ)๊ณผ ๊ด€๋ จ๋œ ๋ชจ๋“  ๊ฒƒ์„ Puppet์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค. Puppetdb(์ผ๋ฐ˜ PostgreSQL)๋Š” ๊ทธ๊ณณ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์„œ๋น„์Šค ๋ชฉ๋ก์„ ์ €์žฅํ•˜๋ฉฐ ๋ฆฌ์†Œ์Šค ์œ ํ˜•๋ณ„๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ฐ€ ์–ด๋””์— ์ง€์›ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ ํ’€ ์š”์ฒญ ๋ฐ ๋ณ‘ํ•ฉ ์š”์ฒญ ์‹œ์Šคํ…œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋•๋Š” ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜์ธ befw-sync๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ๋™๊ธฐํ™” ์ฟ ํ‚ค๋Š” puppetdb๋ฅผ ํ†ตํ•ด ์•ก์„ธ์Šค๋ฉ๋‹ˆ๋‹ค. HTTP API๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€, ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ทธ๋“ค์€ ์˜์‚ฌ์—๊ฒŒ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

ํ†ตํ•ฉ์ด ์žˆ๋‚˜์š”? ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ทœ์น™์„ ์ž‘์„ฑํ•˜๊ณ  Pull Request๊ฐ€ ํ—ˆ์šฉ๋˜๋„๋ก ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ํฌํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์ผ๋ถ€ ๊ทธ๋ฃน์— ํ˜ธ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๊นŒ? ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ, ๊ฒ€ํ†  - ๋” ์ด์ƒ "200๊ฐœ์˜ ๋‹ค๋ฅธ ACL์„ ์ฐพ์•„ ์ด์— ๋Œ€ํ•ด ์กฐ์น˜๋ฅผ ์ทจํ•ด๋ณด์„ธ์š”."

์ตœ์ ํ™”

๋นˆ ๊ทœ์น™ ์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ localhost๋ฅผ ํ•‘ํ•˜๋Š” ๋ฐ 0,075ms๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์ด ์ฒด์ธ์— 10๊ฐœ์˜ iptables ์ฃผ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•‘์€ 000๋ฐฐ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. iptables๋Š” ์™„์ „ํžˆ ์„ ํ˜•์ด๋ฏ€๋กœ ๊ฐ ์ฃผ์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์ˆ˜์ฒœ ๊ฐœ์˜ ACL์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ์˜ ๊ฒฝ์šฐ ๋งŽ์€ ๊ทœ์น™์ด ์žˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฒŒ์ž„ ํ”„๋กœํ† ์ฝœ์— ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ๋„ฃ์œผ๋ฉด IPset์˜ ์ฃผ์†Œ 10๊ฐœ ํ•‘๋„ ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์š”์ ์€ ๊ทœ์น™์ด ์•„๋ฌด๋ฆฌ ๋งŽ์•„๋„ ipset์˜ "O"(์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณต์žก๋„)๋Š” ํ•ญ์ƒ 1๊ณผ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค - ๊ทœ์น™์€ 65535๊ฐœ๋ฅผ ๋„˜์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ๊ฒฐํ•ฉํ•˜๊ณ  ํ™•์žฅํ•˜๊ณ  ๋‘ ๊ฐœ์˜ IPset์„ ํ•˜๋‚˜๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์žฅ

๋ฐ˜๋ณต ํ”„๋กœ์„ธ์Šค์˜ ๋…ผ๋ฆฌ์  ์—ฐ์†์€ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ipset์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์ด์ œ ์šฐ๋ฆฌ๋Š” ๋™์ผํ•œ SSH๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ํ•œ ๋ฒˆ์— 100๊ฐœ์˜ IP๋ฅผ ์“ฐ์ง€ ์•Š๊ณ  ํ†ต์‹ ํ•ด์•ผ ํ•˜๋Š” IPset์˜ ์ด๋ฆ„์„ ์„ค์ •ํ•˜๊ณ  ๋‹ค์Œ ๊ทœ์น™์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. DROP. '๋ˆ„๊ฐ€ ์—ฌ๊ธฐ ์—†๋‚˜, DROP'๋ผ๋Š” ํ•˜๋‚˜์˜ ๊ทœ์น™์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋” ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ๊ทœ์น™๊ณผ ์„ธํŠธ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์ž‘์—…์€ ๊ทœ์น™์„ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ์„ธํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด iptables๊ฐ€ ๊ทœ์น™์„ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ๊ณ„ํš

๋‹ค์ด์–ด๊ทธ๋žจ ํ˜•ํƒœ๋กœ ๋งํ•˜๋ฉด ๋‚ด๊ฐ€ ๋งํ•œ ๋ชจ๋“  ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์šฐ๋ฆฌ๋Š” Puppet์„ ์•ฝ์†ํ•˜๋ฉฐ, ๋ชจ๋“  ๊ฒƒ์ด ํ˜ธ์ŠคํŠธ๋กœ ์ „์†ก๋˜๊ณ , ์„œ๋น„์Šค๋Š” ์—ฌ๊ธฐ, IPset์€ ๊ฑฐ๊ธฐ์— ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฑฐ๋ถ€ ํ—ˆ์šฉ

์‹ ์†ํ•˜๊ฒŒ ์„ธ์ƒ์„ ๊ตฌํ•˜๊ฑฐ๋‚˜ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ์‹ ์†ํ•˜๊ฒŒ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์ฒด์ธ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋‘ ๊ฐœ์˜ ipset์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. rules_allow ะธ rules_deny. ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ด‡์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น์— ๋ถ€ํ•˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ํŠธ๋ž˜ํ”ฝ ์†Œ์Šค๋ฅผ ์ฐพ์•„ ๊ทธ๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ๊ทธ์—์„œ ๊ทธ์˜ IP๋ฅผ ์ฐพ์•„ ๋„คํŠธ์›Œํฌ ์—”์ง€๋‹ˆ์–ด์—๊ฒŒ ์ „๋‹ฌํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋‹ฌ๋ผ ๋ณด์ž…๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

Consul์—๊ฒŒ ๋ณด๋‚ด๊ณ  2,5์ดˆ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. Consul์€ P2P๋ฅผ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ธ๊ณ„ ์–ด๋Š ๊ณณ์—์„œ๋‚˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉํ™”๋ฒฝ ์‹ค์ˆ˜๋กœ ์ธํ•ด ์–ด๋–ป๊ฒŒ ๋“  WOT๋ฅผ ์™„์ „ํžˆ ์ค‘์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. rules_allow - ์ด๋Š” ๊ทธ๋Ÿฌํ•œ ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•œ ๋‹น์‚ฌ์˜ ๋ณดํ—˜์ž…๋‹ˆ๋‹ค. ๋ฐฉํ™”๋ฒฝ ์–ด๋”˜๊ฐ€์—์„œ ์‹ค์ˆ˜๋ฅผ ํ•ด์„œ ์–ด๋”˜๊ฐ€์—์„œ ๋ฌด์–ธ๊ฐ€๊ฐ€ ์ฐจ๋‹จ๋œ ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ์กฐ๊ฑด๋ถ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 0.0/0๋นจ๋ฆฌ ๋ชจ๋“  ๊ฒƒ์„ ์ง‘์–ด ๋“ค๊ธฐ ์œ„ํ•ด. ๋‚˜์ค‘์— ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์†์œผ๋กœ ๊ณ ์น  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ธฐํƒ€ ์„ธํŠธ

๊ณต๊ฐ„์— ๋‹ค๋ฅธ ์„ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $IPSETS$.

์˜์‚ฌ + iptables = :3

๋ฌด์—‡์„ ์œ„ํ•ด? ์˜ˆ๋ฅผ ๋“ค์–ด ํด๋Ÿฌ์Šคํ„ฐ ์ผ๋ถ€์˜ ์ข…๋ฃŒ๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ๋ˆ„๊ตฐ๊ฐ€ ipset์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ์„ธํŠธ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋ฉด ์˜์‚ฌ๊ฐ€ ํ”ฝ์—…ํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋™์‹œ์— ์„ธํŠธ๋Š” iptables ๊ทœ์น™์— ์ฐธ์—ฌํ•˜๊ฑฐ๋‚˜ ํŒ€์œผ๋กœ ํ™œ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NOOP: ์ผ๊ด€์„ฑ์€ ๋ฐ๋ชฌ์— ์˜ํ•ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

ํšŒ์›

์ด์ „์—๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋„๋ฉ”์ธ์„ ํ†ตํ•ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๋Š” ๋ฐฉ์‹์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ฐจ์„ธ๋Œ€ ๋ฐฉํ™”๋ฒฝ์ด ๋“ฑ์žฅํ•˜๊ธฐ ์ „์— Cisco๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€, IP๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋จธ์‹ ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ํ†ตํ•ด์„œ๋งŒ ์•ก์„ธ์Šค๊ฐ€ ํ—ˆ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ํ–ˆ๋‚˜์š”? ์ฃผ์†Œ๋ฅผ ๋ฐ›๋Š” ์ˆœ๊ฐ„ ๋ง‰ํ˜”์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Š” dot1x, Wi-Fi ๋˜๋Š” VPN์ด๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด RADIUS๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ๊ทธ๋ฃน์„ ์ƒ์„ฑํ•˜๊ณ  dhcp.lease์™€ ๋™์ผํ•œ TTL์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ฃน์— IP๋ฅผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ๋ฃŒ๋˜์ž๋งˆ์ž ๊ทœ์น™์€ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์ด์ œ ๋‹ค๋ฅธ ๊ทธ๋ฃน๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์–ด๋ ค์›€์„ ์—†์• ๊ณ  ๋” ์ด์ƒ Cisco๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ์—”์ง€๋‹ˆ์–ด์˜ ๋ถ€๋‹ด์„ ๋œ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์ง์ ‘ ์„œ๋ฒ„์— ์•ก์„ธ์Šค๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

์ ˆ์—ฐ

๋™์‹œ์— ์šฐ๋ฆฌ๋Š” ๋‹จ์—ด์žฌ๋ฅผ ํ•ด์ฒดํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž๋Š” ์ธ๋ฒคํ† ๋ฆฌ๋ฅผ ์กฐ์‚ฌํ•˜๊ณ  ๋ชจ๋“  ๋„คํŠธ์›Œํฌ๋ฅผ ๋ถ„์„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋™์ผํ•œ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ํ•„์š”ํ•œ ์„œ๋ฒ„์— ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฑฐ๋ถ€๋ฅผ ์œ„ํ•ด ๊ทธ๋ฃน์„ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋™์ผํ•œ ์Šคํ…Œ์ด์ง• ๊ฒฉ๋ฆฌ๊ฐ€ ํ”„๋กœ๋•์…˜์˜ rule_deny์—์„œ ๋๋‚˜์ง€๋งŒ ํ”„๋กœ๋•์…˜ ์ž์ฒด์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์ด ์ฒด๊ณ„๋Š” ๋น ๋ฅด๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ ๋ชจ๋“  ACL์„ ์ œ๊ฑฐํ•˜๊ณ , ํ•˜๋“œ์›จ์–ด๋ฅผ ์–ธ๋กœ๋“œํ•˜๊ณ , ๊ฒฉ๋ฆฌ๋œ VLAN์˜ ์ˆ˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.

๋ฌด๊ฒฐ์„ฑ ๊ด€๋ฆฌ

์ด์ „์—๋Š” ๋ˆ„๊ตฐ๊ฐ€ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ์ด๋ฅผ ๋ณด๊ณ ํ•˜๋Š” ํŠน์ˆ˜ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ๋Œ€ํ•œ ๋ฆฐํ„ฐ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๋ฌด๊ฒฐ์„ฑ์€ ์ด์ œ BEFW์— ์˜ํ•ด ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ž์‹ ์ด ์ •ํ•œ ๊ทœ์น™์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋„๋ก ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. โ€œ์ง‘์—์„œ ์ผํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹ ์†ํ•˜๊ฒŒ ํ”„๋ก์‹œ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.โ€โ€”๊ทธ๋Ÿฐ ์˜ต์…˜์€ ๋” ์ด์ƒ ์—†์Šต๋‹ˆ๋‹ค.

BEFW๋Š” BEFW ์ฒด์ธ์˜ ์„œ๋น„์Šค ๊ทœ์น™์ธ befw.conf์˜ ์„œ๋น„์Šค ๋ฐ ๋ชฉ๋ก์—์„œ IPset์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ฒด์ธ๊ณผ ๊ทœ์น™, ๋‹ค๋ฅธ IPset์€ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ ๋ฐฉ์ง€

BEFW๋Š” ํ•ญ์ƒ ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์–‘ํ˜ธํ•œ ์ƒํƒœ๋ฅผ state.bin ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ตฌ์กฐ์— ์ง์ ‘ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ•ญ์ƒ ์ด state.bin์œผ๋กœ ๋กค๋ฐฑ๋ฉ๋‹ˆ๋‹ค.

์˜์‚ฌ + iptables = :3

์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ๋ˆ„๊ตฐ๊ฐ€ ์‹ค์ˆ˜๋ฅผ ํ•˜์—ฌ ์ ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ทœ์น™์„ ์‚ฌ์šฉํ•œ ๋ถˆ์•ˆ์ •ํ•œ ์˜์‚ฌ ์šด์˜์— ๋Œ€ํ•œ ๋ณดํ—˜์ž…๋‹ˆ๋‹ค. ๋ฐฉํ™”๋ฒฝ ์—†์ด ๋ฐฉ์น˜๋˜์ง€ ์•Š๋„๋ก BEFW๋Š” ์–ด๋–ค ๋‹จ๊ณ„์—์„œ๋“  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ตœ์‹  ์ƒํƒœ๋กœ ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋ฐฉํ™”๋ฒฝ์ด ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ๋ณด์žฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๊ฐ€ ์™€์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฒƒ์ด๋ผ๋Š” ํฌ๋ง์œผ๋กœ ๋ชจ๋“  ํšŒ์ƒ‰ ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€๋Š” ์ด๊ฒƒ์„ ๊ตฌ์„ฑ์— ๋„ฃ์„ ๊ฒƒ์ด์ง€๋งŒ ์ง€๊ธˆ์€ 10/8, 172/12 ๋ฐ 192.168/16์˜ ์„ธ ๊ฐ€์ง€ ํšŒ์ƒ‰ ๋„คํŠธ์›Œํฌ๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜์‚ฌ ๋‚ด์—์„œ ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋”์šฑ ๋ฐœ์ „ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๋ฐ๋ชจ: ๋ณด๊ณ ์„œ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ Ivan์€ BEFW์˜ ๋ฐ๋ชจ ๋ชจ๋“œ๋ฅผ ์‹œ์—ฐํ•ฉ๋‹ˆ๋‹ค. ์‹œ์—ฐ์„ ๋ณด๋Š” ๊ฒƒ์ด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋น„๋””์˜ค. ๋ฐ๋ชจ ์†Œ์Šค ์ฝ”๋“œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ GitHub์—์„œ.

์ฃผ์˜

๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

ipset ์ถ”๊ฐ€ ์„ธํŠธ 0.0.0.0/0. ipset์— 0.0.0.0/0์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ๋ชจ๋“  IP๊ฐ€ ์ถ”๊ฐ€๋˜๋‚˜์š”? ์ธํ„ฐ๋„ท ์ ‘์†์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, 2016์‹œ๊ฐ„์˜ ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์„ ์ดˆ๋ž˜ํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด ๋ฒ„๊ทธ๋Š” 1297092๋…„ ์ดํ›„๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„๊ทธ๋Š” RedHat Bugzilla์˜ ๋ฒˆํ˜ธ #XNUMX์— ์žˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ์ž ๋ณด๊ณ ์„œ์—์„œ ์šฐ์—ฐํžˆ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ BEFW์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—„๊ฒฉํ•œ ๊ทœ์น™์ด ์ ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 0.0.0.0/0 ๋‘ ๊ฐœ์˜ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. 0.0.0.0/1 ะธ 128.0.0.0/1.

ipset ๋ณต์› ์„ธํŠธ < ํŒŒ์ผ. ipset์— ์ง€์‹œํ•˜๋ฉด ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ? restore? iptables์™€ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”? ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๊ทธ๋Ÿฐ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ด์ „ ์ฃผ์†Œ๋Š” ์•„๋ฌด๋ฐ๋„ ๊ฐ€์ง€ ์•Š์œผ๋ฉฐ ์•ก์„ธ์Šค๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฉ๋ฆฌ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋™์•ˆ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋‹ค์†Œ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. restore ๊ฐœ์ตœ create temp, ๊ทธ ๋‹ค์Œ์— restore flush temp ะธ restore temp. ์Šค์™‘์ด ๋๋‚˜๋ฉด ์›์ž์„ฑ์„ ์œ„ํ•ด ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. flush ์ด ์ˆœ๊ฐ„ ์ผ๋ถ€ ํŒจํ‚ท์ด ๋„์ฐฉํ•˜๋ฉด ํ๊ธฐ๋˜๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฑฐ๊ธฐ์—๋Š” ์•ฝ๊ฐ„์˜ ํ‘๋งˆ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

consul kv get -datacenter=other. ๋‚ด๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ Consul์„ ํ†ตํ•ด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๊ฒฝ์šฐ ๋‘˜ ๋‹ค ์ •์ง€๋ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ Consul ํด๋ผ์ด์–ธํŠธ๋Š” HTTP API์— ๋Œ€ํ•œ ๋ž˜ํผ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ƒฅ ๋ฉˆ์ถ”๊ณ  Ctrl+C๋‚˜ Ctrl+Z ๋“ฑ โ€‹โ€‹์–ด๋–ค ๊ฒƒ์—๋„ ์‘๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. kill -9 ๋‹ค์Œ ์ฝ˜์†”์—์„œ. ๋Œ€๊ทœ๋ชจ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์—†์–ด Consul์—์„œ ์ด ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•  ์ค€๋น„๋ฅผ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์˜์‚ฌ ์ง€๋„์ž๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋งˆ์Šคํ„ฐ๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "์•„๋งˆ๋„ ์ด์ œ ์žฌ์„ ํƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ž‘๋™ํ• ๊นŒ์š”?"๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋‹ˆํ„ฐ๋ง์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Consul์€ ํ—Œ์‹  ์ง€์ˆ˜๊ฐ€ ์žˆ๊ณ  ๋ฆฌ๋”๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๊นŒ? service consul restart ๋งค ์‹œ๊ฐ„๋งˆ๋‹ค cron์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ 50๊ฐœ๋ผ๋ฉด ๋ณ„ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 16๊ฐœ๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

๊ทธ ๊ฒฐ๊ณผ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ชจ๋“  Linux ์‹œ์Šคํ…œ์„ 100% ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์†๋„
  • ์˜คํ† ๋ฉ”์ด์…˜.
  • ์šฐ๋ฆฌ๋Š” ํ•˜๋“œ์›จ์–ด ๋ฐ ๋„คํŠธ์›Œํฌ ์—”์ง€๋‹ˆ์–ด๋ฅผ ๋…ธ์˜ˆ ์ƒํ™œ์—์„œ ํ•ด๋ฐฉ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.
  • ๊ฑฐ์˜ ๋ฌดํ•œํ•œ ํ†ตํ•ฉ ๊ฐ€๋Šฅ์„ฑ์ด ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. Kubernetes, Ansible, Python์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ฃ„์ˆ˜ ํŒ€์€: ์ด์ œ ์šฐ๋ฆฌ๊ฐ€ ํ•จ๊ป˜ ์‚ด์•„์•ผ ํ•˜๋Š” ์˜์‚ฌ, ๊ทธ๋ฆฌ๊ณ  ๋งค์šฐ ๋†’์€ ์˜ค๋ฅ˜ ๋น„์šฉ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜คํ›„ 6์‹œ(๋Ÿฌ์‹œ์•„ ์ตœ๊ณ ์˜ ์‹œ๊ฐ„๋Œ€)์— ์ €๋Š” ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ ์šฐ๋ฆฌ๋Š” BEFW์—์„œ ๋‹จ์—ด์žฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋”˜๊ฐ€์—์„œ ์‹ค์ˆ˜๋ฅผ ํ•ด์„œ ๋งˆ์Šคํฌ๋ฅผ ์ž˜๋ชป ํ‘œ์‹œํ•œ ๊ฒƒ ๊ฐ™์€๋ฐ ๋ชจ๋“  ๊ฒƒ์ด XNUMX์ดˆ ๋งŒ์— ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์ผœ์ง€๊ณ  ๋‹ด๋‹น ์ง€์› ๋‹ด๋‹น์ž๊ฐ€ ๋‹ฌ๋ ค์˜ต๋‹ˆ๋‹ค. "์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!" ๋ถ€์„œ์žฅ์€ ์™œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚ฌ๋Š”์ง€ ์‚ฌ์—…๋ถ€์— ์„ค๋ช…ํ•˜์ž ์–ผ๊ตด์ด ์–ด๋‘์›Œ์กŒ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ๋น„์šฉ์ด ๋„ˆ๋ฌด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์ž์ฒด์ ์œผ๋กœ ๋ณต์žกํ•œ ์˜ˆ๋ฐฉ ์ ˆ์ฐจ๋ฅผ ๋งˆ๋ จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ๋•์…˜ ์‚ฌ์ดํŠธ์—์„œ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ Consul์„ ํ†ตํ•ด ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ๋งˆ์Šคํ„ฐ ํ† ํฐ์„ ์ œ๊ณตํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‚˜์˜๊ฒŒ ๋๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋น„์šฉ. ํ˜ผ์ž์„œ 400์‹œ๊ฐ„ ๋™์•ˆ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. 4๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ €ํฌ ํŒ€์€ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํ•œ ๋‹ฌ์— 10์‹œ๊ฐ„์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ฐจ์„ธ๋Œ€ ๋ฐฉํ™”๋ฒฝ์˜ ๊ฐ€๊ฒฉ๊ณผ ๋น„๊ตํ•˜๋ฉด ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.

๊ณ„ํš. ์žฅ๊ธฐ ๊ณ„ํš์€ Consul์„ ๋Œ€์ฒดํ•˜๊ฑฐ๋‚˜ ๋ณด์™„ํ•  ๋Œ€์ฒด ๊ตํ†ต ์ˆ˜๋‹จ์„ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ Kafka๋‚˜ ๊ทธ์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•ž์œผ๋กœ ๋ช‡ ๋…„ ์•ˆ์— ์šฐ๋ฆฌ๋Š” Consul์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฆ‰๊ฐ์ ์ธ ๊ณ„ํš: Fail2ban, ๋ชจ๋‹ˆํ„ฐ๋ง, nftables, ๋‹ค๋ฅธ ๋ฐฐํฌํŒ, ์ง€ํ‘œ, ๊ณ ๊ธ‰ ๋ชจ๋‹ˆํ„ฐ๋ง, ์ตœ์ ํ™”์™€์˜ ํ†ตํ•ฉ. Kubernetes ์ง€์›๋„ ๊ณ„ํš ์–ด๋”˜๊ฐ€์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ๊ณ  ์›ํ•˜๋Š” ๋ฐ”๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ๊ณ„ํš:

  • ๊ตํ†ต์˜ ์ด์ƒ ์ง•ํ›„๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ๋งต ๊ด€๋ฆฌ;
  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ง€์›;
  • ๋ชจ๋“  ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํŒจํ‚ค์ง€ ์กฐ๋ฆฝ;
  • ์›น-UI.

์šฐ๋ฆฌ๋Š” ์ง€์†์ ์œผ๋กœ ๊ตฌ์„ฑ์„ ํ™•์žฅํ•˜๊ณ  ์ธก์ •ํ•ญ๋ชฉ๊ณผ ์ตœ์ ํ™”๋ฅผ ๋Š˜๋ฆฌ๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜์„ธ์š”. ๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ์˜€์ง€๋งŒ, ์•„์‰ฝ๊ฒŒ๋„ ์—ฌ์ „ํžˆ XNUMX์ธ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์˜ค๋‹ค GitHub์˜ ๊ทธ๋ฆฌ๊ณ  ๋ญ”๊ฐ€๋ฅผ ํ•ด๋ณด์„ธ์š”. ์ปค๋ฐ‹ํ•˜๊ณ , ํ…Œ์ŠคํŠธํ•˜๊ณ , ์ œ์•ˆํ•˜๊ณ , ํ‰๊ฐ€ํ•ด ๋ณด์„ธ์š”.

๊ทธ ์‚ฌ์ด์— ์šฐ๋ฆฌ๋Š” ์ค€๋น„ ์ค‘์ด์•ผ ์„ธ์ธํŠธ ํ•˜์ด๋กœ๋“œ++6์›” 7์ผ๊ณผ XNUMX์ผ ์ƒํŠธํŽ˜ํ…Œ๋ฅด๋ถ€๋ฅดํฌ์—์„œ ๊ฐœ์ตœ๋˜๋ฉฐ ๊ณ ๋ถ€ํ•˜ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž๋ฅผ ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ณ ์„œ๋ฅผ ์‹ ์ฒญํ•˜๋‹ค. ์ˆ™๋ จ๋œ ์—ฐ์‚ฌ๋“ค์€ ์ด๋ฏธ ๋ฌด์—‡์„ ํ•ด์•ผ ํ• ์ง€ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ๋งํ•˜๊ธฐ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์ตœ์†Œํ•œ ๋‹ค์Œ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„ํ•˜๋‹ค. ์ปจํผ๋Ÿฐ์Šค์— ์—ฐ์‚ฌ๋กœ ์ฐธ์—ฌํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋งˆ์ง€๋ง‰์— ์–ด๋–ค ๋‚ด์šฉ์ด ์žˆ๋Š”์ง€ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€