본문 바로가기
Linux

7월 20일 Linux

by 개발자 영만 2022. 7. 20.

메일 서버 설치와 운영



메일 서버 개념(1)

E-Mail의 송수신에서 사용되는 프로토콜

  • SMTP(Simple Mail Transfer Protocol): 클라이언트가 메일을 보내거나, 메일 서버끼리 메일을 주고 받을 때
    • 포트번호 25
  • POP3(Post Office Protocol): 메일 서버에 도착되어 있는 메일을 클라이언트로 가져올 때
    • 포트번호 110
  • IMAP(Internet Mail Access Protocol): POP3와 같음

IMAP / POP3

  • 우선, 두 용어는 모두 이메일 메시지를 읽어오기 위한 프로토콜이며, 서버에서 내용을 받아오는 방식을 의미합니다.
  • IMAPInternet Messaging Access Protocol의 약자로 서버에서 이메일을 읽는 프로토콜입니다.
  • 따라서, 어떤 상황에서든 동일한 내용을 읽어올 수 있음
  • POP3Post Office Protocol의 약자로 사용자의 기기로 이메일을 다운로드하여 읽는 프로토콜.
  • 대신, 다운로드한 내용은 서버에서 삭제되기 때문에 동일한 기기에서만 이메일 확인이 가능
  • 대부분의 서비스 업체에서는 POP3 방식을 많이 제공
  • 일부 업체에서는 두 가지 방식을 모두 지원.

차이점

IMAP - 서버에서 내용을 불러오기.

  • PC나 모바일에서 메일을 확인할 때 서버에 저장된 정보를 가져와서 내용을 보여주고 변경 사항을 동기화.
  • 그렇기 때문에, 여러 가지의 디바이스에서 접속하여도 항상 동일한 정보를 확인할 수 있습니다.

POP3 - 서버에서 기기로 다운로드

  • 우리가 사용하는 기기에 정보를 저장.
  • 즉, 서버에 있는 이메일을 열람할 경우 현재 사용하고 있는 기기에 다운로드한 뒤 서버에서는 삭제.

장/단점 비교 - IMAP

장점

  • 동기화: 아웃룩에서 보낸 데이터를 웹 또는 모바일에서 확인
  • 안정적인 환경: 다운로드 이슈가 발생하지 않아, 안정적은 환경에서 수/발신할 수 있음
  • 편리한 멀티 디바이스 사용: 언제 어떤 디바이스에서 접속해도 모든 속성이 동기화되어, 편리하게 사용.

단점

  • 용량 관리의 어려움: 서버에 계속 데이터가 쌓이기 때문에, 용량 제한 서비스를 이용할 경우 용량 관리가 어려움.
  • 비싼 도입 요금: 모든 내용들을 동기화해야 해서 더 많은 트래픽이 필요하기 때문에 사용 요금이 비쌈.

장/단점 비교 - POP3

장점

  • 편리한 용량 관리: 데이터를 자동 삭제하도록 설정할 수 있기 때문에 비교적 용량 관리 쉬움
  • 저렴한 사용 요금: 거의 모든 서비스 제공 업체가 POP3 환겨을 지원하기 때문에 사용 요금이 크게 비싸지 않음.

단점

  • 보낸 이메일 보존 불가: 이웃룩에서 보낸 편지는 웹 서버에 저장되지 않기 때문에 아웃룩 외에 다른 곳에서 보낸 데이터를 확인하기 어려움.
  • 기기 관리의 어려움: 저장된 기기 자체를 관리해야 하기 때문에, 하드 드라이브가 고장 나거나 PC에 바이러스가 생긴 경우 복구하기 어려움.
  • 다운로드 이슈 발생: 여러 디바이스에서 같은 메일을 계속 다운로드하다 보면, 중복 다운로드 및 사라짐 이슈 등이 발생할 수 있음.

메일 서버 개념

  • 센드메일 서버의 자세한 작동 원리

센드메일 서버의 구현

  • 메일 서버를 구현할 네트워크 환경 구성도

실습

Server에서 작업

  • 네임서버 - naver.com
  • 메일서버 설치 - sendmail
    • apt -y install 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
    • apt -y install 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
  • 방화벽 끄기
    • ufw disable
  • 서버동작 확인
    • 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 - 설치 했던 부분 다시 셋팅

'Linux' 카테고리의 다른 글

7월 22일 Linux  (0) 2022.07.22
7월 21일 Linux  (0) 2022.07.21
7월 19일 Linux  (0) 2022.07.19
7월 18일 Linux  (0) 2022.07.18