์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

๋‚˜๋Š” ์ง์—… ์ƒ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๋ฐ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž (๊ฐ„๋‹จํžˆ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž)์ด๊ณ  10 ๋…„์ด ์กฐ๊ธˆ ๋„˜๊ฒŒ ๊ต์ˆ˜์—๊ฒŒ ๋งํ•  ๊ธฐํšŒ๋ฅผ ๊ฐ€์กŒ์Šต๋‹ˆ๋‹ค. [๊ทน๋‹จ์ ์ธ] ๋ณด์•ˆ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•œ ์‹œ์Šคํ…œ์„ ํฌํ•จํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์˜ ํ™œ๋™. ๊ทธ๋ฆฌ๊ณ  ์–ผ๋งˆ ์ „์— ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ํฅ๋ฏธ๋กœ์› ๋‹ค๋Š” ์ผ๋„ ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋น„ํŠธ ์ฝ”์ธ, ์ด๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ์ž์˜ ๊ด€์ ์—์„œ ๋น„ํŠธ์ฝ”์ธ โ€‹โ€‹๋„คํŠธ์›Œํฌ(๊ฒฐ๊ตญ p2p๋ผ๊ณ ๋„ ํ•จ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค(๋ฌผ๋ก  ์ €๋Š” ๊ทธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค). dev, ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์ง€๋‚˜๊ฐ€๊ณ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค). ํ•˜์ง€๋งŒ ์ €๋Š” ๊ฐœ๋ฐœ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ ์ธ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธˆ์œต๊ธฐ์ˆ (FINTECH) ์ •๋ณด ๋ณด์•ˆ ์˜†์œผ๋กœ ์ด๋™ (INFOSEC) ์ฒซ ๋ฒˆ์งธ๋Š” ๋‘ ๋ฒˆ์งธ ์—†์ด๋„ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์˜ค๋ž˜ ๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ์ œ ๊ฒฝํ—˜๊ณผ ์ œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ ์„ธํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. FINTECH๊ณผ INFOSEC, ๊ทธ๋ฆฌ๊ณ  ๋™์‹œ์— ๋” ๊ด‘๋ฒ”์œ„ํ•˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋น„ํŠธ์ฝ”์ธ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๊ธˆ์œต ์„œ๋น„์Šค(๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ)์˜ ๊ฐœ๋ฐœ ๋ฐ ์šด์˜์„ ์œ„ํ•œ ์ธํ”„๋ผ ๋ชจ๋ธ, ํ•œ๋งˆ๋””๋กœ "B"๊ฐ€ ์ค‘์š”ํ•œ ์„œ๋น„์Šค์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋น„ํŠธ์ฝ”์ธ โ€‹โ€‹๊ฑฐ๋ž˜์†Œ์™€ ๋น„ํŠธ์ฝ”์ธ๊ณผ ์–ด๋–ค ์‹์œผ๋กœ๋“  ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ์†Œ๊ทœ๋ชจ ํšŒ์‚ฌ์˜ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ธฐ์—… ์„œ๋น„์Šค ๋™๋ฌผ์› ๋ชจ๋‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์›์น™์„ ์ง€์ง€ํ•œ๋‹ค๋Š” ์ ์„ ์ง€์ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. "๋ฉ์ฒญํ•˜๊ฒŒ ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•˜์„ธ์š”" ะธ "์ ์€ ๊ฒƒ์ด ๋” ๋งŽ๋‹ค", ๋”ฐ๋ผ์„œ ๊ธฐ์‚ฌ์™€ ๊ธฐ์‚ฌ์— ์„ค๋ช…๋œ ๋‚ด์šฉ ๋ชจ๋‘ ์ด๋Ÿฌํ•œ ์›์น™์— ๊ด€ํ•œ ์†์„ฑ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

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

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

์„œ๋ฒ„ ์„ค์น˜

์—ฌ๊ธฐ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ์˜ ํ•„์š”์— ๋งž๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ FreeBSD ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ๋ฉด IPMI๋‚˜ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•˜๊ณ (๋‹ค๋ฅธ ํ˜ธ์ŠคํŒ… ์—…์ฒด ๋ฐ ์ž์ฒด ํ•˜๋“œ์›จ์–ด์˜ ๊ฒฝ์šฐ) .iso FreeBSD ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œ์— ๊ณต๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์˜ค์ผ€์ŠคํŠธ๋ผ ์„ค์ •์˜ ๊ฒฝ์šฐ ์ฑ…์ž„๊ฐ์žˆ๋Š” ะธ mfsbsd. ์œ ์ผํ•œ ๊ฒƒ์€ ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ kimsufi๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ์„ค์น˜ ๋ฏธ๋Ÿฌ์— ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ๋””์Šคํฌ์— boot ๋ฐ /home ํŒŒํ‹ฐ์…˜๋งŒ "์—ด๋ ค" ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜๋จธ์ง€ ๋””์Šคํฌ ๊ณต๊ฐ„์€ ์•”ํ˜ธํ™”๋˜์ง€๋งŒ ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‚˜์ค‘์— ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

์‹œ์Šคํ…œ ์„ค์น˜๋Š” ํ‘œ์ค€ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž‘๋™์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ผ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๋Š” ์ ๋งŒ ์ฐธ๊ณ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒฝํ™” ์ œ๊ณตํ•˜๋Š” ์˜ต์…˜ bsdinstaller ์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด(์‹œ์Šคํ…œ์„ ์ง์ ‘ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ):

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

์ด ์ข‹์€ ์žฌ๋ฃŒ ์ด ์ฃผ์ œ์— ๋Œ€ํ•ด์„œ๋Š” ์—ฌ๊ธฐ์„œ ๊ฐ„๋‹จํžˆ ๋ฐ˜๋ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ ์„ค์น˜๋œ ์‹œ์Šคํ…œ์—์„œ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋ถ€ํŠธ๋กœ๋” ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๊ณ  ์ปค๋„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. *ee๋Š” BSD์—์„œ ์ด์™€ ๊ฐ™์€ ํŽธ์ง‘๊ธฐ์ž…๋‹ˆ๋‹ค.

# ee /etc/rc.conf

