浏览代码

Wrong list

Bob Mottram 10 年前
父节点
当前提交
962578a864
共有 1 个文件被更改,包括 90 次插入436 次删除
  1. 90
    436
      install-freedombone.sh

+ 90
- 436
install-freedombone.sh 查看文件

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