[이석준]님이 남기신 글:
>말씀하신대로 네임서버의 zone파일 부분의 A 값을 웹서버로
변경하였구요, 메일서버의 local-host-names에 수신자설정을 하고
웹서버의 hosts파일을 수정한 후 host.conf와 nsswitch.conf를 수정해
주었습니다. 현재상태에서 웹서버에서 mail()함수로 다음이나
하나포스같은 제3의 메일로 보내면 잘 가구요, 또 다음같은
곳에서 제 메일서버의 계정으로 메일을 보내도 잘 받아집니다.
문제는 웹서버에서 웹메일로 메일서버의 계정으로 발송하면
똑같은 config error가 뜨면서 발송이 안됩니다. 그리고 php.ini에서
설정하는 smtp부분에 #win32 only라고 되어있던데 이부분에 원격
ip를 설정해줘야 하는지요?
mail() 함수에서 user@aaa.co.kr 로 하지
말고 user@mail.aaa.co.kr
과 같이 mail 호스트 이름을 주고 테스트해 보세요.
그러면 아마 메일서버로 잘 갈겁니다.
현재 웹서버의 리졸빙 문제인것 같네요.
즉 웹서버는 클라이언트 입장이 되어 리졸빙을 시도하는데
aaa.co.kr 에 대해서 먼저 www 호스트의 /etc/hosts 파일을 뒤지기
때문에
aaa.co.kr == 211.111.111.113 == www.aaa.co.kr
이런 결과가 됩니다.
따라서 www 서버의 /etc/hosts 파일에서
211.111.111.113 aaa.co.kr aaa.co.kr
이부분을 지우든지 아니면
211.111.111.112 aaa.co.kr aaa.co.kr
이렇게 해도 됩니다.
www 서버의 /etc/hosts 내용은 오직 www 서버가 클라이언트
입장에서만
사용되기 때문에 이렇게 서로 어긋나는 경우도 가능합니다.
그러나 이부분은 나중에 문제의 수지가 될 가능이 있기때문에
역시 지우는것이 좋겠군요.
아예 헷갈리면 www 의 /etc/hosts 내용은 localhost 만 놓고
모두 지우는것이 좋겠네요..
그리고,
www IN A 211.111.111.113
이부분을
www IN A 211.111.111.113
IN MX 0 mail.aaa.co.kr.
이렇게 MX 레코드를 추가해 주는 것이 좋겠네요.
그리고 반드시 www 서버의 /etc/resolv.conf 파일에서 네임서버
지정은 211.111.111.111 이렇게 지정해줘야 합니다.
현재 이렇게 설정되어 있죠?
여기까지 해보고
또 문제가 생기면 www 서버의 리졸빙 문제 즉 메일 경로에
대한 문제입니다.
/etc/mail/mailertable
파일에
-------------------------------------
.aaa.co.kr smtp:mail.aaa.co.kr
.bbb.co.kr smtp:mail.aaa.co.kr
...
-------------------------------------
왼쪽의 aaa.co.kr bbb.co.kr 와 같은 도메인을 그 메일주소로
사용하고, www 서버로 메일이 도착하면 www 서버의 sendmail 은
오른쪽의 stmp: 의 서버로 모두 가라는 의미입니다.
왼쪽의 도메인들은 웹서버의(아파치)
가상호스트에 설정된
모든 도메인들을 의미하므로 모두 적어줘야합니다.
(kr smtp 사이는 탭으로 공간을 띠움)
이렇게 설정하고
# makemap hash /etc/mailertable < /etc/mailertable
이렇게 DBM 파일을 만들어 주면 됩니다.
....
이렇게 mailertable 까지 설정해주지 않아도 잘 분리가 되는데
좀 이상하군요..(아무래도
리졸빙문인것 같네요)
만약 도메인 레벨이 아닌 user 레벌에서 포워딩하고자 한다면
/etc/aliases 나 /etc/mail/virtusertable 을 이용하면 됩니다.
여기까지 해보고 다시 포스팅하세요.
특히 제일처음에 언급한 mail() 함수로 user@mail.aaa.co.kr
로 테스트해 보고 그래도 이상있다면 mail 서버와 www 서버의
maillog 를 포스팅하세요(해당부분만)
>
>[산이]님이 남기신 글:
>
>>
>>[이석준]님이 남기신 글:
>>
>>>-----------------------------------------
>>>답변자가 기본적으로 참고할 내용입니다.
>>>- 배포판(옵션) : redhat 7.*
>>>- 커널버전(옵션)
: 2.4.20
>>>- 데몬버전(예:apache
1.3.27) :
>>>- 데몬설치유형(RPM/컴파일/기타)
:
>>>-----------------------------------------
>>>안녕하세요? 메일설정이 항상 어렵네요.
>>>함께 운영하던 서버를 제목처럼 네임서버, 웹서버,
메일서버로 분리했습니다. 먼저 네임서버(211.111.111.111)의
zone파일을 아래와 같이 설정하였습니다.
>>>
>>> IN NS ns1.aaa.co.kr.
>>> IN NS ns2.aaa.co.kr.
>>> IN A 211.111.111.111
>>> IN HINFO "x86 pentium4" "redhat
linux"
>>> IN MX 0 mail.aaa.co.kr.
>>>ns1 IN A 211.111.111.111
>>>ns2 IN A 211.111.111.112
>>>mail IN A 211.111.111.112
>>>www IN A 211.111.111.113
>>>
>>>그리고 /etc/hosts에 전부 등록하였구요, resolv.conf도
설정하였습니다.
>>>메일서버나 웹서버의 hosts파일에는 locahost만 설정되어
있구요, resolv.conf는 네임서버와 똑같이 설정되어
있습니다.
>>>
>>>그리고 웹서비스와 pop3서비스를 위해 웹서버와 메일서버에
동시에 같은 계정을 생성하고 네임서버의 local-host-names에
수신자를 아래처럼 설정했습니다.
>>>
>>>mail.usera.co.kr
>>>usera.co.kr
>>>www.usera.co.kr
>>>mail.userb.co.kr
>>>userb.co.kr
>>>www.userb.co.kr
>>>...
>>>
>>>그런다음 웹메일을 메일서버를 통해 발송하기위해
메일서버의 access에 localhost와 웹서버의 ip(211.111.111.113)를
relay로 설정했습니다. 그런후 /makemap hash /etc/mail/access <
/etc/mail/access 했습니다.
>>>
>>>현재상태에서
웹은 잘 되구요, 외부에서 오는 메일도 메일서버에서 잘
받습니다.
>>>
>>>그런데 두가지가 문제인데요,
>>>
>>>첫째는 웹서버에서 메일을 발송하면 (php mail() 또는
커멘드라인에서
mail ~ 할때) 메일서버로 릴레이가 되서 발송되지 않고 웹서버에
현재 설치된 센드메일이 발송합니다. pstree 해보면 센드메일이
떠있지는 않는데 maillog를 보면 분명 웹서버의 센드메일이
발송했습니다. 현재 설정으로 그럴 수 밖에 없을것 같기도
한데요, 원격 smtp서버를 이용하려면 어떻게 해야
하는지요?
>>>
>>
>>1) 커맨드라인 mail :
>>
>>기본적으로 localhost 의 /usr/lib/sendmail 을 이용합니다.
>>맨페이지를 보았는데 원격의 SMTP 설정에 관한 내용은
없더군요.
>>(/etc/mail.rc)
>>어쩔 수 없이 localhost 의 sendmail 을 이용하는 수 밖에..
>>
>>
>>2) PHP mail() 함수
>>
>>php.ini 파일에서 SMTP 설정을 원격의 메일서버로
지정해보세요.
>>
>>
>>
>>>둘째는 현재상태(웹서버의
센드메일이 발송)에서라도 메일은 가야하는데 외부로는
가는데요 메일서버의 계정으로는 도착하질않습니다.
아래와 같은 에러가 뜹니다.
>>>
>>>먼저 웹서버에 뜨는 에러입니다.
>>>--------------------------------------------------------------------
>>>localhost sendmail[1092]: h892cVs01089: SYSERR(nobody): mail.aaa.co.kr. config
error: mail loops back to me (MX problem?)
>>>
>>>localhost sendmail[1092]: h892cVs01089: to=usera<admin@usera.co.kr>, ctladdr=nobody (99/99),
delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=30212, relay=mail.aaa.co.kr.
>>>
>>>[211.111.111.112], dsn=5.3.5, stat=Local configuration error
>>>localhost sendmail[1092]: h892cVs01089: h892cVr01092: DSN: Local configuration
error
>>>--------------------------------------------------------------------
>>>
>>
>>mail 서버의 sendmail 에서 mail.aaa.co.kr 수신자가 없어서
>>이와 같이 무한 루프가 돕니다.
>>
>>메일서버의 수신자 설정은 반드시 aaa.co.kr mail.aaa.co.kr
>>www.aaa.co.kr 등을 설정해야 합니다.
>>
>>앞에서
>>
>>mail.usera.co.kr
>>usera.co.kr
>>www.usera.co.kr
>>mail.userb.co.kr
>>userb.co.kr
>>www.userb.co.kr
>>
>>이 수신자 설정을 mail 서버인 211.111.111.112 에서 설정해줘야
합니다.
>>(ns1 인 211.111.111.111 에서 수신자 설정을 하면
안됩니다.)
>>
>>그리고 현재
>>각각 서버의 /etc/hosts 와 네임서버의 zone 이 서로 뒤섞인듯
하네요.
>>
>>
>>@ IN A 211.111.111.111
>>
>>이 부분은
>>
>>@ IN A 211.111.111.113
>>
>>이렇게 웹서버쪽으로 @ 를 설정하세요.
>>나머지 zone 레코드를 그대로 두고,
>>
>>-- /etc/mail/local-host-names ------------
>>## mail 서버인 211.111.111.112 에서 다음을 설정
>>##
>>mail.usera.co.kr
>>usera.co.kr
>>www.usera.co.kr
>>mail.userb.co.kr
>>userb.co.kr
>>www.userb.co.kr
>>...
>>-----------------------------------------------
>>
>>www 서버의 /etc/mail/local-host-names 에는 localhost 만
>>설정합니다.
>>
>>www 서버의 /etc/hosts 파일에는
>>localhost 하나만 있어도 되지만 네임서버를 거치지
않고
>>리졸빙하려면
>>
>>-- www 서버의 /etc/hosts -------------------
>>127.0.0.1 localhost.localdomain localhost
>>211.111.111.113 aaa.co.kr aaa.co.kr
>>211.111.111.113 www.aaa.co.kr www
>>211.111.111.112 mail.aaa.co.kr mail
>>...
>>----------------------------------------------
>>
>>이정도만 설정하면 될것 같네요.
>>가능한 211.111.111.112 mail.aaa.co.kr 이 설정은 해주는
것이
>>좋습니다.
>>
>>--- www 서버의 /etc/host.conf ---------------------
>>order hosts,bind
>>...
>>----------------------------------------------------
>>
>>이렇게 hosts 가 bind 보다 앞에 있는지 확인
>>bind 보다 뒤에 있으면 bind 앞쪽에 설정.
>>
>>또한
>>
>>--- www 서버의 /etc/nsswitch.conf --------------
>>...
>>hosts: files nisplus nis dns
>>...
>>-------------------------------------------------
>>
>>이렇게 files 이 제일 앞부분으로 오도록 설정되어
>>있는지 확인하세요.
>>
>>참고로,
>>
>>mail.aaa.co.kr. config error: mail loops back to me (MX problem?)
>>
>>이와 같은 에러메시지는
>>
>>mail.aaa.co.kr 메일서버에서 aaa.co.kr 도메인에 대한
>>수신자 설정이 없기 때문에 계속 무한루프가 도는
경우입니다.
>>
>>좀더 자세한 내용은
>>
>>http://linuxchannel.net/docs/mx-problem.txt
>>
>>위의 문서를 나중에(?) 읽어보시길 바랍니다.
>>
>>
>>>아래는 메일서버에 뜨는 에러입니다.
>>>--------------------------------------------------------------------
>>>localhost sendmail[10461]: NOQUEUE: [211.43.207.139] did not issue
MAIL/EXPN/VRFY/ETRN during connection to MTA
>>>--------------------------------------------------------------------
>>>
>>
>>이 부분은 무시해도 됩니다.
>>
>>
>>>검색해보니까
비슷한 질문들이 있었던것 같기도 한데요, 잘 이해가 안되서
질문드립니다. 항상 많이 가르쳐주셔서 감사하구요, 즐거운
추석 보내세요~
>>
>>========================================
>
>========================================
========================================
|