본문 바로가기

LINUX/개념

[리눅스] 메일 서버

728x90

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

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

IMAP(Internet Mail Access Protocol) : POP3와 같은 용도

 

<Server B>

 

apt -y install sendmail
nano /etc/hostname

server-b를 mail.bserver.com로 고친다

nano /etc/hosts

노란색 부분을 추가해준다

nano /etc/mail/local-host-names

mail.bserver.com을 추가한다

reboot명령어로 재부팅한다

 

hostname 명령어를 치면 mail.bserver.com로 호스트이름이 바뀌었음을 알 수 있다!

 

위와 똑같은 방식으로 server도 수정해주면 된다!

 

<Server>

Server에 server.com 도메인과 bserver.com 도메인의 네임 서버를 설정하는 과정이다.

주황색 부분처럼 수정해준다

gedit /etc/bind/named.conf

주황색 부분처럼 추가를 해준다.

 

/etc/bind/ 폴더로 가서 server.com.db와 bserver.com.db 파일을 만들어준다

 

gedit server.com.db

server.com.db 파일에 다음처럼 추가하고 저장한 다음 종료한다

 

gedit bserver.com.db

bserver.com.db 파일에 다음처럼 추가하고 저장한 다음 종료한다

 

sytemctl restart named
sytemctl enable named
sytemctl status named

네임 서버 서비스를 가동해주고 ufw disable로 방화벽을 꺼둔다

 

nslookup 명령어로 네임 서버가 잘 설정되었는지 확인한다

 

 

shift+space로 한영 바꾼 다음 유 tab하면 된다

dns 부분을 수정해준다

 

ping으로 잘 응답하는지 확인한다

 

<Client>

네트워크 연결 설정에서 네임서버를 설정한 뒤 reboot 명령으로 재부팅한다

 

nslookup명령으로 IP주소가 올바른지 확인한다.

 

<Server B>

nano /etc/netplan/00-installer-config.yaml

nano에디터로 위 파일을 열고

nameservers의 addresses부분의 주소를 위처럼 변경해준다

 

그리고 reboot명령으로 재부팅 해준다.

 

재부팅한 후 nslookup으로 확인해보면, 

이렇게 mail.server.com과 mail.bserver.com의 주소가 제대로 되어 있으면 성공이다!

 

<WinClient>

 

윈도우 파워셸(관리자)을 실행하고 밑의 명령어로 DNS서버를 변경한다.

nslookup 명령을 입력하고 mail.server.com(192.168.111.100)과 mail.bserver.com(192.168.111.200)의 IP주소가 정확히 나오는지 확인한다.

 

이렇게 하면 네임서버 구성이 완료 된 것이다. 

 

메일 서버의 sendmail은 보내는 기능이고, dovecot은 받는 기능이다

 

<Server>

apt -y install dovecot-pop3d

dovecot관련 패키지를 설치한다.

 

gedit /etc/mail/sendmail.cf

위 파일을 열어서 다음과 같이 수정한다.

 

98행 : Cwserver.com
269행 : 0 DaemonPortOptions=Faminy=inet, Name=MTA-v4, Port=smtp
270행 : 0 DaemonPortOptions=Faminy=inet, Name=MTA-v4, Port=submission, M=Ea

sendmail.cf 파일은 Sendmail 서버의 설정 파일이다.

 

Cw도메인이름 : 도메인이름을 가진 메일 서버로 사용하겠다는 의미

MaxMessageSize=용량 : 메일 1개의 본문과 첨부 파일을 합친 제한 용량(바이트 단위)

Mlocal 설정내용 : 전체 메일 공간을 '설정내용'으로 제한

O QueueDirectory=/var/spool/mqueue : 메일 전송 시 사용하는 임시 저장 디렉터리

O DaemonPortOptions=Faminy=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1 : Addr=127.0.0.1은 자기자신만 메일을 보낼 수 있다는 의미, 그래서 외부에서도 메일을 보낼 수 있도록 이 부분을 삭제했다.

 

gedit /etc/mail/access

위 파일을 열어서

server.com	RELAY
bserver.com	RELAY
192.168.111	RELAY

파일 아래에 위 내용을 추가해준다.

 

server.com, bserver.com 도메인의 릴레이를 허용하고, 192.168.111.OOO 컴퓨터의 릴레이를 허용한다는 의미이다.

 

여기서 메일 릴레이(Mail Relay)란, 다른 네트워크 또는 호스트에서 자신의 메일 서버를 경유하여 메일을 전송하는 것이다. 이 기능을 악용해서 스팸 메일이나 바이러스 메일 등 대량 메일을 발송하는 경우가 종종 있다.

Sendmail에서 제공하는 메일 릴레이 기능은 기본적으로 자기 자신의 IP주소(127.0.0.1) 외에 아무도 메일을 발송할 수 없도록 설정되어 있다. 이 파일이 /etc/mail/access이다.

