맨위로가기

Qmail

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Qmail은 Sendmail의 복잡성을 개선하여 빠르고 단순하며 견고한 구조를 목표로 개발된 메일 전송 에이전트(MTA)이다. 1997년 2월에 공개되었으며, 보안 허점을 발견하면 상금을 지급한다. 1파일 1설정으로 간소화된 설정, Maildir 메일 박스 형식, 오픈 릴레이 불가능 등의 특징을 갖는다. Qmail은 DoS 공격에 취약하며, 스팸 메일 반송으로 인한 후방 확산 문제를 야기할 수 있고, RFC 표준을 준수하지 않는 부분도 있다. qmail은 모듈식 아키텍처를 가지며, Maildir 형식과 와일드카드 메일함을 혁신적으로 도입했다. Qmail은 2007년 퍼블릭 도메인으로 공개되었다.

더 읽어볼만한 페이지

  • 메시지 전송 에이전트 - 인터넷 정보 서비스
    인터넷 정보 서비스(IIS)는 마이크로소프트 윈도우 운영 체제에서 사용되는 웹 서버 소프트웨어이며, 액티브 서버 페이지(ASP) 지원, IPv6 지원, 모듈식 아키텍처, 보안 기능 강화 등을 통해 발전해 왔고, 다양한 인증 메커니즘과 .NET 프레임워크를 지원하며, 넷크래프트와 W3Techs의 조사에서 세계에서 두 번째 또는 세 번째로 널리 사용되는 웹 서버이다.
  • 메시지 전송 에이전트 - Exim
    Exim은 Sendmail과 유사하게 설계된 메일 전송 에이전트(MTA)로, 단일 바이너리로 MTA의 모든 기능을 제어하며, 보안 취약점 업데이트가 중요하고, 다양한 설정 방식과 상세한 문서를 제공하며, 2017년에는 널리 사용되었다.
  • C로 작성된 자유 소프트웨어 - PostgreSQL
    PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다.
  • C로 작성된 자유 소프트웨어 - 김프
    김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
Qmail - [IT 관련 정보]에 관한 문서
소프트웨어 정보
이름qmail
개발자다니엘 J. 번스타인
최신 출시 버전1.03
최신 평가 버전netqmail 1.06
운영 체제유닉스 계열
프로그래밍 언어C
장르메일 전송 에이전트
라이선스퍼블릭 도메인
웹사이트cr.yp.to/qmail.html
저장소https://cr.yp.to/software/qmail-1.03.tar.gz
단종 여부
netqmail 정보
이름netqmail
최신 출시 버전1.06
웹사이트netqmail.org/
저장소netqmail.org/netqmail-1.06.tar.gz
단종 여부
s/qmail 정보
이름s/qmail
최신 출시 버전4.2.29a
웹사이트fehcom.de/sqmail/sqmail.html
notqmail 정보
이름notqmail
최신 출시 버전1.09
웹사이트notqmail.org/
저장소github.com/notqmail/notqmail

2. 특징

Sendmail이 복잡성으로 인해 보안 허점이 자주 발생했던 것과 달리, qmail은 빠르고 단순하며 견고한 구조를 목표로 설계되었다. 설정 방식 또한 Sendmail에 비해 간소화되어 있으며, 기본적으로 오픈 릴레이가 불가능하도록 설정되어 있다. 메일 저장 형식으로는 독자적으로 설계한 Maildir 형식을 기본으로 사용하고 권장하지만, mbox 형식도 지원한다.

가상 호스트 등을 지원하는 vpopmail과 같은 다양한 유틸리티가 개발되었으나, 원작자의 개발이 사실상 중단된 상태이다. 이 때문에 최신 운영체제 환경에 맞추거나 STARTTLS와 같이 qmail 개발 당시에는 없었던 새로운 표준을 지원하려면 비공식 패치를 적용해야 하는 등, 시스템 구축 과정이 복잡해지는 경향이 있다. 또한, 메일 처리 방식에서 RFC 표준을 따르지 않는 부분이 있다는 지적도 있다.[19]

2. 1. 보안

qmail은 처음 출시되었을 때 보안을 염두에 두고 설계된 최초의 MTA로 평가받는다. 이후 다른 보안 중심의 MTA들이 등장했지만, qmail의 선구적인 역할은 주목할 만하다. qmail 이전에 널리 사용되던 Sendmail은 보안을 주요 목표로 설계되지 않아 공격자들의 지속적인 표적이 되어왔다.

