Langflow 1.3.0๊ณผ Rails 5.2.2.1 — ์ค๋๋ ํจ์น์ ๋ ๊ฐ๊ฐ ์ง๊ธ ๋ค์ ๋๋ค๊ฒจ ๋ง๋ ์ค
ํ ์คํธ์ฉ์ผ๋ก ๋์๋ ์น ์๋ฒ ์ก์ธ์ค ๋ก๊ทธ๋ฅผ ํ๋ค ๋ณด๋ฉด, ์ฌ๋์ด ์๋๋ผ ๊ธฐ๊ณ๊ฐ ๋จ๊ธด ํ์ ์ด ํ์ฐํ ๋์ ๋๋ ๊ตฌ๊ฐ์ด ์๋ค. ๋ช ์ด ๊ฐ๊ฒฉ์ผ๋ก ๊ฐ์ ๊ฒฝ๋ก๋ฅผ ๋๋๋ฆฌ๋๋ฐ, ๊ทธ ๋ชฉ๋ก์ /api/v1/validate/code ๊ฐ์ ์์ฒญ์ด ์์ฌ ์๊ณ , ๋ ์ด๋ค ์์ฒญ์ URL์ ํ๋ฒํ๋ฐ Accept ํค๋๊ฐ ์ด์ํ๊ฒ ๊ธธ๋ค. ํ๋๋ AI ์ํฌํ๋ก ๋๊ตฌ์ธ Langflow๋ฅผ ๋ ธ๋ฆฐ ๊ฒ์ด๊ณ , ๋ค๋ฅธ ํ๋๋ Ruby on Rails์ ํ์ผ ๋ ธ์ถ ๊ฒฐํจ์ ๋ ธ๋ฆฐ ๊ฒ์ด๋ค. ๋ ๋ค ํจ์น๊ฐ ๋์จ ์ง ๊ฝค ๋๋๋ฐ๋, ๊ณต๊ฒฉ์๋ค์ ์ค์บ ๋ชฉ๋ก์์๋ ์์ง ์ง์์ง์ง ์์๋ค.
- Langflow์ ์ฝ๋ ๊ฒ์ฆ ์๋ํฌ์ธํธ ๊ฒฐํจ(CVE-2025-3248)๊ณผ Rails Action View์ ํ์ผ ๋ด์ฉ ๋ ธ์ถ ๊ฒฐํจ(CVE-2019-5418)์ด ํ๋์ ์๋ํ ์ค์บ ์ธํธ๋ก ๋ฌถ์ฌ ๊ด์ธก๋๊ณ ์์
- ๋ชฉ์ ์ ๋จ์ ์ ์ฐฐ์ด ์๋๋ผ ์ค์ ํ์ผ·์๊ฒฉ์ฆ๋ช ์์ง๊ณผ C2 ์ฐ๊ฒฐ ํ๋ณด์ด๋ฉฐ, ํนํ Rails์ secret_key_base ์ ์ถ์ ์ธ์ ์์กฐ๋ฅผ ๊ฑฐ์ณ ์ฝ๋ ์คํ๊น์ง ์ด์ด์ง ์ ์์
- ๋ฐฉ์ด๋ ๋ฒ์ ์ํฅ์ด 1์์์ง๋ง, ๊ทธ์ ํจ๊ป ์ธ์ฆ ๊ฒฝ๊ณ·์์๋ฐ์ด๋ ํต์ ·์๊ฒฉ์ฆ๋ช ์ฌ๋ฐ๊ธ๊น์ง ๋ฌถ์ด์ ์ฒ๋ฆฌํด์ผ ์ค์ ๋ก ๋๋จ
1. ์ ์ด ๋์ด ํ ์ธํธ๋ก ๋ค์ด์ค๋๊ฐ
๊ฒ๋ณด๊ธฐ์ ์ ์ ์ด ์์ด ๋ณด์ด๋ ๋ ์ ํ์ด ๊ฐ์ ์บ ํ์ธ์์ ๊ด์ธก๋๋ ์ด์ ๋ ๋จ์ํ๋ค. ๊ณต๊ฒฉ์ ์ ์ฅ์์ ์ด ๋์ ์ฑ๊ฒฉ์ด ๊ฐ์ ๋งค๋ฌผ์.
- ๋ ๋ค ์ธ์ฆ ์์ด ๋จ์ผ HTTP ์์ฒญ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์์ด ๋๋ ์ค์บ์ ์ ํฉํจ
- ๋ ๋ค ์ฑ๊ณต ์ฌ๋ถ๊ฐ ์๋ต๋ง ๋ด๋ ๋ฐ๋ก ๊ตฌ๋ถ๋์ด, ์๋ํ ๋๊ตฌ๊ฐ ํ์ ๋ชฉ๋ก์ ์ถ๋ฆฌ๊ธฐ ์ฌ์
- ๋ ๋ค ๊ฐ๋ฐ·๋ด๋ถ์ฉ์ผ๋ก ๋์๋๊ณ ์ํ ์ธ์คํด์ค๊ฐ ๋ง์, ํจ์น ์ ์ฉ๋ฅ ์ด ๋ฎ์
์ฆ ์ด๊ฑด ์ ๊ตํ ํ์ ๊ณต๊ฒฉ์ด๋ผ๊ธฐ๋ณด๋ค, ์ธํฐ๋ท ์ ์ฒด๋ฅผ ํ๋ ๊ทธ๋ฌผ๋ง์ ๊ฐ๊น์. ๋ฌธ์ ๋ ๊ทธ ๊ทธ๋ฌผ์ ํ ๋ฒ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ๋ค์ ๋จ๊ณ๋ ์๋์ผ๋ก ์งํ๋๋ค๋ ์ .
2. Langflow ์ชฝ์์ ๋ฒ์ด์ง๋ ์ผ
Langflow๋ LLM ํ์ดํ๋ผ์ธ์ ์๊ฐ์ ์ผ๋ก ์กฐ๋ฆฝํ๋ ๋๊ตฌ๋ผ, ์ฌ์ฉ์๊ฐ ์์ฑํ ํ์ด์ฌ ์ฝ๋ ์กฐ๊ฐ์ ๋ค๋ฃจ๋ ๊ธฐ๋ฅ์ด ๊ตฌ์กฐ์ ์ผ๋ก ๋ค์ด๊ฐ ์์. ๋ฌธ์ ๊ฐ ๋ ์ง์ ์ ์ด ์ฝ๋ ๊ฒ์ฆ ๊ธฐ๋ฅ์ด์์.
- ์ฌ์ฉ์ ์ฝ๋๋ฅผ ๋ฌธ๋ฒ ๊ฒ์ฌํ๋ค๋ ๋ช ๋ชฉ์ผ๋ก ์๋ฒ์์ ํ์ฑํ ๋ค, ์ผ๋ถ ๊ตฌ๋ฌธ ์์๊ฐ ํ๊ฐ(evaluate)๋๋ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์
- ๊ฒ์ฌ ์์ฒด๋ ์์ ํด ๋ณด์ฌ๋, ํจ์ ์ ์์ ๊ธฐ๋ณธ๊ฐ์ด๋ ๋ฐ์ฝ๋ ์ดํฐ์ฒ๋ผ "์ ์๋ง ํด๋ ๊ฐ์ด ๊ณ์ฐ๋๋" ์์น๊ฐ ์์ผ๋ฉด ๊ทธ ์๊ฐ์ด ์คํ ์์ ์ด ๋จ
- ํด๋น ์๋ํฌ์ธํธ๊ฐ ์ธ์ฆ์ ์๊ตฌํ์ง ์์๊ธฐ ๋๋ฌธ์, ์ธ๋ถ์์ ๊ทธ๋๋ก ํธ์ถ ๊ฐ๋ฅํ์
๊ณต๊ฒฉ ์ฝ๋๋ฅผ ๊ตณ์ด ์ฎ๊ฒจ ์ ์ ํ์๋ ์๊ณ , ํต์ฌ ๊ตํ๋ง ๊ธฐ์ตํ๋ฉด ๋จ. "๊ฒ์ฆ"๊ณผ "์คํ"์ ์๊ฐ๋ณด๋ค ๊ฐ๊น์ด ์ด์์ด๋ผ๋ ๊ฒ. ์ฌ์ฉ์ ์ ๋ ฅ์ ์ธ์ด ํ์์ ๋๊ธฐ๋ ๊ธฐ๋ฅ์ด ์๋ค๋ฉด, ๊ทธ ํ์๊ฐ ์ด๋๊น์ง ๊ณ์ฐ์ ์ํํ๋์ง ๋ฐ๋์ ํ์ธํด์ผ ํจ. ์์ ์ 1.3.0 ๊ณ์ด์์ ์ด๋ฃจ์ด์ก๊ณ , ์ด ๊ฒฐํจ์ ์ค์ ์ ์ฉ์ด ํ์ธ๋์ด ๋ด๋ท์ด ๊ฐ์ผ ์ฅ๋น๋ฅผ ๋์ด๋ชจ์ผ๋ ํต๋ก๋ก ์ฐ์ธ ์ ๋ ฅ์ด ์์. ๊ฐ์ผ ์ดํ ํ๋ฆ์ ๋์ฒด๋ก ์คํฌ๋ฆฝํธ ๋ด๋ ค๋ฐ๊ธฐ → ์์ฃผ → ์ธ๋ถ C2 ์ ์ ์์๋ก ์ ํํ๋์ด ์์.
3. Rails ์ชฝ — ํค๋ ํ ์ค๋ก ์ค์ ํ์ผ์ ์ฝ์ด๊ฐ๋ ๋ฐฉ์
Rails ๊ฒฐํจ์ ์ฑ๊ฒฉ์ด ๋ค๋ฆ. ์ฝ๋ ์คํ์ด ์๋๋ผ ํ์ผ ๋ด์ฉ ๋ ธ์ถ์. Action View๊ฐ ์์ฒญ์ Accept ํค๋์ ๋ด๊ธด ๊ฐ์ ํ ํ๋ฆฟ ๊ฒฝ๋ก ๊ฒฐ์ ์ ํ์ฉํ๋ ์์ , ๊ทธ ๊ฐ์ ์์ ๋๋ ํฐ๋ฆฌ ์ฐธ์กฐ๊ฐ ์์ด๋ฉด ์๋์น ์์ ํ์ผ์ด ๋ ๋๋ง ๋์์ด ๋ ์ ์์์.
- ๊ณต๊ฒฉ์๊ฐ ์ค์ ๋ก ๋ ธ๋ฆฌ๋ ํ์ผ์ ๋ปํจ — config/database.yml, config/secrets.yml, .env, ๊ทธ๋ฆฌ๊ณ credentials ๊ด๋ จ ํ์ผ
- ์ฌ๊ธฐ์ DB ์ ์ ์ ๋ณด๊ฐ ๋์ค๋ฉด ๊ณง์ฅ ์ธก๋ฉด ์ด๋ ์ฌ๋ฃ๊ฐ ๋๊ณ , ํด๋ผ์ฐ๋ ํค๊ฐ ๋์ค๋ฉด ๊ณ์ ์์ฒด๊ฐ ํ๋ค๋ฆผ
- ๊ฐ์ฅ ์ํํ ๊ฑด secret_key_base ์ ์ถ. ์ด ๊ฐ์ ์ธ์ ์ฟ ํค ์๋ช ์ ์ฐ์ด๋ฏ๋ก, ์ ์ถ๋๋ฉด ๊ณต๊ฒฉ์๊ฐ ์์์ ์ธ์ ์ ๋ง๋ค์ด๋ผ ์ ์๊ณ ์ญ์ง๋ ฌํ ๊ฒฝ๋ก์ ๊ฒฐํฉ๋ ๊ฒฝ์ฐ ์๊ฒฉ ์ฝ๋ ์คํ์ผ๋ก ์น๊ฒฉ๋ ์ฌ์ง๊ฐ ์๊น
์์ ๋ฒ์ ์ 5.2.2.1, 5.1.6.2, 4.2.11.1, ๊ทธ๋ฆฌ๊ณ 6.0 ๊ณ์ด ์ด๊ธฐ ๋ฒ์ ์์ ๋ฐฐํฌ๋์. ๋ฌธ์ ๋ ์ด ์ทจ์ฝ์ ์ด ์คํจํด๋ ์กฐ์ฉํ๊ณ ์ฑ๊ณตํด๋ ์กฐ์ฉํ๋ค๋ ์ . ์๋ฒ๋ 200์ ๋๋ ค์ฃผ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์๋ฌ ๋ก๊ทธ์๋ ์๋ฌด๊ฒ๋ ๋จ์ง ์์ ์ ์์.
4. ํ์ง ํฌ์ธํธ — ์ด๋๋ฅผ ๋ณด๋ฉด ๋ณด์ด๋๊ฐ
๋ ์ฌ์ ๋ชจ๋ ๋คํธ์ํฌ ๊ฒฝ๊ณ ๋ก๊ทธ์์ ์ก์๋ด๋ ํธ์ด ํ์ค์ ์. ๊ฐ์ธ์ ์ผ๋ก๋ ์๋ ์์๋ก ํ์ธํ๋ ๊ฑธ ์ถ์ฒํจ.
- Accept ํค๋ ๊ธธ์ด·ํํ ์ด์: ์ ์ ๋ธ๋ผ์ฐ์ ์ Accept ๊ฐ์ ํจํด์ด ์ ํด์ ธ ์์. ์ฌ๊ธฐ์ ๊ฒฝ๋ก ๊ตฌ๋ถ์๋ ์์ ๋๋ ํฐ๋ฆฌ ํ๊ธฐ๊ฐ ๋ค์ด๊ฐ ์์ฒญ์ ๊ทธ ์์ฒด๋ก ์ ์๋ฏธํ ์ ํธ
- ์ธ์ฆ ์์ด ๋๋ฌํ API ๊ฒฝ๋ก: ๊ด๋ฆฌ·๊ฒ์ฆ·๋๋ฒ๊ทธ ์ฑ๊ฒฉ์ ์๋ํฌ์ธํธ์ ์ธ์ฆ ํค๋ ์๋ 200 ์๋ต์ด ๋จ์๋์ง ํ์ธ
- ๋์ผ IP์ ๋คํ์ข ์ค์บ: ํ ์์ค๊ฐ Langflow ๊ฒฝ๋ก์ Rails ๊ฒฝ๋ก๋ฅผ ์ฐ๋ฌ์ ๋๋๋ ธ๋ค๋ฉด ์บ ํ์ธ์ฑ ์ค์บ์ผ๋ก ๋ด๋ ๋ฌด๋ฐฉ
- ์์๋ฐ์ด๋๊ฐ ์ง์ง ์ฆ๊ฑฐ: ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๊ฐ ๊ฐ์๊ธฐ ๋ฏ์ IP๋ก HTTP ์์ฒญ์ ๋ณด๋ด๊ฑฐ๋, curl·wget·์ ธ ํ๋ก์ธ์ค๋ฅผ ์๋ก ๋์ ๋ค๋ฉด ๊ทธ๊ฑด ์ด๋ฏธ ๋ค์ ๋จ๊ณ์
- ์๋ต ํฌ๊ธฐ์ ๊ธ๋ณ: ํ์ ์ KB์ง๋ฆฌ ์๋ต์ ๋ด๋ ๊ฒฝ๋ก๊ฐ ๊ฐ์๊ธฐ ๋ค๋ฅธ ํฌ๊ธฐ๋ฅผ ๋๋ ค์คฌ๋ค๋ฉด ํ์ผ ๋ ธ์ถ์ ์์ฌ
5. ์ํ — ๋ฒ์ ๋ง ์ฌ๋ฆฌ๊ณ ๋๋ด๋ฉด ์ ๋๋ ์ด์
ํจ์น๋ ๋น์ฐํ 1์์์ง๋ง, ์ด๋ฏธ ์ค์บ์ ๊ฑธ๋ ธ์ ๊ฐ๋ฅ์ฑ์ ์ ์ ๋ก ์์ง์ฌ์ผ ํจ.
- Langflow๋ ๊ณ ์ ๋ฒ์ ์ด์์ผ๋ก ์ฌ๋ฆฌ๊ณ , ์ ์ด์ ์ธํฐ๋ท์ ์ง์ ๋ ธ์ถํ์ง ์๋ ๊ฒ์ด ์ ๋ต์ ๊ฐ๊น์. ํ์ํ๋ค๋ฉด VPN์ด๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ธ์ฆ ๋ค์ ๋ ๊ฒ
- Rails๋ ์ง์ ๋ฒ์ ์ผ๋ก ์ฌ๋ฆฌ๋, ๋ ธ์ถ ์ ํฉ์ด ์กฐ๊ธ์ด๋ผ๋ ์์ผ๋ฉด secret_key_base์ DB ์๊ฒฉ์ฆ๋ช ์ ์ฌ๋ฐ๊ธ. ๊ฐ์ด ์ด๋ฏธ ์์ด๋๊ฐ ๋ค๋ผ๋ฉด ํจ์น๋ ๋ฌธ์ ๋ซ์ ๋ฟ ์ด์ ๋ฅผ ํ์ํด์ฃผ์ง๋ ์์
- ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์ด๋์ ์์๋ฐ์ด๋๋ฅผ ๊ธฐ๋ณธ ์ฐจ๋จํ๊ณ ํ์ํ ๋ชฉ์ ์ง๋ง ํ์ฉ. C2 ๋จ๊ณ์์ ๋์ด๋ด๋ ๊ฐ์ฅ ๊ฐ์ผ ๋ฐฉ๋ฒ
- ์ค์ ํ์ผ์ ์์ค ํธ๋ฆฌ์ ๋์ง ๋ง๊ณ ํ๊ฒฝ๋ณ์๋ ์ํฌ๋ฆฟ ๋งค๋์ ๋ก ๋ถ๋ฆฌ. ํ์ผ์ด ์ฝํ๋ ๊ฑด์ง ๊ฒ ์๊ฒ ๋ง๋๋ ์ ๊ทผ
- ๋ด๋ถ์์๋ง ์ฐ๋ ๋๊ตฌ๋ผ๋ ์์ฐ ๋ชฉ๋ก์ ์ฌ๋ ค๋ ๊ฒ. ์ด๋ฒ ์ฌ๋ก์์ ํธ๋ฆฌ๋ ๊ฑด ๋๋ถ๋ถ "๋๊ฐ ์ธ์ ๋์ ๋์ง ๋ชจ๋ฅด๋" ์ธ์คํด์ค์
6. ์ฌํ ์ ๊ฒ ์ฒดํฌ๋ฆฌ์คํธ
- ํด๋น ์๋ฒ์ crontab, systemd ์ ๋, ์์ ์คํฌ๋ฆฝํธ์ ๋ฏ์ ํญ๋ชฉ์ด ์ถ๊ฐ๋๋์ง
- ์์ ๋๋ ํฐ๋ฆฌ์ ์คํ ๊ถํ์ด ๋ถ์ ํ์ผ์ด ์๊ฒผ๋์ง
- ์น ์๋น์ค ๊ณ์ ์ผ๋ก ์คํ๋ ์ ธ ํ๋ก์ธ์ค ์ด๋ ฅ์ด ์๋์ง
- ๋ ธ์ถ๋์ ์ ์๋ ์๊ฒฉ์ฆ๋ช ์ด ๋ค๋ฅธ ์์คํ ์์ ์ฌ์ฌ์ฉ๋๊ณ ์์ง๋ ์์์ง
์ด๋ฒ ๊ฑด์ ๋ณด๋ฉด์ ๋ค์ ํ์ธํ ๊ฑด, ์ ์ทจ์ฝ์ ๋ณด๋ค ์ด๋ฏธ ์๋ ค์ง ์ทจ์ฝ์ ์ ์์กด์จ์ด ํจ์ฌ ๋ฌด์ญ๋ค๋ ์ฌ์ค์ด๋ค. Rails ์ชฝ ๊ฒฐํจ์ ๋์จ ์ง ํ์ฐธ์ธ๋ฐ๋ ์ฌ์ ํ ์ค์บ ๋ชฉ๋ก ์๋จ์ ๋จ์ ์๊ณ , Langflow์ฒ๋ผ ์ต๊ทผ์ ๊ธํ๊ฒ ํผ์ง ๋๊ตฌ๋ ์์ "์ค์นํ๋ค๋ ์ฌ์ค ์์ฒด๋ฅผ ์์" ์ฌ๋ก๊ฐ ๋ง๋ค. ๊ณต๊ฒฉ์๋ ์๋ก์ด ๊ฑธ ์ฐพ๋ ๊ฒ ์๋๋ผ, ๊ณ ์ณ์ง์ง ์์ ๊ฑธ ์ฐพ๋๋ค.
์ค๋์ ๋ค๋ฅธ ๊ฒ ๋ง๊ณ ๋ฑ ๋ ๊ฐ์ง๋ง ํด๋ด๋ ์ข๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ ์กฐ์ง์์ ์ธํฐ๋ท์ ๋ ธ์ถ๋ ์น ์๋น์ค ๋ชฉ๋ก์ ํ ๋ฒ ๋ฝ์๋ณด๋ ๊ฒ, ๊ทธ๋ฆฌ๊ณ ๊ทธ์ค ๋ฒ์ ์ ๋ง์ง๋ง์ผ๋ก ํ์ธํ ๊ฒ ์ธ์ ์ธ์ง ์ ์ด๋ณด๋ ๊ฒ. ๋ง์ ์ ์ด๋ณด๋ฉด ์๊ฐ๋ณด๋ค ์ค๋๋ ํญ๋ชฉ์ด ๋์ค๊ฑฐ๋ ์. ์ฌ๋ฌ๋ถ ํ๊ฒฝ์์๋ ์ด๋ค ์ํ ์๋น์ค๊ฐ ๋์๋์ง ๋๊ธ๋ก ๊ณต์ ํด์ฃผ์๋ฉด ์ ๋ ๊ฐ์ด ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. ๊ฐ์ด ํด๋ณด์์!
# ๋๊ธ