Debian 9에 Postfix를 설치하고 SMTP 서버만 전송하도록 구성하는 방법

Debian 9에 Postfix를 설치하고 SMTP 서버만 전송하도록 구성하는 방법

2022-06-01 last update

8 minutes reading Debian 9 Debian Email

소개


Postfix는 전자 메일을 보내고 받는 데 사용되는 메일 전송 에이전트(MTA)입니다.이 강좌에서는 Postfix를 설치하고 구성하여 로컬 응용 프로그램 (즉, Postfix와 같은 서버에 설치된 응용 프로그램) 을 통해서만 전자 메일을 보낼 수 있습니다.
너는 왜 이렇게 하려고 하느냐?
타사 전자 메일 공급업체를 사용하여 전자 메일을 보내고 받은 경우 자체 전자 메일 서버를 실행할 필요가 없습니다.단, 관리하는 클라우드 서버에 전자 메일 알림을 보내야 하는 프로그램이 설치되어 있다면, 로컬에서 SMTP만 보내는 서버를 실행하는 것은 제3자 전자 메일 서비스 공급자를 사용하거나 전체 SMTP 서버를 실행하는 데 좋은 선택입니다.
이 강좌에서는 Debian 9에 Postfix를 설치하고 SMTP 서버만 전송하도록 구성합니다.

선결 조건


