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
|
# - 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
|
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
|
chown -R schleuder:schleuder /var/lib/schleuder /etc/schleuder
|
||||||
|
|
||||||
systemctl stop postfix
|
systemctl stop postfix
|
||||||
|
Loading…
Reference in New Issue
Block a user