Add documentation on scripting mailman actions
Change-Id: I1d5343f9baba9eb5d07cc42d516a393db87c807d
This commit is contained in:
parent
afcfe2b904
commit
82238b5f55
@ -43,3 +43,48 @@ example:
|
|||||||
mailserver => $listdomain,
|
mailserver => $listdomain,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Scripted Changes to Lists
|
||||||
|
=========================
|
||||||
|
|
||||||
|
This may only be performed with root access to the list server.
|
||||||
|
|
||||||
|
Mailman supports running a python code snippet in the context of
|
||||||
|
individual lists or every list on the system. The following example
|
||||||
|
adds an address to the list of banned addresses for every list. This
|
||||||
|
has proved useful in the case of attackers abusing the HTTP
|
||||||
|
subscription interface to subscribe a target's address to multiple
|
||||||
|
mailing lists.
|
||||||
|
|
||||||
|
Banning an Address from All Lists
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
Create the file `/usr/lib/mailman/bin/ban.py` with the following
|
||||||
|
content:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
def ban(m, address):
|
||||||
|
try:
|
||||||
|
m.Lock()
|
||||||
|
if address not in m.ban_list:
|
||||||
|
m.ban_list.append(address)
|
||||||
|
m.Save()
|
||||||
|
finally:
|
||||||
|
m.Unlock()
|
||||||
|
|
||||||
|
And then run the withlist script as:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
sudo -u list /usr/lib/mailman/bin/withlist -a -r ban "<address to ban>"
|
||||||
|
|
||||||
|
Because the script itself handles locking, do not use the `-l`
|
||||||
|
argument to withlist. To run the same script on a single list, use:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
sudo -u list /usr/lib/mailman/bin/withlist -r ban listname "<address to ban>"
|
||||||
|
|
||||||
|
Note that the ban list accepts regular expressions, so to ban an
|
||||||
|
address and all suffixes, use '^address.*@example.com' as the "address
|
||||||
|
to ban".
|
||||||
|
Loading…
Reference in New Issue
Block a user