반응형
회사 내부에서 n8n을 쓰다 보면 “혹시 n8n에서 인터넷으로 데이터가 빠져나가면 어떡하지?” 하는 걱정이 생깁니다.
저희도 똑같은 고민을 했고, 결국 n8n은 인트라넷만 쓰고, 인터넷은 절대 못 쓰게 만드는 방법을 찾았습니다.
아래처럼 하면 됩니다. ✨
1. 준비
- n8n은 Docker + docker-compose로 돌리고 있다고 가정합니다.
- 서버는 회사 내부망에 연결돼 있습니다.
※ 여기서는 예시로 192.168.100.0/24 대역을 사용합니다. 👉 실제 적용 시에는 각자 회사 내부망 대역에 맞춰 수정하세요.
2. 방화벽 규칙 세팅 (진짜 핵심)
리눅스 서버에서 아래 명령어를 실행합니다.
(관리자 권한 필요 → sudo su 하거나 각 줄마다 sudo 붙이기)
# (1) DOCKER-USER 체인을 싹 비웁니다. iptables -F DOCKER-USER # (2) 기존 연결은 그대로 허용 iptables -A DOCKER-USER -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # (3) 도커 컨테이너 → 회사 내부망(예: 192.168.100.0/24)만 허용 iptables -A DOCKER-USER -i br+ -d 192.168.100.0/24 -j ACCEPT iptables -A DOCKER-USER -i docker0 -d 192.168.100.0/24 -j ACCEPT # (4) 나머지 전부 차단 (즉, 인터넷은 막힘) iptables -A DOCKER-USER -i br+ -j DROP iptables -A DOCKER-USER -i docker0 -j DROP
👉 이렇게 하면 n8n 컨테이너는 인트라넷만 통신 가능, 인터넷은 완전히 차단됩니다.
3. 확인하기
① 내부망 테스트 (통과해야 함)
docker exec -it n8n ping -c 3 192.168.100.10 # 내부 서버 IP (각자 환경에 맞게 수정)
② 외부망 테스트 (막혀야 함)
docker exec -it n8n sh -lc 'wget -qO- --timeout=5 http://1.1.1.1; echo "exit code=$?"'
👉 download timed out 같은 메시지가 나오면 성공입니다.
즉, 인터넷은 막혔다는 뜻!
4. 영구 저장하기
재부팅해도 규칙이 유지되도록 하려면:
apt-get update apt-get install -y netfilter-persistent netfilter-persistent save
5. 추가 보안 설정 (n8n 환경변수)
docker-compose.yml 안에 아래 환경변수를 추가하면 더 안전합니다.
environment: - N8N_DIAGNOSTICS_ENABLED=false # 텔레메트리 끄기 - N8N_VERSION_NOTIFICATIONS_ENABLED=false - N8N_TEMPLATES_ENABLED=false - N8N_COMMUNITY_PACKAGES_ENABLED=false # 커스텀 노드 설치 금지 - NODES_EXCLUDE=["n8n-nodes-base.httpRequest","n8n-nodes-base.smtp","n8n-nodes-base.slack","n8n-nodes-base.executeCommand","n8n-nodes-base.code"] - N8N_SECURE_COOKIE=false # (테스트용, 운영은 HTTPS 권장)
6. 결론
이렇게 세팅하면:
- ✅ n8n은 회사 내부 시스템만 접근 가능
- ❌ 외부 인터넷으로는 절대 못 나감 (데이터 유출 방지)
- 👮 추가로 n8n 자체의 위험한 노드나 커스텀 노드도 막을 수 있음
✨ 한 줄 요약
“DOCKER-USER 체인에 인트라넷만 허용하고 나머지 DROP” → 이걸로 n8n은 내부 전용 서비스가 된다!
반응형
'Deep Learning > NLP' 카테고리의 다른 글
🔥 BM25란 무엇인가? (TF-IDF와의 비교 및 이후 발전) (0) | 2025.04.28 |
---|---|
RAG의 종류와 search 방법, RAG를 도와주는 여러가지 기법들 (ft.aws workshop) (0) | 2025.01.17 |
RAFT(Retrieval Augemented Fine tuning)에서 어떤 식으로 Fine tuning을 해야할까요? (0) | 2024.07.17 |
RAG의 새로운 대안 .. RAFT(RAG 할바에야 RAFT!) (3) | 2024.07.16 |
RAG란? 그리고 Langchain 을 이용한 구현까지 (0) | 2024.01.23 |