메일 서버 설치
✒️ 2025-05-22 15:25 내용 수정
메일 서버 관련 용어
| 용어 | 설명 |
|---|---|
| MUA (Mail User Agent) | 메일을 작성하는 프로그램 |
| MDA (Mail Delivery Agent) | LDA(Local Delivery Agent). 메일을 임시 저장하는 디렉터리. /var/spool/mqueue |
| MTA (Mail Transfer Agent) | 메일을 송/수신하는 서버 |
- 메일을 전송하면 MDA에 메일을 임시 저장한다. 이럴 경우 메일 서버에 문제가 발생해도 해당 메일은 사라지지 않는다.
메일 관련 프로토콜
- 프로토콜 참고.
- 대표적인 메일 서버에는 sendmail, postfix, outlookexpress 등이 있다.
| 이름 | 설명 |
|---|---|
| SMTP | 메일 전송 서버 |
| POP3 | 메일 수신 서버 |
| IMAP | 메일 수신 서버(메일 도착 알리미) |
| S/MIME | 메일에 동영상, 이미지 등 첨부 |
Rocky 9에 메일 서버 만들기
- DNS와 연동하여 진행
- DNS 서버 만들기#Rocky 9#2. 마스터 서버를 먼저 진행하고 시작 권장.
1. 메일 서버 구축
dnf -y install sendmail sendmail-cf dovecot로 메일 서버 관련 패키지를 다운 받은 후,rpm -aq | grep sendmail과rpm -aq | grep dovecot으로 패키지를 확인한다.
- /etc/hosts 파일에
cat >> /etc/hosts에 DNS 주소들을 등록하고,cat /etc/hosts으로 확인한다.- 도메인 이름을 실습을 위해 lnxtest.com 으로 만들었다.
- 네트워크#리눅스 네트워크 설정 파일, 파일 및 디렉토리 관리 명령어#리다이렉션 참고.
서버ip주소 mail.lnxtest.com
서버ip주소 www.lnxtest.com
- /etc/mail/local-host-names 파일에
vi /etc/mail/local-host-names로 자신의 메일 서버를 등록한다.
mail.lnxtest.com
vi /etc/sysconfig/network로 /etc/sysconfig/network 파일의 설정을 변경한다.
HOSTNAME=mail.lnxtest.com
-
init 6로 재부팅한다. -
/etc/mail 디렉터리의 /etc/mail/sendmail.cf 파일을
vi /etc/mail/sendmail.cf로 수정한다.
85 : CWlocalhost -> Cw도메인이름 로 수정
268 : O DaemonPortOptions=Port=smtp, Name=MTA
---- 추가 옵션 ----
186 : O MaxMessageSize=0 // 메일의 첨부파일 용량제한
313 : O QueueDirectory=/var/spool/mqueue // 임시저장폴더

- 메일 서버 접속 설정을 위해 /etc/mail/access 파일을
vi /etc/mail/access로 편집한다.- 다른 컴퓨터의 DNS와도 연결할 때 이 부분에 추가해야 한다.
| 설정 | 설명 |
|---|---|
| RELAY | 허용 |
| REJECT | 거부. 거부 사유를 메시지로 보내줌 |
| DISCARD | 거부 |
도메인이름 RELAY
lnxtest.com RELAY
192.168.100 RELAY // 특정 ip 범위를 모두 허용
-
/etc/mail 디렉터리 안에는 기본파일과 기본파일.db이 함께 있다. 이 중에서 기본파일.db는 리눅스가 읽어야 하기에 컴파일을 진행해줘야 하므로
makemap hash /etc/mail/access < /etc/mail/access로 설정 파일을 컴파일한다.- 기본파일은 평문으로 작성되며, 기본파일.db가 컴파일 되는 파일
-
이번엔 dovecot 설정을 위해 /etc/dovecot/dovecot.conf 파일을
vi /etc/dovecot/dovecot.conf로 편집한다.
24 : protocols = imap pop3 lmtp submission // 주석제거
30 : listen = *, :: * = IPv4, :: = IPv6 // 주석제거
33 : base_dir = /var/run/dovecot/ // 주석제거
- /etc/dovecot/conf.d/10-ssl.conf 파일을
vi /etc/dovecot/conf.d/10-ssl.conf로 구문을 수정해준다.
8 : ssl = yes
- /etc/dovecot/conf.d/10-mail.conf 파일을
vi /etc/dovecot/conf.d/10-mail.conf로 편집한다.
25 : mail_location = mbox:~/mail:INBOX=/var/mail/%u // 주석제거
121 : mail_access_groups = mail // 주석제거
166 : lock_method = fcntl // 주석제거