qmail은 Sendmail과 달리 서로 신뢰하지 않는 여러 구성 요소로 이루어진 모듈식 아키텍처를 채택하여 보안성을 높였다. 예를 들어, qmail의 SMTP 수신(리스너) 부분은 메일 큐 관리자나 SMTP 발신 부분과 서로 다른 사용자 권한으로 실행된다. 이는 한 구성 요소가 침해되더라도 다른 부분으로 피해가 확산되는 것을 막는 데 도움을 준다. 또한, qmail은 보안 강화를 위해 C 표준 라이브러리를 자체적으로 안전하게 다시 구현하였다. 그 결과 스택 버퍼 오버플로우, 힙 오버플로우, 포맷 스트링 공격 또는 임시 파일 생성 시 발생할 수 있는 경쟁 조건과 같은 일반적인 보안 취약점에 영향을 받지 않는다.

복잡한 구조로 인해 보안 허점이 자주 발견되었던 Sendmail과 대조적으로, qmail은 빠르고 단순하며 견고한 구조를 목표로 만들어졌다. 1997년 2월에 공개된 이후, 운영상 문제로 지적되는 점은 DoS 공격에 대한 취약성(이는 서버 자원 제한 설정을 통해 어느 정도 회피 가능) 뿐이며, 그 외에 심각한 보안 허점은 발견되지 않았다. qmail 개발자는 보안 허점을 발견하는 사람에게 500USD의 상금을 지급하겠다고 공언하기도 했다.

설정 방식 또한 Sendmail의 복잡하고 어려운 설정 파일과 비교하여, qmail은 하나의 파일에 하나의 설정을 대응시키는 방식으로 간소화했다. 기본적으로 설치 시점부터 외부에서 메일을 무단 중계하는 오픈 릴레이가 불가능하도록 설정되어 있다.

메일 저장 형식으로는 독자적으로 설계하여 안정성을 높인 Maildir 형식을 기본으로 사용하며 권장하고 있다. 하지만 필요에 따라 전통적인 mbox 형식으로 운영하는 것도 가능하다.

가상 호스트 기능 등을 구현하기 위한 vpopmail과 같은 다양한 유틸리티들이 개발되었으나, 원작자의 qmail 개발이 사실상 중단된 상태이다. 이로 인해 최신 운영체제에서의 컴파일 문제나, qmail 개발 당시에는 없었던 STARTTLS와 같은 새로운 표준을 지원하기 위해서는 비공식 패치를 찾아 적용해야 하는 번거로움이 있으며, 이는 시스템 구축을 복잡하게 만드는 요인이 된다.

또한, qmail의 메일 처리 방식에는 문제점도 지적된다. 다른 일반적인 MTA들이 수신자 주소가 존재하지 않는 메일을 수신 단계에서 거부하는 것과 달리, qmail은 일단 메일을 수신한 뒤 발신자 주소(엔벨로프 From)로 반송 메일을 보낸다. 이 방식은 스팸 메일 발송자들이 발신자 주소를 위조했을 경우, 스팸 메일과는 무관한 제3자에게 대량의 반송 메일이 전송되는 문제를 일으킬 수 있다. 이를 backscatter(후방 확산) 또는 collateral spam(연쇄 스팸)이라고 부르며, 2차 피해를 유발하는 원인이 된다.

줄 바꿈 코드 처리 방식에 있어서도 RFC 표준을 따르지 않는 동작을 하는 문제가 보고되었다.[19]

2. 2. 성능

qmail은 출시 당시, 특히 메일링 리스트 서버와 같이 대량 메일을 처리하는 작업에서 Sendmail보다 훨씬 빠른 성능을 보였다. 이는 qmail이 처음부터 대규모 메일링 리스트를 관리하는 목적으로 설계되었기 때문이다.

2. 3. 간편성

qmail이 처음 소개되었을 때, Sendmail의 설정은 매우 복잡하다는 평가를 받았던 반면, qmail은 설정과 배포가 간단하다는 장점이 있었다.

설정 방식도 Sendmail의 복잡하고 어려운 방식과 달리, 하나의 파일에 하나의 설정을 하는 방식으로 간소화되었다. 또한, 설치 시점부터 오픈 릴레이가 불가능하도록 기본 설정되어 있다.

메일 박스 형식은 독자적으로 설계되어 견고함이 특징인 Maildir 형식을 기본으로 사용하며, 이 형식이 권장된다. 하지만 기존의 mbox 형식으로 운영하는 것도 가능하다.

