์คํ์์ค ๋ฐฉํ๋ฒฝ pfSense ์ค์นํ๊ธฐ (2) - ํฌํธํฌ์๋ฉ ๋ฐ HAproxy ์ค์
1. ์คํ์์ค ๋ฐฉํ๋ฒฝ pfSense ์ค์นํ๊ธฐ (1) - pfSense ์ค์น
2. ์คํ์์ค ๋ฐฉํ๋ฒฝ pfSense ์ค์นํ๊ธฐ (2) - ํฌํธํฌ์๋ฉ ๋ฐ HAproxy ์ค์
๋ชฉ์ฐจ
ํฌํธํฌ์๋ฉ
์ง๋์๊ฐ pfSense ์ค์น์ ์ด์ด ์ด๋ฒ ํฌ์คํ ์์๋ pfSense ๊ธฐ๋ฅ์ ๋ช๊ฐ์ง ์ฌ์ฉํด๋ณด๊ฒ ์ต๋๋ค. ๋จผ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํฌํธํฌ์๋ฉ ์ค์ ๋ถํฐ ์งํํด๋ณด๊ฒ ์ต๋๋ค.

ํฌํธํฌ์๋ฉ ์ค์ ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๋จผ์ LAN ์์ดํผ ๋์ญ๊ณผ ๋์ผํ ๋์ญ์ ์น์๋ฒ ํ ๋๋ฅผ ์ธํ ํด์ค๋๋ค. ์ด ๋ ๊ฒ์ดํธ์จ์ด๋ pfSense์ LAN ip๋ก ์ค์ ํด์ฃผ์ ์ผ ํฉ๋๋ค.

ํด๋น ์น์๋ฒ๋ฅผ ์ธ๋ถ์์ ์ ์ํ๊ธฐ ์ํด Destination์ WAN address๋ก ์ค์ ํ๊ณ , port๋ ์ํ๋ ํฌํธ๋ก ์ค์ ํด์ค๋๋ค. ์ ๋ 8010์ผ๋ก ์ค์ ํด์ฃผ์์ต๋๋ค. Redirect target IP๋ ์น์๋ฒ ์ฌ์ค ip๋ก ์ค์ ํด์ฃผ์๊ณ Redirect target port๋ HTTP ํฌํธ๋ก ์ค์ ํฉ๋๋ค. ์น์๋ฒ ํฌํธ๋ฅผ ๋ค๋ฅธ ํฌํธ๋ก ์ค์ ํ์ ๋ถ๋ค์ Redirect target port๋ฅผ Other๋ก ์ค์ ํด์ฃผ์๊ณ ์ค์ ํ์ ํฌํธ๋ก ๋ณ๊ฒฝ ํด ์ฃผ์๋ฉด ๋ฉ๋๋ค.

๊ทธ ํ pfSense์ WAN address์ ์ค์ ํ ํฌํธ๋ก ์ ์ํ์๋ฉด ํด๋น ์น์๋ฒ์ ์ ์ ํ์ค ์ ์์ต๋๋ค.
์ฃผ์ํ์ค ์ ์ ํฌํธํฌ์๋ฉ์ ์ค์ ํ๊ฒ ๋๋ฉด ์๋์ผ๋ก ๋ฐฉํ๋ฒฝ ๋ฃฐ์ด ์ถ๊ฐ๊ฐ ๋๋๋ฐ, pfSense์ ๋ฃฐ์ ์์์๋ถํฐ ์๋๋ก ์์ฐจ์ ์ผ๋ก ์ ์ฉ๋๋ฏ๋ก ํฌํธํฌ์๋ฉ์ ์ ์ ํ์ฉ ๋ฃฐ์ด block rule๋ณด๋ค ์๋์ ์๊ฒ ๋๋ฉด ์ ์์ด ๋ถ๊ฐ๋ฅ ํ ์ ์์ต๋๋ค.
HAproxy
์ด์ด์ ์ํํ ์น์๋ฒ ๊ด๋ฆฌ๋ฅผ ์ํด HAproxy ์ค์ ์ ์งํํด๋ณด๊ฒ ์ต๋๋ค.
HAproxy๋ ์ํํธ์จ์ด ๋ก๋ ๋ฐธ๋ฐ์๋ก, ๋คํธ์ํฌ ์ค์์น์์ ์ ๊ณตํ๋ L4, L7 ๊ธฐ๋ฅ ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
pfSense์์๋ ๊ฐ๋จํ ํจํค์ง ์ค์น๋ง์ผ๋ก๋ HAproxy๋ฅผ GUI ํ๊ฒฝ์์ ์ฌ์ฉํ์ค ์ ์์ต๋๋ค.

์ฐ์ ํจํค์ง๋ฅผ ์ค์นํ๊ธฐ ์ํด System - Package Manager - Available Packagesํญ์ผ๋ก ๋ค์ด๊ฐ haproxy ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค.
๊ฐ๋ฐ์ค์ธ ๊ฐ์ฅ ์ต์ ๋ฒ์ ์ ๋ค์ devel์ด ๋ถ์ต๋๋ค. ์ทจํฅ์ ๋ฐ๋ผ ์จ์ฃผ์๋ฉด ๋ฉ๋๋ค. ์ ๋ ์์ ํ ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด haproxy๋ฅผ ์ค์นํ๊ฒ ์ต๋๋ค.

