보안

SMTP서버 구축 및 SPF(TXT) 레코드 수정

콩메모 2024. 1. 5. 11:30

윈도우 서버를 사용하고 있고, SMTP서버를 설치하여 메일을 보내는데, 메일이 수신이 되지 않는 경우에 본 포스팅을 참고하면 됩니다.

 

<전체 흐름>

SMTP설정오류로 인해 서버아이피가 차단된 경우 

  1. SMTP서버를 비활성화 시킨다.
  2. 메일회사에 연락하여 차단된 아이피를 살려달라고 요청한다.
  3. 아래 절차로 로컬smtp 사용 가능하도록 설정한다.
  4. SMTP서버를 127.0.0.1로 활성화 시킨다.

<SMTP서버설치>

 

서버에 SMTP를 설치하기 전에 해당 서버 아이피가 블랙리스트는 아닌지 체크를 해본다.

 

사이트0

https://whatismyipaddress.com/blacklist-check

( korea.services.net 은 한국사이트는 항상 차단하니 무시 )

 

사이트1

https://www.spamhaus.org/query/bl?ip=서버아이피

 

키사

https://spam.kisa.or.kr/spam/rbl/chkBlackIP.do?mi=1048

 

(참고 : https://blog.softmail.co.kr/670 )


만약 블랙리스트에 등록되어 있는 상태라면 해당 사이트에서 해제해달라고 요청해야 한다. ( 각 사이트마다 양식이 있다. )

해당 아이피를 기존에 사용하던 회사가 있었고 그 회사에서 스팸메일을 보냈었다면 해당 아이피가 블랙리스트에 등재되어 있을 수 있다. 그러니, 나의 아이피는 괜찮은지 확인을 해야 한다.

 

1. WinRM 서비스가 의도적으로 중지된 상태라면 활성화한다.

Windows Remote Management (WS-Management)

수동 -> 자동으로 바꾸고 서비스 시작시킴

 

2. 서버관리자를 실행하고 "역할 및 기능 추가"를 클릭한다.

 

3. 마법사 창에서 "기능"탭이 뜰때까지 기본값으로 다음 버튼을 클릭한다.

 

4. SMTP 서버 에 체크하고 설치를 한다.

 

5. 설치가 완료되면 WinRM 서비스를 다시 중지시키고 사용안함으로 한다.

 

6. "고급 보안이 포함된 Windows Defender 방화벽"을 실행하고 "인바운드 규칙"을 클릭한다.

 

7. "SMTP-In(Simple Mail Transfer Protocol)이 활성화되어 있을텐데, 더블클릭후 "사용안함"으로 한다.

 

8. 서비스(services.msc)를 실행하여 "SMTP(Simple Mail Transfer Protocol)" 항목의 시작유형을 자동으로 변경한다.

 

9. D: 드라이브 루트에 아래 두 폴더를 생성한다. ( 메일로그가 저장되는 위치는 편한데로 정한다. )

SMTPLOG

SMTPBadmail

 

9. IIS 6.0관리자를 실행한다.

[SMTP Virtual Server #1] 에서 마우스 우클릭하여 속성을 선택한다.

 

10. 일반탭

IP주소는 지정하지 않은 모든 IP로 그대로 두고, 연결수 제한도 체크해제된 상태로 둔다.

로깅사용에 체크를 하고 속성을 누른다.

로그파일 디렉터리를 "D:\SMTPLOG"로 지정한다.

고급으로 들어가서 모든 체크박스에 체크한다.

 

11. 액세스탭

엑세스제어의 인증버튼을 클릭하여 익명 엑세스인지 확인한다.

연결제어의 연결버튼을 클릭하여 "아래 목록만 허용"으로 맞추고, 127.0.0.1 을 추가한다.

릴레이제한의 릴레이 버튼을 클릭하여 "아래 목록만 허용"으로 맞추고 127.0.0.1을 추가한다. 모든 컴퓨터 릴레이 허용은 체크해제한다.

 

12. 메시지탭

제한은 모드 해제한다. 

 

그리고 Badmail 디렉터리는 D:\SMTPBadmail 로 지정한다.

 

13. 배달탭

아웃바운드보안에는 익명액세스로 되어 있는지 확인한다.

나머지는 기본값 그대로 한다.

 

14. 나머지탭

기본값 그대로 한다.

 


 

<발송자 메일 도메인의 SPF 설정>

 

SPF 레코드 수정 ( TXT )

따옴표까지 포함하여 아래와 같은 형식으로 저장한다.

아래 예는 가비아의 하이웍스메일을 쓰는 경우의 예이다.

즉, 나의 도메인은 하이웍스에서 발송해도 되고, 나의 전용서버에서 발송해도 된다.. 라는 것을 명시해주는 것이다.

 

"v=spf1 ip4:서버주소 include:_spf.hiworks.co.kr ~all"

( 가비아에서는 쌍따옴표가 필요한데, 아이네임즈에서는 쌍따옴표 없이 설정 )

 

다른 메일을 쓰는 경우에는 다른 형식으로 되어 있을테지만, 다른 내용은 그대로 두고, "ip4:서버주소" 이 부분만 덧붙이면 된다.

 

위와 같이 SPF에 서버아이피를 명시해줘야 SMTP로 서버에서 메일을 보낼 때 정상적으로 발송이 된다. ( 물론, 해주지 않아도 메일은 발송된다. 다만, 메일을 받는 수신측에서 이 메일은 정상적인 루트에서 보낸 것이 아니라고 판단하게 되어, 메일 자체를 거부하던지 아니면 메일 내용 상단에 경고문구를 덧붙이게 된다.

 

위 설정이 된 상태에서 서버에서 메일을 발송하면 정상적으로 상대방 측에서 수신이 되어야 한다.