postfix 에서 계정 관리를 mysql 로 하시는 분 계신가요?

zepinos의 이미지

postfix 에서 시스템의 계정이 아닌 mysql 에서 계정을 관리하는 형식으로 운영하고 싶습니다.
postfix.org 에서 Postfix+MySQL+Courier-IMAP 문서를 참조하여 설정을 해도 안되는군요.
문서에는 alias 등의 기능을 뭉쳐서 구현되어 있는데...순수하게 mysql 에서 계정만 관리하고 싶습니다.
postfix + mysql 로 쓰시는 분들이 계시는 걸로 압니다.

도움을 부탁 드립니다.

azoth의 이미지

일단 postfix.org 에 있는 문서 대로 하시면 됩니다.
redhat에 기본적으로 들어 있는 postfix는 mysql map을
지원하지 않으므로 컴파일을 다시해야 합니다.
debian에 있는 놈은 postfix-mysqlmap(????)인가 하는 패키지를
깔면 그냥 됩니다.

postfix.org 에 있는 문서대로 했는데 잘 안되는 것은 대부분이
postfix를 컴파일을 잘못해서 mysql map 지원이 포함되지 않아서
입니다. 속편하게 하시려면 debian 쓰면 그냥 됩니다.

courier-Imap도 레드햇에서는 컴파일을 해서 사용했던 것 같네요.
debian에서는 역시 그냥 됩니다.

cyrus-sasl은 1.5.27 버전 이상을 사용해야만 작동하더군요.

결과적으로는 postfix + courier-imap + cyrus-sasl + mysql을 통한
통합인증 + amavis + openantivirus + seive or spamassain 이게
다 됩니다. 문서는 각각 따로 따로 보셔야 됩니다.

얼케하는지 구체적으로 글을 쓰면 회사에서 짤릴 위험이 있어서 죄송~~
별 것도 아닌 걸 가지고 사람 신경쓰이게 만드는 군요. 회사에서 짤리면
문서 만들어서 공개하겠습니다.

감사합니다.

무한포옹의 이미지

azoth wrote:

결과적으로는 postfix + courier-imap + cyrus-sasl + mysql을 통한
통합인증 + amavis + openantivirus + seive or spamassain 이게
다 됩니다. 문서는 각각 따로 따로 보셔야 됩니다.

얼케하는지 구체적으로 글을 쓰면 회사에서 짤릴 위험이 있어서 죄송~~
별 것도 아닌 걸 가지고 사람 신경쓰이게 만드는 군요. 회사에서 짤리면
문서 만들어서 공개하겠습니다.

감사합니다.

확실히 그냥 공개하셔도 될 거 같은 데 요상한 규정이 있나 보군요...

제가 속한 동호회에서 사용하는 서버에도 위와 같이 구성되어 있습니다.

알아보고 문서 올려보죠.

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

다즐링의 이미지

www.inter7.com 에 가셔셔 vpopmail 을 받아보세요.

------------------------------------------------------------------------------------------------
Life is in 다즐링

zepinos의 이미지

답변 감사드립니다.
엄밀히 이야기해서...FreeBSD 로 설치를 했습니다.
설치시 ports 로 설치를 했으므로 소스 설치일 것이고, mysql 옵션도 붙여서 컴파일을 했습니다(처음에 옵션을 붙이지 않았을 때 로그에 남는 것을 봐서...이건 확실히 된 듯 합니다).
지금 당장 courier-imap 과의 연동이 문제가 되는 것이 아니라 smtpd 가 메일을 제대로 수신을 못한다는 것입니다.
mysql 에 해당 계정을 설정해놔도 사용자를 찾지 못했다...라는 로그만 남습니다.

/usr/local/etc/postfix/main.cf 에서는 아래와 같이 세팅을 했습니다.

local_recipient_maps = unix:passwd.byname $alias_maps $virtual_mailbox_maps

virtual_mailbox_base = /usr/local/postfix
virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf

그리고 mysql_virtual_mailbox_maps.cf 에는 아래와 같이 설정했습니다.

user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username

mysql 의 postfix 라는 DB, postfix 테이블 에 usrname 에는 계정명(test, test@test.com 과 같이 두 가지 형태 모두 넣어봤습니다)을, maildir 에는 디렉토리명(test@test.com/)을 넣어두었습니다.

대략 maillog 에는 이렇게 남는군요.

