본문 바로가기

리눅스

우분투에서 메일 서버(postfix)를 구축하고 설정하는 방법

728x90

우분투에서 메일 서버(postfix)를 구축하고 설정하는 방법

우분투에서 메일 서버를 구축하고 설정하는 방법에 대해 단계별로 안내해 드리겠습니다.

다음은 메일 서버를 구축하는 과정입니다.

 

단계 1: 필요한 패키지 설치하기
터미널을 열고 다음 명령을 실행하여 필요한 패키지를 설치합니다.

sudo apt update
sudo apt install -y mysql-server
sudo apt install -y postfix
sudo apt install -y dovecot postfix-mysql dovecot-mysql

단계 2: MySQL 데이터베이스 구성하기

MySQL에 루트 암호를 설정합니다.

sudo mysql_secure_installation

MySQL에 로그인합니다.

sudo mysql -u root -p

다음 명령을 실행하여 새 데이터베이스를 생성합니다.

CREATE DATABASE mailserver;

사용자 및 권한을 설정합니다.

GRANT ALL ON mailserver.* TO 'mailuser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

단계 3: Postfix 구성하기

다음 명령을 실행하여 Postfix 메일 서버를 구성합니다.

sudo vim /etc/postfix/main.cf

파일의 내용을 아래와 같이 변경합니다.

# 메일을 수신하는 도메인 설정
myhostname = example.com
mydomain = example.com
myorigin = $mydomain

# 로컬 메일을 받을 사용자와 그룹
mydestination = localhost
mail_spool_directory = /var/mail
home_mailbox = Maildir/

# SMTP 리스닝 인터페이스와 포트
inet_interfaces = all
inet_protocols = ipv4

# MySQL 사용 설정
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_transport = dovecot

Shift + zz를 눌러 나가기 전에 저장합니다.

 

단계 4: Dovecot 구성하기

다음 명령을 실행하여 Dovecot 메일 서버를 구성합니다.

sudo vim /etc/dovecot/dovecot.conf

파일의 내용을 아래와 같이 변경합니다.

# 메일 디렉토리와 프로토콜 설정
mail_location = maildir:/var/mail/%d/%n/Maildir
mail_privileged_group = mail

# 인증 및 보안 설정
auth_username_format = %n
auth_mechanisms = plain login
disable_plaintext_auth = yes
ssl = required
ssl_cert = </etc/ssl/certs/ssl-cert-snakeoil.pem
ssl_key = </etc/ssl/private/ssl-cert-snakeoil.key

# MySQL 사용 설정
passdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}
userdb {
  driver = sql
  args = /etc/dovecot/dovecot-sql.conf.ext
}

Shift + zz를 눌러 나가기 전에 저장합니다.

 

단계 5: MySQL 설정 파일 생성하기

다음 명령을 실행하여 MySQL 설정 파일을 생성합니다.

sudo vim /etc/postfix/mysql-virtual-mailbox-domains.cf

파일의 내용을 아래와 같이 변경합니다.

user = mailuser
password = password
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'

Shift + zz를 눌러 나가기 전에 저장합니다.

마찬가지로, /etc/postfix/mysql-virtual-mailbox-maps.cf와 /etc/postfix/mysql-virtual-alias-maps.cf 파일도 생성하고 내용을 설정합니다.

 

단계 6: 서비스 재시작 및 방화벽 설정하기

다음 명령을 실행하여 서비스를 재시작합니다.

sudo systemctl restart postfix dovecot mysql

방화벽에서 25번 포트(SMTP)와 143번 포트(IMAP)을 허용해야 합니다.

sudo ufw allow 25
sudo ufw allow 143

이제 메일 서버의 구축과 설정이 완료되었습니다. 송수신하는 방법은 다음과 같습니다.

  • 이메일 클라이언트(예: Microsoft Outlook, Mozilla Thunderbird 등)에서 새 계정을 설정합니다.
  • 수신 서버 설정에는 IMAP 프로토콜을 사용하고, 서버 이름은 메일 서버의 IP 주소나 도메인 이름을 입력합니다.
  • 송신 서버 설정에는 SMTP 프로토콜을 사용하고, 서버 이름은 메일 서버의 IP 주소나 도메인 이름을 입력합니다.
  • 인증 정보를 입력하고 연결을 테스트합니다.

이제 이메일 클라이언트를 통해 메일을 송수신할 수 있어야 합니다. 잘 되지 않는 경우, 서비스 로그 파일을 확인하여 문제를 해결할 수 있습니다. 로그 파일은 /var/log/mail.log와 /var/log/dovecot.log에 위치합니다.

 

참고: 이는 간단한 메일 서버 구축 방법의 일부이며, 보안 및 세부 구성에 대한 추가 조치가 필요할 수 있습니다.

 

728x90