From dbc0e503b848955730a6773ae35c1d197df9a4d6 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Tue, 3 Mar 2026 10:55:44 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EA=B8=B0=EB=A1=9D=2051123=20UFW=20?= =?UTF-8?q?=EC=99=B8=EB=B6=80=20=ED=8F=AC=ED=8A=B8=20=EC=B0=A8=EB=8B=A8=20?= =?UTF-8?q?=ED=95=98=EB=93=9C=EB=8B=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...51123_ufw_외부포트_차단_하드닝.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 journey/troubleshooting/2026-03-03_51123_ufw_외부포트_차단_하드닝.md diff --git a/journey/troubleshooting/2026-03-03_51123_ufw_외부포트_차단_하드닝.md b/journey/troubleshooting/2026-03-03_51123_ufw_외부포트_차단_하드닝.md new file mode 100644 index 0000000..ac5b3b1 --- /dev/null +++ b/journey/troubleshooting/2026-03-03_51123_ufw_외부포트_차단_하드닝.md @@ -0,0 +1,49 @@ +# 51123 서버 UFW 외부 포트 차단 하드닝 + +## 발생 일시 +2026-03-03 10:43~10:53 KST + +## 배경 +외부 공개 포트 점검 중, 운영 원칙(외부는 80/443 + 관리 SSH만 공개) 대비 과다 노출이 확인됨. + +## 확인된 원인 +- UFW에서 아래 포트가 `Anywhere`/`Anywhere (v6)`로 허용되어 있었음. + - `5432/tcp` (PostgreSQL) + - `3000/tcp` (Gitea 직접 포트) + - `7474/tcp` (Neo4j HTTP) +- 이 상태는 도메인/nginx 경유가 아닌 직접 포트 접근 경로를 열어두는 구성임. + +## 조치 내용 +실서버(51123)에서 아래 명령으로 공개 허용 규칙 제거: + +```bash +sudo ufw --force delete allow 5432/tcp +sudo ufw --force delete allow 3000/tcp +sudo ufw --force delete allow 7474/tcp +``` + +## 검증 결과 +조치 직후 실시간 검증: + +- 도메인 응답 + - `https://ro-being.com` → `HTTP/2 200` + - `https://git.ro-being.com` → `HTTP/2 200` + - `https://auth.ro-being.com` → `HTTP/2 404` (기존 동작 동일) +- 내부 서비스 헬스 + - `http://127.0.0.1:9000/health` → `200` + - `http://127.0.0.1:8000/health` → `200` +- UFW 규칙 + - `5432/3000/7474`의 `Anywhere`, `Anywhere (v6)` 허용 규칙 삭제 확인 + +## 영향도 +- 사용자 도메인 경유 트래픽 영향 없음 +- `git.ro-being.com` 기반 Gitea 사용 영향 없음 +- 직접 포트 우회 접근 경로만 차단됨 + +## 현재 공개 정책(2026-03-03 기준) +- 외부 공개 유지: `80/tcp`, `443/tcp`, `51123/tcp(관리 SSH)` +- 내부/제한 네트워크 허용: `7687`, `7474(172.17.0.0/16)` + +## 후속 권장 +- Docker 퍼블리시 포트(`8000/8100/8200/9000/9200/9600`)의 외부 노출 축소(가능한 `127.0.0.1` 또는 내부 네트워크만 사용) +- PostgreSQL `listen_addresses`, `pg_hba.conf`를 내부 대역 기반으로 추가 제한