소개
Nebula는 Slack Technologies에서 개발한 확장 가능한 오버레이 네트워킹 도구로, 성능, 단순성, 보안에 중점을 둡니다. 이 소프트웨어는 전 세계의 컴퓨터를 원활하게 연결하여 소규모 그룹부터 수만 대의 기기까지 지원합니다. Nebula는 인증서 기반의 피어 투 피어 네트워크를 구축하여 보안 그룹과 터널링 개념을 통합한 솔루션입니다. Windows, Linux, macOS, iOS, Android 등 다양한 플랫폼에서 실행 가능하며, Chocolatey 패키지 관리자를 통해 Windows에 설치할 수 있습니다.
상세정보
확장 가능한 네트워크 연결
Nebula는 소수의 컴퓨터부터 수만 대의 기기까지 연결할 수 있는 확장성을 제공합니다. 이는 전 세계 어디에 있는 기기라도 원활하게 통신할 수 있도록 해줍니다.
보안 통신
이 도구는 Noise Protocol Framework를 기반으로 한 상호 인증 피어 투 피어 네트워크를 사용합니다. 인증서를 통해 노드의 IP 주소, 이름, 그룹 멤버십을 주장하며, Elliptic-curve Diffie-Hellman (ECDH) 키 교환과 AES-256-GCM 암호화를 기본 설정으로 사용합니다.
사용자 정의 그룹 기반 트래픽 필터링
사용자 정의 그룹을 생성하여 노드 간 트래픽을 필터링할 수 있습니다. 이는 클라우드 보안 그룹과 유사한 표현력을 제공하여, 특정 그룹 간에만 통신을 허용하거나 차단하는 세부적인 네트워크 정책을 구현할 수 있게 합니다.
발견 노드 (Lighthouse) 지원
발견 노드(라이트하우스라고도 함)를 통해 방화벽이나 NAT 뒤에서 피어들이 서로를 찾아 연결할 수 있도록 도와줍니다. 라이트하우스는 변경되지 않는 IP 주소를 가져야 하며, UDP 홀 펀칭을 통해 연결을 설정하는 데 필수적입니다.
인증서 생성 및 네트워크 설정
Nebula 네트워크를 구성하기 위해서는 인증서 기관(CA)과 호스트 인증서가 필요합니다. 다음 단계는 기본적인 설정 절차를 보여줍니다:
- 인증서 기관 생성:
./nebula-cert ca -name “Myorganization, Inc”
이 명령은 ca.key와 ca.cert 파일을 생성합니다. ca.key는 가장 민감한 파일이므로 안전한 장소에 보관해야 합니다.
- 호스트 인증서 발급:
./nebula-cert sign -name “lighthouse1” -ip “192.168.100.1/24”
./nebula-cert sign -name “laptop” -ip “192.168.100.2/24” -groups “laptop,home,ssh”
각 호스트에 대해 이름, IP 주소, 그리고 선택적으로 그룹을 지정하여 인증서를 생성합니다.
- 설정 파일 준비:
GitHub 저장소에서 예제 설정 파일(config.yml)을 다운로드합니다. 라이트하우스 노드에서는 am_lighthouse: true를 설정해야 하며, 일반 호스트에서는 static_host_map에 라이트하우스를 정의해야 합니다.
- 파일 배포 및 실행:
각 호스트에 nebula 바이너리, config.yml, ca.crt, {host}.crt, {host}.key 파일을 복사합니다. 단, ca.key는 절대 개별 노드에 복사해서는 안 됩니다.
그런 다음 다음 명령으로 Nebula를 실행합니다:
./nebula -config /path/to/config.yml
이런 경우에 유용합니다
여러 지사에 분산된 사무실을 가진 기업이 내부 서비스(예: 파일 서버, 데이터베이스)에 보안적으로 접근해야 할 때, Nebula는 복잡한 VPN 인프라 없이도 안전한 사설 네트워크를 구축하는 데 유용합니다. 또한, 원격으로 작업하는 개발자가 회사 내 개발 서버에 안전하게 연결하거나, 클라우드 환경과 온프레미스 인프라 간의 보안된 통신 채널을 필요로 하는 경우에도 적합합니다.
지원 환경·시스템 요구사항
Nebula는 Windows, Linux (64비트, 32비트, ARM 등), macOS, FreeBSD, iOS, Android에서 실행됩니다. Windows용 바이너리는 Chocolatey를 통해 제공되며, 64비트 시스템을 지원합니다. 실행에는 관리자 권한이 필요할 수 있으며, UDP 포트 4242를 통해 라이트하우스와의 통신이 가능해야 합니다.
최신 버전·업데이트
현재 버전은 1.9.6이며, Chocolatey 패키지 저장소를 통해 최신 버전으로 업데이트할 수 있습니다. 업데이트는 다음 명령으로 수행할 수 있습니다:
choco upgrade nebula
이 명령은 설치된 Nebula를 최신 버전으로 업그레이드합니다.
제한 사항·확인 사항
인증서 기관(CA)의 기본 유효 기간은 1년이며, 만료 전에 갱신하지 않으면 인증서가 더 이상 유효하지 않습니다. CA 키(ca.key)는 절대 개별 노드에 복사해서는 안 되며, 유출 시 전체 네트워크의 보안이 위협받을 수 있습니다. 또한, 라이트하우스는 변경되지 않는 공인 IP 주소를 가져야 하며, UDP 포트 4242가 방화벽에서 허용되어야 정상적인 피어 발견이 가능합니다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


