SERVER

나비 메일서버

올인원 메일 서버, 가볍고 안전하게

C 기반 MTA의 메모리 취약점을 원천 차단하는 차세대 메일 서버입니다. SMTP, IMAP4rev2, POP3, JMAP을 단일 패키지로 제공하며, SPF/DKIM/DMARC 인증과 MySQL 가상 메일박스를 내장했습니다.

4종

프로토콜

30+

RFC 준수

19종

실행 도구

36MB

메모리 사용

nabi-smtpd
$ sudo apt install nabimail
Setting up nabimail (1.0.0) ...
NabiMail installed successfully.

$ echo "mail.example.com" > /var/nabimail/control/me
$ systemctl start nabi-smtpd nabi-imapd

  nabi-smtpd  ● active  port 25/465/587
  nabi-imapd  ● active  port 143/993
  nabi-pop3d  ● active  port 110/995
  nabi-send   ● active  queue scheduler
Total RSS: 36 MB (5 services)
XYZREVEAL

왜 나비 메일서버인가요?

Postfix+Dovecot+OpenDKIM+SpamAssassin — 기존 메일 인프라는 6개 이상의 소프트웨어를 조합해야 합니다. 나비 메일서버는 이 모든 것을 하나의 바이너리 세트로 통합했습니다.

shield

메모리 안전

Rust 소유권 시스템으로 버퍼 오버플로우, use-after-free 등 C 기반 MTA의 CVE 취약점을 구조적으로 원천 차단합니다.

search_check

감사 가능한 규모

약 12,500줄의 소스코드로 전체 메일 스택을 구성합니다. 한 사람이 완전히 이해하고 보안 감사할 수 있는 규모입니다.

bolt

고성능 비동기 엔진

Tokio 기반 async I/O로 프로세스 fork 없이 수천 개 동시 연결을 처리합니다. SMTP 40 msg/sec, IMAP 87 sess/sec.

package_2

올인원 패키지

SMTP+IMAP+POP3+JMAP+DKIM+SPF+DMARC+웹메일을 하나의 패키지로 제공합니다. 별도 소프트웨어 조합이 불필요합니다.

verified_user

이메일 인증 내장

SPF, DKIM 서명/검증, DMARC, ARC 체인 검증을 내장합니다. 외부 필터(OpenDKIM, opendmarc) 설치가 필요 없습니다.

database

4중 저장 백엔드

Maildir, DB, DB+폴백, 동시저장 중 선택 가능합니다. DB 모드에서는 MIME 분해 저장으로 본문/첨부를 분리해 성능을 극대화합니다.

lan

클러스터링 내장

standalone/primary/replica 3모드 클러스터링을 내장합니다. MySQL 분산 잠금으로 큐 중복 배달을 방지합니다.

lock

TLS 기본 탑재

rustls 기반 STARTTLS/implicit TLS를 기본 제공합니다. TLSv1.3, MTA-STS, TLS-RPT까지 내장하여 전송 구간을 완전 보호합니다.

구성 요소

19개의 전문화된 바이너리가 하나의 패키지에 포함됩니다. 각 바이너리는 독립적으로 동작하며, systemd로 관리됩니다.

mail

SMTP 서버

nabi-smtpd, nabi-submission

포트 25/465/587에서 메일 수신 및 제출을 처리합니다. STARTTLS, implicit TLS, SMTP AUTH(PLAIN/LOGIN/SCRAM-SHA-256), PIPELINING, CHUNKING(BDAT), 8BITMIME, SMTPUTF8을 지원합니다.

RFC 5321 RFC 6409 STARTTLS AUTH
inbox

IMAP4rev2 서버

nabi-imapd

RFC 9051 IMAP4rev2를 완전 구현합니다. IDLE(실시간 알림), MOVE, CONDSTORE, NAMESPACE, SPECIAL-USE, ESEARCH, UTF8=ACCEPT 등 16개 확장을 내장합니다.

