나비 메일서버
올인원 메일 서버, 가볍고 안전하게
C 기반 MTA의 메모리 취약점을 원천 차단하는 차세대 메일 서버입니다. SMTP, IMAP4rev2, POP3, JMAP을 단일 패키지로 제공하며, SPF/DKIM/DMARC 인증과 MySQL 가상 메일박스를 내장했습니다.
4종
프로토콜
30+
RFC 준수
19종
실행 도구
36MB
메모리 사용
$ 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)
왜 나비 메일서버인가요?
Postfix+Dovecot+OpenDKIM+SpamAssassin — 기존 메일 인프라는 6개 이상의 소프트웨어를 조합해야 합니다. 나비 메일서버는 이 모든 것을 하나의 바이너리 세트로 통합했습니다.
메모리 안전
Rust 소유권 시스템으로 버퍼 오버플로우, use-after-free 등 C 기반 MTA의 CVE 취약점을 구조적으로 원천 차단합니다.
감사 가능한 규모
약 12,500줄의 소스코드로 전체 메일 스택을 구성합니다. 한 사람이 완전히 이해하고 보안 감사할 수 있는 규모입니다.
고성능 비동기 엔진
Tokio 기반 async I/O로 프로세스 fork 없이 수천 개 동시 연결을 처리합니다. SMTP 40 msg/sec, IMAP 87 sess/sec.
올인원 패키지
SMTP+IMAP+POP3+JMAP+DKIM+SPF+DMARC+웹메일을 하나의 패키지로 제공합니다. 별도 소프트웨어 조합이 불필요합니다.
이메일 인증 내장
SPF, DKIM 서명/검증, DMARC, ARC 체인 검증을 내장합니다. 외부 필터(OpenDKIM, opendmarc) 설치가 필요 없습니다.
4중 저장 백엔드
Maildir, DB, DB+폴백, 동시저장 중 선택 가능합니다. DB 모드에서는 MIME 분해 저장으로 본문/첨부를 분리해 성능을 극대화합니다.
클러스터링 내장
standalone/primary/replica 3모드 클러스터링을 내장합니다. MySQL 분산 잠금으로 큐 중복 배달을 방지합니다.
TLS 기본 탑재
rustls 기반 STARTTLS/implicit TLS를 기본 제공합니다. TLSv1.3, MTA-STS, TLS-RPT까지 내장하여 전송 구간을 완전 보호합니다.
구성 요소
19개의 전문화된 바이너리가 하나의 패키지에 포함됩니다. 각 바이너리는 독립적으로 동작하며, systemd로 관리됩니다.
SMTP 서버
nabi-smtpd, nabi-submission
포트 25/465/587에서 메일 수신 및 제출을 처리합니다. STARTTLS, implicit TLS, SMTP AUTH(PLAIN/LOGIN/SCRAM-SHA-256), PIPELINING, CHUNKING(BDAT), 8BITMIME, SMTPUTF8을 지원합니다.
IMAP4rev2 서버
nabi-imapd
RFC 9051 IMAP4rev2를 완전 구현합니다. IDLE(실시간 알림), MOVE, CONDSTORE, NAMESPACE, SPECIAL-USE, ESEARCH, UTF8=ACCEPT 등 16개 확장을 내장합니다.
POP3 & JMAP
nabi-pop3d, nabi-jmapd
POP3(RFC 1939) + STLS로 레거시 클라이언트를 지원합니다. JMAP(RFC 8620/8621)은 JSON 기반 현대적 메일 API로 웹메일과의 통합에 최적화되어 있습니다.
큐 & 배달 엔진
nabi-send, nabi-local, nabi-remote + 8종
flock 파일 잠금 + 2단계 원자적 삭제로 큐 안정성을 보장합니다. 로컬 배달(Maildir/DB), 원격 배달(SMTP+TLS), DSN 바운스 생성, 큐 정리 타이머를 포함합니다.
모듈 분리 아키텍처
각 바이너리는 독립 프로세스로 실행되어 한 컴포넌트의 장애가 다른 서비스에 영향을 주지 않습니다. 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가지 보안 레이어로 메일 인프라를 보호합니다.
컴파일 타임 메모리 안전
Rust의 소유권 시스템이 컴파일 시점에 메모리 오류를 차단합니다. 버퍼 오버플로우, use-after-free, 데이터 레이스가 구조적으로 불가능합니다.
이메일 인증 체인
SPF → DKIM → DMARC → ARC 순서로 수신 메일을 검증합니다. 발신 시 DKIM 서명을 자동 적용합니다. 외부 필터 설치 없이 모든 인증이 내장되어 있습니다.
전송 구간 암호화
rustls 기반 TLSv1.3을 모든 프로토콜에 적용합니다. STARTTLS, implicit TLS를 지원하며, MTA-STS로 TLS 다운그레이드 공격을 방지합니다.
권한 분리 및 격리
포트 바인딩 후 root 권한을 즉시 해제하고 재획득 불가를 검증합니다. systemd 보안 강화(ProtectSystem, PrivateTmp)로 프로세스를 격리합니다.
무차별 대입 방어
IP당 접속 빈도 제한, 동시 접속 제한, AUTH 5회 실패 시 연결 종료로 무차별 대입 공격을 차단합니다. 화이트리스트로 신뢰 IP를 면제할 수 있습니다.
주입 공격 방지
헤더 주입(CR/LF/NUL 제거), 경로 탐색(canonicalize 검증), 명령 주입(셸 메타문자 거부), NULL 바이트 거부, Slowloris 방어(120초 타임아웃)를 적용합니다.
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 최적화에 특화.
이런 환경에 적합합니다
보안이 중요한 공공기관부터 비용 효율을 원하는 중소기업까지, 다양한 환경에서 활용됩니다.
보안 중시 기관
금융, 의료, 법률 기관 등 엄격한 보안 감사가 필수인 환경. 12,500줄의 감사 가능한 코드와 Rust 메모리 안전성으로 CC인증/GS인증 대응에 유리합니다.
공공기관 / 국방
데이터 주권이 필수인 폐쇄망 환경. 외부 클라우드 의존 없이 자체 서버에서 100% 운영하며, 국산 솔루션으로 조달 적합성을 충족합니다.
중소기업 자체 메일
Gmail/M365 월 구독 비용 없이 자체 메일 서버를 운영하고 싶은 기업. 올인원 패키지로 복잡한 소프트웨어 조합 불필요, 설치 10분 완료.
클라우드 / VPS
제한된 메모리 환경에서도 36MB로 전체 메일 서비스를 운영합니다. 1GB RAM VPS에서도 여유 있게 동작하며, .deb 패키지로 간편 설치.
레거시 MTA 마이그레이션
Postfix/Sendmail/qmail에서 전환하고 싶은 환경. DB+폴백 모드로 기존 Maildir 데이터와 공존하면서 점진적으로 마이그레이션 가능합니다.
교육 / 연구 기관
메일 프로토콜(SMTP, IMAP) 교육에 최적. 12,500줄의 읽기 쉬운 Rust 코드로 실제 프로덕션급 메일 서버의 내부를 학습할 수 있습니다.
기술 사양
나비 메일서버의 상세 기술 스펙입니다.
computer 시스템 요구사항
speed 성능 벤치마크
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)