Oct  9 17:08:30 wing postfix/smtpd[81564]: connect from unknown[203.229.170.2]
Oct  9 17:08:30 wing postfix/smtpd[81564]: AA16E40F4: client=unknown[203.229.170.2]
Oct  9 17:08:30 wing postfix/trivial-rewrite[81566]: warning: do not list domain wing.dbmedia.co.kr in BOTH mydestination and virtual_mailbox_domains
Oct  9 17:08:31 wing postfix/cleanup[81565]: AA16E40F4: message-id=<005e01c38e39$c317c1e0$5e01a8c0@Scorpion>
Oct  9 17:08:31 wing postfix/qmgr[78642]: AA16E40F4: from=<zebec@dbmedia.co.kr>, size=954, nrcpt=1 (queue active)
Oct  9 17:08:31 wing postfix/local[81567]: AA16E40F4: to=<blackleo@wing.dbmedia.co.kr>, relay=local, delay=1, status=bounced (unknown user: "blackleo")
Oct  9 17:08:31 wing postfix/cleanup[81565]: F04AC40F5: message-id=<20031009080831.F04AC40F5@wing.dbmedia.co.kr>
Oct  9 17:08:31 wing postfix/qmgr[78642]: F04AC40F5: from=<>, size=2539, nrcpt=1 (queue active)
Oct  9 17:08:32 wing postfix/smtpd[81564]: disconnect from unknown[203.229.170.2]
Oct  9 17:08:38 wing postfix/smtp[81569]: F04AC40F5: to=<zebec@dbmedia.co.kr>, relay=mail.dbmedia.co.kr[203.229.170.2], delay=7, status=sent (250 2.0.0 h998A9g6017791 Message accepted for delivery)

username 컬럼에는 blackleo 도 있고 blackleo@wing.dbmedia.co.kr 도 있습니다.

로그가 자세하질 않아서 뭐가 문제인지도 잘 모르겠네요.

azoth의 이미지

서점에 가시면 postfix라는 책이 있습니다. 뭐 그리 자세하지는 않지만,
한번 보면 도움이 될 겁니다.

위의 로그의 에러메시지는 사용자를 못찾겠단는 것이 아니라
메일을 받을 수 있도록 허용된 도메인 리스트에서 도메인을 찾을 수
없다는 메시지입니다.

vmailbox에서 사용하는 형태는 test@test.com 이 기본적으로 맞습니다.

에러의 내용으로 봐서는 wing.dbmedia.co.kr 라는 도메인/호스트명으로
오는 메일을 받아주지 않는 것입니다. 그러니까 vmailbox를 참조할
필요도 없죠. 도메인 전체가 막혀 있으니까요.postfix는 기본적으로
mydestination이나 virtual_mailbox_domains 에 없는
도메인으로 오는 메일은 받지 않습니다. 이부분은 main.cf 의 주석과
postfix 책을 잘 읽어 보십시오. postfix가 쉽기는 하지만, 그래도 제대로
사용하려면, 책+문서들 또는 소스를 보셔야 할 겁니다.

main.cf 파일에서 mydestination 부분에 원하는 도메인 부분을 추가하면
해결됩니다.

참고로 postfix mysql map은 대부분의 설정을 mysql에다가 때려 넣을 수
있는 구조입니다. 그러니까 map_name = hash:path/filename 의 구조로
셋팅된 놈은 모두다 mysql에다 쳐 넣을 수 있습니다.

postfix 책을 한번 읽어 보시길..... 내용이 많이 부족하기는 하지만, 기본적인
내용을 이해하는 데에는 도움이 됩니다.

OS는 아무 거나 사용하셔도 될 겁니다. 원래는 FreeBSD 기반으로 된 문서를
더 많이 참고했거든요. 테스트해 본 결과 BSD에서 대량의 도메인/대량의
메일 사용자/대량의 메일 이렇게 되면, 예기치 않은 문제가 일어 날 수 있을 것
같습니다. BSD의 문제는 아닌 것 같고, 파일시스템이 저널링인가 아닌가의
차이인 것 같습니다. 규모가 큰 메일서버를 구축하시는 거라면, 저널링이 되는
파일시스템을 사용하실 것을 권장합니다.

성공하시길....

cjh의 이미지

azoth wrote:
원래는 FreeBSD 기반으로 된 문서를
더 많이 참고했거든요. 테스트해 본 결과 BSD에서 대량의 도메인/대량의
메일 사용자/대량의 메일 이렇게 되면, 예기치 않은 문제가 일어 날 수 있을 것
같습니다. BSD의 문제는 아닌 것 같고, 파일시스템이 저널링인가 아닌가의
차이인 것 같습니다. 규모가 큰 메일서버를 구축하시는 거라면, 저널링이 되는
파일시스템을 사용하실 것을 권장합니다.

성공하시길....

저널링 파일시스템이라고 그런 면에서 더 낫지는 않습니다. 운영체제 자체의
안정성(대량 파일 디스크립터/프로세스 처리나 네트워크)이 더 중요할 것
같네요. FreeBSD면 기본의 UFS2+Softupdates정도면 무리없이 사용하실
수 있을 것입니다.

--
익스펙토 페트로눔

azoth의 이미지

그렇군요....
무식해서 지송... ^^;

zepinos의 이미지

미치겠네요...
여전히 마찬가지 현상입니다.

Quote:
main.cf 파일에서 mydestination 부분에 원하는 도메인 부분을 추가하면
해결됩니다.

mydestination = wing.dbmedia.co.kr

이라고 세팅한 후에 blackleo@wing.dbmedia.co.kr 로 메일을 보내도 마찬가지로 도메인을 못찾겠다는 로그가 남는군요.

Quote:
서점에 가시면 postfix라는 책이 있습니다. 뭐 그리 자세하지는 않지만,
한번 보면 도움이 될 겁니다.

혹시 원서 말씀하시는 건가요?
제가...원서라면 아주 많이 질색을 하는터라. -_-; 봐도 이해도 잘 못하구요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.