RFC 9051 IDLE MOVE CONDSTORE
download

POP3 & JMAP

nabi-pop3d, nabi-jmapd

POP3(RFC 1939) + STLS로 레거시 클라이언트를 지원합니다. JMAP(RFC 8620/8621)은 JSON 기반 현대적 메일 API로 웹메일과의 통합에 최적화되어 있습니다.

RFC 1939 RFC 8620 RFC 8621
route

큐 & 배달 엔진

nabi-send, nabi-local, nabi-remote + 8종

flock 파일 잠금 + 2단계 원자적 삭제로 큐 안정성을 보장합니다. 로컬 배달(Maildir/DB), 원격 배달(SMTP+TLS), DSN 바운스 생성, 큐 정리 타이머를 포함합니다.

flock DSN MTA-STS TLS-RPT
architecture

모듈 분리 아키텍처

각 바이너리는 독립 프로세스로 실행되어 한 컴포넌트의 장애가 다른 서비스에 영향을 주지 않습니다. nabi-smtpd가 재시작되어도 IMAP 세션은 유지되고, 큐 배달은 중단 없이 계속됩니다. 파일당 400줄 이하의 코드 제한으로 각 모듈의 유지보수성을 보장합니다.

주요 기능

4종 프로토콜, 30+ RFC 표준, 12가지 보안 기능을 단일 패키지에 내장합니다.

mail SMTP (9개 RFC)

  • • SMTP / ESMTP (RFC 5321)
  • • STARTTLS (RFC 3207)
  • • AUTH: PLAIN, LOGIN, SCRAM-SHA-256
  • • Message Submission (RFC 6409, 포트 587/465)
  • • SIZE, 8BITMIME, PIPELINING
  • • SMTPUTF8 국제화 (RFC 6531)
  • • CHUNKING / BDAT (RFC 3030)

inbox IMAP4rev2 (16개 확장)

  • • IMAP4rev2 (RFC 9051) + rev1 호환
  • • IDLE 실시간 알림 (RFC 2177)
  • • MOVE, UNSELECT, NAMESPACE
  • • CONDSTORE 조건부 저장 (RFC 7162)
  • • SPECIAL-USE 특수 폴더 (RFC 6154)
  • • ESEARCH 확장 검색 (RFC 4731)
  • • UTF8=ACCEPT, SASL-IR, LITERAL-

security 이메일 인증 (내장)

  • • SPF 검증 (RFC 7208, 매크로 확장)
  • • DKIM 서명/검증 (RFC 6376, relaxed/simple)
  • • DMARC 검증 + 집계 보고서 (RFC 7489)
  • • ARC 체인 검증 (RFC 8617)
  • • MTA-STS TLS 다운그레이드 방지 (RFC 8461)
  • • TLS-RPT 실패 보고 (RFC 8460)
  • • DSN 배달 상태 통지 (RFC 3461-3464)

storage 저장소 (4모드)

  • • Maildir 파일 기반 저장
  • • MySQL DB 저장 (MIME 분해)
  • • DB+폴백 (전환 기간용)
  • • 동시저장 (이중 백업)
  • • 본문/첨부 분리 저장
  • • 메일 필터 규칙 자동 적용
  • • 사용자 폴더 관리 (CRUD)

lan 클러스터 (3모드)

  • • Standalone 단일 서버
  • • Primary 큐 처리 + 분산 잠금
  • • Replica 읽기 전용 (IMAP/POP3)
  • • MySQL queue_claims 분산 잠금
  • • 자동 노드 식별

build 보안 운영

  • • 권한 분리 (root 즉시 해제)
  • • IP 속도 제한 + 동시 접속 제한
  • • AUTH 무차별 대입 방어
  • • 헤더 주입 / 경로 탐색 방지
  • • 상수 시간 비밀번호 비교
  • • 원자적 큐 상태 저장

12,500

Rust 소스코드 (줄)

84

자동화 테스트

19

바이너리

36MB

메모리 (idle)

