first, and hopefully last commit
This commit is contained in:
commit
dba715f47f
14 files changed
+508
No files matched your search
Executable
+103
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Input your settings here
|
||||
#
|
||||
tls_cert="/etc/apache2/ssl/yourdomain.com.pem"
|
||||
tls_key="/etc/apache2/ssl/yourdomain.com.key"
|
||||
hostname="mail.yourdomain.com"
|
||||
domain="yourdomain.com"
|
||||
|
||||
|
||||
#
|
||||
# Script
|
||||
#
|
||||
echo "Welcome to bullmail"
|
||||
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "Run this shit as root. Exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
packages="dovecot-core dovecot-imapd postfix rspamd postfix dovecot-lmtpd dovecot-sieve dovecot-managesieved postfix postfix-pcre"
|
||||
|
||||
echo "=== Cleaning up garbage... ==="
|
||||
rm -rf /etc/rspamd/
|
||||
rm -rf /etc/dovecot/
|
||||
apt purge --autoremove $packages -y
|
||||
|
||||
echo "=== Installing packages ==="
|
||||
apt install $packages -y
|
||||
|
||||
echo "=== Configuring rspamd ==="
|
||||
|
||||
echo "Generating DKIM keys..."
|
||||
mkdir -p /var/lib/rspamd/dkim
|
||||
chown _rspamd:_rspamd /var/lib/rspamd/dkim
|
||||
chmod 750 /var/lib/rspamd/dkim
|
||||
|
||||
dkim=$(rspamadm dkim_keygen -d $domain -s mail)
|
||||
private_key=$(echo "$dkim" | awk 'BEGIN {RS="-----END PRIVATE KEY-----"} NR==1 {print $0 RS}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||
dns_record=$(echo "$dkim" | awk 'BEGIN {RS="-----END PRIVATE KEY-----"} NR==2 {print $0}' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
|
||||
|
||||
touch /var/lib/rspamd/dkim/$domain.mail.key
|
||||
echo "$private_key" > "/var/lib/rspamd/dkim/$domain.mail.key"
|
||||
|
||||
rspamd_dkim=$(< "$PWD/dkim_signing.conf")
|
||||
rspamd_dkim="${rspamd_dkim//__domain__/$domain}"
|
||||
echo "$rspamd_dkim" > "/etc/rspamd/local.d/dkim_signing.conf"
|
||||
chown _rspamd:_rspamd /var/lib/rspamd/dkim/$domain.mail.key
|
||||
chmod 644 /var/lib/rspamd/dkim/$domain.mail.key
|
||||
|
||||
cp $PWD/milter_headers.conf /etc/rspamd/local.d/milter_headers.conf
|
||||
cp $PWD/actions.conf /etc/rspamd/local.d/actions.conf
|
||||
touch /var/log/rspamd/rspamd.log
|
||||
|
||||
chown _rspamd:_rspamd -R /etc/rspamd/local.d
|
||||
chown _rspamd:_rspamd /var/log/rspamd/rspamd.log
|
||||
chmod 744 /etc/rspamd/local.d
|
||||
chmod 644 /etc/rspamd/local.d/*
|
||||
chmod 644 /var/log/rspamd/rspamd.log
|
||||
|
||||
echo "Restarting rspamd..."
|
||||
service rspamd restart
|
||||
|
||||
echo "=== Configuring Postfix ==="
|
||||
|
||||
postfix_conf=$(< "$PWD/main.cf")
|
||||
postfix_conf="${postfix_conf//KEY.pem/$tls_cert}"
|
||||
postfix_conf="${postfix_conf//KEY.key/$tls_key}"
|
||||
postfix_conf="${postfix_conf//__domain__/$domain}"
|
||||
postfix_conf="${postfix_conf//__hostname__/$hostname}"
|
||||
echo "$postfix_conf" > "/etc/postfix/main.cf"
|
||||
|
||||
escaped_domain="${hostname//./\\.}"
|
||||
header_checks=$(< "$PWD/header_checks")
|
||||
header_checks="${header_checks//__hostname__/$escaped_domain}"
|
||||
touch /etc/postfix/header_checks
|
||||
echo "$header_checks" > "/etc/postfix/header_checks"
|
||||
|
||||
cp $PWD/master.cf /etc/postfix/master.cf
|
||||
|
||||
echo "Restarting Postfix..."
|
||||
service postfix restart
|
||||
|
||||
echo "=== Configuring Dovecot ==="
|
||||
|
||||
dovecot_conf=$(< "$PWD/dovecot.conf")
|
||||
dovecot_conf="${dovecot_conf//KEY.pem/$tls_cert}"
|
||||
dovecot_conf="${dovecot_conf//KEY.key/$tls_key}"
|
||||
dovecot_conf="${dovecot_conf//__domain__/$domain}"
|
||||
echo "$dovecot_conf" > "/etc/dovecot/dovecot.conf"
|
||||
|
||||
mkdir -p /etc/dovecot/sieve
|
||||
cp $PWD/spam2junk.sieve /etc/dovecot/sieve
|
||||
sievec /etc/dovecot/sieve/spam2junk.sieve
|
||||
chown -R vmail:vmail /etc/dovecot/sieve
|
||||
|
||||
echo "Restarting Dovecot..."
|
||||
service dovecot restart
|
||||
|
||||
echo "Done. Please set this TXT record on your $domain domain."
|
||||
echo $dns_record
|
||||
echo "Bye!"
|
||||
Reference in new issue
Block a user