가상 호스트 등을 구현하기 위한 vpopmail 같은 다양한 주변 유틸리티도 존재한다. 그러나 원작자의 개발이 사실상 중단되었기 때문에, 최신 운영체제에서의 컴파일이나 STARTTLS처럼 qmail 개발 당시에는 없었던 새로운 규격에 대응하려면 비공식 패치를 직접 찾아 적용해야 하는 번거로움이 생겨, 오히려 구축 과정을 복잡하게 만들기도 한다.

2. 4. 혁신적인 기능

qmail은 메일 처리 방식에서 몇 가지 혁신적인 기능을 도입하거나 사용을 권장했다. 일부는 개발자 번스타인이 직접 개발했으며, 다른 일부는 기존 기술을 개선한 것이다.

; Maildir

: 번스타인은 qmail을 위해 Maildir라는 새로운 메일 저장 형식을 개발했다. 이는 각 이메일 메시지를 별도의 파일로 저장하는 방식이다. 기존의 사실상 표준처럼 사용되던 mbox 형식은 모든 메시지를 하나의 파일에 저장하여 잠금 문제나 동시 접근 시 문제가 발생하기 쉬웠다. 반면 Maildir는 이러한 문제를 피할 수 있으며, 네트워크 파일 시스템(NFS) 환경에서도 안전하게 사용할 수 있다는 장점이 있다. 물론 qmail은 기존의 mbox 형식으로도 메일을 전송할 수 있다.

; 와일드카드 메일함

: qmail은 사용자가 직접 메일 주소를 관리할 수 있는 와일드카드 개념을 도입했다. 기본적으로 qmail 호스트에서 "user-''wildcard''" 와 같은 형식의 주소로 오는 메일은 사용자의 특정 메일함으로 자동으로 분류된다. 이를 통해 사용자는 메일링 리스트 가입이나 스팸 관리를 위해 여러 개의 주소를 편리하게 만들어 사용할 수 있다.

또한 qmail은 다음과 같은 새로운 프로토콜도 선보였다.

  • Quick Mail Transport Protocol (QMTP): 기존의 SMTP보다 더 나은 성능을 목표로 설계된 이메일 전송 프로토콜이다.[6]
  • Quick Mail Queuing Protocol (QMQP): 여러 호스트가 이메일 큐(대기열)를 공유할 수 있도록 설계된 네트워크 프로토콜이다.[7]


qmail은 복잡성 때문에 보안 허점이 자주 발견되었던 Sendmail과 달리, 빠르고 단순하며 견고한 구조를 목표로 만들어졌다. 1997년 2월에 처음 공개된 이후, 운영상의 문제로는 DoS 공격에 대한 취약성(이는 리소스 제한 설정으로 어느 정도 회피 가능) 정도만 지적될 뿐, 그 외의 보안 허점은 발견되지 않았다. 개발자는 qmail의 보안 허점을 발견하는 사람에게 500USD의 상금을 걸기도 했다.

설정 방식 또한 Sendmail의 복잡하고 어려운 설정 파일과 비교하여, qmail은 하나의 설정 항목을 하나의 파일로 관리하는 방식으로 매우 간소화되었다. 또한 처음 설치할 때부터 오픈 릴레이(메일 서버 무단 중계)가 불가능하도록 기본 설정되어 있다.

메일 저장 방식은 자체적으로 설계한 견고한 Maildir 형식을 기본으로 사용하며 권장하지만, 필요에 따라 기존의 mbox 형식으로 운영하는 것도 가능하다.

2. 5. 모듈성

qmail은 각 주요 기능이 서로 분리된 거의 완벽한 모듈식 시스템이다. 새로운 모듈이 원래 모듈과 동일한 인터페이스를 유지하는 한, qmail 시스템의 모든 부분을 다른 모듈로 쉽게 교체할 수 있다.

이는 복잡성으로 인해 보안 허점이 자주 발생했던 Sendmail과 대조되는 특징이다. qmail은 빠르고 매우 단순하며 견고한 구조를 목표로 제작되었다. 1997년 2월부터 공개되었지만, 운영상 문제점으로 지적되는 것은 DoS 공격에 대한 취약성(리소스 제한으로 회피 가능) 뿐이며, 그 외에 발견된 보안 허점은 없다. 참고로, 보안 허점을 발견하면 500USD의 상금을 받을 수 있다.

3. 논란

1997년, 개발자 다니엘 번스타인은 qmail 최신 버전에서 검증 가능한 보안 구멍을 처음으로 공개하는 사람에게 500USD의 상금을 제안했다.[8]

