11.메일 서버 구축 및 설정, 메일 필터링과 스팸 방지 설정

메일 서버는 이메일을 전송하고 받을 수 있는 컴퓨터 시스템으로, 조직이나 개인이 이메일 서비스를 관리하고 운영하는 데 필수적인 요소입니다. 이 글에서는 우분투를 기반으로 메일 서버를 구축하는 방법, 메일 필터링 기법 및 스팸 방지 설정에 대해 구체적으로 설명하겠습니다.

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 테스트 및 모니터링

메일 서버가 제대로 동작하는지 확인하기 위해 이메일 클라이언트 소프트웨어나 웹 메일 클라이언트를 사용하여 간단한 테스트를 수행할 수 있습니다. 메일 발송 및 수신을 테스트하고 스팸 메일의 차단 기능이 정상적으로 작동하는지 점검합니다.