웹사이트 검색

이메일 서비스(SMTP, Imap 및 Imaps) 설정 및 SMTP에 대한 액세스 제한 - 7부


LFCE(Linux Foundation Certified Engineer)는 Linux 시스템에서 네트워크 서비스를 설치, 관리 및 문제 해결하는 기술을 갖춘 숙련된 전문가입니다. 시스템 아키텍처 및 사용자 관리의 설계, 구현 및 지속적인 유지 관리.

Linux Foundation 인증 프로그램을 소개합니다.

이전 튜토리얼에서는 메일 서비스의 필수 구성요소를 설치하는 방법에 대해 논의했습니다. 아직 PostfixDovecot을 설치하지 않은 경우 계속하기 전에 이 시리즈의 1부에서 설치 지침을 참조하세요.

요구 사항

  1. Postfix 메일 서버 및 Dovecot 설치 - 1부

이 게시물에서는 메일 서버를 구성하는 방법과 다음 작업을 수행하는 방법을 보여 드리겠습니다.

  1. 이메일 별칭 구성
  2. IMAP 및 IMAPS 서비스 구성
  3. SMTP 서비스 구성
  4. SMTP 서버에 대한 액세스 제한

참고: 우리 설정에서는 컴퓨터가 동일한 도메인에 속하는 LAN(근거리 통신망)의 메일 서버에만 적용됩니다. 이메일 메시지를 다른 도메인으로 보내려면 도메인 이름 확인 기능을 포함하여 LFCE 인증 범위를 벗어나는 더 복잡한 설정이 필요합니다.

하지만 먼저 몇 가지 정의부터 시작해 보겠습니다.

메일 전송, 운송 및 배달 프로세스의 구성 요소

다음 이미지는 메시지가 수신자의 받은 편지함에 도달할 때까지 보낸 사람부터 시작하여 이메일 전송 프로세스를 보여줍니다.

이를 가능하게 하기 위해 뒤에서는 몇 가지 일이 발생합니다. 이메일 메시지가 클라이언트 애플리케이션(예: Thunderbird, Outlook 또는 Gmail이나 Yahoo! Mail과 같은 웹메일 서비스)에서 자신의 메일 서버로, 그곳에서 대상 서버로, 마지막으로 의도한 수신자에게 전달되도록 하기 위해 , SMTP(Simple Mail Transfer Protocol) 서비스가 각 서버에 있어야 합니다.

이메일 서비스에 관해 이야기할 때 다음과 같은 용어가 자주 언급됩니다.

메시지 전송 에이전트 – MTA

메일 릴레이라고도 불리는 MTA(Mail 또는 Message Transport Agent의 약어)는 서버에서 이메일 메시지 전송을 담당하는 소프트웨어입니다. 클라이언트에게(그리고 그 반대의 경우도 마찬가지) 이 시리즈에서는 Postfix가 MTA 역할을 합니다.

메일 사용자 에이전트 – MUA

MUA 또는 메일 사용자 에이전트는 사용자의 이메일 받은 편지함에 액세스하고 관리하는 데 사용되는 컴퓨터 프로그램입니다. MUA의 예로는 Thunderbird, Outlook 및 Gmail, Outlook.com과 같은 웹메일 인터페이스 등이 포함되지만 이에 국한되지는 않습니다. 이 시리즈에서는 예제에서 Thunderbird를 사용하겠습니다.

메일 배달 대행

MDA(메시지 또는 Mail Delivery Agent의 약어)는 이메일 메시지를 사용자의 받은 편지함으로 실제로 전달하는 소프트웨어 부분입니다. 이 튜토리얼에서는 Dovecot을 MDA로 사용합니다. Dovecot은 사용자 인증도 처리합니다.

단순 메일 전송 프로토콜 - SMTP

이러한 구성요소가 서로 "대화"할 수 있으려면 동일한 "언어"(또는 프로토콜)를 "대화"해야 합니다. ), 즉 RFC 2821에 정의된 SMTP(Simple Mail Transfer Protocol)입니다. 메일 서버 환경을 설정하는 동안 해당 RFC를 참조해야 할 가능성이 높습니다.

고려해야 할 다른 프로토콜은 IMAP4(인터넷 메시지 액세스 프로토콜)입니다. 이를 통해 이메일 메시지를 클라이언트의 하드 드라이브에 다운로드하지 않고도 서버에서 직접 관리할 수 있습니다. 및 POP3(우체국 프로토콜)을 사용하여 메시지와 폴더를 사용자 컴퓨터에 다운로드할 수 있습니다.

테스트 환경

우리의 테스트 환경은 다음과 같습니다.

