SSRF 방지
n8n v2.29SSRF(Server-Side Request Forgery, 서버 측 요청 위조) 공격은 워크플로 노드를 악용해 접근이 허용되지 않아야 할 내부 네트워크 리소스, 클라우드 메타데이터 엔드포인트, 또는 localhost 서비스로 요청을 보냅니다.
2.12.0부터 지원
SSRF(Server-Side Request Forgery, 서버 측 요청 위조) 공격은 워크플로 노드를 악용해 접근이 허용되지 않아야 할 내부 네트워크 리소스, 클라우드 메타데이터 엔드포인트, 또는 localhost 서비스로 요청을 보냅니다.
SSRF 방지 기능은 애플리케이션 수준의 추가 방어 수단입니다. 인프라에는 항상 네트워크 수준 보호(방화벽, 보안 그룹, 네트워크 정책)를 1차 방어선으로 구성해야 합니다. n8n의 SSRF 방지 기능은 이러한 제어 위에 심층 방어(defense-in-depth)를 추가하는 역할을 합니다.
SSRF 방지 활성화#
N8N_SSRF_PROTECTION_ENABLED=true
이 옵션을 활성화하면 n8n은 사용자가 제어할 수 있는 노드(예: HTTP Request node)에서 발생하는 모든 아웃바운드 HTTP 요청을 구성된 차단 범위 및 허용 범위와 대조하여 검증합니다. 여기에는 리다이렉트 대상과 DNS 확인(resolution)도 포함되며, 이를 통해 DNS 리바인딩(DNS rebinding)과 같은 우회 기법을 방지합니다.
기본 차단 범위#
SSRF 방지가 활성화되면 다음 IP 범위가 기본적으로 차단됩니다.
| 범위 | 설명 |
|---|---|
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 |
RFC 1918 사설 주소 |
127.0.0.0/8, ::1/128 |
루프백(Loopback) |
169.254.0.0/16, fe80::/10 |
링크 로컬(Link-local) |
fc00::/7, fd00::/8 |
IPv6 유니크 로컬(Unique local) |
0.0.0.0/8, 192.0.0.0/24, 192.0.2.0/24, 198.18.0.0/15, 198.51.100.0/24, 203.0.113.0/24 |
예약됨/특수 목적 |
N8N_SSRF_BLOCKED_IP_RANGES=default,100.0.0.0/8을 사용하면 이 목록을 확장할 수 있습니다.
내부 서비스 접근 허용#
워크플로에서 정당한 내부 서비스에 접근해야 하는 경우 허용 목록(allowlist)을 사용하세요. 허용 목록은 차단 목록보다 우선하며, 다음 순서를 따릅니다: 호스트명 허용 목록 > IP 허용 목록 > IP 차단 목록.
호스트명 패턴으로 허용(*.n8n.internal과 같은 와일드카드 지원):
N8N_SSRF_ALLOWED_HOSTNAMES=*.n8n.internal,*.company.local
IP 범위로 허용:
N8N_SSRF_ALLOWED_IP_RANGES=10.0.1.0/24,10.0.2.50/32
자신의 통제 범위 내에 있는 호스트명(내부 DNS 영역)만 허용 목록에 추가하세요. 호스트명 허용 목록은 IP 차단 목록 검사를 우회합니다.
관련 리소스#
구성 옵션의 전체 목록은 SSRF 방지 환경 변수를 참고하세요.
환경 변수 설정에 대한 자세한 내용은 구성 방법을 참고하세요.