HAproxy ํจํค์ง๋ฅผ ์ค์นํ๊ฒ๋๋ฉด Services ํญ์ HAProxy๋ผ๋ ๋ฉ๋ด๊ฐ ์๊ธด ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค. ํด๋น ํญ์ Setting๋ฉ๋ด๋ฅผ ํด๋ฆญํ๋ฉด HAproxy ์ค์ ์ ํ ์ ์์ต๋๋ค.
๋งจ ์์ Enable HAProxy ๋ฒํผ์ ๋๋ฌ HAproxy๋ฅผ ํ์ฑํ ์ํค๊ณ Maxinum connections ๊ฐ์ ์ค์ ํด ์ค๋๋ค. ์ด ๊ฐ์ HAproxy๋ฅผ ์ค์ ํ ์๋ฒ์ ์ฒ๋ฆฌ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํ๊ฒฝ์ ๋ง๊ฒ ์ธํ
ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ ๋ ํ ์คํธ์ฉ์ผ๋ก ์ฌ์ฉ ํ ์์ ์ด๊ธฐ ๋๋ฌธ์ ์์์ ์ซ์๋ฅผ ๋ฃ์ด ํ ์คํธ๋ฅผ ์งํํ๊ฒ ์ต๋๋ค.

๊ทธ ํ ์์ฒญ์ ๋ฐ์๋ค์ผ IP๋ฅผ ์ค์ ํ๊ธฐ ์ํด Firewall - Virtual IPs ํญ์ ๋ค์ด๊ฐ ์ ๊ท ๊ฐ์ ip๋ฅผ ํ๋ ๋ง๋ค์ด์ค๋๋ค.

์ค์ง์ ์ผ๋ก ๋ก๋๋ฐธ๋ฐ์ฑ ํ๊ณ ์ถ์ ์๋ฒ 2๋๋ฅผ HAproxy backend๋ก ์ค์ ํด ์ค๋๋ค. ์ ๋ ๊ธฐ์กด์ ์์ฑํ ์น์๋ฒ 2๋๋ฅผ ๋ก๋๋ฐธ๋ฐ์ฑ ํ ์์ ์ธ๋ฐ, ๊ฐ์ค์น๋ฅผ 9:1๋ก ๋์ด webserver01๋ฅผ 10๋ฒ ์ค 9๋ฒ์ ๋ ์์ฒญ์ด ๊ฐ๋๋ก ์ค์ ํ ์์ ์ ๋๋ค.

HAproxy frontend์๋ ์๊น ์์ฑํ๋ ๊ฐ์ ip๋ฅผ ๋ฃ๊ณ , ๋ฐฉ๊ธ ๋ง๋ HAproxy backend์ ์ฐ๊ฒฐ ํด ์ค๋๋ค. ์ด์ ๊ฐ์ ip๋ก ์์ฒญ์ ํ๋ฉด backend์ ์๋ ๋ ์น์๋ฒ์ ์ฐ๊ฒฐ์ด ๋์ด 9:1์ ๋น์จ๋ก ํธ์ถ ํ ๊ฒ์ ๋๋ค.

๊ฐ์ ip ์ญ์ ์ธ๋ถ์์ ํธ์ถ์ด ๊ฐ๋ฅํด์ผํ๋ฏ๋ก ๊ผญ Port Fowarding ์ค์ ์ ํ๊ณ ๋ฐฉํ๋ฒฝ rule์ ์ถ๊ฐํด์ค์๋ค.

์ค์ ๋ก Port Fowarding ip ์ ์ํ์ฌ ์๋ก๊ณ ์นจ์ ํ ๊ฒฝ์ฐ 9:1์ ๋น์จ๋ก webserver01๊ณผ webserver02๊ฐ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ๋ํ๋๋ ๊ฑธ ํ์ธํ์ค ์ ์์ต๋๋ค.
๋ง์น๋ฉฐ
์ค๋์ ๊ฐ๋จํ ์ค์ ์ผ๋ก pfSense์์ ํฌํธํฌ์๋ฉ ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ํํธ์จ์ด ํจํค์ง๋ก ๋ก๋๋ฐธ๋ฐ์ฑ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์์ต๋๋ค. ์ค์ ๋ ๋งค์ฐ ๊ฐ๋จํ๋ฉด์ GUI ํ๊ฒฝ์์ ๋ค๋ฃฐ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ณด์๋ถ๋ค์ด ์ฌ์ฉํ๊ธฐ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค. ๋ํ ๋ง์ ํ์ฌ์์ ์ ์ฉํ๊ฒ ์ฐ๊ณ ์๋ ๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ํ์ฉ๋๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค.
์ค์ ๋ก ์ ๋ private cloud ํ๊ฒฝ์ ๊ตฌ์ฑ ํ ๋ ip๊ฐ ํ์ ์ ์ด๊ธฐ ๋๋ฌธ์ vm์ ๋ด๋ถ ๋คํธ์ํฌ๋ก ์์ฑํ๊ณ , ์ธ๋ถ ๋คํธ์ํฌ์ ํต์ ํ ์ ์๊ฒ๋ ํ๊ธฐ ์ํด pfSense๋ฅผ ์์ฃผ ์ด์ฉํฉ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ ์กฐ๊ธ ๋ ๋ค์ํ pfSense์ ๊ธฐ๋ฅ์ ์ฌ์ฉํด๋ณด๋๋ก ํ๊ณ ์ด๋ฒ ํฌ์คํ ์ ์ฌ๊ธฐ์ ๋ง์น๊ฒ ์ต๋๋ค.