SERVER/ERROR

<node.js> 80 ํฌํŠธ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์ด 3000 ํฌํŠธ๋กœ ์ „๋‹ฌ ์•ˆ๋  ๋•Œ: iptables

์™„์žโœจ 2022. 2. 16. 20:09

๐Ÿ“Œ 3000๋ฒˆ ํฌํŠธ์—์„œ 80๋ฒˆ ์ ์šฉ์ด ์•ˆ๋  ๋•Œ

๋ฆฌ๋ˆ…์Šค๋กœ ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์€ iptables์— ์˜ํ•ด ์ •์˜๋œ ๊ทœ์น™์„ ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋˜๋ฉฐ,
์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ ์ด์šฉํ•ด ์™ธ๋ถ€์—์„œ 80 ํฌํŠธ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ๋ฆฌ๋ˆ…์Šค ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” 3000 ํฌํŠธ๋กœ ์ „๋‹ฌํ•˜๋„๋ก ๊ทœ์น™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ

$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

iptables๋ฅผ ์ด์šฉํ•˜์—ฌ 80๋ฒˆ ํฌํŠธ๋กœ ๋ผ์šฐํŒ…์„ ์‹œํ‚ค๊ณ  ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— ํฌํŠธ๋ฅผ ์—†์•ด๋Š”๋ฐ๋„ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ.
iptables์˜ PREROUTING์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ ์šฉ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๊ทธ๋Ÿด์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด iptables ๋“ฑ๋ก ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

# ์•„๋ž˜ ๋ช…๋ น์–ด ์‹คํ–‰
$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 5000
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 3000
REDIRECT   tcp  --  anywhere             anywhere             tcp dpt:http redir ports 3000

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

PREROUTING ๋ถ€๋ถ„์— ๋ณด๋ฉด ์ œ๊ฐ€ ์ฒ˜์Œ์— ๋‹ค๋ฅธ ํฌ์ŠคํŠธ๋ฅผ ๋ณด๋ฉฐ 5000 -> 80 ํฌํŠธ๋กœ ์„ธํŒ…ํ•ด๋’€๋Š”๋ฐ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋‚ด ์„œ๋ฒ„๋Š” 3000๋ฒˆ ํฌํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ์žˆ๋˜ ๊ฑธ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‹ค์‹œ 3000 -> 80 ํฌํŠธ๋กœ ์„ธํŒ…ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ๋„ ์›ํ•˜๋Š”๋Œ€๋กœ ์„ธํŒ…์ด ์•ˆ๋˜์–ด์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

๐Ÿ“Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ PREROUTING ๋ถ€๋ถ„์„ ํ•œ ํ•ญ๋ชฉ๋งŒ ๋‚จ๊ธฐ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋งจ ์œ„ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.

$ sudo iptables -t nat -D PREROUTING 1

์ดํ›„ ๋‹ค์‹œ ๋ผ์šฐํŒ… ํ•ญ๋ชฉ๋“ค์„ ํ™•์ธํ•ด๋ณด๋ฉด $ sudo iptables -t nat -L ํ•˜๋‚˜๊ฐ€ ์‚ฌ๋ผ์ ธ ์žˆ์„๊ฒ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด์„œ ํ•ญ๋ชฉ์„ ํ•˜๋‚˜๋งŒ ๋‚จ๊ฒจ๋‘๊ณ  ๋‹ค์‹œ node.js ์•ฑ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.