메일 서비스에 사용되는 프로토콜
- SMTP, POP3, IMAP 등
SMTP(Simple Mail Transfer Protocol, TCP 25)
- 메일서버간에 메일 송/수신에 사용되는 프로토콜
POP3(Post Office Protocol 3, TCP 110)
- 메일서버에 저장된 메일을 다운로드하는 프로토콜
IMAP(Internet Mail Access Protocol, TCP 143)
- 메일서버에 저장된 메일을 접근(Access)하는 프로토콜
메일 송수신 역할에 따른 용어
MUA(Mail User Agent): 사용자를 대신해서 메일 발송/수신
받아주는 프로그램
대표 유틸리티
- Microsoft Outlook (유료). Mozilla Thunderbird (무료)
MTA(Mail Transfer Agent): 메일 서버에서 메일 송/수신을
담당하는 프로그램
대표 유틸리티
- sendmail, qmail, Exchange Server (Microsoft)
MDA(Mail Delivery Agent): 수신된 메일을 메일함 저장
하는 프로그램
대표 유틸리티
- procmail
MRA(Mail Retrieval Agent): 메일함 저장된 메일을 사용자에게
전송하는 프로그램
대표 유틸리티
- dovecot, uw-imap
메일 서버 구축
1. hostname 수정후 재부팅
CentOS ~6 : /etc/sysconfig/network
HOSTNAME=호스트명
CentOS 7~ : /etc/hostname
호스트명 변경 후 재부팅
# reboot, init 6
2. /etc/hosts 등록, NS서버에 MX레코드와 A레코드를 등록
Localhost(메일서버): /etc/hosts
192.168.200.103 호스트명
NS(네임서버): /var/named/영역명.zone
@ IN MX 10 호스트명
호스트명 IN A 192.168.200.103
3. sendmail 패키지를 설치, 업그레이드
설치확인 : rpm -qa | grep sendmail
yum list sendmail
설치 : yum install sendmail
업그레이드: yum update sendmail
4. /etc/mail/sendmail.cf 에서 수신받을 IP주소, 저장할 영역명
- 수신(청취,Listen) IP주소 지정 옵션
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
Addr=0.0.0.0 or 생략 : 모든 IP주소로 청취
Addr=127.0.0.1 : LocalHost(127.0.0.1)만 청취
Addr=192.168.200.103 : 특정 IP(192.168.200.103)만 청취
※ IP주소가 여러개인 경우 옵션을 계속 추가할 수 있다.
- 저장할 영역명
Cw영역명 <- 저장할 영역명을 직접 설정
Fw/etc/mail/local-host-names <- 파일에 1행씩 영역명을 추가
5. /etc/mail/access 파일을 편집하여 RELAY,DISCARD,REJECT할
IP대역, 도메인을 추가한다.
그리고, > (입력전환)을 이용하여 access.db에 저장한다.
/etc/mail/access
192.168.200.100 RELAY : IP주소만 릴레이
192.168.200.0/24 RELAY : IP대역만 릴레이
192.168.200.0/255.255.255.0 RELAY : IP대역만 릴레이
co.kr RELAY : *.co.kr 로 끝나는
모든 영역에 릴레이
@naver.com DISCARD : naver.com 영역에 거부
spam@ REJECT : spam 계정에 반송
# makemap hash access.db < access
6. 데몬(서비스) 구동, 방화벽 포트 개방
CentOS ~6 : service 데몬명 start
CentOS 7~ : systemctl start 데몬명.service
--------------------실습--------------------
우선 메일서버로 운영하기 위해 호스트 네임을 바꾸어주자.
# vi /etc/sysconfig/network
# vi /etc/hosts
기본 설정을 해주고
# init 6
로 설정이 적용될 수 있도록 재부팅해주자.
# yum install sendmail
로 패키지를 설치해주자.
# vi /etc/mail/sendmail.cf
에서 환경설정을 변경해주자.
수신할 도메인 설정
1. sendmail.cf 파일에 Cw 옵션으로 하나하나 나열하는 지정하는 방식
/etc/mail/sendmail.cf
85행 쯤
ex) Cwnaver.com
86행 Cwgoogle.com
2. 파일에 따로 나열하여 지정하는 방식
/etc/mail/local-host-names : Cw도메인명으로 설정할 내용을 별도의 파일에서 관리할 수 있다.
설정파일이 길어지는 것은 싫으므로 본인은 local-host-names 파일을 수정하겠다.
그리고 265행 쯤 허용할 IP주소와 포트를 지정하는 옵션이있다.
줄을 복사해서 계속해서 나열하는 방법도 있다. 루프백 주소와 자신의 IP만 설정해주었다.
265행 DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
266행 DaemonPortOptions=Port=smtp,Addr=192.168.200.103, Name=MTA
- Addr=127.0.0.1 : 유지하는 경우 127.0.0.1(localhost) 허용
- Addr=127.0.0.1을 제거할 경우 모든 interface 수신 허용
Addr=0.0.0.0 과 동일함
- 그외 interface 추가할 경우 아래 1행을 복사하여 추가할 IP주소로
수정한다.
# vi /etc/mail/local-host-names
에서 도메인을 설정해주자.
# vi /etc/mail/access
파일을 수정하여 접근권한을 설정해주자.
예시로 여러가지 설정해보았다. RELAY는 허용이다. DISCARD 등 다른 옵션은 위에 설명해놓았다.
위에서 access 파일을 텍스트로 변경을 하였다. 변경한 파일을 DB로 변환하여 설정하도록 하자.
# makemap hash /etc/mail/access.db < /etc/mail/access
strings 명렁어를 이용하여 DB 파일 내용을 확인할 수 있다. 확인을 해보니 수정한 내용이 잘 설정된 것같다.
# iptables -I INPUT -p tcp --dport 25 -j ACCEPT
# service sendmail restart
명령어를 이용하여 포트개방과 시스템을 실행해보자.
테스트를 위해 user1 계정을 만들어서 확인해보자.
# useradd user1
root에서 메일을 보내보았다. user1에서 확인해보자.
user1에서 확인해보니 보냈던 메일이 온 것을 확인할 수 있었다.
'실습 > [CentOS]' 카테고리의 다른 글
[CentOS] DNS서버 레코드Type 설정, Master/Slave 서버 (0) | 2020.07.23 |
---|---|
[CentOS] 네임서버(DNS) 기본 구축 (0) | 2020.07.22 |
[CentOS] Telnet 서버와 SSH 서버 구축과 공개키 인증 (0) | 2020.06.30 |
[CentOS] 시스템의 안정성을 위한 정기적인 시스템 백업 (0) | 2020.06.29 |