...
#sec hard
clear_tmp_enable="YES"
syslogd_flags="-ss"    
sendmail_enable="NONE"

# ee /etc/sysctl.conf

...
#sec hard
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
security.bsd.unprivileged_read_msgbuf=0
security.bsd.unprivileged_proc_debug=0
kern.randompid=$(jot -r 1 9999)
security.bsd.stack_guard_page=1

๋˜ํ•œ ์ตœ์‹  ๋ฒ„์ „์˜ ์‹œ์Šคํ…œ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์—…๋ฐ์ดํŠธ ๋ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์ˆ˜ํ–‰. ์˜ˆ๋ฅผ ๋“ค์–ด ์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด... ์‚ฌ์ „ ์„ค์น˜ ์ด๋ฏธ์ง€๋Š” XNUMX๊ฐœ์›”์—์„œ XNUMX๋…„ ์ •๋„ ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค. ๊ธ€์Ž„, SSH ํฌํŠธ๋ฅผ ๊ธฐ๋ณธ ํฌํŠธ์™€ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ํ‚ค ์ธ์ฆ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. aide, ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ๋” ์ž์„ธํžˆ ์ฝ์–ด๋ณด์‹ค ์ˆ˜ ์žˆ์–ด์š” ์—ฌ๊ธฐ์—.

pkg install aide

๊ทธ๋ฆฌ๊ณ  crontab์„ ํŽธ์ง‘ํ•˜์„ธ์š”

crontab -e

06 01 * * 0-6 /root/chkaide.sh

#! /bin/sh
#chkaide.sh
MYDATE=`date +%Y-%m-%d`
MYFILENAME="Aide-"$MYDATE.txt
/bin/echo "Aide check !! `date`" > /tmp/$MYFILENAME
/usr/local/bin/aide --check > /tmp/myAide.txt
/bin/cat /tmp/myAide.txt|/usr/bin/grep -v failed >> /tmp/$MYFILENAME
/bin/echo "**************************************" >> /tmp/$MYFILENAME
/usr/bin/tail -20 /tmp/myAide.txt >> /tmp/$MYFILENAME
/bin/echo "****************DONE******************" >> /tmp/$MYFILENAME

์ผœ ์‹œ์Šคํ…œ ๊ฐ์‚ฌ

sysrc auditd_enable=YES

# service auditd start

์ด ๋ฌธ์ œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ์— ์™„๋ฒฝํ•˜๊ฒŒ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•ˆ๋‚ด์„œ.

์ด์ œ ์žฌ๋ถ€ํŒ…ํ•˜๊ณ  ์„œ๋ฒ„์˜ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์„œ๋ฒ„๋Š” ์ปจํ…Œ์ด๋„ˆ ๋˜๋Š” ์ „์ฒด ๊ฐ€์ƒ ๋จธ์‹ ์„ ์œ„ํ•œ ํ•˜์ดํผ๋ฐ”์ด์ €์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ „์ฒด ๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ํ”„๋กœ์„ธ์„œ๊ฐ€ VT-x ๋ฐ EPT๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด cbsd ๋ถ€ํ„ฐ ์˜ฌ๋ ˆ๋ณผ๋ ˆ, ์ด ๋†€๋ผ์šด ์œ ์šฉ์„ฑ์„ ์œ„ํ•ด ๊ทธ์—๊ฒŒ ๋” ๋งŽ์€ ๊ฑด๊ฐ•๊ณผ ์ถ•๋ณต์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์ปจํ…Œ์ด๋„ˆ? Docker๋ฅผ ๋‹ค์‹œ ๋˜๋Š” ๋ฌด์—‡?

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ ์•„๋‹™๋‹ˆ๋‹ค. FreeBSD ๊ฐ์˜ฅ ์ปจํ…Œ์ด๋„ˆํ™”๋ฅผ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ๋„๊ตฌ์ด์ง€๋งŒ ์–ธ๊ธ‰๋œ cbsd ์…€์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

์ „์ฒด ๊ฐ€์ƒํ™”๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ์•„๋Š” ํ•œ, cbsd ์ผ์„ ์ง€์›ํ•˜๋‹ค bhyve ๋ฐ XEN ํ•˜์ดํผ๋ฐ”์ด์ €. ๋‘ ๋ฒˆ์งธ๋Š” ์‚ฌ์šฉํ•ด๋ณธ ์ ์ด ์—†์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ๋Š” ๋น„๊ต์  ์ƒˆ๊ฒƒ์ด์—์š” FreeBSD์˜ ํ•˜์ดํผ๋ฐ”์ด์ €. ์‚ฌ์šฉ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค bhyve ์•„๋ž˜ ์˜ˆ์—์„œ.

ํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ

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

gpart add -t freebsd-zfs /dev/ada0

/dev/ada0p4 added!

๋‚จ์€ ๊ณต๊ฐ„์— ๋””์Šคํฌ ํŒŒํ‹ฐ์…˜ ์ถ”๊ฐ€

geli init /dev/ada0p4

์•”ํ˜ธํ™” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”

geli attach /dev/ada0p4

๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜๋ฉด /dev/ada0p4.eli ์žฅ์น˜๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์•”ํ˜ธํ™”๋œ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ /dev/ada1 ๋ฐ ์–ด๋ ˆ์ด์˜ ๋‚˜๋จธ์ง€ ๋””์Šคํฌ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค ZFS ํ’€.

zpool create vms mirror /dev/ada0p4.eli /dev/ada1p4.eli /dev/ada3p4.eli - ์ž, ์ตœ์†Œํ•œ์˜ ์ „ํˆฌ ํ‚คํŠธ๋Š” ์ค€๋น„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ ๊ฐœ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ๋ฏธ๋Ÿฌ๋ง๋œ ๋””์Šคํฌ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด "ํ’€"์— ๋ฐ์ดํ„ฐ ์„ธํŠธ ์ƒ์„ฑ

zfs create vms/jails

pkg install cbsd โ€” ์šฐ๋ฆฌ๋Š” ํŒ€์„ ์‹œ์ž‘ํ•˜๊ณ  ์…€ ๊ด€๋ฆฌ๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ดํ›„ cbsd ์„ค์น˜๋˜์—ˆ์œผ๋ฉด ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# env workdir="/vms/jails" /usr/local/cbsd/sudoexec/initenv

