메일 서버 · 2 min read · Oct 05, 2025
가상 도메인 및 사용자와 함께하는 전체 메일 서버 솔루션 (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - 페이지 2
III. MySQL 서버 설치 및 구성 (+PostFixAdmin 스키마)
우선, sql-1.internal.example.com에 MySQL 서버를 설치해야 합니다. 편리하게도, MySQL 명령줄 클라이언트도 설치할 것입니다. 이는 프롬프트에 다음을 입력하여 달성할 수 있습니다:
# apt-get install mysql-server mysql-clientapt-get이 설치 작업을 완료한 후, mysql 데이터베이스에 대한 루트 액세스를 잠가야 합니다. 이는 mysqladmin 도구를 사용하여 수행됩니다.
# mysqladmin -u root password "mypassword"참고: mypassword를 본인의 안전한 비밀번호로 변경하세요!!!
이제 가상 사용자 및 도메인을 위한 데이터베이스와 사용자를 생성할 것입니다. Postfix(및 Dovecot)는 이 데이터베이스에 대해 SELECT 액세스만 필요하다는 점을 주목하는 것이 중요합니다. PostfixAdmin은 SELECT, UPDATE 및 INSERT가 필요합니다.
# mysql -uroot -p
Enter password:
mysql> CREATE DATABASE virtual_mail;
mysql> GRANT SELECT ON virtual_mail.* TO 'vmail_user'@'mx-1.example.com' IDENTIFIED BY 'vmail_user_password';
mysql> GRANT SELECT,UPDATE,INSERT ON virtual_mail.* TO 'vmail_admin'@'mx-1.example.com' IDENTIFIED BY 'vmail_admin_password';
mysql> GRANT SELECT ON virtual_mail.* TO 'vmail_user'@'mx-2.example.com' IDENTIFIED BY 'vmail_user_password';
mysql> GRANT SELECT,UPDATE,INSERT ON virtual_mail.* TO 'vmail_admin'@'mx-2.example.com' IDENTIFIED BY 'vmail_admin_password';
mysql> quit참고: vmail_user_password 및 vmail_admin_password를 본인의 안전한 비밀번호로 변경하세요!!!
이제 Postfix Admin을 다운로드해야 합니다. 이 도구 자체는 우리의 구성에 필수는 아니지만 매우 유용하며 사용하는 스키마가 잘 설계되어 있습니다. Postfix Admin 배포 tarball을 다운로드한 후, 다음과 같이 압축을 풉니다:
# tar xfvz postfixadmin-2.1.0.tgz결과 디렉토리 내에서 postfixadmin-2.1.0/DATABASE_MYSQL.TXT를 좋아하는 텍스트 편집기로 엽니다. “Postfix / MySQL” 섹션 아래의 모든 줄을 제거합니다. 이 줄들은 초기 데이터베이스를 생성하는데, 이는 이미 수행했습니다. Postfix Admin 2.1.0의 경우, 이는 26-39번 줄입니다.
완료되면, 다음 명령어로 기존 MySQL 테이블에 파일을 로드합니다:
# mysql -uroot -p virtual_mail < postfixadmin-2.1.0/DATABASE_MYSQL.TXT참고: “Access denied for user ‘mail’@’localhost’ to database ‘mysql’”라는 오류가 발생하면, 줄을 제대로 주석 처리하지 않은 것입니다. 비밀번호를 입력한 후 아무 메시지도 나타나지 않으면, 모든 것이 잘 진행된 것입니다.
IV. NFS 파일 공유 서버
많은 서버가 사용자 Maildir 폴더에 대한 액세스가 필요하므로, 삶을 더 간단하게 만들기 위해 NFS 마운트에 설치할 것입니다. Maildir의 장점 중 하나는 NFS와 호환된다는 것입니다. 반면, 메일박스 형식은 그리 예쁘지 않을 것입니다. 다행히도, Debian에서 NFS 설정은 다른 서비스를 설정하는 것만큼 간단합니다.
files-1.internal.example.com에 서비스를 설치하는 것부터 시작합시다:
# apt-get install nfs-kernel-server nfs-common portmapNFS 내보내기(공유)는 /etc/exports 파일에 의해 제어됩니다. 각 줄은 내보낼 디렉토리의 절대 로컬 경로로 시작하며, 그 뒤에 허용된 클라이언트의 공백으로 구분된 목록이 옵니다. NFS는 매우 강력할 수 있지만, 여기서 모든 세부 사항을 다루지는 않겠습니다. 우리의 목적을 위해서는 다음과 같이 하면 됩니다:
/etc/exports:
/vmail mx-1.internal.example.com(ro, insecure) mx-2.internal.example.com(ro, insecure) postman.internal.example.com(rw, no_root_squash) secure-mail.internal.example.com(rw, no_root_squash)실행 중인 NFS 서버에서 /etc/exports를 변경하면, 다음 명령어를 입력하여 변경 사항을 적용할 수 있습니다:
# exportfs -a우리의 설정에서 모든 가상 매핑을 처리할 실제 사용자가 필요합니다. 이 솔루션을 위해 사용자 ID 150을 사용할 것입니다. 이 사용자 ID는 특별히 생성된 “가상 메일” 사용자에 해당합니다. 표준 “mail” 그룹을 사용하며, 기본(Debian) gid는 8입니다. 다음과 같이 사용자와 디렉토리를 생성할 수 있습니다:
# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mailbox" vmail
# mkdir /vmail
# chmod 770 /vmail/
# chown vmail:mail /vmail/ 참고: 이 사용자는 이 공유에 액세스할 모든 서버(mx-1, mx-2, postman, files-1, secure-mail)에서 생성되어야 합니다. 사용자가 존재하지 않으면 파일 액세스 오류가 발생할 수 있습니다. NIS를 사용하여 이 사용자의 단일 호스트를 생성할 수 있지만, 이는 이 문서의 범위를 벗어납니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.