메일 서버는 이메일을 전송하고 받을 수 있는 컴퓨터 시스템으로, 조직이나 개인이 이메일 서비스를 관리하고 운영하는 데 필수적인 요소입니다. 이 글에서는 우분투를 기반으로 메일 서버를 구축하는 방법, 메일 필터링 기법 및 스팸 방지 설정에 대해 구체적으로 설명하겠습니다.
11.1 메일 서버 개요
메일 서버는 주로 두 가지 역할을 수행합니다: SMTP(단순 메일 전송 프로토콜)를 사용하여 메일을 전송하고, POP3(우편함에 접근하는 프로토콜) 또는 IMAP(인터넷 메시지 접근 프로토콜)를 사용하여 메일을 수신합니다. 일반적으로 메일 서버는 다음과 같은 구성 요소를 포함합니다:
- 메일 전송 에이전트(MTA): 메일을 외부로 전송하고 외부에서 받은 메일을 내부 사용자에게 전달하는 역할을 합니다. 예: Postfix, Exim
- 메일 전달 에이전트(MDA): 수신된 메일을 특정 사용자에게 전달하는 역할을 합니다.
- 메일 사용자 에이전트(MUA): 사용자가 메일을 작성하고 읽는 애플리케이션을 의미합니다.
11.2 우분투에 메일 서버 설치
우분투에서 메일 서버를 설치하는 과정은 여러 단계로 나뉩니다. 여기서는 Postfix와 Dovecot을 사용하여 SMTP 및 IMAP/POP3 서비스를 설정할 것입니다.
11.2.1 Postfix 설치
Postfix는 안정적이고 효율적인 MTA로 널리 사용됩니다. 설치는 다음과 같이 진행합니다:
sudo apt update
sudo apt install postfix
설치 중, General type of mail configuration에서 Internet Site를 선택하고, System mail name에는 도메인 이름을 입력합니다.
11.2.2 Dovecot 설치
Dovecot은 POP3 및 IMAP 서비스를 제공하는 MDA입니다. 다음 명령어로 설치할 수 있습니다:
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d
11.2.3 메일 서버 구성
Postfix와 Dovecot을 설치한 후, 설정 파일들을 수정하여 서버를 구성해야 합니다.
Postfix 설정
/etc/postfix/main.cf 파일을 열어 다음과 같은 내용을 추가하거나 수정합니다:
myhostname = your_domain.com
mydomain = your_domain.com
myorigin = /etc/mailname
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost,
$mydomain
relayhost =
Dovecot 설정
/etc/dovecot/dovecot.conf 파일을 열어 다음과 같은 내용을 추가합니다:
mail_location = maildir:~/Maildir
service imap-login {
inet_listener imap {
port = 0
}
inet_listener imaps {
port = 993
ssl = yes
}
}
ssl_cert =
ssl_key =
이제 Postfix와 Dovecot 서비스를 시작하고, 시스템 부팅 시 자동으로 시작되도록 설정합니다:
sudo systemctl restart postfix
sudo systemctl restart dovecot
sudo systemctl enable postfix
sudo systemctl enable dovecot
11.3 메일 필터링 및 스팸 방지 설정
메일 서버를 운영하면서 스팸 메일로부터 보호하는 것은 매우 중요합니다. 다음에서는 메일 필터링 및 스팸 방지 방법에 대해 설명합니다.
11.3.1 SpamAssassin 설치
SpamAssassin은 스팸 메시지를 감지하여 차단하는 데 사용하는 오픈 소스 소프트웨어입니다. 다음 명령어로 설치합니다:
sudo apt install spamassassin
11.3.2 SpamAssassin 구성
설치 후, /etc/default/spamassassin 파일을 열어 다음과 같이 설정합니다:
ENABLED=1
SpamAssassin을 시스템 서비스로 실행하기 위해 다음 명령어를 입력합니다:
sudo systemctl start spamassassin
sudo systemctl enable spamassassin
11.3.3 Postfix와 SpamAssassin 연동
Postfix가 SpamAssassin과 연동되도록 하기 위해 다음과 같은 설정을 추가합니다. /etc/postfix/master.cf 파일을 열어 다음과 같이 수정합니다:
spamassassin unix - n n - - pipe
flags=R user=mail null_sender=yes argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -t
이제 Postfix를 다시 시작합니다:
sudo systemctl restart postfix
11.3.4 메일 필터링 규칙 작성
SpamAssassin의 필터링 규칙은 /etc/mail/spamassassin/local.cf 파일에 설정할 수 있습니다. 이 파일에 다음과 같은 내용을 추가하여 기본 필터링 규칙을 설정할 수 있습니다:
required_score 5.0
rewrite_header Subject [SPAM]
use_bayes 1
bayes_auto_learn 1
11.3.5 피드백 시스템 설정
사용자로부터 피드백을 받아 스팸 및 정상 메일을 학습할 수 있습니다. 이를 위해 ‘sa-learn’ 명령어를 사용합니다. 사용자가 스팸 메일로 분류한 메일을 ‘spam’ 폴더로 이동 시킨 다음, 다음 명령어로 학습시킬 수 있습니다:
sa-learn --spam /path/to/spam-folder/*
sa-learn --ham /path/to/ham-folder/*
11.4 테스트 및 모니터링
메일 서버가 제대로 동작하는지 확인하기 위해 이메일 클라이언트 소프트웨어나 웹 메일 클라이언트를 사용하여 간단한 테스트를 수행할 수 있습니다. 메일 발송 및 수신을 테스트하고 스팸 메일의 차단 기능이 정상적으로 작동하는지 점검합니다.