๊ธ€์Ž„, ์šฐ๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„ ๊ธฐ๋ณธ ๋‹ต๋ณ€์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŽ์€ ์งˆ๋ฌธ์— ๋‹ต๋ณ€ํ•ฉ๋‹ˆ๋‹ค.

*์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ๋ชฌ์ด cbsdd ๋””์Šคํฌ๋ฅผ ์ˆ˜๋™ ๋˜๋Š” ์ž๋™์œผ๋กœ ํ•ด๋…ํ•  ๋•Œ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์‹œ์ž‘๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(์ด ์˜ˆ์—์„œ๋Š” zabbix์— ์˜ํ•ด ์ˆ˜ํ–‰๋จ).

**๋˜ํ•œ NAT๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. cbsd, ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ์ง์ ‘ ๊ตฌ์„ฑ pf.

# sysrc pf_enable=YES

# ee /etc/pf.conf

IF_PUBLIC="em0"
IP_PUBLIC="1.23.34.56"
JAIL_IP_POOL="192.168.0.0/24"

#WHITE_CL="{ 127.0.0.1 }"

icmp_types="echoreq"

set limit { states 20000, frags 20000, src-nodes 20000 }
set skip on lo0
scrub in all

#NAT for jails
nat pass on $IF_PUBLIC from $JAIL_IP_POOL to any -> $IP_PUBLIC

## Bitcoin network port forward
IP_JAIL="192.168.0.1"
PORT_JAIL="{8333}"
rdr pass on $IF_PUBLIC proto tcp from any to $IP_PUBLIC port $PORT_JAIL -> $IP_JAIL

# service pf start

# pfctl -f /etc/pf.conf

๋ฐฉํ™”๋ฒฝ ์ •์ฑ… ์„ค์ •๋„ ๋ณ„๋„์˜ ์ฃผ์ œ์ด๋ฏ€๋กœ BLOCK ALL ์ •์ฑ… ์„ค์ •๊ณผ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ ์„ค์ •์— ๋Œ€ํ•ด์„œ๋Š” ์ž์„ธํžˆ ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณต์‹ ๋ฌธ์„œ ๋˜๋Š” Google์—์„œ ์ œ๊ณตํ•˜๋Š” ์ˆ˜๋งŽ์€ ๊ธฐ์‚ฌ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์„ธ์š”.

์Œ... ์šฐ๋ฆฌ๋Š” cbsd๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ์˜ ์ฒซ ๋ฒˆ์งธ ์ผ๊พผ์ธ ๊ฐ‡ํžŒ ๋น„ํŠธ์ฝ”์ธ โ€‹โ€‹์•…๋งˆ๋ฅผ ๋งŒ๋“ค ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค!

cbsd jconstruct-tui

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

์—ฌ๊ธฐ์„œ๋Š” ์…€ ์ƒ์„ฑ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฐ’์„ ์„ค์ •ํ•œ ํ›„ ์ƒ์„ฑํ•ด ๋ด…์‹œ๋‹ค!

์ฒซ ๋ฒˆ์งธ ์…€์„ ๋งŒ๋“ค ๋•Œ ์…€์˜ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•  ํ•ญ๋ชฉ์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ FreeBSD ์ €์žฅ์†Œ์—์„œ ๋ฐฐํฌํŒ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. repo. ์ด ์„ ํƒ์€ ํŠน์ • ๋ฒ„์ „์˜ ์ฒซ ๋ฒˆ์งธ ์…€์„ ์ƒ์„ฑํ•  ๋•Œ๋งŒ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ๋ฒ„์ „๋ณด๋‹ค ์ด์ „ ๋ฒ„์ „์˜ ์…€์„ ํ˜ธ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์ด ์„ค์น˜๋˜๋ฉด ์ผ€์ด์ง€๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!

# cbsd jstart bitcoind

ํ•˜์ง€๋งŒ ์ผ€์ด์ง€์— ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# jls

   JID  IP Address      Hostname                      Path
     1  192.168.0.1     bitcoind.space.com            /zroot/jails/jails/bitcoind

jexec bitcoind ์…€ ์ฝ˜์†”์— ๋“ค์–ด๊ฐ€๋ ค๋ฉด

์ด๋ฏธ ์…€ ๋‚ด๋ถ€์— ์ข…์†์„ฑ๊ณผ ํ•จ๊ป˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค(ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์€ ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค).

bitcoind:/@[15:25] # pkg install bitcoin-daemon bitcoin-utils

bitcoind:/@[15:30] # sysrc bitcoind_enable=YES

bitcoind:/@[15:30] # service bitcoind start

์ผ€์ด์ง€์—๋Š” ๋น„ํŠธ์ฝ”์ธ์ด ์žˆ์ง€๋งŒ TOP ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ผ๋ถ€ ์ผ€์ด์ง€์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ต๋ช…์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” ์˜์‹ฌ์Šค๋Ÿฌ์šด ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋Œ€๋ถ€๋ถ„์˜ ์…€์„ ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์‹คํ–‰ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๋•๋ถ„์— pf ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์˜ ํŠน์ • ๋ฒ”์œ„์˜ IP ์ฃผ์†Œ์— ๋Œ€ํ•ด NAT๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  TOR ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ๋งŒ NAT๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•…์„ฑ์ฝ”๋“œ๊ฐ€ ์…€์— ๋“ค์–ด๊ฐ€๋”๋ผ๋„ ์™ธ๋ถ€ ์„ธ๊ณ„์™€ ํ†ต์‹ ํ•˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฉฐ, ํ†ต์‹ ํ•˜๋”๋ผ๋„ ์šฐ๋ฆฌ ์„œ๋ฒ„์˜ IP๋ฅผ ๊ณต๊ฐœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋น„์Šค๋ฅผ ".onion" ์„œ๋น„์Šค๋กœ "์ „๋‹ฌ"ํ•˜๊ณ  ์ธํ„ฐ๋„ท์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ก์‹œ๋กœ ๊ฐœ๋ณ„ ์…€์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์…€์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

# cbsd jsconstruct-tui

# cbsd jstart tor

# jexec tor

tor:/@[15:38] # pkg install tor

