ToolHive로 MCP 서버 통신 대상 확인 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

누구와 MCP 서버가 통신하는지 확인하는 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

AI/ML 개발자, DevOps 엔지니어, 시스템 관리자

  • 난이도: 중급 이상 (네트워크 보안 및 컨테이너 기술 이해 필요)

핵심 요약

  • ToolHive의 네트워크 고립 기능을 통해 MCP 서버의 통신 대상을 정확히 제어하고 블록/허용 규칙을 실시간으로 강제 적용 가능
  • --isolate-network 플래그permission-profile.json 파일을 통해 허용 호스트/포트/프로토콜을 명시적으로 정의
  • squid 프록시 로그를 통해 접근 시도 내역을 실시간으로 감시 및 감사 가능

섹션별 세부 요약

1. 문제 상황: MCP 서버의 네트워크 통신 제어 필요성

  • MCP 서버가 비공개 데이터 유출, 악성 코드 주입, 내부 네트워크 침투 등 위험한 행위를 수행할 수 있음
  • 기존 컨테이너화는 보안을 강화하지만, 악의적 MCP 서버의 위협을 완전히 차단하지 못함

2. ToolHive의 네트워크 고립 기능

  • --isolate-network 플래그로 MCP 서버를 고립된 컨테이너에 배포
  • Layer 7 HTTP 프록시를 통해 허용 규칙을 실시간으로 적용 (예: stacklok.com 허용, anthropic.com 차단)
  • squid 로그에서 허용/차단 내역을 확인 가능 (예: CONNECT stacklok.com:443 허용, CONNECT www.anthropic.com:443 차단)

3. 권한 프로필 정의 방법

  • fetch-permissions.json 파일에서 허용 호스트/포트/프로토콜을 명시 (예: .acmecorp.com 서브도메인 허용)
  • thv run --isolate-network --permission-profile 명령어로 커스텀 규칙 적용
  • 내부 GitHub 호스팅 시 allow_host 값을 github.example.com로 변경 후 실행

4. 실무 적용 팁

  • 불확실한 허용 목록일 경우 --permission-profile none으로 시작 후 로그에서 차단 요청 확인
  • 감사 목적으로 insecure_allow_all: true 설정으로 모든 트래픽 로그 저장 가능 (현재는 일시적, 요청 시 지속적 저장 옵션 제공)

결론

  • ToolHive의 네트워크 고립 기능을 활용해 MCP 서버의 통신을 정확히 제어하고 실시간 감사 가능
  • --isolate-network 플래그permission-profile.json을 통해 보안 정책 강화
  • squid 로그를 통해 네트워크 활동 모니터링위험 요소 탐지 가능