메일서버 구축
postfix와 dovecot의 상세한 설명은 나중에 정리하도록 하겠습니다
메일서버를 직접 구축해야할 일이 생겨 구축하며 정리를 해보려고 합니다
sendmail도 고려해봤지만 아래와 같은 이유로 postfix를 선택하게 되었습니다.
특성 | sendmail | postfix |
개발 철학 | 초기의 단일 구조 | 모듈화된 구조 |
설정 복잡도 | 복잡하고 어려움 | 간단하고 직관적 |
보안 | 취약점 다수 발생 | 보안성이 뛰어남 |
성능 | 상대적으로 낮음 | 빠르고 효율적 |
사용성 | 관리 및 설정이 어려움 | 관리가 쉬움 |
Setting
- OS: CentOS 9 Stream
- MTA(이메일을 전달하는 서버): Postfix
- MDA(이메일을 최종 저장): Dovecot
- MUA(이메일 작성 및 읽기 도구): Outlook
- MAA(이메일 서버에 접근): Dovecot
postfix, dovecot 설치
portfix 설치
# Postfix 설치 (기본적으로 설치되어 있을 수 있음)
sudo yum install postfix
dovecot 설치
# Dovecot 설치
sudo yum install dovecot
postfix 기본 설정
# main.cf 파일 편집
sudo vi /etc/postfix/main.cf
필요에 맞게 yourdomain을 수정했습니다
# 도메인 설정
myhostname = mail.yourdomain.com
mydomain = yourdomain.com
myorigin = $mydomain
# 네트워크 설정
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# TLS 설정
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key
smtpd_use_tls = yes
Dovecot 기본 설정
# dovecot.conf 파일 편집
sudo vim /etc/dovecot/dovecot.conf
protocols = imap pop3
listen = *
서비스 재시작
# 서비스 재시작
sudo systemctl restart postfix
sudo systemctl restart dovecot
# 서비스 상태 확인
sudo systemctl status postfix
sudo systemctl status dovecot
이상이 없다면 아래와 같이 active가 running인 것을 확인할 수 있습니다
SELinux 설정
# SELinux 설정 확인
sudo sestatus
# 메일 관련 SELinux 설정 활성화
sudo setsebool -P httpd_can_network_connect=1
sudo setsebool -P postfix_local_write_mail_spool=1
방화벽 설정하기
# 필요한 포트 개방
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-service=pop3
sudo firewall-cmd --permanent --add-service=imap
sudo firewall-cmd --permanent --add-port=465/tcp # SMTPS
sudo firewall-cmd --permanent --add-port=587/tcp # Submission
sudo firewall-cmd --permanent --add-port=993/tcp # IMAPS
sudo firewall-cmd --permanent --add-port=995/tcp # POP3S
# 방화벽 설정 다시 로드
sudo firewall-cmd --reload
참고사항
메일서버의 역방향 DNS(PTR 레코드)가 제대로 설정되어 있어야합니다
다음에 계속 작성하겠습니다
'개발일지' 카테고리의 다른 글
React 컴포넌트의 렌더링 중에 상태 업데이트를 트리거하면 안 된다 (0) | 2024.11.18 |
---|