- 메일 서버 서비스를
systemctl restart sendmail로 재실행하거나,systemctl start sendmail로 실행하고,systemctl enable sendmail로 재부팅 시 옵션을 설정한 다음systemctl status sendmail로 서비스 상태를 확인한다. - dovecot 서비스도
systemctl restart dovecot또는systemctl start dovecot재부팅 옵션을systemctl enable dovecot서비스 상태 확인을systemctl status dovecot으로 진행한다.
-
연결 테스트를 위해 방화벽을 끈다.
systemctl disable firewalld && systemctl stop firewalldvi /etc/sysconfig/selinux로 SELINUX=disabled 으로 변경한다.
-
Selinux의 설정을 변경했기에
init 6로 재부팅한다.
2. 메일 주고 받기 테스트
- Rocky에서 우측 상단의 현재 활동 - 목록(점 9개 아이콘) - 상단 검색 창에 evolution 이라고 입력한다.
- 소프트웨어를 클릭하고 에볼루션을 선택한 뒤 설치를 누른다. 설치가 완료 되었다면 열기를 누른다.
- 환영 페이지에서 다음을 누른다.
- 백업에서 복구도 특별한 작업이 없다면 다음을 누른다.
- 신상 정보에서 사용자 이름과 전자메일 주소를 사용자이름@도메인 으로 입력한다.
- 사용자는 해당 리눅스에 등록된 계정을 사용해야 한다.
- 메일 받기 설정을 변경한다.
| 옵션 | 설정 내용 |
|---|---|
| 서버 종류 | POP |
| 포트 | 995 |
| 서버 | mail.도메인주소 |
| 사용자이름 | 앞에서 설정한 계정명 |
| 보안 | 암호화 방식 : TLS, 특정 포트 사용 |
- 받기 옵션에서 특별한 옵션이 없다면 다음으로 넘어간다.
- 메일 보내기 설정을 변경한다.
| 옵션 | 설정 내용 |
|---|---|
| 서버 종류 | SMTP |
| 포트 | 25 |
| 서버 | mail.도메인주소 |
| 보안 | 암호화 없음 |
- 계정 정보와 상세 정보들을 확인한 후 다음을 누른다.
- 완료창이 뜨면 적용을 누른다.
- 메일 창에서 새로 만들기를 누른다.
- 테스트를 위해 자기 자신에게 테스트용 메일을 작성하고 우측 상단의 보내기 버튼을 누른다.
- 메일창에서 보내기/받기 버튼을 누른다.
- 인증서 신뢰 창이 뜨면 계속 허용을 누른다.
- 해당 창이 안 뜬다면 다른 컴퓨터에 메일 송수신 테스트 시 메일이 전송되지 않는 문제가 생긴다.
- 메인 인증 요청에서 등록된 사용자 이름과 암호를 입력한다.
- 이 부분때문에 리눅스에 등록된 계정으로 메일 계정을 생성해야 한다.
- 다시 보내기/받기 버튼을 누르면 테스트를 위해 보낸 메일이 도착한 것을 확인할 수 있다.
- 실습용으로 여러 대의 컴퓨터 사용 시 메일 서버용 컴퓨터의 DNS를 다른 컴퓨터의 /etc/mail/access 파일에 도메인을 등록 후 컴파일을 진행해야 하며, 메일 서버용 컴퓨터에는 다른 컴퓨터의 도메인 zones 파일을 추가해야 서로 주고 받을 수 있었다.