보안 아키텍처 심층 분석

이메일은 기업의 가장 중요한 통신 수단입니다. 나비 메일서버는 12가지 보안 레이어로 메일 인프라를 보호합니다.

01

컴파일 타임 메모리 안전

Rust의 소유권 시스템이 컴파일 시점에 메모리 오류를 차단합니다. 버퍼 오버플로우, use-after-free, 데이터 레이스가 구조적으로 불가능합니다.

CVE-2019-10149 차단 Buffer Overflow 불가
02

이메일 인증 체인

SPF → DKIM → DMARC → ARC 순서로 수신 메일을 검증합니다. 발신 시 DKIM 서명을 자동 적용합니다. 외부 필터 설치 없이 모든 인증이 내장되어 있습니다.

SPF DKIM DMARC ARC
03

전송 구간 암호화

rustls 기반 TLSv1.3을 모든 프로토콜에 적용합니다. STARTTLS, implicit TLS를 지원하며, MTA-STS로 TLS 다운그레이드 공격을 방지합니다.

TLSv1.3 MTA-STS TLS-RPT
04

권한 분리 및 격리

포트 바인딩 후 root 권한을 즉시 해제하고 재획득 불가를 검증합니다. systemd 보안 강화(ProtectSystem, PrivateTmp)로 프로세스를 격리합니다.

NoNewPrivileges ProtectSystem
05

무차별 대입 방어

IP당 접속 빈도 제한, 동시 접속 제한, AUTH 5회 실패 시 연결 종료로 무차별 대입 공격을 차단합니다. 화이트리스트로 신뢰 IP를 면제할 수 있습니다.

Rate Limit Max Connections
06

주입 공격 방지

헤더 주입(CR/LF/NUL 제거), 경로 탐색(canonicalize 검증), 명령 주입(셸 메타문자 거부), NULL 바이트 거부, Slowloris 방어(120초 타임아웃)를 적용합니다.

Header Injection 차단 Path Traversal 차단
0

Rust 기반 메모리 취약점: 0건

Exim은 2019년 CVE-2019-10149(원격 코드 실행)로 수백만 서버가 피해를 입었습니다. Postfix도 다수의 메모리 관련 CVE가 보고되었습니다. Rust의 컴파일 타임 검증은 이 카테고리의 취약점을 구조적으로 제거합니다.

경쟁 제품 비교

Postfix, Exim, Stalwart 등 주요 메일 서버와의 상세 비교입니다.

항목 NabiMail Postfix+Dovecot Exim+Cyrus Stalwart
기본 정보
언어 Rust C + C C + C Rust
코드량 ~12,500줄 ~500K줄 (합계) ~400K줄 ~80K줄
패키지 수 1개 (올인원) 2개 이상 2개 이상 1개
첫 출시 2026 1998/2002 1995/1994 2022
프로토콜
SMTP O O O O
IMAP rev2 (내장) rev1 (Dovecot) rev1 (Cyrus) rev2
POP3 O (내장) O (Dovecot) O (Cyrus) O
JMAP O X X O
보안
메모리 안전 컴파일러 보장 수동 관리 수동 관리 컴파일러 보장
SPF/DKIM/DMARC 내장 외부 필터 3개 외부 필터 내장
ARC / MTA-STS 내장 외부 X O
TLS rustls (TLSv1.3) OpenSSL OpenSSL/GnuTLS rustls
운영
DB 메일 저장 4모드 (MIME 분해) 플러그인 X 내장
클러스터 3모드 내장 복잡 복잡 (Murder) O
메모리 (idle) ~36MB ~200MB+ ~300MB+ ~150MB
설치 복잡도 매우 낮음 높음 매우 높음 낮음

vs Postfix+Dovecot

6개 소프트웨어 조합을 1개로 통합. 메모리 사용량 5배 이상 절감 (200MB+ → 36MB). 코드 감사 범위 40배 축소.

vs Exim

