메일 서버 · 2 min read · Oct 06, 2025

가상 도메인 및 사용자와 함께하는 전체 메일 서버 솔루션 (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - 페이지 3

IV. 메일 교환 서버에서의 Postfix

A. Postfix 재구성하기

Debian Etch 배포판에 포함된 Postfix 버전은 쿼타 지원이 깨져 있습니다. 쿼타가 작동하려면 재구성이 필요합니다. 이 재구성 과정은 실제 프로덕션 MX 서버에서 수행해서는 안 됩니다. 빌드 작업을 수행하기 위해 별도의 서버(또는 Xen의 별도의 가상 머신)를 준비하세요. 이 작업을 위한 서버는 build.internal.example.com입니다. 해당 서버에 필요한 빌드 도구를 설치합니다:

# apt-get install build-essential dpkg-dev fakeroot debhelper libgdbm-dev libldap2-dev libpcre3-dev libssl-dev libsasl2-dev postgresql-dev po-debconf dpatch libdb4.3-dev libmysqlclient15-dev lsb-release libcdb-dev

그런 다음 Postfix 패키지의 소스를 다운로드합니다:

# cd /usr/src   
# apt-get source postfix

참고: 다음 명령어를 사용하여 올바른 Postfix 버전을 사용하고 있는지 확인하세요! 이는 Postfix 2.3.8에 대해 작성되었습니다. 현재 실행 중인 Postfix 버전은 프롬프트에 다음을 입력하여 확인할 수 있습니다:

# postconf -d | grep mail_version

출력은 다음과 같아야 합니다:

# postconf -d | grep mail_version   
  mail_version = 2.3.8   
  milter_macro_v = $mail_name $mail_version 

모든 것이 준비되었다고 가정하고(올바른 버전을 가지고 있다고 가정), 쿼타 패치를 가져옵니다:

# wget http://vda.sourceforge.net/VDA/postfix-2.3.8-vda.patch.gz

그런 다음 패치를 압축 해제하고 새로운 소스 코드에 적용해야 합니다:

# gunzip postfix-2.3.8-vda.patch.gz  
# cd postfix-2.3.8  
# patch -p1 < ../postfix-2.3.8-vda.patch

마지막으로 패치된 패키지를 재구성합니다:

# dpkg-buildpackage

dpkg-buildpackage 명령의 끝에서 다음과 같은 경고가 표시될 수 있습니다:

(Warning: Failed to sign .dsc and .changes file)

이 메시지는 무시해도 안전합니다.

이 새로운 재구성은 여러 패키지가 빌드되는 결과를 가져오며, postfix_2.3.8-1_i386.deb 및 postfix-mysql_2.3.8-2_i386.deb를 메일 교환기(MX-1 및 MX-2)로 복사해야 합니다. 이제 설치할 준비가 되었습니다!

B. Postfix 설치하기

Debian 기반 시스템을 사용하고 있으므로 Postfix 설치는 매우 간단합니다. 이 하위 섹션은 Mail Exchanger 1(mx-1.example.com)에서 작업하고 있다고 가정합니다. MX-2에서 작업 중이라면 구성 파일에서 서버 이름을 교체하면 됩니다. 설치를 시작하려면 다음을 실행하세요:

# dpkg -i postfix_2.3.8-2_i386.deb  
# dpkg -i postfix-mysql_2.3.8-2_i386.deb

자동 구성 중에 Postfix에 대한 질문이 있을 경우 “No Configuration”을 선택하세요(이 가이드를 사용하고 있으므로 직접 구성할 것입니다!).

dpkg는 Postfix의 모든 구성 파일을 /etc/postfix에 설치할 것이므로 해당 디렉토리로 이동하여 main.cf 파일을 생성합니다:

# cd /etc/postfix  
# touch main.cf

main.cf 파일은 두 가지 방법으로 편집할 수 있습니다. 좋아하는 텍스트 편집기를 사용할 수도 있고, 내장된 Postfix 도구인 postconf을 사용할 수도 있습니다. 우리는 이미 IV.A 하위 섹션에서 버전을 확인하기 위해 postconf을 한 번 사용했습니다.

postconf 도구의 진정한 이점은 내장된 오류 검사가 있으며, 캐리지 리턴, 줄 바꿈, 이상한 따옴표 등으로 인한 ‘이상함’의 가능성을 제거한다는 것입니다. 이 가이드에서는 이를 사용할 것이지만, 필수 사항은 아닙니다.

기본 정보를 입력하는 것으로 시작합니다:

# postconf -e 'myhostname = mx-1.example.com'  
# postconf -e 'smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)'  
# postconf -e 'biff = no'  
# postconf -e 'append_dot_mydomain = no'  
# postconf -e 'myorigin = example.com'  
# postconf -e 'mydestination = $myhostname, localhost, locahost.localdomain'  
# postconf -e 'mynetworks = 127.0.0.0/8'   
# postconf -e 'recipient_delimiter = +'  
# postconf -e 'inet_interfaces = all'  
# postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination \  
    $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps \  
    $virtual_mailbox_domains $relay_recipient_maps $relay_domains \  
    $canonical_maps $sender_canonical_maps $recipient_canonical_maps \  
    $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'

이것이 표준 유닉스 사용자를 사용하여 완전한 기능을 갖춘 메일 서버를 실행하는 데 필요한 모든 것입니다. 우리는 표준 유닉스 사용자를 원하지 않으므로 이 파일을 많이 수정할 것입니다. 그러나 example.com을 자신의 도메인으로 변경하는 것을 잊지 마세요! (그리고 mx-1을 두 번째 서버에서 mx-2로 변경하세요!)

###

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.