tor:/@[15:38] # sysrc tor_enable=YES

tor:/@[15:38] # ee /usr/local/etc/tor/torrc

๋กœ์ปฌ ์ฃผ์†Œ์—์„œ ์ฒญ์ทจํ•˜๋„๋ก ์„ค์ •(๋ชจ๋“  ์…€์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

SOCKSPort 192.168.0.2:9050

์™„์ „ํ•œ ํ–‰๋ณต์„ ์œ„ํ•ด ๋˜ ๋ฌด์—‡์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ์˜ˆ, ์›น์„ ์œ„ํ•œ ์„œ๋น„์Šค๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ ์—ญํ• ์„ ํ•˜๊ณ  Let's Encrypt ์ธ์ฆ์„œ ๊ฐฑ์‹ ์„ ์ฒ˜๋ฆฌํ•˜๋Š” nginx๋ฅผ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

# cbsd jsconstruct-tui

# cbsd jstart nginx-rev

# jexec nginx-rev

nginx-rev:/@[15:47] # pkg install nginx py36-certbot

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์ผ€์ด์ง€์— 150MB์˜ ์ข…์†์„ฑ์„ ๋ฐฐ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ˜ธ์ŠคํŠธ๋Š” ์—ฌ์ „ํžˆ ๊นจ๋—ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์ค‘์— nginx ์„ค์ •์œผ๋กœ ๋Œ์•„๊ฐ€์„œ nodejs์™€ Rust์˜ ๊ฒฐ์ œ ๊ฒŒ์ดํŠธ์›จ์ด์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•ด ๋‘ ๊ฐœ์˜ ์…€์„ ๋” ํ‚ค์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์–ด๋–ค ์ด์œ ๋กœ Apache์™€ PHP์— ์žˆ๊ณ  ํ›„์ž์—๋Š” MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

# cbsd jsconstruct-tui

# cbsd jstart paygw

# jexec paygw

paygw:/@[15:55] # pkg install git node npm

paygw:/@[15:55] # curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

...๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ 380MB์˜ ํŒจํ‚ค์ง€๊ฐ€ ๋ถ„๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ git์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

# cbsd jsconstruct-tui

# cbsd jstart webapp

# jexec webapp

webapp:/@[16:02] # pkg install mariadb104-server apache24 php74 mod_php74 php74-pdo_mysql

450MB ํŒจํ‚ค์ง€. ์šฐ๋ฆฌ ์•ˆ์—.

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

webapp:/@[16:02] # ee /etc/ssh/sshd_config

Port 2267 โ€” ์…€์˜ SSH ํฌํŠธ๋ฅผ ์ž„์˜์˜ ํฌํŠธ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

webapp:/@[16:02] # sysrc sshd_enable=YES

webapp:/@[16:02] # service sshd start

์„œ๋น„์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. pf ๋ฐฉํ™”๋ฒฝ

์šฐ๋ฆฌ ์…€์ด ์–ด๋–ค IP๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ์˜ "๋กœ์ปฌ ์˜์—ญ"์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด๋–ค ๋ชจ์Šต์ธ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

# jls

   JID  IP Address      Hostname                      Path
     1  192.168.0.1     bitcoind.space.com            /zroot/jails/jails/bitcoind
     2  192.168.0.2     tor.space.com                 /zroot/jails/jails/tor
     3  192.168.0.3     nginx-rev.space.com           /zroot/jails/jails/nginx-rev
     4  192.168.0.4     paygw.space.com               /zroot/jails/jails/paygw
     5  192.168.0.5     webapp.my.domain              /zroot/jails/jails/webapp

๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜๊ณ 

# ee /etc/pf.conf

## SSH for web-Devs
IP_JAIL="192.168.0.5"
PORT_JAIL="{ 2267 }"
rdr pass on $IF_PUBLIC proto tcp from any to $IP_PUBLIC port $PORT_JAIL -> $IP_JAIL

์ž, ์—ฌ๊ธฐ๊นŒ์ง€ ์™”์œผ๋‹ˆ ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ์— ๋Œ€ํ•œ ๊ทœ์น™๋„ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

## web-ports for nginx-rev
IP_JAIL="192.168.0.3"
PORT_JAIL="{ 80, 443 }"
rdr pass on $IF_PUBLIC proto tcp from any to $IP_PUBLIC port $PORT_JAIL -> $IP_JAIL

# pfctl -f /etc/pf.conf

์ž, ์ด์ œ ๋น„ํŠธ์ฝ”์ธ์— ๋Œ€ํ•ด ์กฐ๊ธˆ

์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๊ณ  ๊ฒฐ์ œ ๊ฒŒ์ดํŠธ์›จ์ด์™€ ๋กœ์ปฌ๋กœ ํ†ต์‹ ํ•˜๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ๋Š” ๋น„ํŠธ์ฝ”์ธ โ€‹โ€‹๋„คํŠธ์›Œํฌ ์ž์ฒด, ์ฆ‰ ๋…ธ๋“œ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ž‘์—… ํ™˜๊ฒฝ์„ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. bitcoind ์ด๋Š” ๋ธ”๋ก์ฒด์ธ์˜ ๋กœ์ปฌ ๋ณต์‚ฌ๋ณธ์„ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ๋ชฌ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ๋ชฌ์—๋Š” RPC ๋ฐ ์ง€๊ฐ‘ ๊ธฐ๋Šฅ์ด ์žˆ์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋” ํŽธ๋ฆฌํ•œ "๋ž˜ํผ"๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„ , ์šฐ๋ฆฌ๋Š” ๋„ฃ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. electrum CLI ์ง€๊ฐ‘์ž…๋‹ˆ๋‹ค. ์ด ์ง€๊ฐ‘ ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ๋น„ํŠธ์ฝ”์ธ์˜ "์ฝœ๋“œ ์Šคํ† ๋ฆฌ์ง€"๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ์‹œ์Šคํ…œ "์™ธ๋ถ€"์— ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๋น„ํŠธ์ฝ”์ธ์ž…๋‹ˆ๋‹ค. GUI๋„ ์žˆ์œผ๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ๋™์ผํ•œ ์ง€๊ฐ‘์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋…ธํŠธ๋ถ. ์ง€๊ธˆ์€ ๊ณต์šฉ ์„œ๋ฒ„์—์„œ Electrum์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‚˜์ค‘์— ๋‹ค๋ฅธ ์…€์—์„œ ์ด๋ฅผ ์˜ฌ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ ‰ํŠธ๋ŸผX๋ˆ„๊ตฌ์—๊ฒŒ๋„ ์ „ํ˜€ ์˜์กดํ•˜์ง€ ์•Š๋„๋ก.

# cbsd jsconstruct-tui

# cbsd jstart electrum

# jexec electrum

electrum:/@[8:45] # pkg install py36-electrum

์šฐ๋ฆฌ ์ผ€์ด์ง€์— ๋˜ ๋‹ค๋ฅธ 700MB์˜ ์†Œํ”„ํŠธ์›จ์–ด

electrum:/@[8:53] # adduser

Username: wallet
Full name: 
Uid (Leave empty for default): 
Login group [wallet]: 
Login group is wallet. Invite wallet into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh nologin) [sh]: tcsh
Home directory [/home/wallet]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]: 
Username   : wallet
Password   : <disabled>
Full Name  : 
Uid        : 1001
Class      : 
Groups     : wallet 
Home       : /home/wallet
Home Mode  : 
Shell      : /bin/tcsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (wallet) to the user database.
Add another user? (yes/no): no
Goodbye!
electrum:/@[8:53] # su wallet