하지만 모든 사용가자 메일 서버 컴퓨터 앞에서 메일을 보낼 수 없어서 신뢰할 수 있는 도메인이나 호스트 또는 네트워크에는 메일 릴레이를 할 수 있도록 허용한다. 보통 /etc/mail/access 파일의 릴레이 허용은 RELAY로, 거부는 REJECT나 DISCARD를 사용한다.

 

makemap hash /etc/mail/access < /etc/mail/access

위 명령으로 변경사항을 적용한다.

 

gedit /etc/dovecot/dovecot.conf

사용자에게 메일 박스의 내용을 보내주는 서비스 설정파일을 연다.

30행 주석 제거 : listen = *, ::
33행 주석 제거 : base_dir = /var/run/dovecot/
34행 추가 : disable_plaintext_auth = no

위 내용으로 수정해준다.

 

30행의 '*'는 IPv4를, '::'는 IPv6 프로토콜을 의미한다.

34행의 추가 된 문장으로 외부에서 정상 접속이 되게 만든다.

 

gedit /etc/dovecot/conf.d/10-mail.conf

위 파일을 열고

121행 주석제거 : mail_access_groups = mail
166행 주석제거 : lock_method = fcntl

위 내용처럼 수정해준다.

 

adduser lee 명령으로 메일 계정 사용자를 생성한다. 암호는 아무거나 해도 상관없다.

 

systemctl restart sendmail
systemctl enable sendmail
systemctl restart dovecot
systemctl enable dovecot

위 명령으로 sendmail과 dovecot 서비스를 시작하고 상시 가동시킨다.

 

지금까지 server.com 메일 서버를 완성했다.

 

server.com 메일 서버가 잘 작동하는지 확인해본다

 

<Client>

 

sudo apt -y install evolution

Client 서버 터미널에서 에볼루션을 설치한다. (에볼루션은 리눅스 오픈소스 메일 프로그램이다)

 

evolution이라고 명령어를 쳐서 에볼루션을 실행한다.

Receiving Email 창

Sending Mail 창

Account Summary 창

자기자신에게 메일 보내기

메일을 보낸 후 상단에 Send/Receive버튼을 눌러서 로그인을 하면 자기자신에게 온 메일을 확인할 수 있다

자기자신에게 메일이 잘 도착했음을 확인할 수 있다. 안 보이면 왼쪽 사이드에 있는 Inbox버튼을 누르면 된다

 

<Server B>

 

이번에는 Server B에서 bserver.com 메일 서버를 구축한다. Server에서 server.com 메일 서버를 구축한 것과 동일한 방법으로 하면 된다.

apt -y install dovecot-pop3d

위 명령으로 dovecot 관련 패키지를 설치한다.

 

nano -c /etc/mail/sendmail.cf
98행 : Cwbserver.com
269행 : 0 DaemonPortOptions=Family=inet, Name=MTA-v4, Port=smtp
270행 : 0 DaemonPortOptions=Family=inet, Name=MTA-v4, Port=submission, M=Ea

/etc/mail/sendmail.cf파일을 열어서 위와 같이 수정해준다.

 

nano /etc/mail/access

/etc/mail/access 파일을 열어서 맨 아래에 위 내용을 추가한다.

 

makemap hash /etc/mail/access < /etc/mail/access

위 명령으로 파일을 수정한 것을 적용한다.

 

nano -c /etc/dovecot/dovecot.conf

위 파일을 열어서

30행 주석 제거 : listen = *, ::
33행 주석 제거 : base_dir = /var/run/dovecot/
34행 추가 : disable_plaintext_auth = no

위의 내용처럼 수정한다.

 

nano -c /etc/dovecot/conf.d/10-mail.conf
121행 주석제거 : mail_access_groups = mail
166행 주석제거 : lock_method = fcntl

똑같이 파일을 수정해준 후 adduser kim으로 bserver.com의 메일 계정 사용자인 kim을 생성한다.

 

systemctl restart sendmail
systemctl enable sendmail
systemctl restart dovecot
systemctl enable dovecot

위 명령으로 sendmail과 dovecot 서비스를 시작하고 상시 가동시킨다.

 

ufw disable 명령으로 방화벽을 꺼둔다.

 

 

<WinClient>

 

오페라 메일(Opera mail)을 메일 클라이언트로 사용해보겠다. 이것이리눅스다 카페의 실습파일모음에 있다

 

전자메일을 선택해서 새 계정을 위처럼 만들어주면 된다.

 

 

이제 server.com에게 메일을 보내면 된다.

 

임시보관함에 메일이 있으면 로그인세부사항을 클릭해서 인증을 보안 없음으로 바꾸고 다시시도 버튼을 누르면 된다

그러면 Client의 에볼루션에 bserver.com에서 보낸 메일이 도착했음을 확인할 수 있다.

 

 

728x90

'LINUX > 개념' 카테고리의 다른 글

[리눅스] 네임 서버  (0) 2021.08.24
[리눅스] ssh 서버  (0) 2021.08.23
[리눅스] 텔넷(telnet) 서버  (0) 2021.08.23
[Linux 개인 프로젝트] 채팅 프로그램 만들기  (0) 2021.08.09