본 강좌를 배우려면 다음이 필요합니다.

  • Debian 9 initial server setup tutorial, sudo 비root 사용자로 설정된 Debian9 서버

  • 서버에 대한 유효한 도메인 이름(예: example.com)입니다.이 guidelines on managing DNS hosting on DigitalOcean에 따라 설정할 수 있습니다.
  • 서버의 호스트 이름은 도메인 또는 하위 도메인과 일치해야 합니다.명령 프롬프트에서 hostname을 입력하여 서버의 호스트 이름을 확인할 수 있습니다.출력은 서버를 만들 때 지정한 이름과 일치해야 합니다.

    1단계 - Postfix 설치


    이 단계에서 Postfix를 설치하는 방법을 배울 것입니다.두 개의 패키지가 필요합니다. mailutils입니다. 여기에는 Postfix 실행에 필요한 프로그램과 postfix 자체가 포함됩니다.
    먼저 패키지 데이터베이스를 업데이트합니다.
    1. sudo apt update
    다음 mailtuils 설치:
    1. sudo apt install mailutils
    마지막으로 postfix 설치:
    1. sudo apt install postfix
    설치 프로세스가 끝날 때 다음 그림과 같은 창을 볼 수 있습니다.기본 옵션은 인터넷 사이트입니다.이것은 본 강좌의 추천 옵션입니다. 따라서 TAB을 누르고 ENTER을 누르십시오.

    다음 그림의 창처럼 다른 창을 얻을 수 있습니다.시스템 메일 이름은 서버를 만들 때 서버에 할당된 이름과 같아야 합니다.subdomain.example.com과 유사한 하위 도메인이 표시되면 example.com으로 변경합니다.완료되면 TAB을 누르고 ENTER을 누르십시오.

    이제 Postfix를 설치하여 구성 설정을 수정할 수 있습니다.

    단계 2 - 접미사 구성


    이 단계에서는 Postfix를 구성하여 실행 중인 서버(즉 localhost)에서만 전자 메일을 보내는 요청을 처리합니다.
    이를 위해postfix는 순환 인터페이스 (서버가 내부 통신에 사용되는 가상 네트워크 인터페이스) 에서만 탐지하도록 설정해야 한다.변경하려면 nano 또는 your favorite text editor을 사용하여 기본 접두사 구성 파일을 엽니다.
    1. sudo nano /etc/postfix/main.cf
    파일을 연 후 다음 섹션이 표시될 때까지 아래로 스크롤합니다.
    /etc/접미사/주.찾아보다
    . . .
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    . . .
    
    읽기 inet_interfaces = all의 행을 inet_interfaces = loopback-only으로 변경합니다.
    /etc/접미사/주.찾아보다
    . . .
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = loopback-only
    . . .
    
    수정해야 할 또 다른 명령은 mydestination입니다. local_transport의 메일을 통해 전송되는 필드 목록을 지정하는 데 사용됩니다.이 값은 기본적으로 다음과 같습니다.
    /etc/postfix/main.cf
    . . . mydestination = $myhostname, example.com, localhost.com, , localhost . . .
    이 명령의 recommended defaults은 아래 코드 블록에 있습니다. 따라서 코드를 수정하여 일치하도록 하십시오.
    /etc/postfix/main.cf
    . . . mydestination = $myhostname, localhost.$your_domain, $your_domain . . .
    파일을 저장하고 닫습니다.
    참고: 서버에서 여러 도메인을 호스팅하는 경우 mydestination 명령을 사용하여 Postfix에 다른 도메인을 전달할 수도 있습니다.그러나 Postfix를 확장 가능한 방식으로 설정하고 이러한 설정에 문제가 없으면 추가 설정이 필요합니다. 이것은 본고의 범위를 넘어섰습니다.
    마지막으로 Postfix를 다시 시작합니다.
    1. sudo systemctl restart postfix

    3단계 - SMTP 서버 테스트


    이 단계에서 Postfix가 mail 명령을 사용하여 외부 전자 메일 계정에 전자 메일을 보낼 수 있는지 테스트합니다. 이 명령은 1단계에 설치된 mailutils 패키지의 일부입니다.
    테스트 이메일을 보내려면 다음을 입력합니다.
    1. echo "This is the body of the email" | mail -s "This is the subject line" your_email_address
    테스트를 실행할 때 본문과 테마 줄 텍스트를 그대로 사용하거나 취향에 따라 변경할 수 있습니다.단, your_email_address 대신 유효한 이메일 주소를 사용하십시오.도메인 섹션은 gmail.com, fastmail.com, yahoo.com 또는 사용자가 사용하는 다른 전자 메일 서비스 공급업체일 수 있습니다.
    테스트 메시지를 보낼 전자 메일 주소를 확인합니다.수신함에서 이 메일을 보셔야 합니다.없으면 스팸메일 폴더를 확인하십시오.
    이 설정을 사용하면 테스트 전자메일의 발송자 필드의 주소는 sammy@example.com입니다. 이 중 Sammy는 Linux 사용자 이름이고 도메인은 서버의 호스트 이름입니다.사용자 이름을 변경하면 보낸 사람의 주소도 변경됩니다.

    단계 4 - 시스템 메시지 전달


    우리가 설정하고자 하는 마지막 일은 전송입니다. 이렇게 하면 사용자의 개인 외부 전자 우편 주소를 통해 전자 우편을 시스템의 루트 사용자에게 보낼 수 있습니다.
    시스템에서 생성된 전자 메일이 전자 메일 주소로 전송되도록 Postfix를 구성하려면 /etc/aliases 파일을 편집해야 합니다.
    1. sudo nano /etc/aliases
    Debian 9이 기본적으로 설치된 파일의 전체 내용은 다음과 같습니다.
    등/별칭
    mailer-daemon: postmaster
    postmaster: root
    nobody: root
    hostmaster: root
    usenet: root
    news: root
    webmaster: root
    www: root
    ftp: root
    abuse: root
    noc: root
    security: root
    
    postmaster: root 시스템이 생성한 전자메일을 루트 사용자에게 발송하도록 설정합니다.이 설정을 편집하여 전자 우편을 전자 우편 주소로 다시 라우팅하려고 합니다.이 작업을 완료하려면 파일을 편집하여 읽으려면 다음과 같이 하십시오.
    등/별칭
    mailer-daemon: postmaster
    postmaster:    root
    root:          your_email_address
    . . .
    
    your_email_address을 개인 이메일 주소로 바꿉니다.완료되면 파일을 저장하고 닫습니다.변경 사항을 적용하려면 다음 명령을 실행합니다.
    1. sudo newaliases
    다음과 같은 방법으로 루트 계정에 전자 메일을 보내 작업 상태를 테스트할 수 있습니다.
    1. echo "This is the body of the email" | mail -s "This is the subject line" root
    전자 메일 주소로 전자 메일을 받아야 합니다.없으면 스팸메일 폴더를 확인하십시오.

    결론


    이것이 바로 Postfix 설정을 사용하여 전자 메일 서버만 보내는 데 필요한 모든 내용입니다.그러나 스팸메일 발송자의 공격으로부터 영역을 보호하기 위해 추가 절차가 필요할 수도 있습니다.
    서버에서 온 알림을 단일 주소로 받으려면 메일을 스팸메일로 표시하는 것은 문제가 되지 않습니다. 화이트리스트 해결 방안을 만들 수 있기 때문입니다.그러나 잠재적인 사이트 사용자에게 이메일(예: 게시판 등록 확인 이메일)을 보내려면 서버의 이메일이 합법적으로 간주되기 쉽도록 SPF 레코드와 DKIM을 명확하게 설정해야 합니다.

  • How To Use an SPF Record to Prevent Spoofing & Improve E-mail Reliability

  • How To Install and Configure DKIM with Postfix on Debian Wheezy .
  • 만약 설정이 정확하다면, 이 절차들은 당신의 도메인에서 온 주소와 같은 스팸메일을 보내기 어려울 것입니다.이러한 추가 설정 절차를 채택하면 일반 메일 공급자가 서버에서 온 이메일을 합법적인 메일로 간주할 가능성이 더욱 높아집니다.