electrum:/@[8:53] # su wallet

wallet@electrum:/ % electrum-3.6 create

{
    "msg": "Please keep your seed in a safe place; if you lose it, you will not be able to restore your wallet.",
    "path": "/usr/home/wallet/.electrum/wallets/default_wallet",
    "seed": "jealous win pig material ribbon young punch visual okay cactus random bird"
}

์ด์ œ ์ง€๊ฐ‘์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

wallet@electrum:/ % electrum-3.6 listaddresses

[
    "18WEhbjvMLGRMfwudzUrUd25U5C7uZYkzE",
    "14XHSejhxsZNDRtk4eFbqAX3L8rftzwQQU",
    "1KQXaN8RXiCN1ne9iYngUWAr6KJ6d4pPas",
    ...
    "1KeVcAwEYhk29qEyAfPwcBgF5mMMoy4qjw",
    "18VaUuSeBr6T2GwpSHYF3XyNgLyLCt1SWk"
]

wallet@electrum:/ % electrum-3.6 help

์šฐ๋ฆฌ์—๊ฒŒ ์ฒด์ธ ์—ฐ๊ฒฐ ์•ž์œผ๋กœ๋Š” ์ œํ•œ๋œ ์ˆ˜์˜ ์‚ฌ๋žŒ๋“ค๋งŒ ์ง€๊ฐ‘์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€์—์„œ ์ด ์…€์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์—ด์ง€ ์•Š๊ธฐ ์œ„ํ•ด SSH๋ฅผ ํ†ตํ•œ ์—ฐ๊ฒฐ์€ TOP(๋ถ„์‚ฐํ˜• VPN ๋ฒ„์ „)๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์…€์—์„œ SSH๋ฅผ ์‹œ์ž‘ํ•˜์ง€๋งŒ ํ˜ธ์ŠคํŠธ์˜ pf.conf๋ฅผ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

electrum:/@[9:00] # sysrc sshd_enable=YES

electrum:/@[9:00] # service sshd start

์ด์ œ ์ง€๊ฐ‘์˜ ์ธํ„ฐ๋„ท ์ ‘์†์ด ๊ฐ€๋Šฅํ•œ ์…€์„ ๊บผ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. NAT๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท ๊ณต๊ฐ„์˜ IP ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๋ฐ”๊พธ์ž /etc/pf.conf ํ˜ธ์ŠคํŠธ์—์„œ

# ee /etc/pf.conf

JAIL_IP_POOL="192.168.0.0/24" ๊ทธ๊ฒƒ์„๋กœ ๋ฐ”๊พธ์ž JAIL_IP_POOL="192.168.0.0/25", ๋”ฐ๋ผ์„œ ๋ชจ๋“  ์ฃผ์†Œ 192.168.0.126-255๋Š” ์ธํ„ฐ๋„ท์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ผ์ข…์˜ ์†Œํ”„ํŠธ์›จ์–ด "๊ณต๊ทน" ๋„คํŠธ์›Œํฌ์ž…๋‹ˆ๋‹ค. NAT ๊ทœ์น™์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

nat pass on $IF_PUBLIC from $JAIL_IP_POOL to any -> $IP_PUBLIC

๊ทœ์น™ ์˜ค๋ฒ„๋กœ๋“œ

# pfctl -f /etc/pf.conf

์ด์ œ ์„ธํฌ๋ฅผ ๋งก์•„๋ณด์ž

# cbsd jconfig jname=electrum

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

jset mode=quiet jname=electrum ip4_addr="192.168.0.200"
Remove old IP: /sbin/ifconfig em0 inet 192.168.0.6 -alias
Setup new IP: /sbin/ifconfig em0 inet 192.168.0.200 alias
ip4_addr: 192.168.0.200

ํ , ํ•˜์ง€๋งŒ ์ด์ œ ์‹œ์Šคํ…œ ์ž์ฒด๊ฐ€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ์Šคํ…œ ํ”„๋ก์‹œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•œ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. TOR์—๋Š” SOCKS5 ํ”„๋ก์‹œ๊ฐ€ ์žˆ์œผ๋ฉฐ ํŽธ์˜์ƒ HTTP ํ”„๋ก์‹œ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

# cbsd jsconstruct-tui

# cbsd jstart polipo

# jexec polipo

polipo:/@[9:28] # pkg install polipo

polipo:/@[9:28] # ee /usr/local/etc/polipo/config

socksParentProxy = "192.168.0.2:9050"
socksProxyType = socks5

polipo:/@[9:42] # sysrc polipo_enable=YES

polipo:/@[9:43] # service polipo start

์ด์ œ ์šฐ๋ฆฌ ์‹œ์Šคํ…œ์—๋Š” ๋‘ ๊ฐœ์˜ ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ์žˆ์œผ๋ฉฐ ๋‘˜ ๋‹ค TOR์„ ํ†ตํ•ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค: ์–‘๋ง5://192.168.0.2:9050 ๋ฐ http://192.168.0.6:8123

