Adjust schleuder install documentation
This commit is contained in:
parent
cc193c7339
commit
ff121e8562
@ -120,4 +120,260 @@ systemctl restart schleuder-api-daemon
|
||||
# - Add Postfix support
|
||||
# ---
|
||||
|
||||
schleuder_script="$(which schleuder)"
|
||||
backup_date="$(date +%Y-%m-%d-%H%M)"
|
||||
schleuder_domains="il-schleuder.de cryptolists.interventionistische-linke.org"
|
||||
|
||||
|
||||
cp -a "/etc/postfix/main.cf" "/etc/postfix/main.cf.$backup_date"
|
||||
|
||||
|
||||
# -
|
||||
# - /etc/postfix/master.cf
|
||||
# -
|
||||
|
||||
# - Add transport options to file /etc/postfix/master.cf
|
||||
# -
|
||||
if ! grep -q -E "^\s*schleuder" /etc/postfix/master.cf 2>/dev/null ; then
|
||||
|
||||
# - Backup file /etc/postfix/master.cf
|
||||
# -
|
||||
cp -a "/etc/postfix/master.cf" "/etc/postfix/master.cf.$backup_date"
|
||||
|
||||
cat <<EOF >> /etc/postfix/master.cf
|
||||
|
||||
schleuder unix - n n - - pipe
|
||||
flags=DRhu user=schleuder argv=${schleuder_script} work \${recipient}
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# -
|
||||
# - virtual_schleuder_domains_file
|
||||
# -
|
||||
|
||||
virtual_schleuder_domains_file="/etc/postfix/schleuder_domains_sqlite.cf"
|
||||
if [[ -f "$virtual_schleuder_domains_file" ]] ; then
|
||||
|
||||
# - Backup file $virtual_schleuder_domains_file
|
||||
# -
|
||||
cp -a "$virtual_schleuder_domains_file" "${virtual_schleuder_domains_file}.$backup_date"
|
||||
fi
|
||||
|
||||
# - Create new file '$virtual_schleuder_domains_file'
|
||||
# -
|
||||
cat << EOF > $virtual_schleuder_domains_file
|
||||
dbpath = /var/lib/schleuder/db.sqlite
|
||||
query = select distinct substr(email, instr(email, '@') + 1) from lists
|
||||
where email like '%%%s'
|
||||
EOF
|
||||
|
||||
# - Add 'sqlite:$virtual_schleuder_domains_file' to virtual_mailbox_domains
|
||||
# -
|
||||
if ! $(grep -q -e "sqlite:$virtual_schleuder_domains_file" "/etc/postfix/main.cf") ; then
|
||||
perl -i -n -p \
|
||||
-e "s#^\s*(virtual_mailbox_domains\s*=.*$)#\1\n \#\# - Schleuder domains\n sqlite:${virtual_schleuder_domains_file}#" \
|
||||
/etc/postfix/main.cf > $log_file 2>&1
|
||||
fi
|
||||
|
||||
# - Delete backuped file '$virtual_schleuder_domains_file' if nothing changed
|
||||
# -
|
||||
if [[ -f "${virtual_schleuder_domains_file}.$backup_date" ]]; then
|
||||
if $(diff "$virtual_schleuder_domains_file" "${virtual_schleuder_domains_file}.$backup_date" > /dev/null 2>&1); then
|
||||
rm "${virtual_schleuder_domains_file}.$backup_date"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# -
|
||||
# - virtual_schleuder_lists_file
|
||||
# -
|
||||
|
||||
virtual_schleuder_lists_file="/etc/postfix/schleuder_lists_sqlite.cf"
|
||||
if [[ -f "$virtual_schleuder_lists_file" ]] ; then
|
||||
|
||||
# - Backup file $virtual_schleuder_lists_file
|
||||
# -
|
||||
cp -a "$virtual_schleuder_lists_file" "${virtual_schleuder_lists_file}.$backup_date"
|
||||
fi
|
||||
|
||||
# - Create new file '$virtual_schleuder_lists_file'
|
||||
# -
|
||||
cat << EOF > $virtual_schleuder_lists_file
|
||||
# Use this as a table for postfix to select addresses that schleuder
|
||||
# thinks belong to it. This is useful when
|
||||
# smtpd_reject_unlisted_recipient = yes (which is the default for
|
||||
# modern Postfix)
|
||||
|
||||
# For example, you might dedicate Postfix's "virtual" domains to
|
||||
# schleuder with the following set of configs in main.cf:
|
||||
#
|
||||
# virtual_domains = lists.example.org
|
||||
# virtual_transport = schleuder
|
||||
# virtual_alias_maps = hash:/etc/postfix/virtual_aliases
|
||||
# virtual_mailbox_maps = sqlite:/etc/postfix/schleuder_sqlite.cf
|
||||
# schleuder_destination_recipient_limit = 1
|
||||
|
||||
# it is not recommended to use this table for more powerful
|
||||
# configuration options (e.g. transport_maps) because it could give
|
||||
# the schleuder user (which can write the given sqlite database) the
|
||||
# power to change settings for for other mail handled by this Postfix
|
||||
# instance.
|
||||
|
||||
dbpath = /var/lib/schleuder/db.sqlite
|
||||
|
||||
query = select 'present' from lists
|
||||
where email = '%s'
|
||||
or email = replace('%s', '-bounce@', '@')
|
||||
or email = replace('%s', '-owner@', '@')
|
||||
or email = replace('%s', '-request@', '@')
|
||||
or email = replace('%s', '-sendkey@', '@')
|
||||
EOF
|
||||
|
||||
# - Add 'sqlite:$virtual_schleuder_lists_file' to virtual_mailbox_maps
|
||||
# -
|
||||
if ! $(grep -q -e "sqlite:$virtual_schleuder_lists_file" "/etc/postfix/main.cf") ; then
|
||||
perl -i -n -p \
|
||||
-e "s#^\s*(virtual_mailbox_maps\s*=.*$)#\1\n \#\# - Schleuder lists\n sqlite:${virtual_schleuder_lists_file}#" \
|
||||
/etc/postfix/main.cf > $log_file 2>&1
|
||||
fi
|
||||
|
||||
# - Delete backuped file '$virtual_schleuder_lists_file' if nothing changed
|
||||
# -
|
||||
if [[ -f "${virtual_schleuder_lists_file}.$backup_date" ]]; then
|
||||
if $(diff "$virtual_schleuder_lists_file" "${virtual_schleuder_lists_file}.$backup_date" > /dev/null 2>&1); then
|
||||
rm "${virtual_schleuder_lists_file}.$backup_date"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# -
|
||||
# - transport_schleuder_file
|
||||
# -
|
||||
|
||||
transport_schleuder_file="/etc/postfix/transport_schleuder"
|
||||
if [[ -f "$transport_schleuder_file" ]] ; then
|
||||
# - Backup file '$transport_schleuder_file'
|
||||
# -
|
||||
cp -a "$transport_schleuder_file" "${transport_schleuder_file}.$backup_date"
|
||||
fi
|
||||
|
||||
# - Create new file '$transport_schleuder_file'
|
||||
# -
|
||||
> $transport_schleuder_file
|
||||
for _domain in $schleuder_domains ; do
|
||||
cat << EOF >> $transport_schleuder_file
|
||||
$_domain schleuder:
|
||||
EOF
|
||||
|
||||
done
|
||||
|
||||
# - Create db-file '${transport_schleuder_file}.db'
|
||||
# -
|
||||
postmap btree:${transport_schleuder_file}
|
||||
|
||||
# - Add 'btree:${transport_schleuder_file}' to parameter transport_maps in /etc/postfix/main.cf
|
||||
# -
|
||||
if ! $(grep -q "btree:${transport_schleuder_file}" "/etc/postfix/main.cf") ; then
|
||||
perl -i -n -p \
|
||||
-e "s#^(transport_maps\s+=.*)#\1\n btree:${transport_schleuder_file}#" \
|
||||
/etc/postfix/main.cf > $log_file 2>&1
|
||||
|
||||
fi
|
||||
|
||||
# - Add 'btree:${transport_schleuder_file}' to parameter transport_maps in /etc/postfix/main.cf
|
||||
# -
|
||||
if ! $(grep -q "btree:${transport_schleuder_file}" "/etc/postfix/main.cf") ; then
|
||||
perl -i -n -p \
|
||||
-e "s#^(transport_maps\s+=.*)#\1\n btree:${transport_schleuder_file}#" \
|
||||
/etc/postfix/main.cf > $log_file 2>&1
|
||||
|
||||
fi
|
||||
|
||||
# - Delete backuped file '$transport_schleuder_file' if nothing changed
|
||||
# -
|
||||
if [[ -f "${transport_schleuder_file}.$backup_date" ]]; then
|
||||
if $(diff "$transport_schleuder_file" "${transport_schleuder_file}.$backup_date" > /dev/null 2>&1); then
|
||||
rm "${transport_schleuder_file}.$backup_date"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# -
|
||||
# - virtual_schleuder_aliases_file
|
||||
# -
|
||||
|
||||
virtual_schleuder_aliases_file="/etc/postfix/virtual_schleuder_aliases"
|
||||
if [[ -f "$virtual_schleuder_aliases_file" ]] ; then
|
||||
# - Backup file '$virtual_schleuder_aliases_file'
|
||||
# -
|
||||
cp -a "$virtual_schleuder_aliases_file" "${virtual_schleuder_aliases_file}.$backup_date"
|
||||
fi
|
||||
|
||||
# - Create new file '$virtual_schleuder_aliases_file'
|
||||
# -
|
||||
cat << EOF > $virtual_schleuder_aliases_file
|
||||
## - For schleuder domain, prevent e-mail addresse
|
||||
## - postmaster@<schleuder-domain>,
|
||||
## - abuse@<schleuder-domain>,
|
||||
## - MAILER-DAEMON@<schleuder-domain>,
|
||||
## - root@<schleuder-domain>
|
||||
## - sending to schleuder list manager
|
||||
## -
|
||||
EOF
|
||||
for _domain in $schleuder_domains ; do
|
||||
cat << EOF >> $virtual_schleuder_aliases_file
|
||||
|
||||
postmaster@$_domain postmaster@interventionistische-linke.org
|
||||
abuse@$_domain postmaster@interventionistische-linke.org
|
||||
MAILER-DAEMON@$_domain root@localhost
|
||||
root@$_domain root@localhost
|
||||
EOF
|
||||
|
||||
done
|
||||
|
||||
# - Create db-file '${virtual_schleuder_aliases_file}.db'
|
||||
# -
|
||||
postmap btree:${virtual_schleuder_aliases_file}
|
||||
|
||||
# - Add 'btree:${virtual_schleuder_aliases_file}' to parameter virtual_alias_maps in /etc/postfix/main.cf
|
||||
# -
|
||||
if ! $(grep -q "btree:${virtual_schleuder_aliases_file}" "/etc/postfix/main.cf") ; then
|
||||
perl -i -n -p \
|
||||
-e "s#^(virtual_alias_maps\s+=.*)#\1\n \#\# - Schleuder\n btree:${virtual_schleuder_aliases_file}#" \
|
||||
/etc/postfix/main.cf > $log_file 2>&1
|
||||
|
||||
fi
|
||||
|
||||
# - Delete backuped file '$virtual_schleuder_aliases_file' if nothing changed
|
||||
# -
|
||||
if [[ -f "${virtual_schleuder_aliases_file}.$backup_date" ]]; then
|
||||
if $(diff "$virtual_schleuder_aliases_file" "${virtual_schleuder_aliases_file}.$backup_date" > /dev/null 2>&1); then
|
||||
rm "${virtual_schleuder_aliases_file}.$backup_date"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# -
|
||||
# - main.cf: new Parameter 'schleuder_destination_recipient_limit'
|
||||
# -
|
||||
|
||||
# - Add and set parameter 'schleuder_destination_recipient_limit = 1'
|
||||
# -
|
||||
if ! $(grep -q -E "^\s*schleuder_destination_recipient_limit" "/etc/postfix/main.cf") ; then
|
||||
perl -i -n -p \
|
||||
-e "s#^\s*(virtual_transport\s*=.*$)#schleuder_destination_recipient_limit = 1\n\n\1#" \
|
||||
/etc/postfix/main.cf > $log_file 2>&1
|
||||
fi
|
||||
|
||||
|
||||
# ---
|
||||
|
||||
if [[ -f "/etc/postfix/main.cf.$backup_date" ]]; then
|
||||
if $(diff "/etc/postfix/main.cf" "/etc/postfix/main.cf.$backup_date" > /dev/null 2>&1); then
|
||||
rm "/etc/postfix/main.cf.$backup_date"
|
||||
fi
|
||||
fi
|
||||
|
||||
systemctl restart postfix
|
||||
|
@ -116,7 +116,7 @@ fi
|
||||
|
||||
|
||||
groupadd -r schleuder
|
||||
useradd -r -M -d /noexistent -s /bin/false -g schleuder schleuder
|
||||
useradd -r -d /var/lib/schleuder -s /bin/false -g schleuder schleuder
|
||||
chown -R schleuder:schleuder /var/lib/schleuder /etc/schleuder
|
||||
|
||||
systemctl stop postfix
|
||||
|
Loading…
Reference in New Issue
Block a user