Exim의 CVE-2019-10149(원격 코드 실행) 같은 C 메모리 취약점이 Rust에서는 구조적으로 불가능합니다. IMAP/POP3 별도 설치 불필요.

vs Stalwart

동일한 Rust 기반이지만 코드량 6배 적음 (80K → 12.5K). 4중 저장 백엔드와 MIME 분해 저장으로 DB 최적화에 특화.

이런 환경에 적합합니다

보안이 중요한 공공기관부터 비용 효율을 원하는 중소기업까지, 다양한 환경에서 활용됩니다.

policy

보안 중시 기관

금융, 의료, 법률 기관 등 엄격한 보안 감사가 필수인 환경. 12,500줄의 감사 가능한 코드와 Rust 메모리 안전성으로 CC인증/GS인증 대응에 유리합니다.

apartment

공공기관 / 국방

데이터 주권이 필수인 폐쇄망 환경. 외부 클라우드 의존 없이 자체 서버에서 100% 운영하며, 국산 솔루션으로 조달 적합성을 충족합니다.

domain

중소기업 자체 메일

Gmail/M365 월 구독 비용 없이 자체 메일 서버를 운영하고 싶은 기업. 올인원 패키지로 복잡한 소프트웨어 조합 불필요, 설치 10분 완료.

cloud

클라우드 / VPS

제한된 메모리 환경에서도 36MB로 전체 메일 서비스를 운영합니다. 1GB RAM VPS에서도 여유 있게 동작하며, .deb 패키지로 간편 설치.

swap_horiz

레거시 MTA 마이그레이션

Postfix/Sendmail/qmail에서 전환하고 싶은 환경. DB+폴백 모드로 기존 Maildir 데이터와 공존하면서 점진적으로 마이그레이션 가능합니다.

school

교육 / 연구 기관

메일 프로토콜(SMTP, IMAP) 교육에 최적. 12,500줄의 읽기 쉬운 Rust 코드로 실제 프로덕션급 메일 서버의 내부를 학습할 수 있습니다.

기술 사양

나비 메일서버의 상세 기술 스펙입니다.

언어 Rust (Edition 2021)
런타임 Tokio async
TLS rustls (TLSv1.3)
데이터베이스 MySQL 8.0+ / MariaDB
소스 코드 ~12,500줄 (84 tests)
바이너리 19개
프로토콜 SMTP, IMAP4rev2, POP3, JMAP
RFC 준수 30+ RFCs
저장 모드 4가지 (Maildir/DB/폴백/동시)
클러스터 3모드 (standalone/primary/replica)
패키징 .deb (Ubuntu/Debian)

computer 시스템 요구사항

OSUbuntu 20.04+ / Debian 12+
CPUx86_64 (1 core 이상)
메모리512MB 이상 (idle 36MB)
디스크1GB + 메일 데이터
DBMySQL 8.0+ (가상 메일박스 시)

speed 성능 벤치마크

SMTP 발송40 msg/sec
IMAP 세션87 sess/sec
메모리 (idle)36 MB (5 서비스)
메모리 (부하)~50 MB
큐 배달100% 배달율

terminal 설치 (3단계)

# 1. 설치

sudo dpkg -i nabimail_1.0.0_amd64.deb

# 2. 설정

echo "mail.example.com" > /var/nabimail/control/me

echo "example.com" > /var/nabimail/control/locals

# 3. 시작

systemctl start nabi-smtpd nabi-imapd nabi-pop3d

description 포함 문서

  • check 설치 가이드 (README)
  • check 운영 매뉴얼 (OPERATIONS.md)
  • check DNS 설정 가이드
  • check TLS/DKIM 설정 가이드
  • check 트러블슈팅 가이드
  • check API 레퍼런스 (JMAP)

나비 메일서버 도입 상담

기술 검토를 위한 문서 제공, 데모 설치, 맞춤 구축 상담이 가능합니다. 보안 감사용 소스 코드 열람도 NDA 하에 제공합니다.