์ด์ œ ์ง€๊ฐ‘ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

# jexec electrum

electrum:/@[9:45] # su wallet

wallet@electrum:/ % ee ~/.cshrc

#in the end of file proxy config
setenv http_proxy http://192.168.0.6:8123
setenv https_proxy http://192.168.0.6:8123

์ด์ œ ์‰˜์€ ํ”„๋ก์‹œ ์•„๋ž˜์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. /usr/local/etc/pkg.conf ์ƒˆ์žฅ์˜ ๋ฟŒ๋ฆฌ ์•„๋ž˜์—์„œ

pkg_env: {
               http_proxy: "http://my_proxy_ip:8123",
           }

์ด์ œ ์ง€๊ฐ‘ ์…€์— SSH ์„œ๋น„์Šค ์ฃผ์†Œ๋กœ TOR ์ˆจ๊ฒจ์ง„ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

# jexec tor

tor:/@[9:59] # ee /usr/local/etc/tor/torrc

HiddenServiceDir /var/db/tor/electrum/
HiddenServicePort 22 192.168.0.200:22

tor:/@[10:01] # mkdir /var/db/tor/electrum

tor:/@[10:01] # chown -R _tor:_tor /var/db/tor/electrum

tor:/@[10:01] # chmod 700 /var/db/tor/electrum

tor:/@[10:03] # service tor restart

tor:/@[10:04] # cat /var/db/tor/electrum/hostname

mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion

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

wallet@electrum:/ % mkdir ~/.ssh

wallet@electrum:/ % ee ~/.ssh/authorized_keys

ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAG9Fk2Lqi4GQ8EXZrsH3EgSrVIQPQaAlS38MmJLBabihv9KHIDGXH7r018hxqLNNGbaJWO/wrWk7sG4T0yLHAbdQAFsMYof9kjoyuG56z0XZ8qaD/X/AjrhLMsIoBbUNj0AzxjKNlPJL4NbHsFwbmxGulKS0PdAD5oLcTQi/VnNdU7iFw== user@local

์Œ, Linux ํด๋ผ์ด์–ธํŠธ ์‹œ์Šคํ…œ์—์„œ

user@local ~$ nano ~/.ssh/config

#remote electrum wallet
Host remotebtc
        User wallet
        Port 22
        Hostname mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion
        ProxyCommand /bin/ncat --proxy localhost:9050 --proxy-type socks5 %h %p

์—ฐ๊ฒฐํ•˜์ž (์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด 9050์„ ์ˆ˜์‹ ํ•˜๋Š” ๋กœ์ปฌ TOR ๋ฐ๋ชฌ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค)

user@local ~$ ssh remotebtc

The authenticity of host 'mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is SHA256:iW8FKjhVF4yyOZB1z4sBkzyvCM+evQ9cCL/EuWm0Du4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion' (ECDSA) to the list of known hosts.
FreeBSD 12.1-RELEASE-p1 GENERIC 
To save disk space in your home directory, compress files you rarely
use with "gzip filename".
        -- Dru <[email protected]>
wallet@electrum:~ % logout

์„ฑ๊ณต!

์ฆ‰์‹œ ๋ฐ ์†Œ์•ก ๊ฒฐ์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋…ธ๋“œ๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฒˆ๊ฐœ ๋„คํŠธ์›Œํฌ, ์‹ค์ œ๋กœ ์ด๊ฒƒ์€ ๋น„ํŠธ์ฝ”์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์š” ์ž‘์—… ๋„๊ตฌ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ *c-๋ผ์ดํŠธ๋‹์šฐ๋ฆฌ๊ฐ€ ๋ฐ๋ชฌ์œผ๋กœ ์‚ฌ์šฉํ•  ๊ฒƒ์€ ์ŠคํŒŒ์ฝ” ํ”Œ๋Ÿฌ๊ทธ์ธ, ์ด๋Š” ์™„์ „ํ•œ HTTP(REST) โ€‹โ€‹์ธํ„ฐํŽ˜์ด์Šค์ด๋ฉฐ ์˜คํ”„์ฒด์ธ ๋ฐ ์˜จ์ฒด์ธ ํŠธ๋žœ์žญ์…˜ ๋ชจ๋‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. c-lightning ์ž‘๋™์— ํ•„์š”ํ•œ bitcoind ํ•˜์ง€๋งŒ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

*๋ผ์ดํŠธ๋‹ ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์€ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ…Œ์ŠคํŠธํ•œ ๊ฒƒ ์ค‘์—์„œ c-lightning(C๋กœ ์ž‘์„ฑ๋œ)์ด ๊ฐ€์žฅ ์•ˆ์ •์ ์ด๊ณ  ๋ฆฌ์†Œ์Šค ํšจ์œจ์ ์ธ ๊ฒƒ์œผ๋กœ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

# cbsd jsconstruct-tui

# cbsd jstart cln

# jexec cln

lightning:/@[10:23] # adduser

Username: lightning
...

lightning:/@[10:24] # pkg install git

lightning:/@[10:23] # su lightning

cd ~ && git clone https://github.com/ElementsProject/lightning

lightning@lightning:~ % exit

lightning:/@[10:30] # cd /home/lightning/lightning/

lightning:/home/lightning/lightning@[10:31] # pkg install autoconf automake gettext git gmp gmake libtool python python3 sqlite3 libsodium py36-mako bash bitcoin-utils

lightning:/home/lightning/lightning@[10:34] # ./configure && gmake && gmake install

ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์ปดํŒŒ์ผ๋˜๊ณ  ์„ค์น˜๋˜๋Š” ๋™์•ˆ RPC ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. lightningd ะฒ bitcoind

# jexec bitcoind

bitcoind:/@[10:36] # ee /usr/local/etc/bitcoin.conf

rpcbind=192.168.0.1
rpcuser=test
rpcpassword=test
#allow only c-lightning
rpcallowip=192.168.0.7/32

bitcoind:/@[10:39] # service bitcoind restart

