Linux
7월 20일 Linux
by 개발자 영만
2022. 7. 20.
메일 서버 설치와 운영
메일 서버 개념(1)
E-Mail의 송수신에서 사용되는 프로토콜
- SMTP(Simple Mail Transfer Protocol): 클라이언트가 메일을 보내거나, 메일 서버끼리 메일을 주고 받을 때
- POP3(Post Office Protocol): 메일 서버에 도착되어 있는 메일을 클라이언트로 가져올 때
- IMAP(Internet Mail Access Protocol): POP3와 같음
IMAP / POP3
- 우선, 두 용어는 모두 이메일 메시지를 읽어오기 위한 프로토콜이며, 서버에서 내용을 받아오는 방식을 의미합니다.
- IMAP은 Internet Messaging Access Protocol의 약자로 서버에서 이메일을 읽는 프로토콜입니다.
- 따라서, 어떤 상황에서든 동일한 내용을 읽어올 수 있음
- POP3는 Post Office Protocol의 약자로 사용자의 기기로 이메일을 다운로드하여 읽는 프로토콜.
- 대신, 다운로드한 내용은 서버에서 삭제되기 때문에 동일한 기기에서만 이메일 확인이 가능
- 대부분의 서비스 업체에서는 POP3 방식을 많이 제공
- 일부 업체에서는 두 가지 방식을 모두 지원.
차이점
IMAP - 서버에서 내용을 불러오기.
- PC나 모바일에서 메일을 확인할 때 서버에 저장된 정보를 가져와서 내용을 보여주고 변경 사항을 동기화.
- 그렇기 때문에, 여러 가지의 디바이스에서 접속하여도 항상 동일한 정보를 확인할 수 있습니다.
POP3 - 서버에서 기기로 다운로드
- 우리가 사용하는 기기에 정보를 저장.
- 즉, 서버에 있는 이메일을 열람할 경우 현재 사용하고 있는 기기에 다운로드한 뒤 서버에서는 삭제.
장/단점 비교 - IMAP
장점
- 동기화: 아웃룩에서 보낸 데이터를 웹 또는 모바일에서 확인
- 안정적인 환경: 다운로드 이슈가 발생하지 않아, 안정적은 환경에서 수/발신할 수 있음
- 편리한 멀티 디바이스 사용: 언제 어떤 디바이스에서 접속해도 모든 속성이 동기화되어, 편리하게 사용.
단점
- 용량 관리의 어려움: 서버에 계속 데이터가 쌓이기 때문에, 용량 제한 서비스를 이용할 경우 용량 관리가 어려움.
- 비싼 도입 요금: 모든 내용들을 동기화해야 해서 더 많은 트래픽이 필요하기 때문에 사용 요금이 비쌈.
장/단점 비교 - POP3
장점
- 편리한 용량 관리: 데이터를 자동 삭제하도록 설정할 수 있기 때문에 비교적 용량 관리 쉬움
- 저렴한 사용 요금: 거의 모든 서비스 제공 업체가 POP3 환겨을 지원하기 때문에 사용 요금이 크게 비싸지 않음.
단점
- 보낸 이메일 보존 불가: 이웃룩에서 보낸 편지는 웹 서버에 저장되지 않기 때문에 아웃룩 외에 다른 곳에서 보낸 데이터를 확인하기 어려움.
- 기기 관리의 어려움: 저장된 기기 자체를 관리해야 하기 때문에, 하드 드라이브가 고장 나거나 PC에 바이러스가 생긴 경우 복구하기 어려움.
- 다운로드 이슈 발생: 여러 디바이스에서 같은 메일을 계속 다운로드하다 보면, 중복 다운로드 및 사라짐 이슈 등이 발생할 수 있음.
메일 서버 개념
센드메일 서버의 구현
실습
Server에서 작업
- 네임서버 - naver.com
- 메일서버 설치 - sendmail
- hostname 변경과 이름(mail.naver.com) 등록
- gedit /etc/hostname
- server -> mail.naver.com 으로 변경 후 저장
- hosts 파일에 등록
- gedit /etc/hosts
- 192.168.111.100 mail.naver.com 등록 후 저장
127.0.0.1 localhost
127.0.1.1 server
192.168.111.100 mail.naver.com
- local-host-names에 등록
- gedit /etc/mail/local-host-names
- mail.naver.com 등록 후 저장
localhost
server
mail.naver.com
Server-B에서 작업
- 네임서버 - daum.net
- 메일서버 설치 - sendmail
- hostname 변경과 이름(mail.daum.net) 등록
- gedit /etc/hostname
- server -> mail.daum.net 으로 변경 후 저장
- hosts 파일에 등록
- gedit /etc/hosts
- 192.168.111.200 mail.daum.net 등록 후 저장
127.0.0.1 localhost
127.0.1.1 server
192.168.111.200 mail.daum.net
- local-host-names에 등록
- gedit /etc/mail/local-host-names
- mail.daum.net 등록 후 저장
localhost
server
mail.daum.net
Server에서 작업
- 네임서버 설치(bind9, bind9utils 설치)
- apt -y install bind9 bind9utils
- name.conf.options 편집
- gedit /etc/bind/named.conf.options
- dnssec-validation no; (수정) / recursion yesr; (추가) / allow-query { any; }; (추가)
dnssec-validation no;
recursion yes;
allow-query { any; };
- named.conf 에 zone 파일 등록 - naver.com, daum.net 두개 등록
- gedit /etc/bind/named.conf
- naver.com 과 daum.net 등록
zone "naver.com" IN {
type master;
file "/etc/bind/naver.com.db";
};
zone "daum.net" IN {
type master;
file "/etc/bind/daum.net.db";
};
- db 파일 생성 및 내용 입력 - naver.com.db, daum.net.db
- cd /etc/bind
- touch naver.com.db daum.net.db
- gedit naver.com.db
$TTL 3H
@ IN SOA @ root. ( 2 1D 1H 1W 1H )
@ IN NS @
IN A 192.168.111.100
#MX: 메일 서버라는 뜻
IN MX mail.naver.com.
mail IN A 192.168.111.100
$TTL 3H
@ IN SOA @ root. ( 2 1D 1H 1W 1H )
@ IN NS @
IN A 192.168.111.100
IN MX mail.daum.net.
mail IN A 192.168.111.100
- 내용 입력한거 이상유무 체크
- named-checkconf
- named-checkzone naver.com naver.com.db
- named-checkzone daum.net daum.net.db
- OK 메시지 나오면 정상
- 서비스 재시작 / 등록 / 상태확인
- systemctl restart named
- systemctl enable named
- systemctl status named
- 방화벽 끄기
- 서버동작 확인
- nslookup
- server 192.168.111.100
- > mail.naver.com
192.168.111.100
- > mail.daum.net
192.168.111.100
Server - mail.naver.com DNS 변경
- cd /etc/NetworkManager/system-connections/
- gedit 유선\ 연결\ 1.nmconnection
[connection]
id=유선 연결 1
uuid=61d3d200-5530-382c-81ca-7f2767ec718e
type=ethernet
autoconnect-priority=-999
interface-name=ens32
permissions=
timestamp=1588327690
[ethernet]
mac-address-blacklist=
[ipv4]
address1=192.168.111.100/24,192.168.111.2
# dns 변경
dns=192.168.111.100;
dns-search=
ignore-auto-dns=true
method=manual
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
[proxy]
Client
- sudo nano /etc/netplan/01-network-manager-all.yaml
Server-B
- sudo nano /etc/netplan/00-network-manager-all.yaml
Server에서
- apt -y install dovecot-pop3d
- gedit /etc/mail/sendmail.cf - 이메일과 관련된 설정은 여기서
- sudo apt -y install evolution
오류 시 확인 해야할 부분 - 네트워크 관련 사항 확인
- IP [ GUI: nmtui or /etc/NetworkManager/connections/유선 [탭 키] 에서 확인 ]
[ CUI: /etc/netplan/0 탭키 파일에서 확인 ]
- DNS = resolv.conf
- zone 파일에 입력한 내용 오타 여부
- mail.naver.com.db 오타 여부
- mail.daum.net.db 오타 여부
- gedit /etc/mail/access
naver.com RELAY
daum.net RELAY
192.168.111 RELAY
- makemap hash /etc/mail/access < /etc/mail/access
- gedit /etc/dovecot/dovecot.conf
listen = *, :: #주석 제거
bash_dir = /var/run/dovecot/ #주석 제거
disable_plaintest_auth = no #내용 추가
- gedit /etc/dovecot/conf.d/10-mail.conf
mail-access_groups = mail #수정
lock_method = fcntl #주석 제거
- systemctl restart/enable sendmail/dovecot
- evolution - 설치 했던 부분 다시 셋팅