Dedicated Server Port Forwarding to VPS Using iptables (with OpenVPN)
iptables๋ฅผ ์ด์ฉํ์ฌ ํฌํธ ํฌ์๋ฉํ๊ธฐ (feat. ๋ฐ๋์ผ์ดํฐ๋ ์๋ฒ, VPS, OpenVPN)
์๋๋ Dedicated Server <==> Client ์ด๊ฒ ์ผ๋ฐ์ ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์์ฒ๋ผ Dedicated Server <==> VPS <==> Client ์ด๋ ๊ฒ ์ค๊ณ ์๋ฒ๋ฅผ ๋์์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์๋ฅผ ๋ค๋ฉด, ์๋ฒ๋ก ์ธ PC๊ฐ ๊ธฐ์์ฌ์ ์์ด์ public IP๋ฅผ ๋ชป ์ด๋ค๋ ๊ฐ.
์ ์ฉํ ํ๊ฒฝ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์๋ฒ PC์ VPS๋ OpenVPN์ผ๋ก ์ฐ๊ฒฐ๋จ.
- ์๋ฒ PC๊ฐ OpenVPN Client / VPS๊ฐ OpenVPN Server
- ์๋ฒ PC์ OpenVPN private IP๋ 10.8.100.2
- VPS๋ iptables๋ฅผ ์ฐ๋ Linux, TCP/UDP ๋ ๋ค ์ ์ฉ, ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ eth0, Public IP๋ 12.34.56.78, OpenVPN private IP๋ 10.8.100.1
- ์๋น์คํ ํฌํธ๋ ์์ชฝ ๋ค 33333
$ sudo iptables -t nat -A PREROUTING -d 12.34.56.78 -p tcp --dport 33333 -j DNAT --to-dest 10.8.100.2:33333
$ sudo iptables -t nat -A PREROUTING -d 12.34.56.78 -p udp --dport 33333 -j DNAT --to-dest 10.8.100.2:33333
$ sudo iptables -t nat -A POSTROUTING -p tcp --destination 10.8.100.2 --dport 33333 -o eth0 -j SNAT --to-source 10.8.100.1
$ sudo iptables -t nat -A POSTROUTING -p udp --destination 10.8.100.2 --dport 33333 -o eth0 -j SNAT --to-source 10.8.100.1
$ sudo iptables -t filter -A FORWARD -p tcp -d 10.8.100.2 --dport 33333 -j ACCEPT
$ sudo iptables -t filter -A FORWARD -p udp -d 10.8.100.2 --dport 33333 -j ACCEPT
$ sudo iptables-save
์ฌ๋ถํ
ํ๋ฉด ์ด๊ธฐํ๋๋ค. ์ด๋ฅผ ๋ง์ผ๋ ค๋ฉด crontab
๋ฑ ๋ถํ
์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์คํํ๊ฒ ๋ง๋ค์ด์ผ ํ๋ค.
์ธ๋ถ์์ 12.34.56.78:33333์ผ๋ก ์ ์ํ๋ฉด ์ฐ๊ฒฐ๋๋ค.
์ฐธ๊ณ ๋ก ์์ค ๋ฐ๋์ผ์ดํฐ๋ ์๋ฒ(Source Dedicated Server)์ ๊ฒฝ์ฐ status
๋ฅผ ์ณ์ ๋ด๋ถ IP๋ฅผ ํ์ธํด์ผ ํ๋ค.
๋ด๋ถ IP๊ฐ OpenVPN์ ๊ทธ๊ฒ๊ณผ ๋์ผํด์ผ ์ ๋๋ก ์ฐ๊ฒฐ๋ ๊ฑฐ๋ค.
์ด๋ฅผ ์์ฉํ๋ฉด public IP๊ฐ ์ ๊ณต๋์ง ์๋ ํ๊ฒฝ(๊ธฐ์์ฌ, ๊ณต๊ณต์์ค, ๋ชจ๋ฐ์ผ, ...)์ด๋ผ๋ VPS+OpenVPN+๋ผ์ฐํ (iptables) ์กฐํฉ์ผ๋ก ํด๋น VPS์ public IP๋ฅผ ๋ด๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. ๋ฌผ๋ก VPS๋ฅผ ๋ฐ๋ก ์๋ํด์ผ ๋์ง๋ง.... ์ด์ฐจํผ ๋ผ์ฐํฐ ์ญํ ๋ง ํ๋ฏ๋ก ์ฑ๋ฅ์ด ์ค์ํ์ง ์์ผ๋ ์ ๋ ดํ ๊ฒ ์๋ฌด๊ฑฐ๋ ๊ตฌํ๋ฉด ๋๋ค.
์ฐธ๊ณ ์๋ฃ
https://blog.kerus.net/2438/iptables-port-forward-to-another-public-ip
https://unix.stackexchange.com/questions/449853/port-forwarding-using-openvpn-client
https://whattheserver.com/openvpn-server-with-port-forwarding/