|Re: [NYLXS - HANGOUT] cable crimping
Quoting Chris Knadle (Chris.Knadle-at-coredump.us):
> On 03/08/2015 01:45 PM, Rick Moen wrote:
> > Quoting Ruben Safir (mrbrklyn-at-panix.com):
> >> Robert, do you have the artcile for me, PLEASE
> > I hope he does _not_ have the 'cheap $5 crimper' for you. Life is too
> > short to spend it using crummy tools, like poorly made crimpers (and
> > proprietary mailing list managers with designed-in security holes that
> > have been unmaintained for a decade and a half).
> If you've managed to set up Mailman such that you're not passing it
> the mail via a pipe in /etc/aliases, then from what I'm hearing
> you're probably the only one that's gotten that to work.
Here's the way to make the Exim4 MTA directly read GNU Mailman
conffiles, rather than needing special entries with pipes in
Notice that Exim4 actually uses Mailman's Postfix interface hooks needed
to provide the router and transport needed, so I imagine it's less
complicated with Postfix (Which I don't run here).
I _think_ this doc describes how to do the same sort of thing with
Postfix talking directly to the Sympa MLM (but I don't know Sympa very
(If that's not the doc required, ask the sysadmin team at Linux Users of
Victoria. They run Sympa, and I remember them saying they didn't need
> As I've set up two MLMs in the past year and they both use a pipe in
> /etc/aliases, it would be nice to know what security issues you think
> this has.
You need to be completely sure that whatever's on the right hand side of
the pipe can handle any arbitrary public data passed through to it by
the MTA, i.e., that it has excellent input validation.
There's been such a _very_ bad history of that generally (easist
examples for me to recall have involved the old uudecode and decode
entries that used to be standard in /etc/aliases) that many modern MTAs
disable _all_ processing of /etc/aliases pipes by default.
Here's what /usr/share/doc/exim4/README.Debian.html has to say about
2.9. Using more complex deliveries from alias files
Delivery to arbitrary files, directory or to pipes in the
/etc/aliases file is disabled by default in the Debian Exim 4
packages. The delivery process including the program being piped to
would run as the exim admin-user Debian-exim, which might
open up security holes.
Invoking pipes from /etc/aliases file is widely considered obsolete
and deprecated. The Debian Exim package maintainers would
like to suggest using a dedicated router/transport pair to invoke
local processes for mail processing. For example, the Debian
mailman package contains a /usr/share/doc/mailman/README.Exim4.Debian
file that gives a good example how to implement this.
Using a dedicated router/transport pair have the following
* The router/transport pair can be put in place by another package,
giving a well-defined transaction point between Exim 4
* Not allowing pipe deliveries from alias files makes it harder to
accidentally run programs with wrong privileges.
* It is possible to run different pipe processes under different
* Even if only invoking a single local program, it is easier to do
with your dedicated router/transport since you won't need
to change this file, making automatic updates of this file
possible for future versions of the Exim 4 packages. If you do
local changes here, dpkg conffile handling will bother you on
If you insist on using /etc/aliases in the traditional way, you will
need to activate the respective functions by setting the
transport options on the system_aliases router appropriately. Macros
are defined to make this easier. See
information about which macros are available. You might find the
address_file, address_pipe and/or address_directory transports that
are used for the userforward router helpful in writing your
own transports for use in the system_aliases router.
If any of your aliases expand to pipes or files or directories you
should set up a user and a group for these deliveries to run
under. You can do this by setting the "user" and - if necessary - a
"group" option and adding a "group" option if necessary.
Alternatively, you can specify "user" and/or "group" on the
transports that are used.