[Q]imap-ssl authmodule의 mysql인증 과정 debugging
안녕하세요, 우선 읽어주셔서 감사합니다.
제가 이번에 FB box에 mail server를 구축하고 있습니다.
구성은 postfix+courier-imap+mysql+maildrop정도가 되고, postfix.org의 howto 문서들을 참고로 virtual mail server구축을 진행하고 있습니다.
그런데, imap을 imap-ssl로 구성하고, 사용자 인증을 mqsql로 하려고 하는데, 아무리 해도 login에 실패하고 있습니다.
courier-authdaemon을 이용하고, 그것이 mysql쪽으로 query해서 사용자 validity를 확인하는 구조인데요.
일단 smtp port로 수신한 mail이 정확히 사용자 maildir에 쌓이고 있는 것으로 봐서, imap과는 무관한 path이긴 합니다만 일단 mysql의 동작은 되는것 같습니다.
imaps의 인증에 실패하는데, 추측으로는 auth module이 동작하지 않거나 auth module이 mysql쪽으로 query하지 않거나(즉, mysql 인증을 허용하지 않음) 하는것 같습니다.
관련한 log로 보는것은 /var/log의 maillog, authlog, message등입니다.
mysql log는 mysqlbinlog를 통해 보고 있습니다.(하지만 query자체에 대한 log는 보이지 않는군요)
혹시 이같은 설정으로 메일서버를 구축해보신 적 있으신 분들의 많은 조언부탁드립니다.
우선 잘 모르겠는게 authdaemon의 log와 mysql의 log인데,
따로 logging되는거라면 파일명이라도 알수 있을까요?
즉 debugging방법이라도 알수 있었으면 좋겠습니다.
읽어주셔서 감사합니다.
좋은 하루하루되세요~
courier authdaemon을 이용하는 방법은 이미 문서를 보셨고,
courier authdaemon을 이용하는 방법은 이미 문서를 보셨고, 구조를 잡으신것 같네요.
문제가 있을만한 부분을 제 나름대로 정리해봤습니다.
1. authdaemond을 컴파일하실때 mysql을 지원하도록 컴파일 해야한다.
2. authdaemonrc파일의 authmodulelist설정을 제대로 해야한다.
3. authmysqlrc파일의 설정을 제대로 해야한다.
뭐 이 정도인데요.
당연한 얘기지만, authdaemon을 따로 기동시키셔야 됩니다. 가끔 깜박하는 부분이라서...
그리고 authdaemonrc파일에서 DEBUG_LOGIN 값을 조절해서 syslog로 authdaemon의
sql query등을 디버깅할 수 있습니다.
핫, 어느새 답변을...^^;친절한 답변 감사드립니다.실은 제
핫, 어느새 답변을...^^;
친절한 답변 감사드립니다.
실은 제가 웹이니 메일이니 db니랑 거리가 먼지라, 처음 해보는 일이라서 버벅이고 있습니다.
뭣보다 일삼아서가 아니라 짬짬이 소일삼아 진행하다보니 더 더딘것 같습니다.
그래도 db schema도 만들어보고 하면서 즐거운( :twisted: ) 삽질을 하고 있는 셈이랍니당. :D
blog까진 어케어케 되었는데 imap이란 좀 까다로운걸로 골라서 하다보니, 이것대로만 하면 만사 OK란 guide가 잘 없긴 하네요.ㅋㅋ
말씀해주신 경우가 저도 의심되는 부분입니다.
1의 경우엔, 제가 FB 6-stable machine에서 작업하고 있는데, 한 세번정도를 WITH_MYSQL=yes 식의 option을 줘가며 재설치를 해봤지만, 어찌된 일인지 sbin의 authmoduled는 ldd해봐도 mysql쪽 library link가 안보입니다.
하지만 auth library에는 충실히 mysql library가 생성되는것으로 봐서 괜찮은게 아닌가 하고는 걍 넘기고 있었습니다. 다시 확인해보겠습니다.
2의 경우는 authmysql과 authpam만 넣어둔 상태입니다. mysql만 넣고도 해봤지만, 마찬가지였습니다.
3은, authmysqlrc는 꽤 충실히 따른것 같은데, 주로 mysql port(default는 0인데 3306으로 바꿔본달지...), clear_pw와 crypt_pw쪽을 en/disable해본달지 정도인데, 혹시나 mqsql query statement쪽이 없어서(default에선 없음) 그런가 해서 그쪽도 바꿔봤습니다.
syslogd는 정상적으로 돌고 있는데, 어디서 어떻게 fail이 나는지 당최 log가 남지 않는것이 문제입니다. debug해볼래도 log가 없으니...그렇다고 gdb는 넘 오버같고 말이죠.
authdaemonrc에서 debug level을 올려보아도 마찬가지였습니다.
혹시 이 debug level을 올리는 방법이나, 사실은 어딘가 다른 file에 logging되고 있다거나 하는 사실을 알고 계신 분 있으시면, 많은 도움 부탁드리겠습니다.
감사합니다.
그럼 좋은 하루하루 되세요~
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
댓글 달기