2005년, 보안 연구원 게오르기 구닌스키는 qmail에서 정수 오버플로우 취약점을 발견했다. 특정 조건(64비트 플랫폼, 충분한 가상 메모리)을 갖춘 기본 설정 환경에서 특정 qmail 구성 요소에 대량의 데이터를 전송할 경우, 원격 코드 실행이 가능할 수 있다는 내용이었다. 그러나 번스타인은 이것이 실제적인 공격으로 이어지기는 어렵다고 주장하며, qmail의 일반적인 설치 환경에서는 해당 취약점이 발생하지 않을 것이라고 반박했다. 또한, qmail 구성 요소에 대한 리소스 제한 설정을 통해 이 취약점을 완화할 수 있다고 덧붙였다.[9]

2007년 11월 1일, 번스타인은 보안 허점 발견에 대한 상금을 1000USD로 인상했다.[1] 다음 날 발표에서 그는 10년 된 qmail-1.03 버전에 4개의 "알려진 버그"가 있지만, 이 중 어떤 것도 "보안 구멍" 수준은 아니라고 언급했다. 특히 구닌스키가 발견한 버그에 대해서는 "확인되지 않은 카운터의 잠재적 오버플로우"라고 설명하며, "다행히 카운터 증가는 메모리 및 구성에 의해 제한되었지만, 이는 순전히 운이 좋았다"고 평가했다.[10]

2020년 5월 19일, 보안 기업 퀄리스는 구닌스키가 발견했던 취약점을 실제로 이용하는 익스플로잇 코드를 공개했다. 하지만 익스플로잇 작성자는 코드가 작동하기 위해 추가적인 환경 제한 조건이 필요하다는 이유로 상금 지급을 거부당했다고 밝혔다.[11]

3. 1. 업데이트 빈도

qmail 핵심 패키지는 수년 동안 업데이트되지 않았다.[12] 새로운 기능은 처음에는 제3자 패치를 통해 제공되었으며, 당시 가장 중요한 기능들은 ''netqmail''이라는 단일 메타 패치로 통합되었다.[13]

3. 2. 표준 준수

qmail은 Sendmail을 대체하기 위해 설계된 것은 아니며, 모든 상황에서 Sendmail과 동일하게 작동하지는 않는다. 이러한 작동 방식의 차이는 때때로 비판의 원인이 되기도 한다. 예를 들어, qmail의 반송 메시지 형식(QSBMF)은 IETF가 RFC 1894에서 표준으로 지정하고,[14] RFC 3464에서 초안 표준으로 발전시킨[15] 배달 상태 알림(DSN) 형식과 다르다. 이 표준 형식은 SMTP 사양에서도 권장된다.

qmail의 일부 기능, 예를 들어 "와일드카드" 전달 메커니즘과 보안 설계 방식은 메일 전달 문제를 일으킬 수 있다는 비판을 받는다. 이로 인해 SMTP 트랜잭션 중에 위조되거나 존재하지 않는 발신자 주소를 가진 메시지를 거부하기 어렵다.[16] 과거에는 이러한 차이점 때문에 qmail이 스팸 중계기로 악용될 때 다른 MTA와 다르게 작동했을 수 있으나, 현대의 스팸 발송 기술은 반송 방식의 영향을 덜 받는 경향이 있다.

복잡성으로 인해 보안 허점이 자주 발견되었던 Sendmail과 달리, qmail은 빠르고 단순하며 견고한 구조를 목표로 만들어졌다. 1997년 2월에 공개된 이후, 운영상 문제점으로 지적되는 것은 DoS 공격에 대한 취약성(이는 리소스 제한으로 완화 가능) 정도이며, 그 외에 다른 보안 허점은 발견되지 않았다. 참고로, qmail의 보안 허점을 발견하는 사람에게는 500USD의 상금이 걸려 있다.

설정 방식 또한 복잡한 sendmail에 비해 간결하다. 하나의 파일이 하나의 설정을 담당하는 방식이며, 설치 시점부터 기본적으로 오픈 릴레이가 불가능하도록 설정되어 있다. 메일 저장 형식으로는 독자적으로 설계한 견고한 Maildir 형식을 기본으로 사용하며 권장하지만, 전통적인 mbox 형식으로 운영하는 것도 가능하다.

가상 호스트 기능 등을 구현하기 위한 vpopmail과 같은 다양한 유틸리티가 존재한다. 하지만 원작자에 의한 개발이 사실상 중단되었기 때문에, 최신 운영체제에서의 컴파일이나 STARTTLS처럼 qmail 개발 당시에는 없었던 새로운 표준을 지원하려면 비공식 패치를 찾아 적용해야 하는 번거로움이 있어 시스템 구축을 복잡하게 만들 수 있다.

