Ubuntu에 SMTP 메일 서버를 구성하려면 Postfix
라는 메일 서버 소프트웨어를 사용하여 간단하게 설정할 수 있습니다. Postfix는 Ubuntu에서 많이 사용하는 SMTP 서버로, 비교적 설치와 설정이 쉽고 널리 사용됩니다. Ubuntu에 Postfix를 설치하고 SMTP 서버를 구성하는 방법입니다.
1. Postfix 설치
Postfix를 설치합니다.
sudo apt update
sudo apt install postfix
설치 과정에서 몇 가지 설정을 선택해야 하는데, 기본적으로 다음과 같이 설정하면 됩니다.
- Mail Server Configuration Type: "Internet Site" 선택
- System Mail Name: 서버의 도메인 이름 입력 (예: example.com)
2. Postfix 기본 설정
설치가 완료되면 Postfix의 설정 파일을 수정하여 적절하게 구성해야 합니다. Postfix 설정 파일 /etc/postfix/main.cf
을 편집합니다.
sudo nano /etc/postfix/main.cf
다음과 같은 설정을 확인하고 수정하세요.
- myhostname: 서버의 호스트 이름 (예: mail.example.com)
myhostname = mail.example.com
- mydomain: 서버의 도메인 이름 (예: example.com)
mydomain = example.com
- myorigin: 메일의 출발지를 도메인으로 설정
myorigin = /etc/mailname
- mydestination: Postfix가 수신하는 도메인을 설정
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
- relayhost: 필요 시 리모트 SMTP 서버로 메일을 릴레이할 수 있는 호스트 설정
기본적으로는 빈 값으로 둡니다. 외부 SMTP 서버로 릴레이를 원할 경우 여기서 설정합니다.relayhost =
- inet_interfaces: 외부에서 메일을 수신하기 위해
all
로 설정inet_interfaces = all
- mynetworks: 서버가 메일을 릴레이할 네트워크 대역
내부 네트워크나 신뢰할 수 있는 IP를 지정합니다.mynetworks = 127.0.0.0/8
3. SASL 인증 설정
Postfix에 SMTP 인증(SASL)을 추가하여 사용자 인증을 통해 메일을 송수신하도록 설정할 수 있습니다. 이는 특히 외부 사용자가 서버에 접속해서 메일을 보내야 할 때 유용합니다. 다음 명령어로 SASL 패키지를 설치합니다.
sudo apt install sasl2-bin
SASL 설정을 활성화하기 위해 /etc/postfix/main.cf
파일에 다음 내용을 추가합니다.
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
SASL의 사용자 계정을 설정하려면 /etc/sasldb2
에 계정을 추가할 수 있습니다.
4. TLS/SSL 설정
보안 메일 전송을 위해 TLS 설정을 추가할 수 있습니다. SSL 인증서를 준비한 후, 다음을 추가합니다.
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
5. 서비스 재시작
설정을 완료한 후 Postfix를 재시작하여 변경 사항을 반영합니다.
sudo systemctl restart postfix
6. 방화벽 설정
Postfix가 외부에서 메일을 수신할 수 있도록 방화벽 규칙을 설정합니다. SMTP는 기본적으로 포트 25를 사용합니다.
sudo ufw allow Postfix
sudo ufw reload
7. 테스트
이제 메일 서버가 제대로 동작하는지 테스트할 수 있습니다. mail
명령을 사용하여 테스트 메일을 전송할 수 있습니다.
echo "Test email body" | mail -s "Test Subject" user@example.com
이후 /var/log/mail.log
파일에서 로그를 확인하여 메일이 성공적으로 전송되었는지 확인할 수 있습니다.
sudo tail -f /var/log/mail.log
위 과정을 따라 Postfix를 사용한 SMTP 메일 서버를 구성할 수 있습니다. 필요에 따라 더 정교한 설정이나 추가 기능을 고려할 수 있습니다.
MailHog는 로컬 개발 환경에서 사용하기 좋은 이메일 테스트 도구로, 메일을 수신하고 간단한 웹 UI를 통해 메일을 확인할 수 있는 도구입니다. SMTP 서버로 기능하면서도 실제 메일을 외부로 보내지 않고, 대신 웹 인터페이스에서 메일 내용을 확인할 수 있어 매우 유용합니다. MailHog를 Ubuntu에 설치하고 구성하는 방법입니다.
1. MailHog 설치
MailHog의 바이너리를 다운로드한 후 설치하는 방법입니다.
# MailHog 바이너리 다운로드
wget https://github.com/mailhog/MailHog/releases/download/v1.0.1/MailHog_linux_amd64
# 실행 가능하도록 권한 변경
chmod +x MailHog_linux_amd64
# 시스템 전역에서 사용 가능하도록 이동
sudo mv MailHog_linux_amd64 /usr/local/bin/mailhog
2. MailHog 실행
MailHog를 실행하여 메일을 수신받을 수 있도록 설정합니다. 기본적으로 SMTP 포트 1025번을 사용하고, 웹 인터페이스는 8025번 포트에서 접근 가능합니다.
mailhog
별도로 백그라운드에서 실행하거나, 시스템 서비스로 등록하고 싶으면 다음 단계를 따르세요.
3. MailHog를 서비스로 등록
MailHog를 시스템 서비스로 등록하여 서버 시작 시 자동으로 실행되도록 구성할 수 있습니다.
- 시스템 서비스 파일 생성
sudo nano /etc/systemd/system/mailhog.service
- 아래와 같이 서비스를 설정
[Unit] Description=MailHog Email Testing Tool After=network.target [Service] User=ubuntu ExecStart=/usr/local/bin/mailhog Restart=always [Install] WantedBy=multi-user.target
- 서비스를 활성화하고 시작
sudo systemctl daemon-reload sudo systemctl enable mailhog sudo systemctl start mailhog
4. Postfix와 MailHog 연동
MailHog와 Postfix를 연동하여 Postfix가 보낸 메일을 MailHog에서 수신하고 웹 UI에서 확인할 수 있도록 설정합니다. /etc/postfix/main.cf
파일을 열어 Postfix의 relayhost
설정을 MailHog로 지정합니다.
sudo nano /etc/postfix/main.cf
다음 줄을 추가하거나 수정하세요.
relayhost = [127.0.0.1]:1025
Postfix를 다시 시작하여 변경 사항을 적용합니다.
sudo systemctl restart postfix
5. 웹 인터페이스에서 메일 확인
MailHog가 실행되면 웹 브라우저에서 다음 주소로 접속하여 수신된 메일을 확인할 수 있습니다.
http://localhost:8025
원격 서버에서 실행 중이라면 서버의 IP 주소와 포트를 사용하여 외부에서 접속할 수 있습니다.
http://서버_IP:8025
6. 테스트
Postfix가 MailHog로 메일을 전달하는지 확인하기 위해 메일을 보내는 테스트를 진행합니다.
echo "Test email body" | mail -s "Test Subject" user@example.com
이메일이 정상적으로 MailHog에 수신되면 웹 UI에서 확인할 수 있습니다.
7. 방화벽 설정
MailHog의 웹 UI에 외부에서 접근하려면 방화벽 규칙을 추가해 포트 8025를 허용해야 합니다.
sudo ufw allow 8025
sudo ufw reload
이제 MailHog를 통해 이메일을 수신하고 웹에서 확인할 수 있습니다. MailHog는 개발 환경에서 이메일 테스트 용도로 매우 유용하며, 실제 메일 전송 없이 테스트할 수 있다는 점이 큰 장점입니다.
댓글