๐Ÿคฆโ€โ™€ 80 ํฌํŠธ๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š๋Š”๋‹ค

๐Ÿคฆโ€โ™€ 80 ํฌํŠธ๊ฐ€ ์—ด๋ฆฌ์ง€ ์•Š๋Š”๋‹ค

์ตœ๊ทผ ํ™ˆ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๋ธ”๋กœ๊ทธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ๋ณธ ๋ธ”๋กœ๊ทธ๋Š” ghost ํ”Œ๋žซํผ์„ docker์— buildํ•˜์—ฌ ์„œ๋น„์Šค ํ•˜๊ณ ์žˆ๋‹ค. ์›น ๊ฐœ๋ฐœ๋กœ ๋จน๊ณ ์‚ด์•˜๋˜ ๊ณผ๊ฑฐ๊ฐ€ ์žˆ์–ด ๋ณ„๋กœ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

(๋ณธ์ธ์€ ํ˜„์žฌ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์—ฐ๊ตฌ๋ฅผ ํ•˜๊ณ ์žˆ์ง€๋งŒ, ย ๊ณผ๊ฑฐ ์›น๊ฐœ๋ฐœ ๊ฒฝ๋ ฅ์ด ์žˆ๋‹ค)

๋ชจ๋“  ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ์ด์ œ ์™ธ๋ถ€ ๋ง ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ž‘์—… ์ค‘์ด๋˜ ๋งฅ๋ถ์˜ ์™€์ดํŒŒ์ด๋ฅผ ์—ฐ๊ฒฐ ํ•ด์ œํ•˜๊ณ  ์•„์ดํฐ ํ•ซ์ŠคํŒŸ์„ ์—ฐ๊ฒฐํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณธ ๋ธ”๋กœ๊ทธ ์„œ๋ฒ„์˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค. ๊ทผ๋ฐ ์™ ๊ฑธ, ๋‚ด๋ถ€ ๋ง์—์„œ๋Š” ์ž˜ ๋™์ž‘ํ•˜๋˜ ์‚ฌ์ดํŠธ๊ฐ€ ์™ธ๋ถ€ ๋ง์—์„œ๋Š” ์—ฐ๊ฒฐ์ด ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ด์˜€๋‹ค. ๋ฐฉํ™”๋ฒฝ๋ถ€ํ„ฐ L3์Šค์œ„์น˜์˜ DMZ ์„ธํŒ…๊นŒ์ง€ 10๋ฒˆ์€ ๋” ํ™•์ธํ–ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์—†์—ˆ๋‹ค.

์ด์ƒํ•œ ๋ถ€๋ถ„์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. docker-registry ์„œ๋ฒ„๋กœ ์ž„์‹œ ๊ฐœ๋ฐฉํ•ด ๋†“์€ ํฌํŠธ๋Š” ๋˜ ์ ‘์†์ด ์ž˜ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ญ”๊ฐ€ ์ด์ƒํ•ด์„œ nmap ์œผ๋กœ ํฌํŠธ ์Šค์บ”์„ ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค.

$ nmap ${server_ip}

