Portward
워크플로우

이메일 서버 설정: MX부터 DMARC까지, 변경 사항마다 diff 제공

03
도메인 메일

내 도메인용 메일 DNS 레코드

내 도메인의 이메일 서버 설정은 소프트웨어가 아닌 DNS로 시작됩니다. MX 레코드는 도메인의 메일이 어디로 배달되는지 나타내고, SPF는 해당 도메인을 위해 발송할 수 있는 서버 목록을 명시하며, DKIM은 수신자가 확인할 수 있는 서명을 추가합니다. DMARC는 이러한 검사를 통과하지 못한 메일에 대해 어떻게 처리해야 하는지 알려주고, 발송 IP 주소는 일치하는 역방향 DNS(PTR) 이름을 가져야 합니다. Portward는 레코드를 읽고 누락된 항목을 나열한 후, 각 변경 사항을 diff로 준비하여 수락할 수 있도록 합니다. 수신자는 IP 평판을 평가하므로 Portward가 메일이 반드시 받은 편지함으로 도착한다고 보장하지는 않습니다. 이 워크플로우는 내가 소유한 서버에서 내 도메인의 일반 메일에 사용하세요. 작업을 작게 유지하세요: 레코드 하나, diff 하나, 테스트 하나.

01

프로젝트 폴더 열기

도메인용 폴더를 만들고, zone 파일과 메일 구성 파일을 해당 폴더에 복사한 후 Portward에서 작업 폴더로 엽니다. 파일 도구는 해당 폴더 내에서 작동하므로, 에이전트가 읽을 파일을 복사하고, 첫 변경 전에 돌아가야 할 경우를 대비해 변경 전 zone 파일 사본을 보관하세요.

02

레코드 검사 요청

Plan only 또는 Ask first를 선택하고 목표를 설명하세요. 예를 들어: 이 zone 파일의 MX, SPF, DKIM, DMARC 레코드를 나열하고 누락된 항목이 무엇인지 알려주세요. 에이전트는 각 도구 호출에 대한 카드로 답변하며, Plan only 모드에서는 누락된 항목을 나열하는 동안 아무것도 변경하지 않습니다.

03

각 diff 검토

각 변경 사항에 대한 카드를 읽으세요. edit_file 도구는 새 레코드를 기존 레코드 옆에 표시하며, Ask first 모드에서는 수락하기 전까지 아무것도 변경되지 않습니다. 이해가 가지 않는 항목은 거부하고, 다시 시도하기 전에 에이전트에게 설명을 요청하세요.

04

외부에서 테스트

DNS 제공업체에 레코드를 적용하고 전파될 때까지 기다린 후, Shell을 사용하여 자체 조회 명령을 실행하고 출력을 zone 파일과 비교하세요. 날짜, 변경한 레코드, 조회 결과와 함께 작업 폴더의 로그 파일에 모든 결과를 기록하세요.

서버 및 메일 도메인용 설정 체크리스트

vps-setup-checklist.txt
# checklist for my own VPS and its mail domain
step 1: update the system
step 2: create a normal user
step 3: log in with SSH keys
verify 1: key login works before password login is off
step 4: allow only the ports I need in the firewall
step 5: set the time zone and time sync
step 6: add MX, SPF, DKIM and DMARC records
verify 2: the sending IP has a matching PTR name
step 7: make a backup
verify 3: a test restore works

이 단순 체크리스트는 VPS와 그 위의 메일 도메인을 모두 다룹니다. 각 확인 행은 다음 단계로 넘어가기 전에 확인할 수 있는 결과를 명시합니다. 예를 들어 키 로그인, 방화벽 규칙 또는 일치하는 PTR 이름 등이 있습니다. 행을 내 서버에 맞게 수정한 후, 에이전트에게 한 번에 하나씩 처리하도록 지시하고 각 항목의 실제 결과를 보고하게 하세요. 자체 서비스에 대한 행을 추가하고, 서버에 적용되지 않는 행은 삭제하세요.

Portward로 이메일 도메인 레코드 설정하기

