|
|
|
|
100
|
VARIANT_SOCIAL="social"
|
100
|
VARIANT_SOCIAL="social"
|
101
|
VARIANT_MEDIA="media"
|
101
|
VARIANT_MEDIA="media"
|
102
|
VARIANT_TOR_DONGLE="tordongle"
|
102
|
VARIANT_TOR_DONGLE="tordongle"
|
103
|
-VARIANT_TOR_WIFI="torwifi"
|
|
|
104
|
|
103
|
|
105
|
# An optional configuration file which overrides some of these variables
|
104
|
# An optional configuration file which overrides some of these variables
|
106
|
CONFIGURATION_FILE="freedombone.cfg"
|
105
|
CONFIGURATION_FILE="freedombone.cfg"
|
|
|
|
|
303
|
# log file where details of remote backups are stored
|
302
|
# log file where details of remote backups are stored
|
304
|
REMOTE_BACKUPS_LOG=/var/log/remotebackups.log
|
303
|
REMOTE_BACKUPS_LOG=/var/log/remotebackups.log
|
305
|
|
304
|
|
306
|
-# Whether to enable wifi (on the BBB via USB)
|
|
|
307
|
-ENABLE_WIFI="no"
|
|
|
308
|
-
|
|
|
309
|
-# Whether to enable wifi hotspot (on the BBB via USB)
|
|
|
310
|
-ENABLE_WIFI_HOTSPOT="no"
|
|
|
311
|
-
|
|
|
312
|
-# ESSID for wifi
|
|
|
313
|
-WIFI_ESSID=
|
|
|
314
|
-
|
|
|
315
|
-# Optional wifi password
|
|
|
316
|
-WIFI_PASSWORD=
|
|
|
317
|
-
|
|
|
318
|
-# Wifi interface
|
|
|
319
|
-WIFI_INTERFACE="wlan0"
|
|
|
320
|
-
|
|
|
321
|
-# Whether to always force there to exist a wifi password
|
|
|
322
|
-WIFI_FORCE_PASSWORD="yes"
|
|
|
323
|
-
|
|
|
324
|
-# Channel number for wifi hotspot
|
|
|
325
|
-WIFI_HOTSPOT_CHANNEL=7
|
|
|
326
|
-
|
|
|
327
|
-# Mode such as "g" or "n"
|
|
|
328
|
-WIFI_HOTSPOT_MODE="g"
|
|
|
329
|
-
|
|
|
330
|
-# Static IP address for wifi hotspot
|
|
|
331
|
-WIFI_STATIC_IP_ADDRESS="192.168.4.1"
|
|
|
332
|
-
|
|
|
333
|
-# Subnet for wifi hotspot
|
|
|
334
|
-WIFI_SUBNET="192.168.4.0"
|
|
|
335
|
-
|
|
|
336
|
-# DHCP range for wifi hotspot
|
|
|
337
|
-WIFI_IP_RANGE_START="192.168.4.10"
|
|
|
338
|
-WIFI_IP_RANGE_END="192.168.4.20"
|
|
|
339
|
-
|
|
|
340
|
-# Broadcast address for wifi hotspot
|
|
|
341
|
-WIFI_BROADCAST_ADDRESS="192.168.4.255"
|
|
|
342
|
-
|
|
|
343
|
-# space separated list of DNS servers for wifi hotspot
|
|
|
344
|
-WIFI_DNS_SERVERS="213.73.91.35 85.214.20.141"
|
|
|
345
|
-
|
|
|
346
|
# message if something fails to install
|
305
|
# message if something fails to install
|
347
|
CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
|
306
|
CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
|
348
|
|
307
|
|
|
|
|
|
386
|
exit 2
|
345
|
exit 2
|
387
|
fi
|
346
|
fi
|
388
|
if [ ! $MY_USERNAME ]; then
|
347
|
if [ ! $MY_USERNAME ]; then
|
389
|
- if [[ $DOMAIN_NAME == "tor-wifi" || $DOMAIN_NAME == "torwifi" || $DOMAIN_NAME == "tor-hotspot" || $DOMAIN_NAME == "torhotspot" || $DOMAIN_NAME == "tor-access-point" || $DOMAIN_NAME == "tor" || $DOMAIN_NAME == "tor-dongle" || $DOMAIN_NAME == "tordongle" ]]; then
|
|
|
390
|
- if [ -d /home/tor ]; then
|
|
|
391
|
- MY_USERNAME="tor"
|
|
|
392
|
- fi
|
|
|
393
|
- if [ -d /home/toruser ]; then
|
|
|
394
|
- MY_USERNAME="toruser"
|
|
|
395
|
- fi
|
|
|
396
|
- if [ ! $MY_USERNAME ]; then
|
|
|
397
|
- show_help
|
|
|
398
|
- exit 3
|
|
|
399
|
- fi
|
|
|
400
|
- else
|
|
|
401
|
- show_help
|
|
|
402
|
- exit 3
|
|
|
403
|
- fi
|
|
|
|
|
348
|
+ show_help
|
|
|
349
|
+ exit 3
|
404
|
fi
|
350
|
fi
|
405
|
if [ ! $FREEDNS_SUBDOMAIN_CODE ]; then
|
351
|
if [ ! $FREEDNS_SUBDOMAIN_CODE ]; then
|
406
|
- if [[ $DOMAIN_NAME == "tor-wifi" || $DOMAIN_NAME == "torwifi" || $DOMAIN_NAME == "tor-hotspot" || $DOMAIN_NAME == "torhotspot" || $DOMAIN_NAME == "tor-access-point" ]]; then
|
|
|
407
|
- DOMAIN_NAME="tor-wifi"
|
|
|
408
|
- SYSTEM_TYPE=$VARIANT_TOR_WIFI
|
|
|
409
|
- ROUTE_THROUGH_TOR="yes"
|
|
|
410
|
- ENABLE_WIFI_HOTSPOT="yes"
|
|
|
411
|
- fi
|
|
|
412
|
- if [[ $DOMAIN_NAME == "tor" || $DOMAIN_NAME == "tor-dongle" || $DOMAIN_NAME == "tordongle" ]]; then
|
|
|
413
|
- DOMAIN_NAME="tor-dongle"
|
|
|
414
|
- SYSTEM_TYPE=$VARIANT_TOR_DONGLE
|
|
|
415
|
- fi
|
|
|
416
|
- if [[ $SYSTEM_TYPE != $VARIANT_TOR_DONGLE && $SYSTEM_TYPE != $VARIANT_TOR_WIFI ]]; then
|
|
|
417
|
- show_help
|
|
|
418
|
- exit 4
|
|
|
419
|
- fi
|
|
|
|
|
352
|
+ show_help
|
|
|
353
|
+ exit 4
|
420
|
fi
|
354
|
fi
|
421
|
if [ $SYSTEM_TYPE ]; then
|
355
|
if [ $SYSTEM_TYPE ]; then
|
422
|
- if [[ $SYSTEM_TYPE != $VARIANT_WRITER && $SYSTEM_TYPE != $VARIANT_CLOUD && $SYSTEM_TYPE != $VARIANT_CHAT && $SYSTEM_TYPE != $VARIANT_MAILBOX && $SYSTEM_TYPE != $VARIANT_NONMAILBOX && $SYSTEM_TYPE != $VARIANT_SOCIAL && $SYSTEM_TYPE != $VARIANT_MEDIA && $SYSTEM_TYPE != $VARIANT_TOR_DONGLE && $SYSTEM_TYPE != $VARIANT_TOR_WIFI ]]; then
|
|
|
|
|
356
|
+ if [[ $SYSTEM_TYPE != $VARIANT_WRITER && $SYSTEM_TYPE != $VARIANT_CLOUD && $SYSTEM_TYPE != $VARIANT_CHAT && $SYSTEM_TYPE != $VARIANT_MAILBOX && $SYSTEM_TYPE != $VARIANT_NONMAILBOX && $SYSTEM_TYPE != $VARIANT_SOCIAL && $SYSTEM_TYPE != $VARIANT_MEDIA && $SYSTEM_TYPE != $VARIANT_TOR_DONGLE ]]; then
|
423
|
echo "'$SYSTEM_TYPE' is an unrecognised Freedombone variant."
|
357
|
echo "'$SYSTEM_TYPE' is an unrecognised Freedombone variant."
|
424
|
exit 30
|
358
|
exit 30
|
425
|
fi
|
359
|
fi
|
|
|
|
|
438
|
if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
|
372
|
if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
|
439
|
LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
373
|
LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
440
|
fi
|
374
|
fi
|
441
|
- if grep -q "WIFI_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
|
|
|
442
|
- WIFI_STATIC_IP_ADDRESS=$(grep "WIFI_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
443
|
- fi
|
|
|
444
|
- if grep -q "WIFI_SUBNET" $CONFIGURATION_FILE; then
|
|
|
445
|
- WIFI_SUBNET=$(grep "WIFI_SUBNET" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
446
|
- fi
|
|
|
447
|
- if grep -q "WIFI_BROADCAST_ADDRESS" $CONFIGURATION_FILE; then
|
|
|
448
|
- WIFI_BROADCAST_ADDRESS=$(grep "WIFI_BROADCAST_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
449
|
- fi
|
|
|
450
|
- if grep -q "WIFI_DNS_SERVERS" $CONFIGURATION_FILE; then
|
|
|
451
|
- WIFI_DNS_SERVERS=$(grep "WIFI_DNS_SERVERS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
452
|
- fi
|
|
|
453
|
- if grep -q "WIFI_IP_RANGE_START" $CONFIGURATION_FILE; then
|
|
|
454
|
- WIFI_IP_RANGE_START=$(grep "WIFI_IP_RANGE_START" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
455
|
- fi
|
|
|
456
|
- if grep -q "WIFI_IP_RANGE_END" $CONFIGURATION_FILE; then
|
|
|
457
|
- WIFI_IP_RANGE_END=$(grep "WIFI_IP_RANGE_END" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
458
|
- fi
|
|
|
459
|
- if grep -q "WIFI_INTERFACE" $CONFIGURATION_FILE; then
|
|
|
460
|
- WIFI_INTERFACE=$(grep "WIFI_INTERFACE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
461
|
- fi
|
|
|
462
|
- if grep -q "WIFI_HOTSPOT_MODE" $CONFIGURATION_FILE; then
|
|
|
463
|
- WIFI_HOTSPOT_MODE=$(grep "WIFI_HOTSPOT_MODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
464
|
- fi
|
|
|
465
|
- if grep -q "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE; then
|
|
|
466
|
- WIFI_HOTSPOT_CHANNEL=$(grep "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
467
|
- fi
|
|
|
468
|
- if grep -q "ENABLE_WIFI" $CONFIGURATION_FILE; then
|
|
|
469
|
- ENABLE_WIFI=$(grep "ENABLE_WIFI" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
470
|
- fi
|
|
|
471
|
- if grep -q "ENABLE_WIFI_HOTSPOT" $CONFIGURATION_FILE; then
|
|
|
472
|
- ENABLE_WIFI_HOTSPOT=$(grep "ENABLE_WIFI_HOTSPOT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
473
|
- fi
|
|
|
474
|
- if grep -q "WIFI_PASSWORD" $CONFIGURATION_FILE; then
|
|
|
475
|
- WIFI_PASSWORD=$(grep "WIFI_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
476
|
- fi
|
|
|
477
|
- if grep -q "WIFI_ESSID" $CONFIGURATION_FILE; then
|
|
|
478
|
- WIFI_ESSID=$(grep "WIFI_ESSID" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
|
479
|
- fi
|
|
|
480
|
if grep -q "BACKUP_CERTIFICATE" $CONFIGURATION_FILE; then
|
375
|
if grep -q "BACKUP_CERTIFICATE" $CONFIGURATION_FILE; then
|
481
|
BACKUP_CERTIFICATE=$(grep "BACKUP_CERTIFICATE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
376
|
BACKUP_CERTIFICATE=$(grep "BACKUP_CERTIFICATE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
482
|
fi
|
377
|
fi
|
|
|
|
|
603
|
echo " address $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/network/interfaces
|
498
|
echo " address $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/network/interfaces
|
604
|
echo ' netmask 255.255.255.0' >> /etc/network/interfaces
|
499
|
echo ' netmask 255.255.255.0' >> /etc/network/interfaces
|
605
|
echo " gateway $ROUTER_IP_ADDRESS" >> /etc/network/interfaces
|
500
|
echo " gateway $ROUTER_IP_ADDRESS" >> /etc/network/interfaces
|
606
|
- echo " dns-nameservers $WIFI_DNS_SERVERS" >> /etc/network/interfaces
|
|
|
|
|
501
|
+ echo ' dns-nameservers 213.73.91.35 85.214.20.141' >> /etc/network/interfaces
|
607
|
echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
|
502
|
echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
|
608
|
echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
|
503
|
echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
|
609
|
echo '' >> /etc/network/interfaces
|
504
|
echo '' >> /etc/network/interfaces
|
|
|
|
|
2882
|
echo " ' -' ' '--' -' ' - - | - --'" >> /etc/motd
|
2777
|
echo " ' -' ' '--' -' ' - - | - --'" >> /etc/motd
|
2883
|
echo " ._.' " >> /etc/motd
|
2778
|
echo " ._.' " >> /etc/motd
|
2884
|
fi
|
2779
|
fi
|
2885
|
- if [[ $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
2886
|
-
|
|
|
2887
|
- echo ' .---. . . . . .-. ' >> /etc/motd
|
|
|
2888
|
- echo ' | \ \ / / o | o ' >> /etc/motd
|
|
|
2889
|
- echo ' | .-. .--. \ \ / . -|- . ' >> /etc/motd
|
|
|
2890
|
- echo ' | ( )| \/ \/ | | | ' >> /etc/motd
|
|
|
2891
|
- echo " ' -' ' ' ' -' - ' -' -" >> /etc/motd
|
|
|
2892
|
- fi
|
|
|
2893
|
|
2780
|
|
2894
|
echo '' >> /etc/motd
|
2781
|
echo '' >> /etc/motd
|
2895
|
echo ' Freedom in the Cloud' >> /etc/motd
|
2782
|
echo ' Freedom in the Cloud' >> /etc/motd
|
|
|
|
|
2903
|
if grep -Fxq "search_for_attached_usb_drive" $COMPLETION_FILE; then
|
2790
|
if grep -Fxq "search_for_attached_usb_drive" $COMPLETION_FILE; then
|
2904
|
return
|
2791
|
return
|
2905
|
fi
|
2792
|
fi
|
2906
|
- if [[ $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
2793
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
2907
|
return
|
2794
|
return
|
2908
|
fi
|
2795
|
fi
|
2909
|
if [ -b $USB_DRIVE ]; then
|
2796
|
if [ -b $USB_DRIVE ]; then
|
|
|
|
|
3248
|
# no hardware random number generator is available
|
3135
|
# no hardware random number generator is available
|
3249
|
# and use the second best option
|
3136
|
# and use the second best option
|
3250
|
apt-get -y --force-yes install haveged
|
3137
|
apt-get -y --force-yes install haveged
|
3251
|
- echo 'random_number_generator' >> $COMPLETION_FILE
|
|
|
3252
|
return
|
3138
|
return
|
3253
|
fi
|
3139
|
fi
|
3254
|
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
|
3140
|
if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
|
3255
|
# it is assumed that docker uses the random number
|
3141
|
# it is assumed that docker uses the random number
|
3256
|
# generator of the host system
|
3142
|
# generator of the host system
|
3257
|
- echo 'random_number_generator' >> $COMPLETION_FILE
|
|
|
3258
|
return
|
3143
|
return
|
3259
|
fi
|
3144
|
fi
|
3260
|
if [[ $USE_HWRNG == "yes" ]]; then
|
3145
|
if [[ $USE_HWRNG == "yes" ]]; then
|
|
|
|
|
3263
|
else
|
3148
|
else
|
3264
|
apt-get -y --force-yes install haveged
|
3149
|
apt-get -y --force-yes install haveged
|
3265
|
fi
|
3150
|
fi
|
3266
|
-
|
|
|
3267
|
echo 'random_number_generator' >> $COMPLETION_FILE
|
3151
|
echo 'random_number_generator' >> $COMPLETION_FILE
|
3268
|
}
|
3152
|
}
|
3269
|
|
3153
|
|
|
|
|
|
3519
|
# docker does its own firewalling
|
3403
|
# docker does its own firewalling
|
3520
|
return
|
3404
|
return
|
3521
|
fi
|
3405
|
fi
|
3522
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
3406
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
3523
|
return
|
3407
|
return
|
3524
|
fi
|
3408
|
fi
|
3525
|
iptables -A INPUT -i eth0 -p udp --dport 1900 -j ACCEPT
|
3409
|
iptables -A INPUT -i eth0 -p udp --dport 1900 -j ACCEPT
|
|
|
|
|
3646
|
}
|
3530
|
}
|
3647
|
|
3531
|
|
3648
|
function configure_firewall_for_email {
|
3532
|
function configure_firewall_for_email {
|
3649
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
3533
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
3650
|
return
|
3534
|
return
|
3651
|
fi
|
3535
|
fi
|
3652
|
if grep -Fxq "configure_firewall_for_email" $COMPLETION_FILE; then
|
3536
|
if grep -Fxq "configure_firewall_for_email" $COMPLETION_FILE; then
|
|
|
|
|
3729
|
}
|
3613
|
}
|
3730
|
|
3614
|
|
3731
|
function configure_email {
|
3615
|
function configure_email {
|
3732
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
3616
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
3733
|
return
|
3617
|
return
|
3734
|
fi
|
3618
|
fi
|
3735
|
if grep -Fxq "configure_email" $COMPLETION_FILE; then
|
3619
|
if grep -Fxq "configure_email" $COMPLETION_FILE; then
|
|
|
|
|
3835
|
}
|
3719
|
}
|
3836
|
|
3720
|
|
3837
|
function create_procmail {
|
3721
|
function create_procmail {
|
3838
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
3722
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
3839
|
return
|
3723
|
return
|
3840
|
fi
|
3724
|
fi
|
3841
|
if grep -Fxq "create_procmail" $COMPLETION_FILE; then
|
3725
|
if grep -Fxq "create_procmail" $COMPLETION_FILE; then
|
|
|
|
|
3852
|
|
3736
|
|
3853
|
function spam_filtering {
|
3737
|
function spam_filtering {
|
3854
|
# NOTE: spamassassin installation currently doesn't work, sa-compile fails with a make error 23/09/2014
|
3738
|
# NOTE: spamassassin installation currently doesn't work, sa-compile fails with a make error 23/09/2014
|
3855
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
3739
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
3856
|
return
|
3740
|
return
|
3857
|
fi
|
3741
|
fi
|
3858
|
if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
|
3742
|
if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
|
|
|
|
|
3947
|
}
|
3831
|
}
|
3948
|
|
3832
|
|
3949
|
function configure_imap {
|
3833
|
function configure_imap {
|
3950
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
3834
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
3951
|
return
|
3835
|
return
|
3952
|
fi
|
3836
|
fi
|
3953
|
if grep -Fxq "configure_imap" $COMPLETION_FILE; then
|
3837
|
if grep -Fxq "configure_imap" $COMPLETION_FILE; then
|
|
|
|
|
4085
|
# encrypts incoming mail using your GPG public key
|
3969
|
# encrypts incoming mail using your GPG public key
|
4086
|
# so even if an attacker gains access to the data at rest they still need
|
3970
|
# so even if an attacker gains access to the data at rest they still need
|
4087
|
# to know your GPG key password to be able to read anything
|
3971
|
# to know your GPG key password to be able to read anything
|
4088
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
3972
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4089
|
return
|
3973
|
return
|
4090
|
fi
|
3974
|
fi
|
4091
|
if grep -Fxq "encrypt_incoming_email" $COMPLETION_FILE; then
|
3975
|
if grep -Fxq "encrypt_incoming_email" $COMPLETION_FILE; then
|
|
|
|
|
4116
|
# encrypts outgoing mail using your GPG public key
|
4000
|
# encrypts outgoing mail using your GPG public key
|
4117
|
# so even if an attacker gains access to the data at rest they still need
|
4001
|
# so even if an attacker gains access to the data at rest they still need
|
4118
|
# to know your GPG key password to be able to read sent mail
|
4002
|
# to know your GPG key password to be able to read sent mail
|
4119
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4003
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4120
|
return
|
4004
|
return
|
4121
|
fi
|
4005
|
fi
|
4122
|
if grep -Fxq "encrypt_outgoing_email" $COMPLETION_FILE; then
|
4006
|
if grep -Fxq "encrypt_outgoing_email" $COMPLETION_FILE; then
|
|
|
|
|
4143
|
}
|
4027
|
}
|
4144
|
|
4028
|
|
4145
|
function encrypt_all_email {
|
4029
|
function encrypt_all_email {
|
4146
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4030
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4147
|
return
|
4031
|
return
|
4148
|
fi
|
4032
|
fi
|
4149
|
if grep -Fxq "encrypt_all_email" $COMPLETION_FILE; then
|
4033
|
if grep -Fxq "encrypt_all_email" $COMPLETION_FILE; then
|
|
|
|
|
4277
|
}
|
4161
|
}
|
4278
|
|
4162
|
|
4279
|
function email_client {
|
4163
|
function email_client {
|
4280
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4164
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4281
|
return
|
4165
|
return
|
4282
|
fi
|
4166
|
fi
|
4283
|
if grep -Fxq "email_client" $COMPLETION_FILE; then
|
4167
|
if grep -Fxq "email_client" $COMPLETION_FILE; then
|
|
|
|
|
4405
|
echo '#!/bin/bash' > /etc/cron.daily/archivemail
|
4289
|
echo '#!/bin/bash' > /etc/cron.daily/archivemail
|
4406
|
echo "MUTTRC=/home/$MY_USERNAME/.muttrc" >> /etc/cron.daily/archivemail
|
4290
|
echo "MUTTRC=/home/$MY_USERNAME/.muttrc" >> /etc/cron.daily/archivemail
|
4407
|
echo "python /usr/bin/cleanup-maildir --archive-folder='archive' --maildir-root='/home/$MY_USERNAME/Maildir' archive ''" >> /etc/cron.daily/archivemail
|
4291
|
echo "python /usr/bin/cleanup-maildir --archive-folder='archive' --maildir-root='/home/$MY_USERNAME/Maildir' archive ''" >> /etc/cron.daily/archivemail
|
4408
|
- echo 'if [ -f $MUTTRC ]; then' >> /usr/bin/addmailinglist
|
|
|
4409
|
- echo ' MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)' >> /usr/bin/addmailinglist
|
|
|
4410
|
- echo ' BACKUP_DIRECTORY=archive.$(date +"%Y")' >> /usr/bin/addmailinglist
|
|
|
4411
|
- echo ' if [[ $MUTT_MAILBOXES != *$BACKUP_DIRECTORY* ]]; then' >> /usr/bin/addmailinglist
|
|
|
4412
|
- echo ' sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$BACKUP_DIRECTORY|g" $MUTTRC' >> /usr/bin/addmailinglist
|
|
|
4413
|
- echo ' chown $MYUSERNAME:$MYUSERNAME $MUTTRC' >> /usr/bin/addmailinglist
|
|
|
4414
|
- echo ' fi' >> /usr/bin/addmailinglist
|
|
|
4415
|
- echo 'fi' >> /usr/bin/addmailinglist
|
|
|
|
|
4292
|
+ echo 'if [ -f $MUTTRC ]; then' >> /etc/cron.daily/archivemail
|
|
|
4293
|
+ echo ' MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)' >> /etc/cron.daily/archivemail
|
|
|
4294
|
+ echo ' BACKUP_DIRECTORY=archive.$(date +"%Y")' >> /etc/cron.daily/archivemail
|
|
|
4295
|
+ echo ' if [[ $MUTT_MAILBOXES != *$BACKUP_DIRECTORY* ]]; then' >> /etc/cron.daily/archivemail
|
|
|
4296
|
+ echo ' sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$BACKUP_DIRECTORY|g" $MUTTRC' >> /etc/cron.daily/archivemail
|
|
|
4297
|
+ echo ' chown $MYUSERNAME:$MYUSERNAME $MUTTRC' >> /etc/cron.daily/archivemail
|
|
|
4298
|
+ echo ' fi' >> /etc/cron.daily/archivemail
|
|
|
4299
|
+ echo 'fi' >> /etc/cron.daily/archivemail
|
4416
|
echo 'exit 0' >> /etc/cron.daily/archivemail
|
4300
|
echo 'exit 0' >> /etc/cron.daily/archivemail
|
4417
|
chmod +x /etc/cron.daily/archivemail
|
4301
|
chmod +x /etc/cron.daily/archivemail
|
4418
|
|
4302
|
|
|
|
|
|
4420
|
}
|
4304
|
}
|
4421
|
|
4305
|
|
4422
|
function folders_for_mailing_lists {
|
4306
|
function folders_for_mailing_lists {
|
4423
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4307
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4424
|
return
|
4308
|
return
|
4425
|
fi
|
4309
|
fi
|
4426
|
if grep -Fxq "folders_for_mailing_lists" $COMPLETION_FILE; then
|
4310
|
if grep -Fxq "folders_for_mailing_lists" $COMPLETION_FILE; then
|
|
|
|
|
4498
|
}
|
4382
|
}
|
4499
|
|
4383
|
|
4500
|
function folders_for_email_addresses {
|
4384
|
function folders_for_email_addresses {
|
4501
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4385
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4502
|
return
|
4386
|
return
|
4503
|
fi
|
4387
|
fi
|
4504
|
if grep -Fxq "folders_for_email_addresses" $COMPLETION_FILE; then
|
4388
|
if grep -Fxq "folders_for_email_addresses" $COMPLETION_FILE; then
|
|
|
|
|
4570
|
}
|
4454
|
}
|
4571
|
|
4455
|
|
4572
|
function create_public_mailing_list {
|
4456
|
function create_public_mailing_list {
|
4573
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4457
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4574
|
return
|
4458
|
return
|
4575
|
fi
|
4459
|
fi
|
4576
|
if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
|
4460
|
if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
|
|
|
|
|
4666
|
}
|
4550
|
}
|
4667
|
|
4551
|
|
4668
|
function create_private_mailing_list {
|
4552
|
function create_private_mailing_list {
|
4669
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4553
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4670
|
return
|
4554
|
return
|
4671
|
fi
|
4555
|
fi
|
4672
|
# This installation doesn't work, results in ruby errors
|
4556
|
# This installation doesn't work, results in ruby errors
|
|
|
|
|
4727
|
}
|
4611
|
}
|
4728
|
|
4612
|
|
4729
|
function import_email {
|
4613
|
function import_email {
|
4730
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4614
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4731
|
return
|
4615
|
return
|
4732
|
fi
|
4616
|
fi
|
4733
|
EMAIL_COMPLETE_MSG=' *** Freedombone mailbox installation is complete ***'
|
4617
|
EMAIL_COMPLETE_MSG=' *** Freedombone mailbox installation is complete ***'
|
|
|
|
|
4778
|
}
|
4662
|
}
|
4779
|
|
4663
|
|
4780
|
function install_web_server {
|
4664
|
function install_web_server {
|
4781
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4665
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
4782
|
return
|
4666
|
return
|
4783
|
fi
|
4667
|
fi
|
4784
|
if grep -Fxq "install_web_server" $COMPLETION_FILE; then
|
4668
|
if grep -Fxq "install_web_server" $COMPLETION_FILE; then
|
|
|
|
|
4911
|
if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
|
4795
|
if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
|
4912
|
return
|
4796
|
return
|
4913
|
fi
|
4797
|
fi
|
4914
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
4915
|
- echo 'install_mariadb was called before the random number generator was initialised'
|
|
|
4916
|
- exit 853
|
|
|
4917
|
- fi
|
|
|
4918
|
-
|
|
|
4919
|
apt-get -y --force-yes install python-software-properties debconf-utils
|
4798
|
apt-get -y --force-yes install python-software-properties debconf-utils
|
4920
|
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
|
4799
|
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
|
4921
|
add-apt-repository 'deb http://mariadb.biz.net.id//repo/10.1/debian sid main'
|
4800
|
add-apt-repository 'deb http://mariadb.biz.net.id//repo/10.1/debian sid main'
|
|
|
|
|
5051
|
}
|
4930
|
}
|
5052
|
|
4931
|
|
5053
|
function install_owncloud_music_app {
|
4932
|
function install_owncloud_music_app {
|
5054
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4933
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
5055
|
return
|
4934
|
return
|
5056
|
fi
|
4935
|
fi
|
5057
|
if grep -Fxq "install_owncloud_music_app" $COMPLETION_FILE; then
|
4936
|
if grep -Fxq "install_owncloud_music_app" $COMPLETION_FILE; then
|
|
|
|
|
5077
|
}
|
4956
|
}
|
5078
|
|
4957
|
|
5079
|
function install_owncloud {
|
4958
|
function install_owncloud {
|
5080
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
4959
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
5081
|
return
|
4960
|
return
|
5082
|
fi
|
4961
|
fi
|
5083
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
5084
|
- echo 'install_owncloud was called before the random number generator was initialised'
|
|
|
5085
|
- exit 853
|
|
|
5086
|
- fi
|
|
|
5087
|
OWNCLOUD_COMPLETION_MSG1=" *** Freedombone $SYSTEM_TYPE is now installed ***"
|
4962
|
OWNCLOUD_COMPLETION_MSG1=" *** Freedombone $SYSTEM_TYPE is now installed ***"
|
5088
|
OWNCLOUD_COMPLETION_MSG2="Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
|
4963
|
OWNCLOUD_COMPLETION_MSG2="Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
|
5089
|
if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
|
4964
|
if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
|
|
|
|
|
5330
|
}
|
5205
|
}
|
5331
|
|
5206
|
|
5332
|
function install_xmpp {
|
5207
|
function install_xmpp {
|
5333
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
5208
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
5334
|
return
|
5209
|
return
|
5335
|
fi
|
5210
|
fi
|
5336
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
5337
|
- echo 'install_xmpp was called before the random number generator was initialised'
|
|
|
5338
|
- exit 853
|
|
|
5339
|
- fi
|
|
|
5340
|
if grep -Fxq "install_xmpp" $COMPLETION_FILE; then
|
5211
|
if grep -Fxq "install_xmpp" $COMPLETION_FILE; then
|
5341
|
return
|
5212
|
return
|
5342
|
fi
|
5213
|
fi
|
|
|
|
|
5432
|
}
|
5303
|
}
|
5433
|
|
5304
|
|
5434
|
function install_irc_server {
|
5305
|
function install_irc_server {
|
5435
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
5306
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
5436
|
return
|
5307
|
return
|
5437
|
fi
|
5308
|
fi
|
5438
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
5439
|
- echo 'install_irc_server was called before the random number generator was initialised'
|
|
|
5440
|
- exit 853
|
|
|
5441
|
- fi
|
|
|
5442
|
if grep -Fxq "install_irc_server" $COMPLETION_FILE; then
|
5309
|
if grep -Fxq "install_irc_server" $COMPLETION_FILE; then
|
5443
|
return
|
5310
|
return
|
5444
|
fi
|
5311
|
fi
|
|
|
|
|
5516
|
}
|
5383
|
}
|
5517
|
|
5384
|
|
5518
|
function install_wiki {
|
5385
|
function install_wiki {
|
5519
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
5386
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
5520
|
return
|
5387
|
return
|
5521
|
fi
|
5388
|
fi
|
5522
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
5523
|
- echo 'install_wiki was called before the random number generator was initialised'
|
|
|
5524
|
- exit 853
|
|
|
5525
|
- fi
|
|
|
5526
|
if grep -Fxq "install_wiki" $COMPLETION_FILE; then
|
5389
|
if grep -Fxq "install_wiki" $COMPLETION_FILE; then
|
5527
|
return
|
5390
|
return
|
5528
|
fi
|
5391
|
fi
|
|
|
|
|
5808
|
}
|
5671
|
}
|
5809
|
|
5672
|
|
5810
|
function install_blog {
|
5673
|
function install_blog {
|
5811
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
5674
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
5812
|
return
|
5675
|
return
|
5813
|
fi
|
5676
|
fi
|
5814
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
5815
|
- echo 'install_blog was called before the random number generator was initialised'
|
|
|
5816
|
- exit 853
|
|
|
5817
|
- fi
|
|
|
5818
|
if grep -Fxq "install_blog" $COMPLETION_FILE; then
|
5677
|
if grep -Fxq "install_blog" $COMPLETION_FILE; then
|
5819
|
return
|
5678
|
return
|
5820
|
fi
|
5679
|
fi
|
|
|
|
|
6060
|
if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
|
5919
|
if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
|
6061
|
return
|
5920
|
return
|
6062
|
fi
|
5921
|
fi
|
6063
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
5922
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
6064
|
return
|
5923
|
return
|
6065
|
fi
|
5924
|
fi
|
6066
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
6067
|
- echo 'install_gnu_social was called before the random number generator was initialised'
|
|
|
6068
|
- exit 853
|
|
|
6069
|
- fi
|
|
|
6070
|
if [ ! $MICROBLOG_DOMAIN_NAME ]; then
|
5925
|
if [ ! $MICROBLOG_DOMAIN_NAME ]; then
|
6071
|
return
|
5926
|
return
|
6072
|
fi
|
5927
|
fi
|
|
|
|
|
6313
|
if grep -Fxq "install_redmatrix" $COMPLETION_FILE; then
|
6168
|
if grep -Fxq "install_redmatrix" $COMPLETION_FILE; then
|
6314
|
return
|
6169
|
return
|
6315
|
fi
|
6170
|
fi
|
6316
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
6171
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
6317
|
return
|
6172
|
return
|
6318
|
fi
|
6173
|
fi
|
6319
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
6320
|
- echo 'install_redmatrix was called before the random number generator was initialised'
|
|
|
6321
|
- exit 853
|
|
|
6322
|
- fi
|
|
|
6323
|
# if this is exclusively a social setup
|
6174
|
# if this is exclusively a social setup
|
6324
|
if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
|
6175
|
if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
|
6325
|
REDMATRIX_DOMAIN_NAME=$DOMAIN_NAME
|
6176
|
REDMATRIX_DOMAIN_NAME=$DOMAIN_NAME
|
|
|
|
|
6633
|
if grep -Fxq "install_dlna_server" $COMPLETION_FILE; then
|
6484
|
if grep -Fxq "install_dlna_server" $COMPLETION_FILE; then
|
6634
|
return
|
6485
|
return
|
6635
|
fi
|
6486
|
fi
|
6636
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
6487
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
6637
|
return
|
6488
|
return
|
6638
|
fi
|
6489
|
fi
|
6639
|
apt-get -y --force-yes install minidlna
|
6490
|
apt-get -y --force-yes install minidlna
|
|
|
|
|
6685
|
if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
|
6536
|
if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
|
6686
|
return
|
6537
|
return
|
6687
|
fi
|
6538
|
fi
|
6688
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
|
|
|
|
|
6539
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
6689
|
return
|
6540
|
return
|
6690
|
fi
|
6541
|
fi
|
6691
|
# if this is exclusively a writer setup
|
6542
|
# if this is exclusively a writer setup
|
|
|
|
|
7024
|
fi
|
6875
|
fi
|
7025
|
apt-get -y --force-yes install tor tor-arm
|
6876
|
apt-get -y --force-yes install tor tor-arm
|
7026
|
|
6877
|
|
7027
|
- # Ensure that redirects are possible
|
|
|
7028
|
- sed -i "s/net.ipv4.conf.all.accept_redirects = 0/net.ipv4.conf.all.accept_redirects = 1/g" /etc/sysctl.conf
|
|
|
7029
|
- sed -i "s/net.ipv4.conf.all.send_redirects = 0/net.ipv4.conf.all.send_redirects = 1/g" /etc/sysctl.conf
|
|
|
7030
|
- sed -i "s/net.ipv4.conf.all.accept_source_route = 0/net.ipv4.conf.all.accept_source_route = 1/g" /etc/sysctl.conf
|
|
|
7031
|
- sed -i "s/net.ipv4.conf.default.rp_filter=1/#net.ipv4.conf.default.rp_filter=1/g" /etc/sysctl.conf
|
|
|
7032
|
- sed -i "s/net.ipv4.conf.all.rp_filter=1/#net.ipv4.conf.all.rp_filter=1/g" /etc/sysctl.conf
|
|
|
7033
|
- sed -i 's/net.ipv4.icmp_echo_ignore_all = 1/net.ipv4.icmp_echo_ignore_all = 0/g' /etc/sysctl.conf
|
|
|
7034
|
- sed -i "s/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g" /etc/sysctl.conf
|
|
|
|
|
6878
|
+ ### set variables
|
|
|
6879
|
+ # Destinations you don't want routed through Tor
|
|
|
6880
|
+ _non_tor="192.168.1.0/24 192.168.0.0/24"
|
7035
|
|
6881
|
|
7036
|
- iptables -F
|
|
|
7037
|
- iptables -t nat -F
|
|
|
7038
|
- iptables -t nat -A PREROUTING -i $WIFI_INTERFACE -p tcp --dport $SSH_PORT -j REDIRECT --to-ports $SSH_PORT
|
|
|
7039
|
- iptables -t nat -A PREROUTING -i $WIFI_INTERFACE -p udp --dport 53 -j REDIRECT --to-ports 53
|
|
|
|
|
6882
|
+ # The user that Tor runs as
|
|
|
6883
|
+ _tor_uid="debian-tor"
|
|
|
6884
|
+
|
|
|
6885
|
+ # Tor's TransPort
|
|
|
6886
|
+ _trans_port="9040"
|
|
|
6887
|
+
|
|
|
6888
|
+ # Your internal interface
|
|
|
6889
|
+ _int_if="eth0"
|
7040
|
|
6890
|
|
7041
|
- # allow clearnet access for hosts in $_non_tor
|
|
|
7042
|
- NON_TOR="192.168.1.0/24 192.168.0.0/24 192.168.2.0/24 192.168.10.0/24 192.168.4.0/24"
|
|
|
7043
|
- for _clearnet in $NON_TOR 127.0.0.0/9 127.128.0.0/10; do
|
|
|
7044
|
- iptables -t nat -A PREROUTING -d $_clearnet -j RETURN
|
|
|
|
|
6891
|
+ ### Set iptables *nat
|
|
|
6892
|
+ iptables -t nat -A OUTPUT -o lo -j RETURN
|
|
|
6893
|
+ iptables -t nat -A OUTPUT -m owner --uid-owner $_tor_uid -j RETURN
|
|
|
6894
|
+ iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53
|
|
|
6895
|
+
|
|
|
6896
|
+ # Allow clearnet access for hosts in $_non_tor
|
|
|
6897
|
+ for _clearnet in $_non_tor; do
|
|
|
6898
|
+ iptables -t nat -A OUTPUT -d $_clearnet -j RETURN
|
|
|
6899
|
+ iptables -t nat -A PREROUTING -i $_int_if -d $_clearnet -j RETURN
|
7045
|
done
|
6900
|
done
|
7046
|
|
6901
|
|
7047
|
- iptables -t nat -A PREROUTING -i $WIFI_INTERFACE -p tcp --syn -j REDIRECT --to-ports 9040
|
|
|
|
|
6902
|
+ # Redirect all other pre-routing and output to Tor
|
|
|
6903
|
+ iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $_trans_port
|
|
|
6904
|
+ iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53
|
|
|
6905
|
+ iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port
|
|
|
6906
|
+
|
|
|
6907
|
+ ### set iptables *filter
|
|
|
6908
|
+ iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
|
|
6909
|
+
|
|
|
6910
|
+ # Allow clearnet access for hosts in $_non_tor
|
|
|
6911
|
+ for _clearnet in $_non_tor 127.0.0.0/8; do
|
|
|
6912
|
+ iptables -A OUTPUT -d $_clearnet -j ACCEPT
|
|
|
6913
|
+ done
|
|
|
6914
|
+
|
|
|
6915
|
+ # Allow only Tor output
|
|
|
6916
|
+ iptables -A OUTPUT -m owner --uid-owner $_tor_uid -j ACCEPT
|
|
|
6917
|
+ iptables -A OUTPUT -j REJECT
|
7048
|
|
6918
|
|
7049
|
save_firewall_settings
|
6919
|
save_firewall_settings
|
7050
|
|
6920
|
|
|
|
|
|
7053
|
/sbin/sysctl -p
|
6923
|
/sbin/sysctl -p
|
7054
|
fi
|
6924
|
fi
|
7055
|
|
6925
|
|
7056
|
- if ! grep -q 'Log notice file /var/log/tor/notices.log' /etc/tor/torrc; then
|
|
|
7057
|
- echo 'Log notice file /var/log/tor/notices.log' >> /etc/tor/torrc
|
|
|
7058
|
- fi
|
|
|
7059
|
- sed -i 's|#Log notice file /var/log/tor/notices.log|Log notice file /var/log/tor/notices.log|g' /etc/tor/torrc
|
|
|
|
|
6926
|
+ echo 'domain localdomain' > /etc/resolv.conf
|
|
|
6927
|
+ echo 'search localdomain' >> /etc/resolv.conf
|
|
|
6928
|
+ echo 'nameserver 127.0.0.1' >> /etc/resolv.conf
|
7060
|
|
6929
|
|
7061
|
if ! grep -q "VirtualAddrNetworkIPv4" /etc/tor/torrc; then
|
6930
|
if ! grep -q "VirtualAddrNetworkIPv4" /etc/tor/torrc; then
|
7062
|
echo 'VirtualAddrNetworkIPv4 10.192.0.0/10' >> /etc/tor/torrc
|
6931
|
echo 'VirtualAddrNetworkIPv4 10.192.0.0/10' >> /etc/tor/torrc
|
7063
|
fi
|
6932
|
fi
|
7064
|
|
6933
|
|
7065
|
- if ! grep -q "AutomapHostsSuffixes .onion,.exit" /etc/tor/torrc; then
|
|
|
7066
|
- echo 'AutomapHostsSuffixes .onion,.exit' >> /etc/tor/torrc
|
|
|
7067
|
- fi
|
|
|
7068
|
-
|
|
|
7069
|
if ! grep -q "AutomapHostsOnResolve" /etc/tor/torrc; then
|
6934
|
if ! grep -q "AutomapHostsOnResolve" /etc/tor/torrc; then
|
7070
|
echo 'AutomapHostsOnResolve 1' >> /etc/tor/torrc
|
6935
|
echo 'AutomapHostsOnResolve 1' >> /etc/tor/torrc
|
7071
|
fi
|
6936
|
fi
|
|
|
|
|
7074
|
echo 'TransPort 9040' >> /etc/tor/torrc
|
6939
|
echo 'TransPort 9040' >> /etc/tor/torrc
|
7075
|
fi
|
6940
|
fi
|
7076
|
|
6941
|
|
7077
|
- if ! grep -q "TransListenAddress localhost" /etc/tor/torrc; then
|
|
|
7078
|
- echo "TransListenAddress localhost" >> /etc/tor/torrc
|
|
|
|
|
6942
|
+ if ! grep -q "TransListenAddress 127.0.0.1" /etc/tor/torrc; then
|
|
|
6943
|
+ echo 'TransListenAddress 127.0.0.1' >> /etc/tor/torrc
|
|
|
6944
|
+ fi
|
|
|
6945
|
+
|
|
|
6946
|
+ if ! grep -q "TransListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" /etc/tor/torrc; then
|
|
|
6947
|
+ echo "TransListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/tor/torrc
|
7079
|
fi
|
6948
|
fi
|
7080
|
|
6949
|
|
7081
|
if ! grep -q "DNSPort" /etc/tor/torrc; then
|
6950
|
if ! grep -q "DNSPort" /etc/tor/torrc; then
|
7082
|
echo 'DNSPort 53' >> /etc/tor/torrc
|
6951
|
echo 'DNSPort 53' >> /etc/tor/torrc
|
7083
|
fi
|
6952
|
fi
|
7084
|
|
6953
|
|
7085
|
- if ! grep -q "DNSListenAddress localhost" /etc/tor/torrc; then
|
|
|
7086
|
- echo "DNSListenAddress localhost" >> /etc/tor/torrc
|
|
|
|
|
6954
|
+ if ! grep -q "DNSListenAddress 127.0.0.1" /etc/tor/torrc; then
|
|
|
6955
|
+ echo 'DNSListenAddress 127.0.0.1' >> /etc/tor/torrc
|
7087
|
fi
|
6956
|
fi
|
7088
|
|
6957
|
|
7089
|
- if ! grep -q "ClientOnly" /etc/tor/torrc; then
|
|
|
7090
|
- echo "ClientOnly" >> /etc/tor/torrc
|
|
|
|
|
6958
|
+ if ! grep -q "DNSListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" /etc/tor/torrc; then
|
|
|
6959
|
+ echo "DNSListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/tor/torrc
|
7091
|
fi
|
6960
|
fi
|
7092
|
|
6961
|
|
7093
|
- sed -i 's/#RunAsDaemon 1/RunAsDaemon 1/g' /etc/tor/torrc
|
|
|
7094
|
-
|
|
|
7095
|
- touch /var/log/tor/notices.log
|
|
|
7096
|
- chown debian-tor /var/log/tor/notices.log
|
|
|
7097
|
- chmod 644 /var/log/tor/notices.log
|
|
|
7098
|
-
|
|
|
7099
|
echo 'route_outgoing_traffic_through_tor' >> $COMPLETION_FILE
|
6962
|
echo 'route_outgoing_traffic_through_tor' >> $COMPLETION_FILE
|
7100
|
-
|
|
|
7101
|
- if [[ $ENABLE_WIFI_HOTSPOT == "yes" ]]; then
|
|
|
7102
|
- if ! grep -q 'check.torproject.org' /home/$MY_USERNAME/README; then
|
|
|
7103
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7104
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7105
|
- echo 'To connect to your own Tor gateway, set your web browser or computer to connect to:' >> /home/$MY_USERNAME/README
|
|
|
7106
|
- echo ' Proxy type: SOCKSv5' >> /home/$MY_USERNAME/README
|
|
|
7107
|
- echo ' Port: 9050' >> /home/$MY_USERNAME/README
|
|
|
7108
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7109
|
- echo ' Transparent proxy port: 9040' >> /home/$MY_USERNAME/README
|
|
|
7110
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7111
|
- echo 'Before doing anything, verify that you are using the Tor network by visiting:' >> /home/$MY_USERNAME/README
|
|
|
7112
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7113
|
- echo ' https://check.torproject.org/' >> /home/$MY_USERNAME/README
|
|
|
7114
|
- fi
|
|
|
7115
|
- echo ''
|
|
|
7116
|
- echo ' *** Freedombone Tor Wifi access point installation is complete. Rebooting... ***'
|
|
|
7117
|
- echo ''
|
|
|
7118
|
- cat /home/$MY_USERNAME/README
|
|
|
7119
|
- reboot
|
|
|
7120
|
- fi
|
|
|
7121
|
}
|
6963
|
}
|
7122
|
|
6964
|
|
7123
|
# A command to create a git repository for a project
|
6965
|
# A command to create a git repository for a project
|
|
|
|
|
7193
|
echo 'backup_github_projects' >> $COMPLETION_FILE
|
7035
|
echo 'backup_github_projects' >> $COMPLETION_FILE
|
7194
|
}
|
7036
|
}
|
7195
|
|
7037
|
|
7196
|
-function get_wifi_essid {
|
|
|
7197
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
|
|
7198
|
- if grep -q "ESSID" /home/$MY_USERNAME/README; then
|
|
|
7199
|
- if [ ! $WIFI_ESSID ]; then
|
|
|
7200
|
- WIFI_ESSID=$(cat /home/$MY_USERNAME/README | grep "ESSID" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
|
|
7201
|
- fi
|
|
|
7202
|
- fi
|
|
|
7203
|
- fi
|
|
|
7204
|
-}
|
|
|
7205
|
-
|
|
|
7206
|
-function get_wifi_password {
|
|
|
7207
|
- if [ -f /home/$MY_USERNAME/README ]; then
|
|
|
7208
|
- if grep -q "Wifi password" /home/$MY_USERNAME/README; then
|
|
|
7209
|
- if [ ! $WIFI_PASSWORD ]; then
|
|
|
7210
|
- WIFI_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Wifi password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
|
|
7211
|
- fi
|
|
|
7212
|
- fi
|
|
|
7213
|
- fi
|
|
|
7214
|
-}
|
|
|
7215
|
-
|
|
|
7216
|
-function enable_wifi_hotspot {
|
|
|
7217
|
- if grep -Fxq "enable_wifi_hotspot" $COMPLETION_FILE; then
|
|
|
7218
|
- return
|
|
|
7219
|
- fi
|
|
|
7220
|
- if [[ $ENABLE_WIFI_HOTSPOT != "yes" ]]; then
|
|
|
7221
|
- return
|
|
|
7222
|
- fi
|
|
|
7223
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
7224
|
- echo 'enable_wifi_hotspot was called before the random number generator was initialised'
|
|
|
7225
|
- exit 853
|
|
|
7226
|
- fi
|
|
|
7227
|
-
|
|
|
7228
|
- get_wifi_essid
|
|
|
7229
|
- get_wifi_password
|
|
|
7230
|
-
|
|
|
7231
|
- # Create an ESSID if one doesn't exist
|
|
|
7232
|
- if [ ! $WIFI_ESSID ]; then
|
|
|
7233
|
- TEMP_WIFI_ESSID=$(openssl rand -base64 8)
|
|
|
7234
|
- WIFI_ESSID="Freedom"${TEMP_WIFI_ESSID:0:3}
|
|
|
7235
|
- fi
|
|
|
7236
|
-
|
|
|
7237
|
- # Add a password
|
|
|
7238
|
- if [[ $WIFI_FORCE_PASSWORD == "yes" ]]; then
|
|
|
7239
|
- if [ ! $WIFI_PASSWORD ]; then
|
|
|
7240
|
- TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
|
|
|
7241
|
- WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
|
|
|
7242
|
- fi
|
|
|
7243
|
- fi
|
|
|
7244
|
-
|
|
|
7245
|
- apt-get -y install hostapd isc-dhcp-server
|
|
|
7246
|
-
|
|
|
7247
|
- if [ ! -f /etc/default/hostapd ]; then
|
|
|
7248
|
- echo 'Unable to find /etc/default/hostapd. hostapd may not have installed correctly'
|
|
|
7249
|
- exit 490
|
|
|
7250
|
- fi
|
|
|
7251
|
-
|
|
|
7252
|
- #mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/
|
|
|
7253
|
-
|
|
|
7254
|
- sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
|
|
|
7255
|
-
|
|
|
7256
|
- echo "interface=$WIFI_INTERFACE" > /etc/hostapd/hostapd.conf
|
|
|
7257
|
- echo "ssid=$WIFI_ESSID" >> /etc/hostapd/hostapd.conf
|
|
|
7258
|
- echo "hw_mode=$WIFI_HOTSPOT_MODE" >> /etc/hostapd/hostapd.conf
|
|
|
7259
|
- echo "channel=${WIFI_HOTSPOT_CHANNEL}" >> /etc/hostapd/hostapd.conf
|
|
|
7260
|
- echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
|
|
|
7261
|
- echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
|
|
|
7262
|
- echo 'ignore_broadcast_ssid=0' >> /etc/hostapd/hostapd.conf
|
|
|
7263
|
- echo 'wpa=2' >> /etc/hostapd/hostapd.conf
|
|
|
7264
|
- echo "wpa_passphrase=$WIFI_PASSWORD" >> /etc/hostapd/hostapd.conf
|
|
|
7265
|
- echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
|
|
|
7266
|
- echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
|
|
|
7267
|
- echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
|
|
|
7268
|
-
|
|
|
7269
|
- if ! grep -q "Wifi hotspot" /etc/network/interfaces; then
|
|
|
7270
|
- echo '' >> /etc/network/interfaces
|
|
|
7271
|
- echo '# Wifi hotspot' >> /etc/network/interfaces
|
|
|
7272
|
- echo "iface $WIFI_INTERFACE inet static" >> /etc/network/interfaces
|
|
|
7273
|
- echo " address $WIFI_STATIC_IP_ADDRESS" >> /etc/network/interfaces
|
|
|
7274
|
- echo ' netmask 255.255.255.0' >> /etc/network/interfaces
|
|
|
7275
|
- fi
|
|
|
7276
|
-
|
|
|
7277
|
- if ! grep -q '#option domain-name "example.org";' /etc/network/interfaces; then
|
|
|
7278
|
- sed -i 's/option domain-name "example.org";/#option domain-name "example.org";/g' /etc/dhcp/dhcpd.conf
|
|
|
7279
|
- fi
|
|
|
7280
|
- if ! grep -q '#option domain-name-servers ns1.example.org, ns2.example.org;' /etc/network/interfaces; then
|
|
|
7281
|
- sed -i 's/option domain-name-servers ns1.example.org, ns2.example.org;/#option domain-name-servers ns1.example.org, ns2.example.org;/g' /etc/dhcp/dhcpd.conf
|
|
|
7282
|
- fi
|
|
|
7283
|
- sed -i 's/#authoritative;/authoritative;/g' /etc/dhcp/dhcpd.conf
|
|
|
7284
|
-
|
|
|
7285
|
- if ! grep -q "subnet $WIFI_SUBNET netmask 255.255.255.0" /etc/dhcp/dhcpd.conf; then
|
|
|
7286
|
- echo "subnet $WIFI_SUBNET netmask 255.255.255.0 {" >> /etc/dhcp/dhcpd.conf
|
|
|
7287
|
- echo " range $WIFI_IP_RANGE_START $WIFI_IP_RANGE_END;" >> /etc/dhcp/dhcpd.conf
|
|
|
7288
|
- echo " option broadcast-address $WIFI_BROADCAST_ADDRESS;" >> /etc/dhcp/dhcpd.conf
|
|
|
7289
|
- echo " option routers $ROUTER_IP_ADDRESS;" >> /etc/dhcp/dhcpd.conf
|
|
|
7290
|
- echo ' default-lease-time 600;' >> /etc/dhcp/dhcpd.conf
|
|
|
7291
|
- echo ' max-lease-time 7200;' >> /etc/dhcp/dhcpd.conf
|
|
|
7292
|
- echo ' option domain-name "local";' >> /etc/dhcp/dhcpd.conf
|
|
|
7293
|
- echo " option domain-name-servers $WIFI_DNS_SERVERS;" >> /etc/dhcp/dhcpd.conf
|
|
|
7294
|
- echo '}' >> /etc/dhcp/dhcpd.conf
|
|
|
7295
|
- fi
|
|
|
7296
|
-
|
|
|
7297
|
- sed -i "s/INTERFACES=.*/INTERFACES='$WIFI_INTERFACE'/g" /etc/default/isc-dhcp-server
|
|
|
7298
|
-
|
|
|
7299
|
- # Add details to the README file
|
|
|
7300
|
- if ! grep -q "Wifi Hotspot" /home/$MY_USERNAME/README; then
|
|
|
7301
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7302
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7303
|
- echo 'Wifi Hotspot' >> /home/$MY_USERNAME/README
|
|
|
7304
|
- echo '============' >> /home/$MY_USERNAME/README
|
|
|
7305
|
- echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
|
|
|
7306
|
- if [ $WIFI_PASSWORD ]; then
|
|
|
7307
|
- echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
|
|
|
7308
|
- else
|
|
|
7309
|
- echo 'No password' >> /home/$MY_USERNAME/README
|
|
|
7310
|
- fi
|
|
|
7311
|
- chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
|
7312
|
- fi
|
|
|
7313
|
-
|
|
|
7314
|
- echo 'enable_wifi_hotspot' >> $COMPLETION_FILE
|
|
|
7315
|
-}
|
|
|
7316
|
-
|
|
|
7317
|
-function enable_wifi {
|
|
|
7318
|
- if grep -Fxq "enable_wifi" $COMPLETION_FILE; then
|
|
|
7319
|
- return
|
|
|
7320
|
- fi
|
|
|
7321
|
- if [[ $ENABLE_WIFI != "yes" ]]; then
|
|
|
7322
|
- return
|
|
|
7323
|
- fi
|
|
|
7324
|
- if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
|
|
|
7325
|
- echo 'enable_wifi was called before the random number generator was initialised'
|
|
|
7326
|
- exit 853
|
|
|
7327
|
- fi
|
|
|
7328
|
-
|
|
|
7329
|
- sed -i 's/#auto wlan0/auto wlan0/g' /etc/network/interfaces
|
|
|
7330
|
- sed -i 's/#iface wlan0 inet dhcp/iface wlan0 inet dhcp/g' /etc/network/interfaces
|
|
|
7331
|
- sed -i 's/# wpa-ssid "essid"/ wpa-ssid "essid"/g' /etc/network/interfaces
|
|
|
7332
|
-
|
|
|
7333
|
- get_wifi_essid
|
|
|
7334
|
- get_wifi_password
|
|
|
7335
|
-
|
|
|
7336
|
- # Create an ESSID if one doesn't exist
|
|
|
7337
|
- if [ ! $WIFI_ESSID ]; then
|
|
|
7338
|
- TEMP_WIFI_ESSID=$(openssl rand -base64 8)
|
|
|
7339
|
- WIFI_ESSID="Freedom"${TEMP_WIFI_ESSID:0:3}
|
|
|
7340
|
- fi
|
|
|
7341
|
- sed -i "s/essid/$WIFI_ESSID/g" /etc/network/interfaces
|
|
|
7342
|
- # Add a password
|
|
|
7343
|
- if [[ $WIFI_FORCE_PASSWORD == "yes" ]]; then
|
|
|
7344
|
- if [ ! $WIFI_PASSWORD ]; then
|
|
|
7345
|
- TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
|
|
|
7346
|
- WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
|
|
|
7347
|
- fi
|
|
|
7348
|
- fi
|
|
|
7349
|
-
|
|
|
7350
|
- # Add a password
|
|
|
7351
|
- if [ $WIFI_PASSWORD ]; then
|
|
|
7352
|
- sed -i 's/# wpa-psk "password"/ wpa-psk "wifipassword"/g' /etc/network/interfaces
|
|
|
7353
|
- sed -i "s/wifipassword/$WIFI_PASSWORD/g" /etc/network/interfaces
|
|
|
7354
|
- fi
|
|
|
7355
|
-
|
|
|
7356
|
- # Add details to the README file
|
|
|
7357
|
- if [[ ENABLE_WIFI != "yes" ]]; then
|
|
|
7358
|
- if ! grep -q "Wifi Settings" /home/$MY_USERNAME/README; then
|
|
|
7359
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7360
|
- echo '' >> /home/$MY_USERNAME/README
|
|
|
7361
|
- echo 'Wifi Settings' >> /home/$MY_USERNAME/README
|
|
|
7362
|
- echo '=============' >> /home/$MY_USERNAME/README
|
|
|
7363
|
- echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
|
|
|
7364
|
- if [ $WIFI_PASSWORD ]; then
|
|
|
7365
|
- echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
|
|
|
7366
|
- else
|
|
|
7367
|
- echo 'No password' >> /home/$MY_USERNAME/README
|
|
|
7368
|
- fi
|
|
|
7369
|
- chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
|
7370
|
- fi
|
|
|
7371
|
- fi
|
|
|
7372
|
-
|
|
|
7373
|
- service networking restart
|
|
|
7374
|
- if [ ! "$?" = "0" ]; then
|
|
|
7375
|
- echo 'Unable to restart networking'
|
|
|
7376
|
- exit 855
|
|
|
7377
|
- fi
|
|
|
7378
|
-
|
|
|
7379
|
- echo 'enable_wifi' >> $COMPLETION_FILE
|
|
|
7380
|
-}
|
|
|
7381
|
-
|
|
|
7382
|
function install_final {
|
7038
|
function install_final {
|
7383
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
7039
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
7384
|
return
|
7040
|
return
|
|
|
|
|
7431
|
regenerate_ssh_keys
|
7087
|
regenerate_ssh_keys
|
7432
|
script_to_make_self_signed_certificates
|
7088
|
script_to_make_self_signed_certificates
|
7433
|
create_upgrade_script
|
7089
|
create_upgrade_script
|
7434
|
-enable_wifi_hotspot
|
|
|
7435
|
-enable_wifi
|
|
|
7436
|
route_outgoing_traffic_through_tor
|
7090
|
route_outgoing_traffic_through_tor
|
7437
|
install_watchdog_script
|
7091
|
install_watchdog_script
|
7438
|
configure_email
|
7092
|
configure_email
|