|
@@ -69,6 +69,10 @@ KERNEL_VERSION="v3.15.10-bone7"
|
69
|
69
|
USE_HWRNG="yes"
|
70
|
70
|
INSTALLED_WITHIN_DOCKER="no"
|
71
|
71
|
|
|
72
|
+# If you want to run an encrypted mailing list specify its name here.
|
|
73
|
+# There should be no spaces in the name
|
|
74
|
+PRIVATE_MAILING_LIST=
|
|
75
|
+
|
72
|
76
|
GPG_KEYSERVER="hkp://keys.gnupg.net"
|
73
|
77
|
|
74
|
78
|
# optionally you can provide your exported GPG key pair here
|
|
@@ -1011,6 +1015,9 @@ function configure_gpg {
|
1011
|
1015
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/gpg-genkey.conf
|
1012
|
1016
|
su -c "gpg --batch --gen-key /home/$MY_USERNAME/gpg-genkey.conf" - $MY_USERNAME
|
1013
|
1017
|
shred -zu /home/$MY_USERNAME/gpg-genkey.conf
|
|
1018
|
+ MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $DOMAIN_NAME | grep 'pub ' | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}'" - $MY_USERNAME)
|
|
1019
|
+ MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
|
|
1020
|
+ su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
|
1014
|
1021
|
fi
|
1015
|
1022
|
|
1016
|
1023
|
echo 'configure_gpg' >> $COMPLETION_FILE
|
|
@@ -1151,6 +1158,9 @@ function folders_for_mailing_lists {
|
1151
|
1158
|
echo ' mkdir $PROCMAILLOG' >> /usr/bin/mailinglistrule
|
1152
|
1159
|
echo ' chown -R $MYUSERNAME:$MYUSERNAME $PROCMAILLOG' >> /usr/bin/mailinglistrule
|
1153
|
1160
|
echo 'fi' >> /usr/bin/mailinglistrule
|
|
1161
|
+ echo 'MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)'
|
|
1162
|
+ echo 'sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$MAILINGLIST|g" $MUTTRC'
|
|
1163
|
+ echo 'chown $MYUSERNAME:$MYUSERNAME $MUTTRC'
|
1154
|
1164
|
chmod +x /usr/bin/mailinglistrule
|
1155
|
1165
|
echo 'folders_for_mailing_lists' >> $COMPLETION_FILE
|
1156
|
1166
|
}
|
|
@@ -1187,6 +1197,9 @@ function folders_for_email_addresses {
|
1187
|
1197
|
echo ' mkdir $PROCMAILLOG' >> /usr/bin/emailrule
|
1188
|
1198
|
echo ' chown -R $MYUSERNAME:$MYUSERNAME $PROCMAILLOG' >> /usr/bin/emailrule
|
1189
|
1199
|
echo 'fi' >> /usr/bin/emailrule
|
|
1200
|
+ echo 'MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)'
|
|
1201
|
+ echo 'sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$MAILINGLIST|g" $MUTTRC'
|
|
1202
|
+ echo 'chown $MYUSERNAME:$MYUSERNAME $MUTTRC'
|
1190
|
1203
|
chmod +x /usr/bin/emailrule
|
1191
|
1204
|
echo 'folders_for_email_addresses' >> $COMPLETION_FILE
|
1192
|
1205
|
}
|
|
@@ -1210,6 +1223,60 @@ function dynamic_dns_freedns {
|
1210
|
1223
|
echo 'dynamic_dns_freedns' >> $COMPLETION_FILE
|
1211
|
1224
|
}
|
1212
|
1225
|
|
|
1226
|
+function create_private_mailing_list {
|
|
1227
|
+ if grep -Fxq "create_private_mailing_list" $COMPLETION_FILE; then
|
|
1228
|
+ return
|
|
1229
|
+ fi
|
|
1230
|
+ if [ ! $PRIVATE_MAILING_LIST ]; then
|
|
1231
|
+ return
|
|
1232
|
+ fi
|
|
1233
|
+ if [ $PRIVATE_MAILING_LIST == $MY_USERNAME ]; then
|
|
1234
|
+ echo 'The name of the private mailing list should not be the'
|
|
1235
|
+ echo 'same as your username'
|
|
1236
|
+ exit 10
|
|
1237
|
+ fi
|
|
1238
|
+ if [ ! $MY_GPG_PUBLIC_KEY ]; then
|
|
1239
|
+ echo 'To create a private mailing list you need to specify a file'
|
|
1240
|
+ echo 'containing your exported GPG key within MY_GPG_PUBLIC_KEY at'
|
|
1241
|
+ echo 'the top of the script'
|
|
1242
|
+ exit 11
|
|
1243
|
+ fi
|
|
1244
|
+ apt-get -y --force-yes install ruby ruby-dev ruby-gpgme libgpgme11-dev libmagic-dev
|
|
1245
|
+ gem install schleuder
|
|
1246
|
+ schleuder-fix-gem-dependencies
|
|
1247
|
+ schleuder-init-setup
|
|
1248
|
+ sed -i 's/#smtp_port: 25/smtp_port: 465/g' /etc/schleuder/schleuder.conf
|
|
1249
|
+ sed -i 's/#superadminaddr: root@localhost/superadminaddr: root@localhost' /etc/schleuder/schleuder.conf
|
|
1250
|
+ schleuder-newlist $PRIVATE_MAILING_LIST@$DOMAIN_NAME -realname "$PRIVATE_MAILING_LIST" -adminaddress $MY_USERNAME@$DOMAIN_NAME -initmember $MY_USERNAME@$DOMAIN_NAME -initmemberkey $MY_GPG_PUBLIC_KEY -nointeractive
|
|
1251
|
+ emailrule $MY_USERNAME $PRIVATE_MAILING_LIST@$DOMAIN_NAME $PRIVATE_MAILING_LIST
|
|
1252
|
+
|
|
1253
|
+ echo 'schleuder:' > /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1254
|
+ echo ' debug_print = "R: schleuder for $local_part@$domain"' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1255
|
+ echo ' driver = accept' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1256
|
+ echo ' local_part_suffix_optional' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1257
|
+ echo ' local_part_suffix = +* : -bounce : -sendkey' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1258
|
+ echo ' domains = +local_domains' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1259
|
+ echo ' user = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1260
|
+ echo ' group = schleuder' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1261
|
+ echo ' require_files = schleuder:+/var/lib/schleuder/$domain/${local_part}' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1262
|
+ echo ' transport = schleuder_transport' >> /etc/exim4/conf.d/router/550_exim4-config_schleuder
|
|
1263
|
+
|
|
1264
|
+ echo 'schleuder_transport:' > /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
1265
|
+ echo ' debug_print = "T: schleuder_transport for $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
1266
|
+ echo ' driver = pipe' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
1267
|
+ echo ' home_directory = "/var/lib/schleuder/$domain/$local_part"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
1268
|
+ echo ' command = "/usr/bin/schleuder $local_part@$domain"' >> /etc/exim4/conf.d/transport/30_exim4-config_schleuder
|
|
1269
|
+ chown -R schleuder:schleuder /var/lib/schleuder
|
|
1270
|
+ update-exim4.conf.template -r
|
|
1271
|
+ update-exim4.conf
|
|
1272
|
+ service exim4 restart
|
|
1273
|
+ useradd -d /var/schleuderlists -s /bin/false schleuder
|
|
1274
|
+ adduser Debian-exim schleuder
|
|
1275
|
+ usermod -a -G mail schleuder
|
|
1276
|
+ exim -d -bt $PRIVATE_MAILING_LIST@$DOMAIN_NAME
|
|
1277
|
+ echo 'create_private_mailing_list' >> $COMPLETION_FILE
|
|
1278
|
+}
|
|
1279
|
+
|
1213
|
1280
|
function import_email {
|
1214
|
1281
|
EMAIL_COMPLETE_MSG=' *** Freedombone mailbox installation is complete ***'
|
1215
|
1282
|
if grep -Fxq "import_email" $COMPLETION_FILE; then
|
|
@@ -1297,6 +1364,7 @@ configure_firewall_for_email
|
1297
|
1364
|
folders_for_mailing_lists
|
1298
|
1365
|
folders_for_email_addresses
|
1299
|
1366
|
dynamic_dns_freedns
|
|
1367
|
+create_private_mailing_list
|
1300
|
1368
|
import_email
|
1301
|
1369
|
install_final
|
1302
|
1370
|
echo 'Freedombone installation is complete'
|