현재 레코드 읽기

에이전트는 read_file을 통해 zone 파일 사본을 열고 grep을 사용하여 MX, SPF, DKIM, DMARC 줄을 나열한 후, 누락된 항목에 대해 하나의 카드로 보고합니다. Plan only 모드에서는 이 목록을 계획으로 작성하고 아무것도 변경하지 않으므로, 이미 메일을 수신 중인 도메인에서 시작할 때 가장 안전한 방법입니다. 집에서 이메일 서버를 직접 운영하려면 발송 IP 주소에 대한 역방향 DNS 이름을 제어할 수 있는지 먼저 확인하세요. 수신자는 IP 평판을 평가하기 때문입니다. 목록을 읽고 어떤 레코드를 먼저 추가할지 결정하세요. 에이전트는 사본에서 작업하므로 원본 파일은 그대로 유지됩니다. 누락된 레코드 목록을 메모 파일에 저장하여 다음 세션이 기억이 아닌 사실로부터 시작되도록 하세요.

SPF 및 DKIM 레코드 작성

SPF는 도메인을 위해 발송할 수 있는 서버 목록을 명시하고, DKIM은 수신자가 확인할 수 있는 서명을 추가합니다. 에이전트는 edit_file을 사용하여 zone 파일 사본에 SPF 줄을 추가하고 diff로 표시하며, web_search는 정확한 구문이 필요할 때 메일 소프트웨어의 공식 문서를 찾습니다. DKIM 공개 키는 메일 소프트웨어에서 제공하므로 직접 붙여넣고 에이전트가 배치하게 하세요. Ask first 모드에서는 에이전트가 각 변경 전에 일시 정지하며, 수락하기 전에 새 줄과 기존 줄을 비교하세요. 한 번에 하나의 레코드를 추가하고 다음 추가 전에 DNS 제공업체에 적용하여, 오류가 단일 변경 사항으로 거슬러 올라갈 수 있도록 하세요.

MX 레코드 및 역방향 DNS 설정

MX 레코드는 도메인을 위한 메일을 수신할 호스트를 지정하며, PTR 이름은 발송하는 IP 주소에 속합니다. 에이전트는 edit_file을 사용하여 MX 줄을 추가하고 선택한 우선순위를 유지한 후, write_file을 사용하여 역방향 DNS 이름으로 원하는 호스트 이름을 나열하는 짧은 노트를 작성합니다. IP 주소가 관리되는 곳에서 제공업체에 설정을 요청하세요. 새로운 VPS에 필요한 보안 강화 정도는 실행 중인 서비스에 따라 다르며, 메일 서비스는 고려해야 할 포트가 더 많으므로 모든 포트를 열기 전에 목록을 작성하세요. 메일 소프트웨어가 사용하는 정확한 호스트 이름을 작성하고, 에이전트에게 MX 줄과 PTR 노트와 비교하게 하여 이름이 일치하도록 하세요.

레코드 및 메일 흐름 확인

Shell을 사용하여 자체 조회 명령을 실행하고 에이전트에게 출력과 zone 파일을 한 번에 하나의 레코드씩 비교하게 하세요. 메일이 공개되기 전에 기본 VPS 보안 설정을 검토하세요: 키 로그인, 필요한 포트만 허용하는 방화벽, 테스트된 백업 등. 그런 다음 도메인에서 내가 소유한 주소로 테스트 메일을 보내고 SPF 및 DKIM 결과를 위해 헤더를 읽으세요. 에이전트는 모든 결과를 카드에 표시하며, 로그 파일에 결과를 기록하세요. 테스트 통과가 모든 받은 편지함으로의 배달을 보장하지는 않습니다. 검사가 실패하면 헤더 줄을 채팅에 붙여넣고 수신자가 일치하지 않은 레코드가 무엇인지 물어본 후, 한 번에 하나의 레코드를 변경한 후 조회 명령을 다시 실행하세요.

Windows용 Portward

검토 가능한 단계로 메일 DNS 레코드 확인

Portward 다운로드 ↗