메일 서버 · 2 min read · Nov 11, 2025

Debian Squeeze에 Maia Mailguard 설치하기 (Postfix/MySQL을 이용한 가상 사용자/도메인)

Debian Squeeze에 Maia Mailguard 설치하기 (Postfix/MySQL을 이용한 가상 사용자/도메인)

버전 1.0
저자: Falko Timme, Dominik Najberg

이 가이드는 Debian Squeeze 메일 서버에 스팸 및 바이러스 관리 시스템인 Maia Mailguard를 설치하는 방법을 설명합니다. Maia Mailguard는 인기 있는 amavisd-new 이메일 스캐너와 SpamAssassin을 기반으로 한 웹 기반 인터페이스 및 관리 시스템입니다. Perl과 PHP로 작성된 Maia Mailguard는 최종 사용자에게 바이러스 스캐너와 스팸 필터가 메일을 처리하는 방식을 제어할 수 있는 권한을 부여하며, 메일 관리자에게는 사이트 전체의 기본값 및 제한을 구성할 수 있는 권한을 부여합니다.

이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!

1 사전 참고

이 튜토리얼은 Postfix, Courier, MySQL 및 SquirrelMail을 이용한 가상 사용자 및 도메인에 기반하므로, 이미 이 설정이 되어 있어야 합니다. 만약 당신의 메일 설정이 다르다면, 이 튜토리얼이 작동하지 않을 수 있으며, 일부 조정을 해야 할 수도 있습니다.

내 서버의 호스트 이름은 mail.example.com이고 IP 주소는 192.168.0.1입니다. 나는 Debian의 기본 lighttpd 문서 루트인 /var/www에 Maia의 웹 인터페이스를 설치할 것이며, www.example.com을 사용하여 웹 인터페이스에 접근할 것입니다. 문서 루트와 도메인이 다르다면 이를 조정해야 합니다.

2 Maia Mailguard 다운로드

Maia Mailguard는 SVN에서만 다운로드할 수 있으므로, 먼저 Subversion을 설치해야 합니다:

aptitude install subversion

나는 소스를 /usr/src/maia에 다운로드하고 싶습니다:

mkdir /usr/src/maia  
cd /usr/src/maia

브라우저를 열고 https://www.maiamailguard.com/svn/branches/1.0으로 가서 최신 리비전을 확인합니다 - 내 경우에는 1578이었습니다. 그런 다음 다음과 같이 다운로드를 시작합니다:

svn -r 1578 checkout https://www.maiamailguard.com/svn/branches/1.0

(최신 리비전으로 1578을 교체해야 합니다.)

3 Maia Mailguard용 데이터베이스 생성

다음으로 MySQL에 로그인합니다…

mysql -u root -p

… 그리고 maia라는 데이터베이스를 생성합니다:

CREATE DATABASE maia;

그 후 MySQL 셸을 종료합니다:

quit;

빈 maia 데이터베이스에 Maia의 SQL 덤프를 가져옵니다:

cd /usr/src/maia/1.0/  
mysql -u root -p maia < maia-mysql.sql

그런 다음 다시 MySQL에 로그인합니다…

mysql -u root -p maia

… 그리고 amavis라는 MySQL 사용자를 생성합니다:

GRANT CREATE, DROP, ALTER, SELECT, INSERT, UPDATE, DELETE ON maia.* TO amavis@localhost IDENTIFIED BY 'amavismysqlpasswd';
FLUSH PRIVILEGES;

이메일이 어디에도 전송되지 않도록 방지하는 ‘discard_ham’ 문제를 수정합니다:

ALTER TABLE users ADD COLUMN discard_ham char(1) NOT NULL default 'N'

MySQL을 종료합니다:

quit;

(당신은 amavismysqlpasswd를 원하는 비밀번호로 교체할 수 있지만, 나중에 Maia 구성에서 그 비밀번호를 사용해야 한다는 점을 명심하세요!)

다음으로 /etc/mysql/my.cnf의 max_allowed_packet 값이 충분히 큰지 확인합니다 ( [mysqld] 섹션에서). 이 설정은 Maia로 처리할 수 있는 가장 큰 메일 항목의 크기를 결정하므로, 필요에 맞게 이 값을 충분히 크게 설정해야 합니다.

nano /etc/mysql/my.cnf

| [...] [mysqld] [...] max_allowed_packet = 16M [...] |

max_allowed_packet 값을 변경한 경우 MySQL을 재시작합니다:

/etc/init.d/mysql restart

4 Maia의 스크립트 및 템플릿 설치

Debian Squeeze에서 amavis 사용자의 홈 디렉토리는 /var/lib/amavis이며, 그곳에 maia라는 하위 디렉토리를 생성합니다. 그 하위 디렉토리에 Maia의 스크립트와 템플릿을 배치할 것입니다:

mkdir /var/lib/amavis/maia  
mkdir /var/lib/amavis/maia/scripts  
mkdir /var/lib/amavis/maia/templates
cp -pfr /usr/src/maia/1.0/scripts/* /var/lib/amavis/maia/scripts  
cp -pfr /usr/src/maia/1.0/templates/* /var/lib/amavis/maia/templates
chown -R amavis /var/lib/amavis/maia  
chgrp -R amavis /var/lib/amavis/maia  
chmod 640 /var/lib/amavis/maia/templates/*.tpl  
chmod 750 /var/lib/amavis/maia/scripts/*.pl

5 Maia 구성

다음으로 /usr/src/maia/1.0/maia.conf.dist를 /etc/maia/maia.conf로 이름을 변경합니다:

mkdir /etc/maia/  
cp /usr/src/maia/1.0/maia.conf.dist /etc/maia/maia.conf  
chown amavis /etc/maia/maia.conf  
chgrp amavis /etc/maia/maia.conf  
chmod 640 /etc/maia/maia.conf

/etc/maia/maia.conf를 열고 다음 설정을 조정합니다:

nano /etc/maia/maia.conf

| [...] # 여기에서 Maia 데이터베이스 DSN을 구성하세요 $dsn = "DBI:mysql:maia:localhost:3306"; # Maia 데이터베이스 사용자 로그인 이름 $username = "amavis"; # Maia 데이터베이스 사용자 비밀번호 $password = "amavismysqlpasswd"; # Maia의 Perl 스크립트를 찾을 수 있는 디렉토리. $script_dir = "/var/lib/amavis/maia/scripts"; [...] # 잠금/PID 파일을 쓸 위치 (amavis 사용자에 의해 쓰기 가능해야 함) $pid_dir = "/var/lib/amavis/"; [...] # Maia의 PHP 스크립트에 대한 기본 URL $base_url = "http://www.example.com/"; # 템플릿 디렉토리 $template_dir = "/var/lib/amavis/maia/templates/"; [...] |

MySQL 사용자 amavis의 비밀번호를 $password 줄에 올바르게 입력했는지 확인하세요. 또한 $base_url 줄에 올바른 URL을 입력하세요.

Share: X/Twitter LinkedIn

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

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