์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์ฃผ๋ชฉํ•˜๋ฉด ์…€ ๊ฐ„์˜ ํ˜ผ๋ž€์Šค๋Ÿฌ์šด ์ „ํ™˜์ด ๊ทธ๋ ‡๊ฒŒ ํ˜ผ๋ž€์Šค๋Ÿฝ์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. tmux, ํ•˜๋‚˜์˜ ์„ธ์…˜ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ํ„ฐ๋ฏธ๋„ ํ•˜์œ„ ์„ธ์…˜์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์Šทํ•œ ๋ฌผ๊ฑด: screen

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ ๋…ธ๋“œ์˜ ์‹ค์ œ IP๋ฅผ ๊ณต๊ฐœํ•˜๊ณ  ์‹ถ์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ๊ธˆ์œต ๊ฑฐ๋ž˜๋Š” TOP๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋˜ ๋‹ค๋ฅธ .onion์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

# jexec tor

tor:/@[9:59] # ee /usr/local/etc/tor/torrc

HiddenServiceDir /var/db/tor/cln/
HiddenServicePort 9735 192.168.0.7:9735

tor:/@[10:01] # mkdir /var/db/tor/cln

tor:/@[10:01] # chown -R _tor:_tor /var/db/tor/cln

tor:/@[10:01] # chmod 700 /var/db/tor/cln

tor:/@[10:03] # service tor restart

tor:/@[10:04] # cat /var/db/tor/cln/hostname

en5wbkavnytti334jc5uzaudkansypfs6aguv6kech4hbzpcz2ove3yd.onion

์ด์ œ c-lightning์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

lightning:/home/lightning/lightning@[10:31] # su lightning

lightning@lightning:~ % mkdir .lightning

lightning@lightning:~ % ee .lightning/config

alias=My-LN-Node
bind-addr=192.168.0.7:9735
rgb=ff0000
announce-addr=en5wbkavnytti334jc5uzaudkansypfs6aguv6kech4hbzpcz2ove3yd.onion:9735
network=bitcoin
log-level=info
fee-base=0
fee-per-satoshi=1
proxy=192.168.0.2:9050
log-file=/home/lightning/.lightning/c-lightning.log
min-capacity-sat=200000

# sparko plugin
# https://github.com/fiatjaf/lightningd-gjson-rpc/tree/master/cmd/sparko

sparko-host=192.168.0.7
sparko-port=9737

sparko-tls-path=sparko-tls

#sparko-login=mywalletusername:mywalletpassword

#sparko-keys=masterkey;secretread:+listchannels,+listnodes;secretwrite:+invoice,+listinvoices,+delinvoice,+decodepay,+waitpay,+waitinvoice
sparko-keys=masterkey;secretread:+listchannels,+listnodes;ultrawrite:+invoice,+listinvoices,+delinvoice,+decodepay,+waitpay,+waitinvoice
# for the example above the initialization logs (mixed with lightningd logs) should print something like

lightning@lightning:~ % mkdir .lightning/plugins

lightning@lightning:~ % cd .lightning/plugins/

lightning@lightning:~/.lightning/plugins:% fetch https://github.com/fiatjaf/sparko/releases/download/v0.2.1/sparko_full_freebsd_amd64

lightning@lightning:~/.lightning/plugins % mkdir ~/.lightning/sparko-tls

lightning@lightning:~/.lightning/sparko-tls % cd ~/.lightning/sparko-tls

lightning@lightning:~/.lightning/sparko-tls % openssl genrsa -out key.pem 2048

lightning@lightning:~/.lightning/sparko-tls % openssl req -new -x509 -sha256 -key key.pem -out cert.pem -days 3650

lightning@lightning:~/.lightning/plugins % chmod +x sparko_full_freebsd_amd64

lightning@lightning:~/.lightning/plugins % mv sparko_full_freebsd_amd64 sparko

lightning@lightning:~/.lightning/plugins % cd ~

๋˜ํ•œ ๋‹ค์Œ๊ณผ ํ†ต์‹ ํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์ธ bitcoin-cli์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. bitcoind

lightning@lightning:~ % mkdir .bitcoin

lightning@lightning:~ % ee .bitcoin/bitcoin.conf

rpcconnect=192.168.0.1
rpcuser=test
rpcpassword=test

๊ฒ€์‚ฌ

lightning@lightning:~ % bitcoin-cli echo "test"

[
  "test"
]

์‹œ์ž‘ํ•˜๋‹ค lightningd

lightning@lightning:~ % lightningd --daemon

๊ทธ ์ž์‹  lightningd ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. lightning-cli์˜ˆ :

lightning-cli newaddr ์ƒˆ๋กœ ์ž…๊ธˆ๋  ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋ณด์„ธ์š”

{
   "address": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv",
   "bech32": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv"
}

lightning-cli withdraw bc1jufcxahfrnfhruwjgx3cq2n2ffq3lplhme878pv all ์ง€๊ฐ‘์— ์žˆ๋Š” ๋ชจ๋“  ๋ˆ์„ ํ•ด๋‹น ์ฃผ์†Œ(๋ชจ๋“  ์˜จ์ฒด์ธ ์ฃผ์†Œ)๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์˜คํ”„์ฒด์ธ ์ž‘์—…์„ ์œ„ํ•œ ๋ช…๋ น๋„ ์žˆ์Šต๋‹ˆ๋‹ค. lightning-cli invoice, lightning-cli listinvoices, lightning-cli pay ๋“ฑ๋“ฑ

์Œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ์˜ ํ†ต์‹ ์„ ์œ„ํ•ด REST API๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

curl -k https://192.168.0.7:9737/rpc -d '{"method": "pay", "params": ["lnbc..."]}' -H 'X-Access masterkey'

ํ•ฉ๊ณ„ํ•˜๋‹ค

# jls

   JID  IP Address      Hostname                      Path
     1  192.168.0.1     bitcoind.space.com            /zroot/jails/jails/bitcoind
     2  192.168.0.2     tor.space.com                 /zroot/jails/jails/tor
     3  192.168.0.3     nginx-rev.space.com           /zroot/jails/jails/nginx-rev
     4  192.168.0.4     paygw.space.com               /zroot/jails/jails/paygw
     5  192.168.0.5     webapp.my.domain              /zroot/jails/jails/webapp
     7  192.168.0.200   electrum.space.com            /zroot/jails/jails/electrum
     8  192.168.0.6     polipo.space.com              /zroot/jails/jails/polipo
     9  192.168.0.7     lightning.space.com           /zroot/jails/jails/cln

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

