I'm using mailman as a list server with courier as my MTA. The mailman user is in /etc/passwd as belonging to primary group 'mailman'. Mailman is compiled with --with-mail-gid set to the group of the mail user. This is set to 'courier' which works for most purposes, both posting and handling bounces from list posts.
The one exception to this is the monthly password reminder postings which go out with an address of "mailman-bounces+<VERP address>@bailey.fmp.com" as the envelope sender, and if they bounce they come back to this address. Courier delivers them to the mailman account where I have a .courier-default file to pass them to a python script for processing. Unlike list posts and list post bounces, however, the delivering process runs as user mailman, group mailman, and mailman rejects them because the group id of the delivering process doesn't agree with the value of "courier" compiled into the wrapper.
According to the mailman INSTALL document, one can configure mailman at build time to accept any one of a set of groups specified in the --with-mail-gid, but putting these in a quoted, space-spearted list as arguments to the configure script doesn't work, and reading the code, I don't see where such a multiple-name lookup is supported since the wrapper uses a single strcmp call for the comparison. Does this feature work? If so, what's the exact syntax for the target for --with-mail-gid required to make this happen?
-- Lindsay Haisley | "Everything works | PGP public key FMP Computer Services | if you let it" | available at 512-259-1190 | (The Roadie) | <http://www.fmp.com/pubkeys> http://www.fmp.com | |
I solved this by hacking src/common.c so as to only compare the procces group name with parentgroup if strcmp("mailman", mygroup->gr_name) returns non-zero. This solves the problem, but surely there must be a more elegant solution.
Thus spake fmouse-mailman@fmp.com on Thu, Jul 01, 2004 at 03:17:23PM CDT
I'm using mailman as a list server with courier as my MTA. The mailman user is in /etc/passwd as belonging to primary group 'mailman'. Mailman is compiled with --with-mail-gid set to the group of the mail user. This is set to 'courier' which works for most purposes, both posting and handling bounces from list posts.
The one exception to this is the monthly password reminder postings which go out with an address of "mailman-bounces+<VERP address>@bailey.fmp.com" as the envelope sender, and if they bounce they come back to this address. Courier delivers them to the mailman account where I have a .courier-default file to pass them to a python script for processing. Unlike list posts and list post bounces, however, the delivering process runs as user mailman, group mailman, and mailman rejects them because the group id of the delivering process doesn't agree with the value of "courier" compiled into the wrapper.
According to the mailman INSTALL document, one can configure mailman at build time to accept any one of a set of groups specified in the --with-mail-gid, but putting these in a quoted, space-spearted list as arguments to the configure script doesn't work, and reading the code, I don't see where such a multiple-name lookup is supported since the wrapper uses a single strcmp call for the comparison. Does this feature work? If so, what's the exact syntax for the target for --with-mail-gid required to make this happen?
-- Lindsay Haisley | "Everything works | PGP public key FMP Computer Services | if you let it" | available at 512-259-1190 | (The Roadie) | <http://www.fmp.com/pubkeys> http://www.fmp.com | |
On 1 Jul 2004, at 22:08, fmouse-mailman@fmp.com wrote:
I solved this by hacking src/common.c so as to only compare the procces group name with parentgroup if strcmp("mailman", mygroup->gr_name) returns non-zero. This solves the problem, but surely there must be a more elegant solution.
I do not grok courier but why on earth is the delivery of a message to one list alias versus a message to another list alias done in some different way by the MTA such that the euid/egid under which Mailman's delivery script is executed is different? It seems to be this which is causing the problem rather than some deficiency in Mailman's security wrapper for its delivery script.
Thus spake fmouse-mailman@fmp.com on Thu, Jul 01, 2004 at 03:17:23PM CDT
I'm using mailman as a list server with courier as my MTA. The mailman user is in /etc/passwd as belonging to primary group 'mailman'. Mailman is compiled with --with-mail-gid set to the group of the mail user.
This is set to 'courier' which works for most purposes, both posting and handling bounces from list posts.The one exception to this is the monthly password reminder postings which go out with an address of "mailman-bounces+<VERP address>@bailey.fmp.com" as the envelope sender, and if they bounce they come back to this address. Courier delivers them to the mailman account where I have a .courier-default file to pass them to a python script for processing. Unlike list posts and list post bounces, however, the delivering process runs as user mailman, group mailman, and mailman rejects them because the group id of the delivering process doesn't agree with the value of "courier" compiled into the wrapper.
According to the mailman INSTALL document, one can configure mailman at build time to accept any one
Yes one is selected at configuration time from the options your provide and then that one is baked into the security wrapper you have hacked. It is not a list of option for execution time of the wrapper.
of a set of groups specified in the --with-mail-gid, but putting these in a quoted, space-spearted list as arguments to the configure script doesn't work, and reading the code, I don't see where such a multiple-name lookup is supported since the wrapper uses a single strcmp call for the comparison. Does this feature work? If so, what's the exact syntax for the target for --with-mail-gid required to make this happen?
-- Lindsay Haisley | "Everything works | PGP public key FMP Computer Services | if you let it" | available at 512-259-1190 | (The Roadie) | <http://www.fmp.com/pubkeys> http://www.fmp.com | |
Thus spake Richard Barrett on Thu, Jul 01, 2004 at 06:01:50PM CDT
On 1 Jul 2004, at 22:08, fmouse-mailman@fmp.com wrote:
I solved this by hacking src/common.c so as to only compare the procces group name with parentgroup if strcmp("mailman", mygroup->gr_name) returns non-zero. This solves the problem, but surely there must be a more elegant solution.
I do not grok courier but why on earth is the delivery of a message to one list alias versus a message to another list alias done in some different way by the MTA such that the euid/egid under which Mailman's delivery script is executed is different? It seems to be this which is causing the problem rather than some deficiency in Mailman's security wrapper for its delivery script.
Courier delivers, by default, to Maildir structures in a user's filespace and the MDA process sets it's user/group to match the user/group of the delivery target. Lists are set up as virtual mail aliases. In this case, courier runs as the user/group of the virtual mail user (vmail:courier), as determined by the authentication database (or /etc/passwd) which belongs to the 'courier' group. When bounces come back to 'mailman-anything...' the MDA runs as the user/group of the mailman user. Mailman belongs to the 'mailman' group and isn't a virtual user but a real user. You have to understand how courier works, but it's entirely logical.
According to Sam Varshavchik, the principle developer of courier, the user/group of the delivery process should be determined by the MySQL authentication database, however it looks as if it's being determined by the uid/gid set in /etc/passwd instead. I'm going to approach the problem from that angle and see if I can figure out what's happening and maybe get courier to set the delivery gid independent of the mailman user gid.
According to the mailman INSTALL document, one can configure mailman at build time to accept any one
Yes one is selected at configuration time from the options your provide and then that one is baked into the security wrapper you have hacked. It is not a list of option for execution time of the wrapper.
OK, I misunderstood the INSTALL doc, and what you say matches the code. Thanks for the clarification.
The hack I did works, although it's not elegant, and since apparently I need to solve the problem from the point of view of the MTA/MDA rather than mailman, I'll let it stand until figure out what's going on. I have lots of people depending on the list server. Opening up security so that it accepts mail from group 'mailman' as well as group 'courier' won't get me fire-bombed by the Bad Guys (not yet, anway :-)
-- Lindsay Haisley | "Everything works | PGP public key FMP Computer Services | if you let it" | available at 512-259-1190 | (The Roadie) | <http://www.fmp.com/pubkeys> http://www.fmp.com | |
OK, the issue was that mailman, when generating VERP address for the envelope sender address for monthly password mailouts uses the _fully qualified domain name_ of the list server system, e.g. "mailman-bounces+foo=bar.com@bailey.fmp.com". Courier's authentication database had an entry for "mailman@fmp.com" but not one for "mailman@bailey.fmp.com". Adding an appropriate entry in the auth db for the latter solved the problem and I could safely remove my hack.
-- Lindsay Haisley | "Everything works | PGP public key FMP Computer Services | if you let it" | available at 512-259-1190 | (The Roadie) | <http://www.fmp.com/pubkeys> http://www.fmp.com | |
On 2 Jul 2004, at 04:32, Lindsay Haisley wrote:
OK, the issue was that mailman, when generating VERP address for the envelope sender address for monthly password mailouts uses the _fully qualified domain name_ of the list server system, e.g. "mailman-bounces+foo=bar.com@bailey.fmp.com".
The info in the following FAQ entry might help in adjusting the MM config to fix that:
http://www.python.org/cgi-bin/faqw-mm.py?req=show&file=faq04.029.htp
Courier's authentication database had an entry for "mailman@fmp.com" but not one for "mailman@bailey.fmp.com". Adding an appropriate entry in the auth db for the latter solved the problem and I could safely remove my hack.
-- Lindsay Haisley | "Everything works | PGP public key FMP Computer Services | if you let it" | available at 512-259-1190 | (The Roadie) | <http://www.fmp.com/pubkeys> http://www.fmp.com | |
participants (3)
-
fmouse-mailman@fmp.com -
Lindsay Haisley -
Richard Barrett