일반적인 다른 MTA들은 수신자가 존재하지 않는 메일을 수신 단계에서 거부하는 반면, qmail은 일단 메일을 수신한 뒤 발신자(엔벨로프 From)에게 반송 메일을 보내는 방식으로 동작한다. 이 때문에 스팸 메일 발송자들이 발신자 주소를 위조하여 메일을 보낼 경우, 스팸 메일과 관련 없는 제3자에게 대량의 반송 메일이 전송되는 문제가 발생할 수 있다. 이를 '''backscatter'''(후방 산란) 또는 '''collateral spam'''(부수적 스팸)이라고 부르며, 2차 피해를 유발할 수 있다.

또한, 줄 바꿈 코드 처리 방식이 RFC 표준을 따르지 않는다는 문제점도 지적된다.[19]

3. 3. 저작권 상태

qmail은 2007년 11월 이전까지는 무료 소프트웨어였지만, 배포에 특정 제약 조건이 있었다. 소스 코드 형태나 사전 컴파일된 형태("var-qmail 패키지")로 배포할 수 있었지만, 이는 호환성 등 특정 조건을 충족해야만 가능했다.[17] 이러한 독특한 라이선스 조건 때문에 qmail은 DFSG와 같은 일부 지침에 따르면 자유 소프트웨어가 아니라는 평가를 받기도 했으며, 이는 논란의 대상이 되었다.

특히 컴파일된 상태로 배포할 경우, 디렉토리 구성을 변경하지 않는 등 정해진 조건을 따라야 했기 때문에, 각 운영체제(OS)의 독자적인 소프트웨어 패키지로 만들기 어려웠다.

그러나 2007년 11월 30일, 개발자인 다니엘 번스타인은 qmail을 퍼블릭 도메인으로 공개한다고 선언했다.[20][21] 이로써 qmail은 널리 사용되는 MTA 중 유일하게 퍼블릭 도메인 소프트웨어가 되었다. 그럼에도 불구하고, 저자는 여전히 프로그램을 `/var/qmail` 경로 아래에 설치하는 등 기존의 인터페이스를 유지할 것을 권장하고 있다.

참조

[1] 웹사이트 Some thoughts on security after ten years of qmail 1.0 http://cr.yp.to/qmai[...] 2007-12-01
[2] 웹사이트 Announcing notqmail https://schmonz.com/[...]
[3] 웹사이트 Some thoughts on security after ten years of qmail 1.0 https://cr.yp.to/qma[...]
[4] 웹사이트 Qmail Explained https://everything.e[...]
[5] 웹사이트 Information for distributors http://cr.yp.to/qmai[...]
[6] 웹사이트 Quick Mail Transfer Protocol (QMTP) http://cr.yp.to/prot[...] 2023-05-06
[7] 웹사이트 QMQP: Quick Mail Queueing Protocol http://cr.yp.to/prot[...] 2023-05-06
[8] 웹사이트 The qmail security guarantee http://cr.yp.to/qmai[...] 2007-10-05
[9] 웹사이트 Georgi Guninski security advisory #74, 2005 http://www.guninski.[...] 2007-10-05
[10] 웹사이트 Some thoughts on security after ten years of qmail 1.0 [Slide presentation] http://cr.yp.to/talk[...] 2008-01-17
[11] 웹사이트 "'[oss-security] Remote Code Execution in qmail (CVE-2005-1513)' - MARC" https://marc.info/?l[...] 2021-03-03
[12] 웹사이트 Life with qmail; History http://www.lifewithq[...] 2007-12-01
[13] 웹사이트 netqmail http://netqmail.org/ 2021-03-03
[14] 간행물 An Extensible Message Format for Delivery Status Notifications https://tools.ietf.o[...] 2021-03-03
[15] 간행물 An Extensible Message Format for Delivery Status Notifications https://tools.ietf.o[...] 2021-03-03
[16] 간행물 On Qmail, Forged Mail, and SPF Records https://linuxgazette[...] 2006-10
[17] 웹사이트 Bernstein releases code into the public domain http://video.google.[...] 2007-11-30
[18] 문서 http://cr.yp.to/talk[...]
[19] 웹사이트 http://ya.maya.st/mail/qmail-violations.html http://ya.maya.st/ma[...] 2016-06-09
[20] 웹사이트 Information for distributors http://cr.yp.to/qmai[...] 2007-12-14
[21] 웹사이트 Bernstein releases code into the public domain https://web.archive.[...] 2007-12-14
[22] 웹인용 Some thoughts on security after ten years of qmail 1.0 http://cr.yp.to/qmai[...] 2007-12-01
[23] 웹인용 Information for distributors http://cr.yp.to/qmai[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com