요점: 로컬 수신 포트와 라우터 WAN 포트 매핑을 먼저 구분하세요
2025년 사례는 라우터에서 UPnP를 비활성화하여 해결되었습니다. 이는 의심스러운 항목이 단순히 “ZimaOS 내부에서 무작위로 수신 중인 포트”가 아니라 라우터의 자동 NAT 매핑이었다는 뜻입니다. 이 둘은 서로 다른 보안 영역입니다. NAS는 여러 LAN 포트에서 정상적으로 수신할 수 있으며, 그중 어느 포트도 공개 인터넷에 노출되지 않을 수 있습니다.
ZimaOS가 실제로 어떤 포트에서 수신 중인지 확인하세요
ss -lntup
docker ps --format 'table {.Names} {.Ports}'
첫 번째 명령은 호스트에서 수신 중인 포트를 보여 줍니다. Docker 출력은 어떤 컨테이너 포트가 호스트에 게시되어 있는지 보여 줍니다. 라우터의 WAN/UPnP 표에는 없고 여기에는 존재하는 포트라면, 자동으로 공개 인터넷에 노출된 것은 아닙니다.
ZimaOS 앱 포트 문서에서는 설치된 각 서비스가 자체 수신 포트를 추가하는 이유를 설명합니다.
그다음 라우터의 UPnP 포트 매핑 표를 확인하세요
UPnP IGD를 사용하면 LAN의 장치나 애플리케이션이 자동으로 NAT 매핑을 요청할 수 있습니다. 라우터가 이를 허용하면 서비스가 수동 포트 전달 규칙 없이 외부 포트를 만들 수 있습니다. 2025년 해당 사용자는 라우터의 UPnP를 비활성화했고 자동으로 생성되던 포트 개방이 중단되었습니다.
IETF의 UPnP 포트 매핑 문서에서는 UPnP IGD 포트 매핑과 관련 보안 고려 사항을 설명합니다.
현재 ZimaOS에 내장된 원격 액세스에는 수동 포트 전달이 필요하지 않습니다
현재 ZimaOS 원격 액세스는 암호화된 피어 투 피어/릴레이 경로를 생성하며 라우터 포트 전달이 필요하지 않다고 명시합니다. 따라서 일반적인 ZimaClient 원격 액세스를 사용하려는 목적만으로 UPnP를 활성화할 필요는 없습니다.
ZimaOS 원격 액세스 문서에서 현재 내장된 연결 경로를 확인할 수 있습니다.
일부 셀프 호스팅 앱에는 여전히 명시적인 인터넷 노출이 필요합니다
WireGuard 서버, 게임 서버 및 기타 인바운드 서비스에는 외부에서 연결할 수 있는 UDP/TCP 포트가 필요할 수 있습니다. 이러한 경우 모든 LAN 애플리케이션이 임의의 UPnP 매핑을 요청하도록 허용하는 것보다, 의도적으로 수동 포워딩을 설정하는 편이 감사하기 쉽습니다. 서비스, 내부 호스트, 내부 포트, 외부 포트, 인증/TLS 보호 여부를 문서화하세요.
Tailscale 원격 액세스는 많은 관리 용도에 사용할 수 있는 대안입니다.
모든 공개 매핑을 명시적으로 관리하려면 UPnP를 비활성화하세요
필요한 소수의 포트 전달만 직접 생성할 수 있다면 라우터에서 UPnP를 끄는 것은 합리적인 보안 정책입니다. 비활성화한 후에는 오래된 매핑을 제거하거나 라우터를 재부팅한 다음, LAN 외부에서 공인 IP를 스캔하여 결과를 확인하세요. NAT 루프백 동작으로 인해 잘못 판단할 수 있으므로 내부에서만 공개 노출 여부를 테스트하지 마세요.
외부 스캔으로 WAN 노출을 확인하세요
가정용 네트워크 외부의 장치에서 열려 있다고 생각하는 특정 공개 포트를 테스트하세요. Nmap의 Nmap 포트 상태 문서에서는 라우터 UI에 표시되는 항목과 인터넷에서 실제로 연결할 수 있는 서비스가 항상 같은 것은 아닌 이유를 설명합니다.
ZimaOS 호스트의 포트를 무작정 차단하지 마세요
프로세스를 확인하지 않고 낯선 포트를 차단하면 Files, SMB, 앱 웹 인터페이스, 검색 또는 원격 액세스가 작동하지 않을 수 있습니다. 먼저 포트를 프로세스/컨테이너에 연결하고, 해당 서비스가 필요한지 판단한 다음, 적절하다면 서비스를 중지하거나 게시를 해제하세요.
ZimaOS HTTPS 프록시는 여러 웹 애플리케이션에 단일 감사 가능 인그레스 계층이 필요할 때 유용합니다.
간단한 포트 감사 절차
- 라우터의 수동 및 UPnP 매핑을 내보내거나 스크린샷으로 저장합니다.
- ZimaOS에서
ss -lntup을 실행합니다. docker ps를 실행하고 수신 포트를 앱에 연결합니다.- 자동 WAN 매핑을 원하지 않는다면 UPnP를 비활성화합니다.
- LAN 외부에서 다시 테스트합니다.
- 담당자와 목적이 명확하게 문서화된 노출만 유지합니다.
FAQ
라우터에 ZimaOS가 포트를 여는 것으로 표시되는 이유는 무엇인가요?
항목이 UPnP 표에 있다면 애플리케이션이나 서비스가 자동 NAT 매핑을 요청하고 있을 수 있습니다. 모든 ZimaOS 수신 포트가 공개되어 있다고 가정하기 전에 해당 프로세스를 확인하세요.
UPnP를 비활성화하면 ZimaClient 원격 액세스가 중단되나요?
현재 ZimaOS 문서에 따르면 내장 원격 액세스에는 수동 포트 전달이 필요하지 않으므로, 일반적인 ZimaClient 원격 액세스는 해당 목적으로 UPnP에 의존하지 않아야 합니다.
Docker 게시 포트는 인터넷에 노출되나요?
Docker 바인딩 설정에 따라 호스트 인터페이스에 노출되지만, WAN에서 연결할 수 있는지는 여전히 라우팅, 방화벽 및 NAT 구성에 따라 달라집니다.
알 수 없는 포트를 모두 닫아야 하나요?
아니요. 먼저 해당 포트를 소유한 프로세스나 컨테이너를 확인하세요. 인프라 포트를 무작정 닫으면 정상적인 NAS 기능이 중단될 수 있습니다.
수동 포트 전달이 UPnP보다 안전한가요?
각 매핑을 의도적으로 설정하고 문서화할 수 있으므로 감사하기는 더 쉽습니다. 하지만 보안은 노출된 서비스, 인증, 패치 상태 및 방화벽 규칙에 따라 달라집니다.
