๐ง ๋ค์ด๊ฐ๊ธฐ์
โ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ์์ ํ์ฉ ๋ฐ ์ธ๋ถ ์ ๊ทผ์ฑ ํ๋ณด์ ๋ํ ๊ณ ๋ฏผ
ํ๊ต์์ ์ด๋ฒ์ Cloud ๊ด๋ จ ์ฌ์ ์ ํ๋ฉด์ ์ค์ต ํ๊ฒฝ์ ์ ๊ณตํด์ฃผ๊ธฐ ์ํด ํ์๋ง๋ค ํ๋ผ์ด๋น ํด๋ผ์ฐ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ธฐํ๋ฅผ ์ป์๊ณ , ์๊ฐ๋ณด๋ค ์ธ ์ ์๋ ์์์ด ๋๋ํ์๋ค. ๋ฐ๋ผ์ ํด๋น ๋จธ์ ์์๋ ํ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ก์๋จน์ด ํ์ง ๋ชปํ์๋ ์ค์ต๋ค์ ํ ์ ์๋ ๊ธฐํ๋ฅผ ์ป์ด ๋๋ฌด๋๋ฌด ์ข์๋ค.(์คํ์คํ, elk ๋ฑ๋ฑ..)
ํ์ง๋ง ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ํน์ฑ์ ๊ฐ ์ธ์คํด์ค์ ํ๋ผ์ด๋น IP๋ง ๋ฐ๊ธ๋๋ ๊ตฌ์กฐ์ ์ธ ํ๊ณ๊ฐ ์์๋ค. ์ด๋ก ์ธํด ํด๋น ์ธ์คํด์ค์ ์ ๊ทผํ๋ ค๋ฉด VPN์ ํตํด ์ฌ์ค ๋คํธ์ํฌ ๋ง์ผ๋ก ์ ์ํ๋ ๊ฒ์ด ํ์์ ์ด์๊ณ , ์ด๋ ์๋น์ค ํธ์คํ ์ด๋ ์ธ๋ถ์์ ์ง์ ์ ์ธ ๊ณต์ ์ธก๋ฉด์์ ์์ฌ์ ๋ค.
์ต๊ทผ์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด ๋นต๋นตํ ์ธ์คํด์ค๋ฅผ ์ด๋ป๊ฒ๋ ํ์ฉํ๊ณ ์ถ์๋ค. ๊ทธ๋๋ง Prometheus ๊ฐ์ ๊ฒฝ์ฐ์๋ Main Server๋ก ๊ฐ์ ๋ฉํธ๋ฆญ ์ ๋ณด๋ฅผ pull ๋ฐฉ์์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ์ ์์๋ฐ์ด๋์๋ ์ ์ฝ์ด ์๋ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋๋ฅผ ํ์ฉํ ์ ์์๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ๊ตฌ์ถ์ ๊ฐ๋ฅํด๋ ๊ฒฐ๊ตญ Grafana๋ฅผ ํตํ ๋ฉํธ๋ฆญ ์ ๋ณด๋ฅผ ๋ชจ๋ํฐ๋ง ํ๋ ค๋ฉด vpn์ ์ผ์ผํ๋ค๋ ๋ถํธํจ์ด ์์๊ณ ์ด๋ ํ์ ๊ฐ์ ๊ณต์ ์ธก๋ฉด์์ ์ํํ์ง ๋ชปํ์๋ค.
๐ก EC2๋ฅผ ํ์ฉํ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ํธ์คํ ์์ด๋์ด ๊ตฌ์
๊ทธ๋ฌ๋ค ๋ฌธ๋ ์ด๋ฌํ ๋ฌธ์ ์ํฉ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก, AWS์ EC2 ์๋ฒ๋ฅผ ํ์ฉํ๋ ์์ด๋์ด๋ฅผ ๊ตฌ์ํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋ EC2 ์ธ์คํด์ค ํ๋๋ฅผ ๋ง์น ๋ผ์ฐํฐ์ฒ๋ผ ํ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ๋ผ์ด๋น ํด๋ผ์ฐ๋์ ์ธ๋ถ ์ ๊ทผ์ฑ์ ํ๋ณดํ๋ ๊ฒ์ด๋ค.
- EC2 ์ธ์คํด์ค์ OpenVPN Client ์ค์น
AWS EC2 ์ธ์คํด์ค์ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ๋คํธ์ํฌ ์ฌ์ด์ ์์ ํ VPN ํฐ๋์ ๊ตฌ์ถํ๋ค. - EC2 ์ธ์คํด์ค์ Public IP ํ์ฉ
EC2 ์ธ์คํด์ค์ ํ ๋น๋ Public IP๋ฅผ ์ธ๋ถ ์ ๊ทผ์ ์ํ ์ฃผ์๋ก ์ฌ์ฉํ๋ค. - Nginx๋ฅผ ํตํ ํธ๋ํฝ ํฌ์๋ฉ
EC2 ์๋ฒ์ Nginx๋ฅผ ์ค์นํ๊ณ ์ค์ ํ์ฌ, ํด๋น Public IP์ ์ฐ๊ฒฐ๋ ๋๋ฉ์ธ ์ฃผ์๋ก ์ธ๋ถ ์ฌ์ฉ์๋ค์ด ์ ์ํ์ ๋, Private Cloud ๋ด๋ถ์ ์ํ๋ ์๋น์ค๋ก ํธ๋ํฝ์ ์์ ํ๊ฒ ํฌ์๋ฉํ๋ค.
์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ํตํด ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ๋ด๋ถ์ ์ธ์คํด์ค๋ค๋ ๋ง์น ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋์ ์์์ฒ๋ผ ์ธ๋ถ์์ ์ง์ ์ ๊ทผ ๊ฐ๋ฅํ๊ฒ ํ์ฌ, ์๋น์ค ํธ์คํ ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋จ์ด ๋ค์๋ค.
๐จ ๋ฌธ์ ๋ฐ์
1๏ธโฃ Open VPN ํด๋ผ์ด์ธํธ ์ค์น ์ SSH ์ ์ ๋ถ๊ฐ
๐นOpen VPN ํด๋ผ์ด์ธํธ ์ด๊ธฐ ์ธํ ๋ฐ ์คํ
sudo mkdir -p /etc/openvpn/client/
sudo mv ~/{ํ๋ฒ}.ovpn /etc/openvpn/client/
์ฐ์ ๊ธฐ์กด์ ๊ฐ์ง๊ณ ์๋ OpenVPN ํ๋กํ์ผ์ ์๋ฒ๋ก ๋๊ธด ํ ์์ ๊ฐ์ด openvpn ๋๋ ํฐ๋ฆฌ ์์ผ๋ก ovpn ํ์ผ์ ์ด๋์์ผฐ๋ค.
# systemd ์ฌ๋ก๋
sudo systemctl daemon-reload
# ์๋น์ค ํ์ฑํ
sudo systemctl enable openvpn-client@{ํ๋ฒ}.service
# ์๋น์ค ์์
sudo systemctl start openvpn-client@{ํ๋ฒ}.service
๊ทธ๋ฐ ๋ค์, ์์ ๊ฐ์ด openvpn-client service๋ฅผ ์คํ์์ผฐ๋ค.
๐น๋ฌธ์ ๋ฐ์
๊ทธ๋ฌ๋ ์์ ๊ฐ์ด ์คํ์ํค์๋ง์ ๊ฐ์๊ธฐ ์๋ฒ๊ฐ ๋๊ธฐ๊ณ ๋ค์ ์ฌ์ ์์ด ์๋๋ ํ์์ด ๋ฐ์ํ์๋ค.
์ฌ์ง์ด aws์์ ๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ ์ฝ์๋ก๋ ์ ์์ด ๋์ง ์์๋ค. ๋ณดํต ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ์ด๊ณผํด์ ์๋ฒ๊ฐ ํฐ์ง๋ ๊ฒฝ์ฐ๋ ๋ฆฌ๋ถํธํ๋ฉด ๋ค์ ์ ์ํ ์ ์์๋๋ฐ ์ด๋ฒ์๋ ์ํฉ์ด ๋ฌ๋๋ค. ์๋ฌด๋ฆฌ ๋ฆฌ๋ถํธ๋ฅผ ๋ค์ํด๋ด๋, ์ธ์คํด์ค๋ฅผ ์ค์ง์ํค๊ณ ๋ค์ ์คํ์์ผ๋ณด์๋ ํด๋น ์ธ์คํด์ค๋ก ์ฌ์ ํ ์ ๊ทผํ ์ ์์๋ค.
๋ฐ๋ผ์ ํด๋น ๋ฌธ์ ๋ ์๋ฒ ์์ ๋ฌธ์ ๊ฐ ์๋ ๋คํธ์ํฌ ๋ฌธ์ ๋ผ๊ณ ํ๋จ์ด ๋ค์๋ค.
Open VPN์ผ๋ก VPN์ ํค๋ ์๊ฐ ๋คํธ์ํฌ์ ๋ฌธ์ ๋ก ์ธํ์ฌ ๊ธฐ์กด์ ์ธ์คํด์ค์ ip๋ก ์ ๊ทผํ ์๊ฐ ์์๋ ๊ฒ์ด๋ค.
2๏ธโฃ OpenVPN์ ๊ตฌ์ฑ
OpenVPN์ ์์ ํ ๊ฐ์ ์ฌ์ค๋ง์ ๊ตฌ์ถํ๊ธฐ ์ํด ํน๋ณํ ๊ฐ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค. OpenVPN์ด ์ฌ์ฉํ๋ ์ฃผ์ ๊ฐ์ ์ธํฐํ์ด์ค๋ TUN(Tunnel)๊ณผ TAP๋ ๊ฐ์ง์ด๋ค. ์ด ๋์ OSI ๋ชจ๋ธ์ ๋ค๋ฅธ ๊ณ์ธต์์ ์๋ํ๋ฉฐ, ๊ฐ๊ธฐ ๋ค๋ฅธ ํน์ฑ๊ณผ ์ฉ๋๋ฅผ ๊ฐ์ง๋ค.
๐น1. TUN (Tunnel) ์ธํฐํ์ด์ค: IP ํจํท์ ์ํ ๋ผ์ฐํ ํฐ๋
TUN ์ธํฐํ์ด์ค๋ OSI ๋ชจ๋ธ์ ๋คํธ์ํฌ ๊ณ์ธต(3๊ณ์ธต)์์ ์๋ํ๋ค. TUN์ ์ฌ์ฉํ๋ VPN ์ฐ๊ฒฐ์์๋ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ก์ด IP ์ฃผ์๊ฐ ํ ๋น๋๋ฉฐ, ์ด IP ์ฃผ์๋ฅผ ํตํด ํธ๋ํฝ์ด VPN ์๋ฒ๋ก ๋ผ์ฐํ ๋๋ค.
- ์ฃผ์ ํน์ง:
- IP ํจํท ์ฒ๋ฆฌ: TUN์ ์ค์ง IP ํจํท๋ง์ ์บก์ํํ๊ณ ์ ์ก
- ํจ์จ์ฑ: IP ํจํท ํค๋๋ง ํฌํจํ์ฌ ์บก์ํํ๋ฏ๋ก ์ค๋ฒํค๋๊ฐ ์ ์ด ์ผ๋ฐ์ ์ผ๋ก TAP๋ณด๋ค ๋น ๋ฅด๊ณ ํจ์จ์
- ๋ผ์ฐํ ๊ธฐ๋ฐ: ์ฃผ๋ก ์๊ฒฉ์ ์๋ ๊ฐ๋ณ ํธ์คํธ๋ ๋คํธ์ํฌ ๊ฐ์ ์ฐ๊ฒฐ(Point-to-Point)์ ์ฌ์ฉ๋๋ค. ํด๋ผ์ด์ธํธ์ ๋ผ์ฐํ ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋์ด ํน์ ๋ชฉ์ ์ง IP ๋๋ ๋ชจ๋ ํธ๋ํฝ์ด VPN ํฐ๋๋ก ํฅํ๋๋ก ์ค์
- ๋ธ๋ก๋์บ์คํธ/๋ฉํฐ์บ์คํธ ์ ํ: ๊ธฐ๋ณธ์ ์ผ๋ก ๋คํธ์ํฌ์์ ๋ธ๋ก๋์บ์คํธ๋ ๋ฉํฐ์บ์คํธ ํธ๋ํฝ์ ํฐ๋๋งํ์ง ์๋๋ค.
๐น2. TAP ์ธํฐํ์ด์ค: ์ด๋๋ท bridging์ ์ํ ๊ฐ์ LAN ์นด๋
TAP ์ธํฐํ์ด์ค๋ OSI ๋ชจ๋ธ์ ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต(2๊ณ์ธต)์์ ์๋ํ๋ค. ์ด๋ ์ค์ ๋ฌผ๋ฆฌ์ ์ธ ์ด๋๋ท ์นด๋์ฒ๋ผ ๋์ํ๋ฉฐ, IP ํจํท๋ฟ๋ง ์๋๋ผ MAC ์ฃผ์๋ฅผ ํฌํจํ๋ ์ด๋๋ท ํ๋ ์ ์ ์ฒด๋ฅผ ์ฒ๋ฆฌํ๋ค. TAP๋ฅผ ์ฌ์ฉํ๋ VPN ์ฐ๊ฒฐ์์๋ VPN ํด๋ผ์ด์ธํธ๊ฐ ๋ง์น VPN ์๋ฒ๊ฐ ์ํ ๋ฌผ๋ฆฌ์ ๋ก์ปฌ ๋คํธ์ํฌ์ ์ง์ ์ฐ๊ฒฐ๋ ๊ฒ์ฒ๋ผ bridging ๋ ์ ์๋ค.
- ์ฃผ์ ํน์ง:
- ํ๋กํ ์ฝ ๋ ๋ฆฝ์ฑ: IP ์ด์ธ์ ๋ค์ํ ๋คํธ์ํฌ ํ๋กํ ์ฝ์ ํธ๋ํฝ๋ ํฐ๋๋งํ ์ ์์
- ์ด๋๋ท ๋ธ๋ฆฟ์ง: VPN ํด๋ผ์ด์ธํธ์ ๊ฐ์ TAP ์ธํฐํ์ด์ค๊ฐ VPN ์๋ฒ๊ฐ ์ํ ๋ฌผ๋ฆฌ์ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ bridging๋์ด VPN์ ํตํด ๋ง์น ๋ก์ปฌ LAN์ ์๋ ๊ฒ์ฒ๋ผ ํต์ ์ด ๊ฐ๋ฅ
- ๋ธ๋ก๋์บ์คํธ/๋ฉํฐ์บ์คํธ ์ง์: ๋ธ๋ก๋์บ์คํธ ๋ฐ ๋ฉํฐ์บ์คํธ ํธ๋ํฝ์ VPN ํฐ๋์ ํตํด ์ ์ก ๊ฐ๋ฅ
- ์ค๋ฒํค๋: ์ด๋๋ท ํ๋ ์ ์ ์ฒด๋ฅผ ์บก์ํํด์ผ ํ๋ฏ๋ก TUN ์ธํฐํ์ด์ค๋ณด๋ค ๋ฐ์ดํฐ ์ค๋ฒํค๋๊ฐ ์ปค์ ์๋์ ์ผ๋ก ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ์ ์์
3๏ธโฃ ๋ฌธ์ ์ ๋ถ์
๐นOpen VPN Client๋ฅผ ์คํํ๊ธฐ ์
์ธ์คํด์ค(4.3.2.1/24)๊ฐ OpenVPN ์ฐ๊ฒฐ ์ ์๋ ๋ด ๋ก์ปฌ ๋จธ์ (9.8.7.6/24)๊ณผ ์ฑ๊ณต์ ์ผ๋ก SSH ์ฐ๊ฒฐ์ ๋งบ์ ์ ์๋ค.
๐นOpen VPN Client๋ฅผ ์คํํ ํ
์ด ์ํ์์ ์ธ์คํด์ค์์ OpenVPN ์ฐ๊ฒฐ์ ์์ํ๋ฉด ์๋ก์ด tun0 ์ธํฐํ์ด์ค๊ฐ ํ์ฑํ(๊ฐ์์ IP 10.0.0.2)๋๋ค.
์ด๋, ๋ง์ฝ ์๊ฒฉ OpenVPN ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ ์ด๋ค ๋ผ์ฐํ ๊ท์น๋ ํธ์ํ์ง ์๋๋ค๋ฉด SSH ์ฐ๊ฒฐ์ ๋ฌธ์ ์์ด ์ ์ง๋๋ค.
๊ทธ๋ฌ๋ ์๊ฒฉ OpenVPN ์๋ฒ๊ฐ ์ธ์คํด์ค์ ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด๋ฅผ 10.0.0.1 (์๊ฒฉ OpenVPN ์๋ํฌ์ธํธ)๋ก ๊ต์ฒดํ๋๋ก ํธ์ํ๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด ์ํฉ์์๋ OpenVPN ์์ฒด ํธ๋ํฝ์ ์ ์ธํ ๋ชจ๋ ์ธ๋ถ ํต์ ์ด VPN ํฐ๋์ ํตํด ์ด๋ฃจ์ด์ง๊ฒ ๋๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ๋น๋์นญ ๋ผ์ฐํ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๋ค.
- ๋ด ๋จธ์ (9.8.7.6)์์ ์ธ์คํด์ค(4.3.2.1)๋ก ๊ฐ๋ ํธ๋ํฝ์ ๊ธฐ์กด ๊ฒฝ๋ก๋ฅผ ํตํด ํ๋ฅธ๋ค.
- ํ์ง๋ง ์ธ์คํด์ค(4.3.2.1)์์ ๋ด ๋จธ์ (9.8.7.6)์ผ๋ก ๋์์ค๋ ํธ๋ํฝ์ VPN ์ฐ๊ฒฐ ์ค์ ํ, ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด๊ฐ 10.0.0.1๋ก ๋ณ๊ฒฝ๋์ด VPN ํฐ๋์ ํตํด ๋ผ์ฐํ ๋๋ค.
ํ๋ฆ์ ์ ๋ฆฌํ์๋ฉด ์๋์ ๊ฐ๋ค.
- ์์ฒญ: ๋ก์ปฌ ์ปดํจํฐ -> ์ธํฐ๋ท -> EC2 ์๋ฒ์ ๊ณต์ธ IP ์ฃผ์
- ์ฌ๊ธฐ๊น์ง๋ SSH ์์ฒญ์ด EC2 ์๋ฒ์ ์ ์์ ์ผ๋ก ๋๋ฌํ๋ค.
- ์๋ต: EC2 ์๋ฒ๋ SSH ์์ฒญ์ ์ฒ๋ฆฌํ ํ, ๋ก์ปฌ ์ปดํจํฐ๋ก ์๋ต ํจํท์ ๋๋ ค๋ณด๋ด๋ ค ํ๋ค. ์ด๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
OpenVPN ํด๋ผ์ด์ธํธ๊ฐ ์คํ๋๋ฉด์ EC2 ์๋ฒ์ ๊ธฐ๋ณธ ๋ผ์ฐํ ํ ์ด๋ธ์ด ๋ณ๊ฒฝ๋๋ค. ์ด ๋ผ์ฐํ ํ ์ด๋ธ์ EC2 ์๋ฒ์ ๋ชจ๋ ์์๋ฐ์ด๋ ํธ๋ํฝ์ VPN ํฐ๋(tun0 ์ธํฐํ์ด์ค)์ ํตํด VPN ์๋ฒ๋ก ๋ณด๋ด๋๋ก ์ง์ํ๋ค.- ๋ฐ๋ผ์ SSH ์๋ต ํจํท์ EC2 ์๋ฒ์ ์๋ ๊ณต์ธ IP ์ฃผ์๋ฅผ ํตํด ์ธํฐ๋ท์ผ๋ก ๋๊ฐ๋ ๋์ , VPN ํฐ๋ ์ธํฐ๋ท ์ ๊ฒฝ๋ก๋ฅผ ๊ฑฐ์ณ ๋๊ฐ๊ฒ ๋๋ค.
- SSH ์์ฒญ์ EC2 ์๋ฒ๋ก ์ง์ ๋ค์ด์ค์ง๋ง, SSH ์๋ต์ VPN ์๋ฒ๋ฅผ ํตํด ๋ค๋ฅธ ๊ฒฝ๋ก๋ก ๋๊ฐ๊ฒ ๋๋ค. ์ด๋ ๊ฒ ์์ฒญ๊ณผ ์๋ต์ด ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ํตํ๋ฉด, ์ค๊ฐ์ ์๋ ๋ผ์ฐํฐ๋ ๋ฐฉํ๋ฒฝ ๊ฐ์ ๋คํธ์ํฌ ์ฅ๋น๋ค์ด ์ด ํจํท์ ๋น์ ์์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ๊ณ ๋๋กญ์์ผ๋ฒ๋ฆด ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋๋ค. ์ฆ SSH ํด๋ผ์ด์ธํธ๋ ์๋ต์ ๋ฐ์ง ๋ชปํ๋ฏ๋ก ์ฐ๊ฒฐ์ด ๋์ด์ง๊ฑฐ๋ ์๊ฐ ์ด๊ณผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
- ๋ํ NAT์ ๊ด์ ์์, VPN ์๋ฒ๋ ์ด ํจํท์ ์ธํฐ๋ท์ผ๋ก ๋ด๋ณด๋ด๋ฉด์ ํจํท์ ์ถ๋ฐ์ง IP ์ฃผ์๋ฅผ EC2 ์๋ฒ์ VPN ๋ด๋ถ IP๊ฐ ์๋ ์์ ์ ๊ณต์ธ IP ์ฃผ์๋ก ๋ฐ๊ฟ์น๊ธฐํ๋ค. ๊ทธ ๊ฒฐ๊ณผ SSH ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ธ IP์ฃผ์๋ก ๋ถํฐ ์๋ต์ด ์ค๋ ๊ฒ์ด ์๋ ๋ฌ๋ผ์ง ๊ณต์ธ IP ์ฃผ์๋ก๋ถํฐ ํจํท์ด ์ค๋ฏ๋ก ์์์น ๋ชปํ ์๋ต์ผ๋ก ๊ฐ์ฃผํ๊ณ ๋ฒ๋ฆฌ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด ๋๋ฌธ์ SSH ํด๋ผ์ด์ธํธ๋ ์ ํจํ์ง ์์ ์๋ต์ ๋ฐ๊ฑฐ๋ ์์ ๋ฐ์ง ๋ชปํ๊ฒ ๋์ด ์ฐ๊ฒฐ์ด ๋์ด์ง๊ฒ ๋๋ ๊ฒ์ด๋ค.
โจ ํด๊ฒฐ ๋ฐฉ๋ฒ
1๏ธโฃ ๋ผ์ฐํ ํ ์ด๋ธ ์ค์
์ด ๋ฐฉ๋ฒ์ SSH ์ฐ๊ฒฐ์ด ํ์ฑํ๋ ์ํ์์ OpenVPN ํด๋ผ์ด์ธํธ๋ฅผ ์คํํ์ ๋, SSH ์๋ต ํธ๋ํฝ์ด VPN ํฐ๋์ ์ฐํํ๊ณ EC2 ์๋ฒ์ ์๋ ๊ณต์ธ IP ๊ฒฝ๋ก๋ก ์ง์ ๋์๊ฐ๋๋ก ๊ฐ์ ํ๋ ๊ฒ์ด๋ค.
์๋ฆฌ?
๋ผ์ฐํ ํ ์ด๋ธ์์ ๋ ๊ตฌ์ฒด์ ์ธ(specific) ๊ท์น์ ๋ ๊ตฌ์ฒด์ ์ธ(general) ๊ท์น(์: 0.0.0.0/0์ VPN์ผ๋ก ๋ณด๋ด๋ ๊ท์น)๋ณด๋ค ์ฐ์ ์ํ๋ค. SSH ํด๋ผ์ด์ธํธ์ ํน์ IP ์ฃผ์๋ก ํฅํ๋ ํธ๋ํฝ์ ๋ํด ์๋ ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋๋ก ๋ช ์์ ์ธ ๊ท์น์ ์ถ๊ฐํ์ฌ, VPN ๋ผ์ฐํ ๊ท์น๋ณด๋ค ์ฐ์ ํ๊ฒ ๋ง๋๋ ์๋ฆฌ์ด๋ค.
sudo ip route add <๋ด ๋ก์ปฌ ๋จธ์ ๊ณต์ธ IP> via <EC2 ๊ณต์ธ IP> dev eth0
์์ ๊ฐ์ด EC2์ ETH0 Gateway์์ ๋ด ๋ก์ปฌ ๋จธ์ ๊ณต์ธ ip๋ก ๋ผ์ฐํ ํ ์ ์๋๋ก ๊ตฌ์ฒด์ ์ธ ๊ท์น์ ์ถ๊ฐํด์ค๋ค.
๋ผ์ฐํ ๊ท์น์ ์ถ๊ฐํ๋ค๋ฉด ์์ ๊ฐ์ด ssh์ ์๋ต์ด ์ ์์ ์ผ๋ก ๋ด ๋ก์ปฌ ๋จธ์ ์ผ๋ก ๋์ฐฉํ ์ ์๋ค.
๐จ์ฃผ์์ฌํญ
ํ์ง๋ง, ์ด ๊ท์น์ ํน์ SSH ํด๋ผ์ด์ธํธ IP์๋ง ์ ์ฉ๋๋ค. ๋ค๋ฅธ IP์์ SSH ์ ์์ ์๋ํ๋ฉด ๋ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๋ฐ๋ผ์ ํด๋น ๋ฐฉ์์ ๊ทผ๋ณธ์ ์ธ ํด๊ฒฐ์ฑ ์ด ๋ ์ ์์ผ๋ฉฐ ์ฒ์์ ํธ์คํ ํ๊ณ ์ ํ๋ ๋ชฉํ์๋ ๋๋ฌํ ์ ์๋ค.
2๏ธโฃ ์คํ๋ฆฟ ํฐ๋๋ง
์ด ๋ฐฉ๋ฒ์ OpenVPN ํด๋ผ์ด์ธํธ์ ์ค์ ํ์ผ์ ์์ ํ์ฌ ํน์ ํธ๋ํฝ๋ง VPN ํฐ๋์ ํตํด ๋ณด๋ด๊ณ ๋๋จธ์ง ํธ๋ํฝ์ EC2 ์๋ฒ์ ์๋ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ํตํด ์ง์ ๋๊ฐ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์๋ฆฌ?
๊ธฐ๋ณธ์ ์ผ๋ก OpenVPN์ redirect-gateway ์ง์๋ฌธ์ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ํธ๋ํฝ(0.0.0.0/0)์ VPN ํฐ๋๋ก ๋ณด๋ธ๋ค. ์คํ๋ฆฟ ํฐ๋๋ง์ ์ด ๊ธฐ๋ณธ ๋์์ ๋นํ์ฑํํ๊ณ , VPN์ ํตํด ์ ๊ทผํด์ผ ํ๋ ํน์ ๋ชฉ์ ์ง ๋คํธ์ํฌ๋ก์ ํธ๋ํฝ๋ง VPN ํฐ๋์ ํตํ๋๋ก ํ๋ค.
๐นClient.ovpn ํ์ผ ์์ ํ๊ธฐ
;redirect-gateway def1 bypass-dhcp
๋ง์ฝ ํด๋น ๋ผ์ธ์ด ์๋ค๋ฉด ์ฃผ์์ฒ๋ฆฌํ์ฌ ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด๋ฅผ VPN ํฐ๋๋ก ๋ณ๊ฒฝํ์ง ์๋๋ก ํ๋ค.
route 10.0.0.0 255.0.0.0
ํด๋น ๋ผ์ธ์ ์ถ๊ฐํ์ฌ ํน์ IP ๋์ญ์ผ๋ก์ ํธ๋ํฝ๋ง VPN ํฐ๋์ ํตํด ๋ผ์ฐํ ํ๋๋ก ์ง์ํ๋ค.
์ด๋ 10.0.0.0์ ๋ด๊ฐ ์ ์ํ๊ณ ์ ํ๋ private cloud์ ๋ด๋ถ๋ง ip์ด๋ค.
route-nopull
๋ง์ง๋ง์ผ๋ก route-nopull์ ์ฌ์ฉํ์ฌ OpenVPN์ด ๋ผ์ฐํ ํ ์ด๋ธ์ ์๋์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ง์ ์ ์๋ค.
์์ ๊ฐ์ด ์ค์ ํ๋ค๋ฉด private cloud ip ๋์ญ์ ๋ํด์๋ง VPN์ ํตํด์ ํต์ ํ๊ณ ๋๋จธ์ง ๋์ญ์ ๋ํด์๋ ์ง์ ์ธํฐ๋ท์ผ๋ก ๋๊ฐ๋๋ก ํจ์ผ๋ก์จ, SSH ์ฐ๊ฒฐ ์์ ์ฑ์ ํ๋ณดํ๊ณ ๋ถํ์ํ ํธ๋ํฝ์ด VPN์ ๊ฒฝ์ ํ๋ฉด์ ๋ฐ์ํ๋ ์ฑ๋ฅ ์ค๋ฒํค๋๋ ์ค์ผ ์ ์๋ค.
10.0.0.0/8 ๋์ญ๋์ ๋ํด์๋ง tun0 ์ธํฐํ์ด์ค๊ฐ ์๊ธด ๊ฒ์ ํ์ธํ ์ ์์ผ๋ฉฐ, ์ ์์ ์ผ๋ก SSH ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
private cloud๋ก ping๋ ์ ์์ ์ผ๋ก ๋ ๋ผ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๐ ์ถ์ฒ
https://serverfault.com/questions/404501/openvpn-client-on-amazon-ec2
https://serverfault.com/questions/404501/openvpn-client-on-amazon-ec2
https://serverfault.com/questions/754462/setting-up-open-vpn-client-on-amazon-ec2