↓메인 콘텐츠로 이동하기
  1. Server-Logs/

ubuntu24.04 mailserver setup

·2 분

2024년 메일서버 도전기 #

postfix, dovecot, certbot 명령어 위주로 실습한 기록입니다. 만약 ai로 리눅스 메일서버에 도전하는 분이 계시다면 ai에 질문 할 때 많은 참고가 될 것입니다. postfix는 훨씬 쉽습니다. sendmail로 시도하면 대충 메일서버의 흐름이 파악 됩니다. 그 다음에 postfix로 갈아타시면 될 겁니다. 처음 시도하시는 분께 도움이 되길 바랍니다.

이 글은 학습용 초기 기록입니다

이 글은 메일서버를 처음 만져보며 sendmail로 흐름을 익히던 단계의 기록입니다. 아래 설정은 SASL 인증, TLS 강제 같은 보안 설정이 아직 없는 상태라, 이대로 실제 운영 서버에 올리면 스팸 중계(open relay)로 악용될 위험이 있습니다. 실제 운영까지 이어지는 완성된 설정은 이후 postfix로 전환한 Ubuntu24.04에서 Postfix,OpenDKIM,Dovecot 연동 글부터 보시는 걸 추천합니다. 이 글은 “sendmail로 감을 잡아보는” 용도로만 참고하세요.

시스템 업데이트 및 Sendmail 설치 #

sudo apt-get update
sudo apt -y install sendmail

호스트네임 설정 #

sudo nano /etc/hostname
mail.example.com

Hosts 파일에 공인 IP 매핑 #

sudo nano /etc/hosts
[공인아이피] mail.example.com

위 줄을 추가합니다.

로컬 호스트 네임 추가 후 재부팅 #

sudo nano /etc/mail/local-host-names
mail.example.com

위 줄을 추가한 뒤:

sudo reboot

Dovecot 설치 #

Dovecot(POP3) 설치

sudo apt -y install dovecot-pop3d

Sendmail 설정 수정 #

sudo nano /etc/mail/sendmail.cf
  • 98행: Cwexample.com 기록
  • 269행: 외부 접속 허용을 위해 addr=127.0.0.1 부분 삭제
  • 270행: DAEMON_OPTIONS(Name=MSA, Port=587, M=E)` — 587포트 사용

269행을 삭제하면 외부에서 접속 가능해지는데, 이 시점엔 아직 인증/암호화 설정이 없어서 테스트 환경에서만 이 상태로 두고, 외부에 공개된 서버라면 바로 postfix 전환 단계로 넘어가는 걸 권장합니다.

설정 적용 및 서비스 활성화 #

sudo makemap hash /etc/mail/access < /etc/mail/access
sudo systemctl enable --now sendmail
sudo systemctl enable --now dovecot

Dovecot 기본 설정 수정 #

sudo nano /etc/dovecot/dovecot.conf
  • listen, base_dir 주석(#) 제거
  • disable_plaintext_auth = no 추가 (인증 허용)

Dovecot 메일함 권한 설정 #

sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_access_groups = mail
lock_method = fcntl

웹메일(Roundcube) 및 LAMP 스택 설치 #

APM 패키지 및 IMAP 설치

sudo apt -y install lamp-server^ dovecot-imapd roundcube

lamp-server^는 Ubuntu의 tasksel 메타패키지라, 배포판/이미지에 따라 이 이름 자체가 없을 수 있습니다. 설치가 안 되면 아래처럼 개별 패키지로 나눠서 설치하세요.

sudo apt -y install apache2 mysql-server php libapache2-mod-php php-mysql dovecot-imapd roundcube

Roundcube 아파치 설정 활성화 #

sudo nano /etc/apache2/conf-enabled/roundcube.conf

Alias /roundcube 줄의 주석을 제거합니다.

Roundcube 설정 수정 #

sudo nano /etc/roundcube/config.inc.php
default_host = 'example.com'
smtp_port = 587

smtp_user 값에서 %u를 삭제합니다.

서비스 재시작 및 시간대 설정 #

sudo systemctl restart apache2 mysql
sudo timedatectl set-timezone Asia/Seoul

SSL 인증서 설치(Certbot) #

sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install certbot python3-certbot-apache

SSL 발급 및 자동 설정 #

sudo certbot --apache

인증서 관리 명령어 #

sudo certbot renew --dry-run   # 갱신 테스트
sudo certbot renew             # 실제 갱신
sudo certbot certificates      # 인증서 상태 확인