aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Mailman/Cgi/admin.py4
-rw-r--r--Mailman/Cgi/admindb.py4
-rw-r--r--Mailman/Cgi/edithtml.py4
-rw-r--r--Mailman/Cgi/options.py5
-rwxr-xr-xMailman/Cgi/private.py5
-rw-r--r--Mailman/Cgi/roster.py4
-rw-r--r--Mailman/Utils.py3
-rw-r--r--NEWS9
-rw-r--r--messages/ja/LC_MESSAGES/mailman.po4
-rwxr-xr-xmessages/ja/doc/Defaults.py.in17
10 files changed, 44 insertions, 15 deletions
diff --git a/Mailman/Cgi/admin.py b/Mailman/Cgi/admin.py
index 2a86298a..174cf34f 100644
--- a/Mailman/Cgi/admin.py
+++ b/Mailman/Cgi/admin.py
@@ -123,7 +123,9 @@ def main():
os.environ.get('HTTP_X_FORWARDED_FOR',
os.environ.get('REMOTE_ADDR',
'unidentified origin')))
- syslog('security', 'Authorization failed (admin): list=%s: remote=%s', listname, remote)
+ syslog('security',
+ 'Authorization failed (admin): list=%s: remote=%s',
+ listname, remote)
else:
msg = ''
Auth.loginpage(mlist, 'admin', msg=msg)
diff --git a/Mailman/Cgi/admindb.py b/Mailman/Cgi/admindb.py
index 58afb46a..010d8aae 100644
--- a/Mailman/Cgi/admindb.py
+++ b/Mailman/Cgi/admindb.py
@@ -163,7 +163,9 @@ def main():
os.environ.get('HTTP_X_FORWARDED_FOR',
os.environ.get('REMOTE_ADDR',
'unidentified origin')))
- syslog('security', 'Authorization failed (admindb): list=%s: domain=%s', listname, remote)
+ syslog('security',
+ 'Authorization failed (admindb): list=%s: remote=%s',
+ listname, remote)
else:
msg = ''
Auth.loginpage(mlist, 'admindb', msg=msg)
diff --git a/Mailman/Cgi/edithtml.py b/Mailman/Cgi/edithtml.py
index 69421688..8bf1652a 100644
--- a/Mailman/Cgi/edithtml.py
+++ b/Mailman/Cgi/edithtml.py
@@ -130,7 +130,9 @@ def main():
os.environ.get('HTTP_X_FORWARDED_FOR',
os.environ.get('REMOTE_ADDR',
'unidentified origin')))
- syslog('security', 'Authorization failed (edithtml): list=%s: remote=%s', listname, remote)
+ syslog('security',
+ 'Authorization failed (edithtml): list=%s: remote=%s',
+ listname, remote)
else:
msg = ''
Auth.loginpage(mlist, 'admin', msg=msg)
diff --git a/Mailman/Cgi/options.py b/Mailman/Cgi/options.py
index e947ff60..4f128baf 100644
--- a/Mailman/Cgi/options.py
+++ b/Mailman/Cgi/options.py
@@ -292,8 +292,9 @@ def main():
os.environ.get('HTTP_X_FORWARDED_FOR',
os.environ.get('REMOTE_ADDR',
'unidentified origin')))
- syslog('security', 'Authorization failed (private): user=%s
- list=%s remote=%s', user, listname, remote)
+ syslog('security',
+ 'Authorization failed (private): user=%s: list=%s: remote=%s',
+ user, listname, remote)
# So as not to allow membership leakage, prompt for the email
# address and the password here.
if mlist.private_roster <> 0:
diff --git a/Mailman/Cgi/private.py b/Mailman/Cgi/private.py
index cb954d3c..131c5de8 100755
--- a/Mailman/Cgi/private.py
+++ b/Mailman/Cgi/private.py
@@ -146,8 +146,9 @@ def main():
os.environ.get('HTTP_X_FORWARDED_FOR',
os.environ.get('REMOTE_ADDR',
'unidentified origin')))
- syslog('security', 'Authorization failed (private): user=%s list=%s
- remote=%s', username, listname, remote)
+ syslog('security',
+ 'Authorization failed (private): user=%s: list=%s: remote=%s',
+ username, listname, remote)
# give an HTTP 401 for authentication failure
print 'Status: 401 Unauthorized'
# Are we processing a password reminder from the login screen?
diff --git a/Mailman/Cgi/roster.py b/Mailman/Cgi/roster.py
index 88391997..02286c09 100644
--- a/Mailman/Cgi/roster.py
+++ b/Mailman/Cgi/roster.py
@@ -122,7 +122,9 @@ def main():
os.environ.get('HTTP_X_FORWARDED_FOR',
os.environ.get('REMOTE_ADDR',
'unidentified origin')))
- syslog('security', 'Authorization failed (roster): list=%s: remote=%s', listname, remote)
+ syslog('security',
+ 'Authorization failed (roster): list=%s: remote=%s',
+ listname, remote)
return
# The document and its language
diff --git a/Mailman/Utils.py b/Mailman/Utils.py
index b38776f8..9a3b4a8c 100644
--- a/Mailman/Utils.py
+++ b/Mailman/Utils.py
@@ -115,7 +115,8 @@ def list_exists(listname):
os.environ.get('HTTP_X_FORWARDED_FOR',
os.environ.get('REMOTE_ADDR',
'unidentified origin')))
- syslog('mischief', 'Hostile listname: listname=%s remote=%s', listname, remote)
+ syslog('mischief',
+ 'Hostile listname: listname=%s: remote=%s', listname, remote)
return False
basepath = Site.get_listpath(listname)
for ext in ('.pck', '.pck.last', '.db', '.db.last'):
diff --git a/NEWS b/NEWS
index e037982c..cb0dcc5d 100644
--- a/NEWS
+++ b/NEWS
@@ -30,6 +30,15 @@ Here is a history of user visible changes to Mailman.
py2-ipaddress module is installed. The module can be installed via pip
if not included in your Python.
+ - Thanks to Jim Popovitch, Mailman has a new 'security' log and logs
+ authentication failures to the various web CGI functions. The logged
+ data include the remote IP and can be used to automate blocking of IPs
+ with something like fail2ban. Since Mailman 2.1.14, these have returned
+ an http 401 status and the information should be logged by the web
+ server, but this new log makes that more convenient. Also, the
+ 'mischief' log entries for 'hostile listname' noe include the remote IP
+ if available.
+
i18n
- The Japanese translation has been updated by Yasuhito FUTATSUKI.
diff --git a/messages/ja/LC_MESSAGES/mailman.po b/messages/ja/LC_MESSAGES/mailman.po
index cfb32021..ba7b1675 100644
--- a/messages/ja/LC_MESSAGES/mailman.po
+++ b/messages/ja/LC_MESSAGES/mailman.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Mailman 2.1.26\n"
"POT-Creation-Date: Sun Jun 3 17:52:55 2018\n"
-"PO-Revision-Date: 2018-05-27 02:02+09:00\n"
+"PO-Revision-Date: 2018-06-06 03:29+09:00\n"
"Last-Translator: Yasuhito FUTATSUKI at POEM <futatuki@poem.co.jp>\n"
"Language-Team: Japanese <mailman-users-jp@googlegroups.com>\n"
"Language: ja\n"
@@ -3862,7 +3862,7 @@ msgstr "英語 (米国)"
#: Mailman/Defaults.py:1749
msgid "Esperanto"
-msgstr ""
+msgstr "エスペラント"
#: Mailman/Defaults.py:1750
msgid "Spanish (Spain)"
diff --git a/messages/ja/doc/Defaults.py.in b/messages/ja/doc/Defaults.py.in
index cfdcd711..89b0f33b 100755
--- a/messages/ja/doc/Defaults.py.in
+++ b/messages/ja/doc/Defaults.py.in
@@ -20,7 +20,7 @@
# [訳註] このファイルは、Mailman 2.1.26 配布物に含まれる
# Mailman/Defaults.py.in (launchpad.net での Bazaar リビジョンは
-# 1738) のコメント部分を日本語 (共通語) に翻訳したものです。
+# 1763) のコメント部分を日本語 (共通語) に翻訳したものです。
# 配布等の条件は原文と同様、GNU 一般公衆利用許諾契約書 (GNU
# General Public License) に従います (上記も参照ください)。内容の
# 正確な理解のためには、配布物に含まれる原文を参照されることを
@@ -166,14 +166,22 @@ RECAPTCHA_SITE_KEY = None
RECAPTCHA_SECRET_KEY = None
# インストール環境全体でのBANリスト。このインストール環境全体のすべての
-# リストで購読を禁止する電子メールアドレスおよび正規表現パターン(先頭文字
+# リストで入会を禁止する電子メールアドレスおよび正規表現パターン(先頭文字
# が「^」)のリストです。これはリスト個別の ban_list を補完します。
# 例として、 xxx@example.net と @example.com の yyy から始まる任意の
-# アドレスを購読禁止にするには
-# GLOBAL_BAN_LIST = ['xxx@example.net', '^yyy.*@example\.com$']
+# アドレスを入会禁止にするには
+# GLOBAL_BAN_LIST = ['xxx@example\.net', '^yyy.*@example\.com$']
# のように設定します。
GLOBAL_BAN_LIST = []
+# 以下を Yes にセットすると、Web からの入会依頼で Spamhaus の SBL, CSS,
+# XBL に登録されている IP アドレスからのものをブロックします。
+# py2-ipaddress がインストールされている場合には IPv6 アドレスにも
+# 対応しますが、なければ IPv4 アドレスにのみ対応します。
+# py2-ipaddress モジュールが Python 環境にインストールされていなければ
+# pip を使用してインストールすることができます。
+BLOCK_SPAMHAUS_LISTED_IP_SUBSCRIBE = No
+
# text/html パートをプレーンテキストに変換するコマンド。このコマンドは
# 結果を標準出力に出力しなければなりません。 %(filename)s はプログラムが
# 処理する一時ファイルの名前になります。
@@ -1897,6 +1905,7 @@ add_language('cs', _('Czech'), 'iso-8859-2', 'ltr')
add_language('da', _('Danish'), 'iso-8859-1', 'ltr')
add_language('de', _('German'), 'iso-8859-1', 'ltr')
add_language('en', _('English (USA)'), 'us-ascii', 'ltr')
+add_language('eo', _('Esperanto'), 'utf-8', 'ltr')
add_language('es', _('Spanish (Spain)'), 'iso-8859-1', 'ltr')
add_language('et', _('Estonian'), 'iso-8859-15', 'ltr')
add_language('eu', _('Euskara'), 'iso-8859-15', 'ltr') # Basque