메일 서버 설정
Mail Server OS	: 	Debian Wheezy 7.5 
IP Address	:	192.168.0.15
Local Domain	:	example.com.ar
User Aliases	:	[email  is aliased to [email  and [email 
클라이언트 머신 설정
Mail Client OS	: 	Ubuntu 12.04
IP Address	:	192.168.0.103

클라이언트에서 /etc/hosts 파일에 다음 줄을 추가하여 기본 DNS 확인을 설정했습니다.

192.168.0.15 example.com.ar mailserver

이메일 별칭 추가

기본적으로 특정 사용자에게 보낸 메시지는 해당 사용자에게만 전달되어야 합니다. 그러나 사용자 그룹이나 다른 사용자에게도 메일을 전달하려면 메일 별칭을 만들거나 /etc/postfix/aliases에 있는 기존 별칭 중 하나를 사용할 수 있습니다. , 다음 구문을 따릅니다.

user1: user1, user2

따라서 user1에게 전송된 이메일은 user2에게도 전달됩니다. 다음과 같이 콜론 뒤의 user1 단어를 생략하면 주의하세요.

user1: user2

user1에게 전송된 메시지는 user1이 아닌 user2에게만 전송됩니다.

위의 예에서 user1user2는 시스템에 이미 존재해야 합니다. 새로운 사용자를 추가하기 전에 기억을 되살려야 한다면 LFCS 시리즈의 8부를 참조하세요.

  1. Linux에서 사용자/그룹을 추가하고 관리하는 방법
  2. Linux에서 사용자를 추가하는 15가지 명령

특별한 경우에는 앞에서 설명한 대로 다음 별칭을 사용합니다(/etc/aliases에 다음 줄 추가).

sysadmin: gacanepa, jdoe

그리고 다음 명령을 실행하여 별칭 조회 테이블을 생성하거나 새로 고칩니다.

postalias /etc/postfix/aliases

[이메일 보호됨]으로 전송된 메시지는 위에 나열된 사용자의 받은편지함으로 전달됩니다.

Postfix 구성 – SMTP 서비스

Postfix의 기본 구성 파일은 /etc/postfix/main.cf입니다. 메일 서비스를 사용하려면 몇 가지 매개변수만 설정하면 됩니다. 그러나 안전하고 완전히 사용자 정의된 메일 서버를 설정하려면 전체 구성 매개변수(man 5 postconf에 나열될 수 있음)에 익숙해져야 합니다.

참고: 이 튜토리얼은 해당 프로세스를 시작하기 위한 것일 뿐이며 Linux를 사용한 이메일 서비스에 대한 포괄적인 가이드를 나타내지는 않습니다.

선택한 편집기로 /etc/postfix/main.cf 파일을 열고 설명된 대로 다음과 같이 변경합니다.

vi /etc/postfix/main.cf

1. myorigin은 서버에서 보낸 메시지에 표시되는 도메인을 지정합니다. 이 매개변수와 함께 사용된 /etc/mailname 파일을 볼 수 있습니다. 필요한 경우 자유롭게 편집하세요.

myorigin = /etc/mailname

위의 값을 사용하면 메일이 [이메일 보호됨]으로 전송됩니다. 여기서 user는 메시지를 보내는 사용자입니다.

2. mydestination에는 이 시스템이 이메일 메시지를 다른 시스템(릴레이 시스템 역할)으로 전달하는 대신 로컬로 전달할 도메인이 나열됩니다. 우리의 경우에는 기본 설정으로 충분합니다(환경에 맞게 파일을 편집하십시오).

/etc/postfix/transport 파일은 도메인과 메일 메시지가 전달되어야 하는 다음 서버 간의 관계를 정의합니다. 우리의 경우 로컬 영역 네트워크에만 메시지를 전달하므로(따라서 외부 DNS 확인을 우회함) 다음 구성으로 충분합니다.

example.com.ar    local:
.example.com.ar    local:

다음으로, 이 일반 텍스트 파일을 .db 형식으로 변환해야 합니다. 그러면 Postfix가 실제로 보내고 받는 메일에 대해 무엇을 해야 할지 알기 위해 사용할 조회 테이블이 생성됩니다.

postmap /etc/postfix/transport

해당 텍스트 파일에 항목을 더 추가하는 경우 이 테이블을 다시 생성해야 합니다.

3. mynetworks는 Postfix가 메시지를 전달할 승인된 네트워크를 정의합니다. 기본값인 subnet은 Postfix가 로컬 시스템과 동일한 IP 하위 네트워크에 있는 SMTP 클라이언트의 메일을 전달하도록 지시합니다.

mynetworks = subnet

4. relay_domains는 이메일을 보내야 하는 대상을 지정합니다. mydestination을 가리키는 기본값은 그대로 둡니다. LAN용 메일 서버를 설정하고 있다는 점을 기억하세요.

relay_domains = $mydestination

실제 콘텐츠를 나열하는 대신 $mydestination을 사용할 수 있습니다.

5. inet_interfaces는 메일 서비스가 수신해야 하는 네트워크 인터페이스를 정의합니다. 기본값인 all은 Postfix가 모든 네트워크 인터페이스를 사용하도록 지시합니다.

inet_interfaces = all

6. 마지막으로 mailbox_size_limitmessage_size_limit는 각 사용자의 편지함 크기와 개별 메시지의 최대 허용 크기를 각각 바이트 단위로 설정하는 데 사용됩니다.

mailbox_size_limit = 51200000
message_size_limit = 5120000

SMTP 서버에 대한 액세스 제한

Postfix SMTP 서버는 각 클라이언트 연결 요청에 특정 제한 사항을 적용할 수 있습니다. 모든 클라이언트가 smtp HELO 명령을 사용하여 메일 서버에 대해 자신을 식별하도록 허용해서는 안 되며, 모든 클라이언트에게 메시지를 보내거나 받을 수 있는 액세스 권한을 부여해서는 안 됩니다.

이러한 제한 사항을 구현하기 위해 main.cf 파일에서 다음 지시문을 사용합니다. 설명이 필요없지만 설명을 위해 주석을 추가했습니다.

Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.
smtpd_helo_required = yes

Permit the request when the client IP address matches any network or network address listed in $mynetworks
Reject the request when the client HELO and EHLO command has a bad hostname syntax
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname

Reject the request when Postfix does not represent the final destination for the sender address
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_sender_domain

Reject the request unless 1) Postfix is acting as mail forwarder or 2) is the final destination
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination

사용 가능한 옵션을 추가로 탐색하려면 Postfix 구성 매개변수 postconf 페이지가 유용할 수 있습니다.

비둘기장 구성

dovecot을 설치한 직후에는 보안 버전인 POP3SPOP3IMAP 프로토콜과 함께 기본적으로 POP3IMAP 프로토콜을 지원합니다. 각각 IMAPS입니다.

/etc/dovecot/conf.d/10-mail.conf 파일에 다음 줄을 추가합니다.

%u represents the user account that logs in
Mailboxes are in mbox format
mail_location = mbox:~/mail:INBOX=/var/mail/%u
Directory owned by the mail group and the directory set to group-writable (mode=0770, group=mail)
You may need to change this setting if postfix is running a different user / group on your system
mail_privileged_group = mail

홈 디렉토리를 확인하면 다음 내용이 포함된 메일 하위 디렉토리가 있음을 알 수 있습니다.

또한 /var/mail/%u 파일은 대부분의 시스템에서 사용자의 메일이 저장되는 위치입니다.

/etc/dovecot/dovecot.conf에 다음 지시문을 추가합니다(imap 및 pop3는 imap 및 pop3도 포함한다는 점에 유의하세요).

protocols = imap pop3

그리고 /etc/conf.d/10-ssl.conf에 다음 줄이 포함되어 있는지 확인하세요(그렇지 않으면 추가하세요).

ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem

이제 Dovecot을 다시 시작하고 imap, imaps, pop3 및 pop3s와 관련된 포트에서 수신 대기하는지 확인하겠습니다.

netstat -npltu | grep dovecot

메일 클라이언트 설정 및 메일 보내기/받기

클라이언트 컴퓨터에서 Thunderbird를 열고 파일새로 만들기기존 메일 계정을 클릭합니다. 계정 이름과 관련 이메일 주소, 비밀번호를 입력하라는 메시지가 표시됩니다. 계속을 클릭하면 Thunderbird는 설정을 확인하기 위해 메일 서버에 연결을 시도합니다.

다음 계정([이메일 보호됨])에 대해 위 프로세스를 반복하면 Thunderbird의 왼쪽 창에 다음 두 개의 받은 편지함이 나타납니다.

우리 서버에서는 jdoegacanepa로 별칭이 지정된 sysadmin에 이메일 메시지를 작성합니다.

메일 로그(/var/log/mail.log)는 sysadmin에게 전송된 이메일이 [email [이메일 보호됨](다음 이미지에서 볼 수 있음)

Thunderbird에서 IMAP 계정이 구성된 클라이언트에 메일이 실제로 전달되었는지 확인할 수 있습니다.

마지막으로 [이메일 보호]에서 [이메일 보호]로 메시지를 보내 보겠습니다.

시험에서는 명령줄 유틸리티로만 작업해야 합니다. 이는 Thunderbird와 같은 데스크톱 클라이언트 애플리케이션을 설치할 수 없지만 대신 메일을 사용해야 함을 의미합니다. 이 장에서는 설명 목적으로만 Thunderbird를 사용했습니다.

결론

이 게시물에서는 LAN용 IMAP 메일 서버를 설정하는 방법과 SMTP 서버에 대한 액세스를 제한하는 방법을 설명했습니다. 테스트 환경에서 유사한 설정을 구현하는 동안 문제가 발생하는 경우 Postfix 및 Dovecot의 온라인 설명서(특히 기본 구성 파일인 /etc/postfix/main.cf 및 /에 대한 페이지)를 확인하는 것이 좋습니다. etc/dovecot/dovecot.conf), 어떤 경우에도 주저하지 말고 아래 의견 양식을 사용하여 저에게 연락해 주세요. 기꺼이 도와드리겠습니다.