---output---
Starting Nmap 7.94 ( https://nmap.org ) at 2023-08-20 15:54 KST
Nmap scan report for ***.***.***.***
Host is up (0.021s latency).
Not shown: 994 filtered tcp ports (no-response)
PORT     STATE  SERVICE
443/tcp  open   https

Nmap done: 1 IP address (1 host up) scanned in 42.43 seconds

์˜ค์ž‰?, 80๋ฒˆ ํฌํŠธ ๊ฐœ๋ฐฉ์ด ๋˜์ง€ ์•Š๊ณ  ์žˆ์—ˆ๋‹ค. ์–ธ๋œป ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๊ฐ€์ •์šฉ ์ธํ„ฐ๋„ท ๋ง ์ค‘์—๋Š” ISP์—์„œ 80๋ฒˆ ํฌํŠธ๋ฅผ denyํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋“ค์–ด ๋ณธ ๊ธฐ์–ต์ด ๋‚ฌ๋‹ค. ๋ถˆํ–‰ ์ค‘ ๋‹คํ–‰์œผ๋กœ 443ํฌํŠธ๋Š” ๊ฐœ๋ฐฉ์ด ๋˜์–ด์žˆ์–ด https ์ ‘์†ํ•ด๋ณด๋‹ˆ ์—ญ์‹œ ์ž˜ ์ ‘์†์ด ๋˜๊ณ ์žˆ์—ˆ๋‹ค. ISP์— ๋ฌธ์˜๋ฅผ ํ•ด ํฌํŠธ ๊ฐœ๋ฐฉ ์š”์ฒญ์„ ํ•ด๋ณผ ์ˆ˜ ์žˆ์œผ๋‚˜, ๋‹น์žฅ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด๊ณ ์‹ถ์—ˆ๋‹ค.

๋ฌธ์ œ: ISP์—์„œ 80๋ฒˆ ํฌํŠธ๋ฅผ ๊ฐœ๋ฐฉํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ํ˜„์žฌ ๋„๋ฉ”์ธ์„ ๋“ฑ๋กํ•ด ๋†“์€ DNS ์„œ๋ฒ„์ธ Cloudflare ์˜ Page Rules๋กœ http(80) ํ”„๋กœํ† ์ฝœ์„ https(443)์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

Alwats Use HTTPS ์„ธํŒ…์„ ์‚ฌ์šฉํ•˜๋ฉด cloudflare๊ฐ€ http๋ฅผ https๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ํ•ด์ค€๋‹ค. ๊ทผ๋ฐ ํ•œ๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

Page Rules ์„ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” cloudflare์˜ proxy ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ์ด ๊ฒฝ์šฐ์—๋Š” 80๋ฒˆ ํฌํŠธ ๊ฐœ๋ฐฉ์ด ๋˜ ํ•„์š”ํ–ˆ๋‹ค. ๋”œ๋ ˆ๋งˆ๊ฐ€ ์‹œ์ž‘๋ฌ๋‹ค.

Solution 1.

ํ˜น์—ฌ๋‚˜ ํ•˜๋Š” ๋งˆ์Œ์— cloudflare์˜ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋“ค์„ ํ™•์ธํ•˜๋‹ค Origin Rules ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” cloudflare proxy๋กœ ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ host server ์˜ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํฌํŠธ๋กœ Rewrite ํ•  ์ˆ˜๊ฐ€ ์žˆ์—ˆ๋‹ค.

์ด์ œ j911.me ๋กœ ์ ‘์†ํ•˜๋Š” ๋ชจ๋“  ๋„๋ฉ”์ธ์€ ๋‚ด๊ฐ€ ์„ค์ •ํ•œ 1234 ํฌํŠธ๋กœ ๋‚ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด nginx์˜ conf ํŒŒ์ผ์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•˜๊ณ  1234 /tcp ํฌํŠธ๋ฅผ ๋ฐฉํ™”๋ฒฝ์—์„œ allow ํ–ˆ๋‹ค.

# j911.me.conf in /etx/nginx/conf.d/

server {
    server_name j911.me;
    listen 1234;

    location / {
      proxy_pass                          http://ghost-server;
      proxy_set_header  Host              $http_host;
      proxy_set_header  X-Real-IP         $remote_addr; 
      proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
      proxy_set_header  X-Forwarded-Proto $scheme;
    }
}
$ sudo ufw allow 1234

์ดํ›„ cloudflare์˜ proxy๋„ enable ํ•˜์˜€๋‹ค.

๋†€๋ž๊ฒŒ๋„ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๊ทธ๋Œ€๋กœ ๋™์ž‘ํ–ˆ๋‹ค. ์ด์ œ ๋ธ”๋กœ๊ทธ๋Š” ์˜จ๋ผ์ธ์ด ๋˜์—ˆ๋‹ค.

Solution 2.

์œ„ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ธ”๋กœ๊ทธ๋Š” ์˜จ๋ผ์ธ์ด ๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๊ณ ๋ฏผ์€ ๊ณ„์†๋˜์—ˆ๋‹ค. ์ผ๋‹จ ์ž์ฒด SSL ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ๊ณผ, ๊ทผ๋ณธ ์—†์–ด๋ณด์ด๋Š” 1234 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ŠคํŠธ๋ ˆ์Šค์˜€๋‹ค.

๋‹ค์‹œ ํ•ด๊ฒฐํ•ด๋ณด์ž๊ณ  ๋‹ค์งํ•˜๊ณ  nginx ์— SSL/HTTPS ํ”„๋กœํ† ์ฝœ์„ ๋‹ค์‹œ ํ™œ์„ฑํ™” ํ•˜์˜€๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ cloudflare์„ ํ—ค์ง‘๊ณ  ๋‹ค๋‹ˆ๋‹ค SSL/TLS Full (strict) ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์ด๋ฅผ ์“ฐ๋ฉด ์„œ๋ฒ„์˜ ์ธ์ฆ์„œ์™€ cloudflare์˜ proxy๋ฅผ ํ•จ๊ป˜ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

์„ธํŒ…์„ ์™„๋ฃŒํ•˜๊ณ  ์•ž์„œ ์†Œ๊ฐœํ•œ Always Use HTTPS ๋ฅผ ๋‹ค์‹œ ํ™œ์„ฑํ™” ํ•˜์˜€๋‹ค. ย ๋†€๋ž๊ฒŒ๋„ cloudflare์˜ SSL๊ณผ ์„œ๋ฒ„์˜ SSL์ด ๋™์‹œ์— ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์„œ๋ฒ„๊ฐ€ ๋‹ค์‹œ ์˜จ๋ผ์ธ ๋˜์—ˆ๋‹ค.


์—ญ์‹œ ๋…ธ๋ ฅํ•ด์„œ ์•ˆ๋˜๋Š” ๊ฑด ์—†๋‚˜๋ณด๋‹ค. ๋‚˜๋Š” 443 ํฌํŠธ ํ•˜๋‚˜๋งŒ์œผ๋กœ ๋ธ”๋กœ๊ทธ๋ฅผ ์ •์ƒ์ ์œผ๋กœ online ์‹œ์ผฐ๋‹ค. ISP์— ์ „ํ™”ํ•  ์ผ์ด ์‚ฌ๋ผ์ ธ ๊ธฐ๋ถ„์ด ์ข‹๋‹ค.