2014년 7월 11일 금요일

gmail에서 보낸 메일이 안 들어 올 때

gmail 보낸 메일이 들어 오지 않는다.

메일서버의 로그를 확인 해 봤도, 받았다는 로그가 보이지 않는다.

한 하루 반정도 지나니까 리턴메일이 왔다.
This is an automatically generated Delivery Status Notification

THIS IS A WARNING MESSAGE ONLY.

YOU DO NOT NEED TO RESEND YOUR MESSAGE.

Delivery to the following recipient has been delayed:

     test@test.com

Message will be retried for 2 more day(s)

Technical details of temporary failure:
Google tried to deliver your message, but it was rejected by the server for the recipient domain xxxxxxxxxxxxxx. [xxx.xxx.xxx].

The error that the other server returned was:
454 TLS missing certificate: error:0200100D:system library:fopen:Permission denied (#4.3.0)

----- Original message -----

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;

...

검색해 보니 TLS 셋팅 안되어 있어서 발생한 문제.

아마도 저번에 587 포트를 열어 놓은 적이 있는 데, 아마도 그 때문인 것 같다.
이것은 받는 메일서버에 tls 세팅이 제대로 되지 않은경우이다.
qmail 의 경우 아래와 같이 해결한다.
1. 모듈확인
#ldd /var/qmail/bin/qmail-smtpd  (명령으로 ssl 모듈이 추가되어 있는지 확인후 )
2. 키를 생성한다.
#openssl req -newkey rsa:1024 -x509 -nodes -days 3650 -out /var/qmail/control/servercert.pem -keyout /var/qmail/control/servercert.pem
키 생성시 Common Name 은 도메인명을 정확히 기록한다.

#위의 명령어 실행시 나오는 내용
Country Name (2 letter code) [GB]:KR
State or Province Name (full name) [Berkshire]:Seoul
Locality Name (eg, city) [Newbury]:Jungu
Organization Name (eg, company) [My Company Ltd]:Company
Organizational Unit Name (eg, section) []:QnA Team
Common Name (eg, your name or your server's hostname) []:서버의 설정된 도메인 명.
Email Address []:관리자 이메일


3. 권한변경
#chmod 640 /var/qmail/control/servercert.pem
4. 소유자/그룹변경
#chown vpopmail.vchkpw /var/qmail/control/servercert.pem => 혹은 (qmaild.qmail)
5. 복사
#ln -s /var/qmail/control/servercert.pem /var/qmail/control/clientcert.pem
6. ciphers 만들어주기...
#openssl ciphers > /var/qmail/control/tlsclientciphers
#openssl ciphers > /var/qmail/control/tlsserverciphers

pem 파일 내용 확인은 아래와 같다.
#openssl x509 -text -noout -in servercert.pem

메일서버를 테스트는...
#openssl s_client -crlf -starttls smtp -connect localhost:25
에러 없으면 된다...
아래도 해보자.
#telnet localhost 25
ehlo localhost
starttls

gmail에서 다시 발송 후 도착 여부 확인.
출처

댓글 없음:

댓글 쓰기