리눅스 메일서버 구축

신민창·2021년 5월 5일
4

프로젝트

목록 보기
5/5

리눅스 메일서버 구축

인터넷이 발달하면서 가장 많이 사용되는 서비스 중에 하나가 이메일이다. 특히 이메일은 소규모회사라도 자체적으로 이메일을 갖고 있듯이 회사에서 매우 중요한 의미를 가질 수 있다고 할 수 있다. 이러한 메일 서버를 구현해볼것이다.

이메일 송수신에 사용되는 프로토콜

SMTP (Simple Mail Transfer Protocol) : 클라이언트가 메일을 보내거나, 메일 서버끼리 메일을 주고 받을 때 사용

POP3 (Post Office Protocol) : 메일 서버에 도착한 메일을 클라이언트로 가져올 때 사용

IMAP ( Internet Mail Access Protocol) : 메일 서버에 도착한 메일을 클라이언트로 가져올 때 사용, POP3와 동일

구축

이번에는 리눅스에서 제공하는 sendmail 서버를 구축할 것이다.

구성도는 다음과 같다.

필요한 가상 머신으로는 Mail-server, Name-server, Client, Client2이다. 하지만 하나의 가상머신으로 Mail-server, Name-server, Client2 역할을 수행할 수 있기 때문에 실제로는 Server와 Client 가상 머신 2대가 필요하다. 클라이언트는 언제든지 새로 추가할 수 있기 때문에 일단 2대로 메일서버를 구축할 것이다.

구성환경

Server - 192.168.100.132/24
Client - 192.168.100.130/24
메일 서버 이름 : naver.com

Server

# root 사용자로 접속

# yum -y install sendmail  sendmail 패키지 설치
# vi /etc/hostname  호스트 이름 수정

mail.naver.com 호스트 이름 mail.naver.com
# vi /etc/hosts

192.168.100.132		mail.naver.com       -- 해당 라인 추가
# vi /etc/mail/local-host-names

mail.naver.com  -- 해당 라인 추가
# vi /etc/sysconfig/network

HOSTNAME=mail.naver.com  -- 해당 라인 추가
# reboot

이제 naver.com 도메인 네임 서버를 설정해야 한다.

# yum -y install bind bind-chroot  -- 네임 서버 패키지 설치
# vi /etc/named.conf   아래 사진처럼 수정한다.


# vi /etc/named.conf

# 맨 아래 추가
zone "naver.com" IN {
      type master;
      file "naver.com.db";
      allow-update { none;};
};
# cd /var/named
# vi naver.com.db 

$TTL		3H
@	SOA	@	root.	( 2 1D  1H  1W  1H )
	IN	NS	@
	IN	A	192.168.100.132
	IN	MX	10 mail.naver.com.

mail	IN	A	192.168.100.132
# 설정에 이상 없는지 체크한다.

# named-checkconf
# named-checkzone naver.com naver.com.db

아래 사진처럼 결과가 나오면 이상이 없는 것이다.

이제 named 서비스를 다시 시작해야한다.

# systemctl restart named
# systemctl enable named
# systemctl status named

dns 포트 및 여러 포트를 열어야하므로 그냥 편하게 방화벽을 꺼버리자.

# systemctl stop firewalld
# systemctl disable firewalld

nslookup 명령어를 입력해서 네임서버가 잘 설정되었는지 확인하자.

# vi /etc/sysconfig/network-scripts/ifcfg-ens33

DNS1="192.168.100.132" -- DNS1이 있으면 수정 없으면 추가
# vi /etc/resolv.conf

nameserver 192.168.100.132   -- 해당 라인으로 수정
# reboot        재부팅

Client

# vi /etc/resolv.conf

nameserver 192.168.100.132     -- 해당 라인으로 수정
# nslookup
> mail.naver.com   해당 명령어를 통해서 192.168.100.132인지 확인한다.

이제 네임서버 구성이 모두 끝났다. 이제 메일 서버를 구축해보자

Server

# yum -y install sendmail-cf dovecot     메일서버 구현 필수 패키지
# vi /etc/mail/sendmail.cf

# 아래처럼 수정

85행 Cwnaver.com
267행 0 DaemonPortOptions=Port=smtp, Name=MTA 
# vi /etc/mail/access

# 아래 내용 추가

naver.com				RELAY  --> naver.com relay 허용
192.168.100				RELAY  --> 해당 네트워크 주소의 호스트 relay 허용
수정한 내용 적용
# makemap hash /etc/mail/access < /etc/mail/access

이제 dovecot 설정 파일을 변경해야한다.

# vi /etc/dovecot/dovecot.conf

24행 주석 제거 protocols = imap pop3 lmtp
30행 주석 제거 listen = *, ::
33행 주석 제거 base_dir = /var/run/dovecot/
# vi /etc/dovecot/conf.d/10-ssl.conf

8행 ssl = yes
# vi etc/dovecot/conf.d/10-mail.conf

25행 주석 제거 mail_location = mbox:~/mail:INBOX=/varmail/%u
121행 주석 제거 후 변경 mail_access_groups = mail
166행 주석 제거 lock_method = fcntl

이제 계정 사용자를 생성하자.

# useradd lee
# passwd lee
# 비밀번호 설정

# useradd shh
# passwd shh
# 비밀번호 설정

이제 sendmail 과 dovecot 서비스를 재시작하자

# systemctl restart sendmail
# systemctl enable sendmail
# systemctl restawrt dovecot
# systemctl enable dovecot

이제 모든 준비가 끝났다. 이제 메일 계정 생성 후 메일을 보내보자

Client

리눅스 메일 프로그램인 evolution을 실행해야한다. 만약 설치가 되어있지 않다면 아래처럼 따라해서 설치하면 된다.

클라이언트에서는 user lee를 사용할 것이다.





이제 계정 생성이 완료되었다.

send/recieve를 누른다음 인증서 계속 허용을 누른다.

그리고 메인 인증 요청 창이 나오면

위에서 설정한 lee, lee 비밀번호를 사용해서 로그인하면 된다.

그럼 이제 메일 사용하기 위한 모든 준비는 끝났다. 먼저 자기 자신에게 메일을 보내보자.


send/receive를 누르면 보낸 메일이 도착한 것을 볼 수 있다.

그럼 이제 server에서 shh 계정을 만들어서 테스트를 해보자.

Server

기존에 클라이언트에서 한 모든 과정을 반복한다.
evolution 설치 후 shh 계정 생성

모든 과정을 완료하였으면 lee@naver.com으로 메일을 보내보자

client 화면

이렇게 보낸 메일이 두번째에 있는 것을 볼 수 있다. 여기서 다시 답장을 보내보자

server 화면


이렇게 답장이 온것을 확인할 수 있다.

이렇게 사설 네트워크 내부에서 메일 서버를 구축해보았다. 네트워크 내부에서 구축하였지만 외부에서도 방법은 거의 동일하다. 메일 서버를 구축해보면서 네임서버, 메일서버를 좀 더 확실하게 공부해보았다.

0개의 댓글