์šฐ๋ฆฌ๋Š” ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ˆ˜์ค€์ด ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ ์„ธํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

# zfs list

NAME                    USED  AVAIL  REFER  MOUNTPOINT
zroot                   279G  1.48T    88K  /zroot
zroot/ROOT             1.89G  1.48T    88K  none
zroot/ROOT/default     1.89G  17.6G  1.89G  /
zroot/home               88K  1.48T    88K  /home
zroot/jails             277G  1.48T   404M  /zroot/jails
zroot/jails/bitcoind    190G  1.48T   190G  /zroot/jails/jails-data/bitcoind-data
zroot/jails/cln         653M  1.48T   653M  /zroot/jails/jails-data/cln-data
zroot/jails/electrum    703M  1.48T   703M  /zroot/jails/jails-data/electrum-data
zroot/jails/nginx-rev   190M  1.48T   190M  /zroot/jails/jails-data/nginx-rev-data
zroot/jails/paygw      82.4G  1.48T  82.4G  /zroot/jails/jails-data/paygw-data
zroot/jails/polipo     57.6M  1.48T  57.6M  /zroot/jails/jails-data/polipo-data
zroot/jails/tor        81.5M  1.48T  81.5M  /zroot/jails/jails-data/tor-data
zroot/jails/webapp      360M  1.48T   360M  /zroot/jails/jails-data/webapp-data

๋ณด์‹œ๋‹ค์‹œํ”ผ bitcoind๋Š” 190GB์˜ ๊ณต๊ฐ„์„ ๋ชจ๋‘ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ๋˜ ๋‹ค๋ฅธ ๋…ธ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? ์ด๊ฒƒ์ด ZFS๊ฐ€ ์œ ์šฉํ•œ ๊ณณ์ž…๋‹ˆ๋‹ค. ๋„์›€์„ ๋ฐ›์•„ cbsd jclone old=bitcoind new=bitcoind-clone host_hostname=clonedbtc.space.com ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•˜๊ณ  ์ด ์Šค๋ƒ…์ƒท์— ์ƒˆ ์…€์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ์…€์—๋Š” ์ž์ฒด ๊ณต๊ฐ„์ด ์žˆ์ง€๋งŒ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ๋Š” ํ˜„์žฌ ์ƒํƒœ์™€ ์›๋ณธ ์‚ฌ์ด์˜ ์ฐจ์ด๋งŒ ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค(์ตœ์†Œ 190GB๋ฅผ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค).

๊ฐ ์…€์€ ์ž์ฒด์ ์ธ ๋ณ„๋„์˜ ZFS ๋ฐ์ดํ„ฐ ์„ธํŠธ์ด๋ฏ€๋กœ ๋งค์šฐ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ZFS๋Š” ๋˜ํ•œ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค SSH๋ฅผ ํ†ตํ•ด ์Šค๋ƒ…์ƒท์„ ๋ณด๋‚ด๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฉ‹์ง„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด ๋ณด์„ธ์š”. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์„ค๋ช…ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํ˜ธ์ŠคํŠธ๋ฅผ ์›๊ฒฉ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ๋„ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ž ๋น„์ธ .

B - ์•ˆ์ „

๋ณด์•ˆ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ธํ”„๋ผ ์ธก๋ฉด์˜ ์ฃผ์š” ์›์น™๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

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

๋ฌด๊ฒฐ์„ฑ โ€œ์ด ์›์น™์˜ ๊ตฌํ˜„์€ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ฒซ์งธ, ์„œ๋ฒ„ ํ•˜๋“œ์›จ์–ด, ECC ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ฒฝ์šฐ ZFS๋Š” ์ด๋ฏธ "๊ธฐ๋ณธ์ ์œผ๋กœ" ์ •๋ณด ๋น„ํŠธ ์ˆ˜์ค€์—์„œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ดํŠธ ์Šค๋ƒ…์ƒท์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ธ์ œ๋“ ์ง€ ์ฆ‰์‹œ ๋ฐฑ์—…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽธ๋ฆฌํ•œ ์…€ ๋‚ด๋ณด๋‚ด๊ธฐ/๊ฐ€์ ธ์˜ค๊ธฐ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์…€ ๋ณต์ œ๊ฐ€ ๊ฐ„๋‹จํ•ด์ง‘๋‹ˆ๋‹ค.

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

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

๋ฌผ๋ก  ์„ค๋ช…๋œ ๊ตฌ์„ฑ์€ ํ•ญ์ƒ ๊ทธ๋ž˜์•ผ ํ•œ๋‹ค๋Š” ์ ˆ๋Œ€์ ์ธ ์˜ˆ๋Š” ์•„๋‹ˆ๋ฉฐ ๋งค์šฐ ์œ ์—ฐํ•œ ํ™•์žฅ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์–ด๋–ป๊ฒŒ ๋  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ํ•˜๋‚˜์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

์ „์ฒด ๊ฐ€์ƒํ™”๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

cbsd๋ฅผ ์‚ฌ์šฉํ•œ ์ „์ฒด ๊ฐ€์ƒํ™”์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๋ฅผ ์ฝ์œผ์‹ญ์‹œ์˜ค.. ์—…๋ฌด์šฉ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค bhyve ์ผ๋ถ€ ์ปค๋„ ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# cat /etc/rc.conf

...
kld_list="vmm if_tap if_bridge nmdm"
...

# cat /boot/loader.conf

...
vmm_load="YES"
...

๋”ฐ๋ผ์„œ ๊ฐ‘์ž๊ธฐ ๋„์ปค๋ฅผ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ฐ๋น„์•ˆ์„ ์„ค์น˜ํ•˜๊ณ  ์‹œ์ž‘ํ•˜์„ธ์š”!

์šฐ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ๋น„ํŠธ์ฝ”์ธ?

๊ทธ๊ฒŒ ๋‹ค์•ผ

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

์ถœ์ฒ˜ : habr.com