메일 서버 · 2 min read · Sep 28, 2025

Postfix, Courier 및 MySQL을 이용한 가상 사용자 및 도메인 (Debian Etch)

Postfix, Courier 및 MySQL을 이용한 가상 사용자 및 도메인 (Debian Etch)

버전 1.0
저자: Falko Timme

이 튜토리얼은 Falko Timme의 저작권 (c) 2007입니다. 이는 http://workaround.org에서 찾을 수 있는 Christoph Haas의 튜토리얼에서 파생되었습니다. 이 튜토리얼은 Creative Commons 라이선스 2.5 또는 이후 버전 하에 자유롭게 사용할 수 있습니다.

이 문서는 MySQL 데이터베이스에 있는 사용자 및 도메인, 즉 가상 사용자 및 도메인을 기반으로 하는 Postfix 기반의 메일 서버를 설치하는 방법을 설명합니다. 또한 Courier(Courier-POP3, Courier-IMAP)의 설치 및 구성을 시연하여 Courier가 Postfix가 사용하는 동일한 MySQL 데이터베이스에 대해 인증할 수 있도록 합니다.

결과적으로 생성된 Postfix 서버는 SMTP-AUTHTLS쿼터를 지원합니다(쿼터는 기본적으로 Postfix에 내장되어 있지 않으며, Postfix를 적절하게 패치하는 방법을 보여드리겠습니다). 비밀번호는 데이터베이스에 암호화된 형태로 저장됩니다(내가 찾은 대부분의 문서는 보안 위험이 있는 일반 텍스트 비밀번호를 다루고 있었습니다). 이 튜토리얼은 또한 이메일이 스팸 및 바이러스를 검사하도록 Amavisd, SpamAssassinClamAV의 설치를 다룹니다.

이러한 “가상” 설정(가상 사용자 및 도메인이 MySQL 데이터베이스에 있는)은 “실제” 시스템 사용자를 기반으로 하는 설정보다 훨씬 더 성능이 뛰어납니다. 이 가상 설정을 통해 메일 서버는 수천 개의 도메인과 사용자를 처리할 수 있습니다. 또한 새로운 사용자/도메인을 추가하거나 기존의 것을 편집할 때 MySQL 데이터베이스만 다루면 되므로 관리가 더 쉽습니다. 더 이상 db 파일을 생성하기 위한 postmap 명령이나 Postfix를 다시 로드할 필요가 없습니다. MySQL 데이터베이스 관리를 위해 phpMyAdmin과 같은 웹 기반 도구를 사용할 수 있으며, 이 방법에서도 설치됩니다. 세 번째 장점은 사용자가 사용자 이름으로 이메일 주소를 가지므로(사용자 이름 + 이메일 주소 대신) 이해하고 기억하기가 더 쉽다는 것입니다.

이 방법은 실용적인 가이드를 위한 것이며, 이론적 배경은 다루지 않습니다. 이론적 배경은 웹의 많은 다른 문서에서 다루어집니다.

이 문서는 어떤 종류의 보증 없이 제공됩니다! 이러한 시스템을 설정하는 유일한 방법이 아니라는 점을 말씀드리고 싶습니다. 이 목표를 달성하는 방법은 여러 가지가 있으며, 이것이 제가 선택한 방법입니다. 이것이 귀하에게 작동할 것이라는 보증을 제공하지 않습니다!

1 사전 참고

이 튜토리얼은 Debian Etch를 기반으로 하므로, 이 튜토리얼을 계속 진행하기 전에 기본 Debian Etch 설치를 설정해야 합니다. 시스템은 정적 IP 주소를 가져야 합니다. 이 튜토리얼에서는 192.168.0.100을 IP 주소로 사용하고 server1.example.com을 호스트 이름으로 사용합니다.

2 Postfix, Courier, Saslauthd, MySQL, phpMyAdmin 설치

Postfix, Courier, Saslauthd, MySQL 및 phpMyAdmin을 설치하려면 다음과 같이 실행합니다.

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql

몇 가지 질문이 있을 것입니다:

웹 기반 관리용 디렉토리 생성? <– 아니요
구성의 일반 유형? <– 인터넷 사이트
메일 이름? <– server1.example.com
SSL 인증서 필요 <– 확인

3 Postfix에 쿼터 패치 적용

Postfix 소스를 가져오고, 쿼터 패치로 패치한 후, 새로운 Postfix.deb 패키지를 빌드하고 해당 .deb 패키지를 설치해야 합니다:

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
cd /usr/src  
apt-get source postfix

(다음 명령에서 올바른 Postfix 버전을 사용하고 있는지 확인하십시오. 저는 Postfix 2.3.8을 설치했습니다. Postfix 버전을 확인하려면 다음을 실행하십시오.

postconf -d | grep mail_version

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

server1:~# 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 패키지를 설치하려면 다음을 실행합니다.

cd ..  
dpkg -i postfix_2.3.8-2_i386.deb  
dpkg -i postfix-mysql_2.3.8-2_i386.deb
Share: X/Twitter LinkedIn

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

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