|
@@ -99,6 +99,7 @@ VARIANT_MAILBOX="mailbox"
|
99
|
99
|
VARIANT_NONMAILBOX="nonmailbox"
|
100
|
100
|
VARIANT_SOCIAL="social"
|
101
|
101
|
VARIANT_MEDIA="media"
|
|
102
|
+VARIANT_TOR_DONGLE="tordongle"
|
102
|
103
|
|
103
|
104
|
# An optional configuration file which overrides some of these variables
|
104
|
105
|
CONFIGURATION_FILE="freedombone.cfg"
|
|
@@ -299,7 +300,7 @@ function show_help {
|
299
|
300
|
echo '-----------'
|
300
|
301
|
echo 'This can either be blank if you wish to install the full system,'
|
301
|
302
|
echo "or for more specialised variants you can specify '$VARIANT_MAILBOX', '$VARIANT_CLOUD',"
|
302
|
|
- echo "'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA' or '$VARIANT_WRITER'."
|
|
303
|
+ echo "'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA', '$VARIANT_TOR_DONGLE' or '$VARIANT_WRITER'."
|
303
|
304
|
echo "If you wish to install everything except email then use the '$VARIANT_NONMAILBOX' variaint."
|
304
|
305
|
|
305
|
306
|
}
|
|
@@ -322,7 +323,7 @@ function argument_checks {
|
322
|
323
|
exit 4
|
323
|
324
|
fi
|
324
|
325
|
if [ $SYSTEM_TYPE ]; then
|
325
|
|
- 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 ]]; then
|
|
326
|
+ 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
|
326
|
327
|
echo "'$SYSTEM_TYPE' is an unrecognised Freedombone variant."
|
327
|
328
|
exit 30
|
328
|
329
|
fi
|
|
@@ -1106,6 +1107,15 @@ function change_login_message {
|
1106
|
1107
|
echo " ' ' -' --' - -' -' -'-' - " >> /etc/motd
|
1107
|
1108
|
fi
|
1108
|
1109
|
|
|
1110
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
|
1111
|
+ echo ' .---. .--. . ' >> /etc/motd
|
|
1112
|
+ echo ' | | : | ' >> /etc/motd
|
|
1113
|
+ echo ' | .-. .--. | | .-. .--. .-..| .-. ' >> /etc/motd
|
|
1114
|
+ echo " |( )| | ;( )| |( ||(.-' " >> /etc/motd
|
|
1115
|
+ echo " ' -' ' '--' -' ' - - | - --'" >> /etc/motd
|
|
1116
|
+ echo " ._.' " >> /etc/motd
|
|
1117
|
+ fi
|
|
1118
|
+
|
1109
|
1119
|
echo '' >> /etc/motd
|
1110
|
1120
|
echo ' Freedom in the Cloud' >> /etc/motd
|
1111
|
1121
|
echo '' >> /etc/motd
|
|
@@ -1118,6 +1128,9 @@ function search_for_attached_usb_drive {
|
1118
|
1128
|
if grep -Fxq "search_for_attached_usb_drive" $COMPLETION_FILE; then
|
1119
|
1129
|
return
|
1120
|
1130
|
fi
|
|
1131
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
|
1132
|
+ return
|
|
1133
|
+ fi
|
1121
|
1134
|
if [ -b $USB_DRIVE ]; then
|
1122
|
1135
|
if [ ! -d $USB_MOUNT ]; then
|
1123
|
1136
|
echo 'Mounting USB drive'
|
|
@@ -1728,7 +1741,7 @@ function configure_firewall_for_dlna {
|
1728
|
1741
|
# docker does its own firewalling
|
1729
|
1742
|
return
|
1730
|
1743
|
fi
|
1731
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
|
|
1744
|
+ 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
|
1732
|
1745
|
return
|
1733
|
1746
|
fi
|
1734
|
1747
|
iptables -A INPUT -i eth0 -p udp --dport 1900 -j ACCEPT
|
|
@@ -1855,7 +1868,7 @@ function configure_firewall_for_git {
|
1855
|
1868
|
}
|
1856
|
1869
|
|
1857
|
1870
|
function configure_firewall_for_email {
|
1858
|
|
- 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" ]]; then
|
|
1871
|
+ 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
|
1859
|
1872
|
return
|
1860
|
1873
|
fi
|
1861
|
1874
|
if grep -Fxq "configure_firewall_for_email" $COMPLETION_FILE; then
|
|
@@ -1938,7 +1951,7 @@ function script_to_make_self_signed_certificates {
|
1938
|
1951
|
}
|
1939
|
1952
|
|
1940
|
1953
|
function configure_email {
|
1941
|
|
- 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" ]]; then
|
|
1954
|
+ 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
|
1942
|
1955
|
return
|
1943
|
1956
|
fi
|
1944
|
1957
|
if grep -Fxq "configure_email" $COMPLETION_FILE; then
|
|
@@ -2044,7 +2057,7 @@ function configure_email {
|
2044
|
2057
|
}
|
2045
|
2058
|
|
2046
|
2059
|
function create_procmail {
|
2047
|
|
- 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" ]]; then
|
|
2060
|
+ 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
|
2048
|
2061
|
return
|
2049
|
2062
|
fi
|
2050
|
2063
|
if grep -Fxq "create_procmail" $COMPLETION_FILE; then
|
|
@@ -2061,7 +2074,7 @@ function create_procmail {
|
2061
|
2074
|
|
2062
|
2075
|
function spam_filtering {
|
2063
|
2076
|
# NOTE: spamassassin installation currently doesn't work, sa-compile fails with a make error 23/09/2014
|
2064
|
|
- 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" ]]; then
|
|
2077
|
+ 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
|
2065
|
2078
|
return
|
2066
|
2079
|
fi
|
2067
|
2080
|
if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
|
|
@@ -2156,7 +2169,7 @@ function spam_filtering {
|
2156
|
2169
|
}
|
2157
|
2170
|
|
2158
|
2171
|
function configure_imap {
|
2159
|
|
- 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" ]]; then
|
|
2172
|
+ 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
|
2160
|
2173
|
return
|
2161
|
2174
|
fi
|
2162
|
2175
|
if grep -Fxq "configure_imap" $COMPLETION_FILE; then
|
|
@@ -2294,7 +2307,7 @@ function encrypt_incoming_email {
|
2294
|
2307
|
# encrypts incoming mail using your GPG public key
|
2295
|
2308
|
# so even if an attacker gains access to the data at rest they still need
|
2296
|
2309
|
# to know your GPG key password to be able to read anything
|
2297
|
|
- 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" ]]; then
|
|
2310
|
+ 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
|
2298
|
2311
|
return
|
2299
|
2312
|
fi
|
2300
|
2313
|
if grep -Fxq "encrypt_incoming_email" $COMPLETION_FILE; then
|
|
@@ -2325,7 +2338,7 @@ function encrypt_outgoing_email {
|
2325
|
2338
|
# encrypts outgoing mail using your GPG public key
|
2326
|
2339
|
# so even if an attacker gains access to the data at rest they still need
|
2327
|
2340
|
# to know your GPG key password to be able to read sent mail
|
2328
|
|
- 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" ]]; then
|
|
2341
|
+ 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
|
2329
|
2342
|
return
|
2330
|
2343
|
fi
|
2331
|
2344
|
if grep -Fxq "encrypt_outgoing_email" $COMPLETION_FILE; then
|
|
@@ -2358,7 +2371,7 @@ function encrypt_outgoing_email {
|
2358
|
2371
|
}
|
2359
|
2372
|
|
2360
|
2373
|
function encrypt_all_email {
|
2361
|
|
- 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" ]]; then
|
|
2374
|
+ 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
|
2362
|
2375
|
return
|
2363
|
2376
|
fi
|
2364
|
2377
|
if grep -Fxq "encrypt_all_email" $COMPLETION_FILE; then
|
|
@@ -2492,7 +2505,7 @@ function encrypt_all_email {
|
2492
|
2505
|
}
|
2493
|
2506
|
|
2494
|
2507
|
function email_client {
|
2495
|
|
- 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" ]]; then
|
|
2508
|
+ 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
|
2496
|
2509
|
return
|
2497
|
2510
|
fi
|
2498
|
2511
|
if grep -Fxq "email_client" $COMPLETION_FILE; then
|
|
@@ -2604,7 +2617,7 @@ function email_client {
|
2604
|
2617
|
}
|
2605
|
2618
|
|
2606
|
2619
|
function folders_for_mailing_lists {
|
2607
|
|
- 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" ]]; then
|
|
2620
|
+ 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
|
2608
|
2621
|
return
|
2609
|
2622
|
fi
|
2610
|
2623
|
if grep -Fxq "folders_for_mailing_lists" $COMPLETION_FILE; then
|
|
@@ -2664,7 +2677,7 @@ function folders_for_mailing_lists {
|
2664
|
2677
|
}
|
2665
|
2678
|
|
2666
|
2679
|
function folders_for_email_addresses {
|
2667
|
|
- 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" ]]; then
|
|
2680
|
+ 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
|
2668
|
2681
|
return
|
2669
|
2682
|
fi
|
2670
|
2683
|
if grep -Fxq "folders_for_email_addresses" $COMPLETION_FILE; then
|
|
@@ -2736,7 +2749,7 @@ function dynamic_dns_freedns {
|
2736
|
2749
|
}
|
2737
|
2750
|
|
2738
|
2751
|
function create_public_mailing_list {
|
2739
|
|
- 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" ]]; then
|
|
2752
|
+ 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
|
2740
|
2753
|
return
|
2741
|
2754
|
fi
|
2742
|
2755
|
if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
|
|
@@ -2832,7 +2845,7 @@ function create_public_mailing_list {
|
2832
|
2845
|
}
|
2833
|
2846
|
|
2834
|
2847
|
function create_private_mailing_list {
|
2835
|
|
- 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" ]]; then
|
|
2848
|
+ 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
|
2836
|
2849
|
return
|
2837
|
2850
|
fi
|
2838
|
2851
|
# This installation doesn't work, results in ruby errors
|
|
@@ -2893,7 +2906,7 @@ function create_private_mailing_list {
|
2893
|
2906
|
}
|
2894
|
2907
|
|
2895
|
2908
|
function import_email {
|
2896
|
|
- 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" ]]; then
|
|
2909
|
+ 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
|
2897
|
2910
|
return
|
2898
|
2911
|
fi
|
2899
|
2912
|
EMAIL_COMPLETE_MSG=' *** Freedombone mailbox installation is complete ***'
|
|
@@ -2944,7 +2957,7 @@ function import_email {
|
2944
|
2957
|
}
|
2945
|
2958
|
|
2946
|
2959
|
function install_web_server {
|
2947
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" ]]; then
|
|
2960
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
2948
|
2961
|
return
|
2949
|
2962
|
fi
|
2950
|
2963
|
if grep -Fxq "install_web_server" $COMPLETION_FILE; then
|
|
@@ -3157,7 +3170,7 @@ function repair_databases_script {
|
3157
|
3170
|
}
|
3158
|
3171
|
|
3159
|
3172
|
function install_owncloud_music_app {
|
3160
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
3173
|
+ 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
|
3161
|
3174
|
return
|
3162
|
3175
|
fi
|
3163
|
3176
|
if grep -Fxq "install_owncloud_music_app" $COMPLETION_FILE; then
|
|
@@ -3183,7 +3196,7 @@ function install_owncloud_music_app {
|
3183
|
3196
|
}
|
3184
|
3197
|
|
3185
|
3198
|
function install_owncloud {
|
3186
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
3199
|
+ 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
|
3187
|
3200
|
return
|
3188
|
3201
|
fi
|
3189
|
3202
|
OWNCLOUD_COMPLETION_MSG1=" *** Freedombone $SYSTEM_TYPE is now installed ***"
|
|
@@ -3423,7 +3436,7 @@ quit" > $INSTALL_DIR/batch.sql
|
3423
|
3436
|
}
|
3424
|
3437
|
|
3425
|
3438
|
function install_xmpp {
|
3426
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
3439
|
+ 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
|
3427
|
3440
|
return
|
3428
|
3441
|
fi
|
3429
|
3442
|
if grep -Fxq "install_xmpp" $COMPLETION_FILE; then
|
|
@@ -3519,7 +3532,7 @@ function install_watchdog_script {
|
3519
|
3532
|
}
|
3520
|
3533
|
|
3521
|
3534
|
function install_irc_server {
|
3522
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
3535
|
+ 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
|
3523
|
3536
|
return
|
3524
|
3537
|
fi
|
3525
|
3538
|
if grep -Fxq "install_irc_server" $COMPLETION_FILE; then
|
|
@@ -3599,7 +3612,7 @@ function get_wiki_admin_password {
|
3599
|
3612
|
}
|
3600
|
3613
|
|
3601
|
3614
|
function install_wiki {
|
3602
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
3615
|
+ 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
|
3603
|
3616
|
return
|
3604
|
3617
|
fi
|
3605
|
3618
|
if grep -Fxq "install_wiki" $COMPLETION_FILE; then
|
|
@@ -3879,7 +3892,7 @@ function get_blog_admin_password {
|
3879
|
3892
|
}
|
3880
|
3893
|
|
3881
|
3894
|
function install_blog {
|
3882
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
3895
|
+ 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
|
3883
|
3896
|
return
|
3884
|
3897
|
fi
|
3885
|
3898
|
if grep -Fxq "install_blog" $COMPLETION_FILE; then
|
|
@@ -4119,7 +4132,7 @@ function install_gnu_social {
|
4119
|
4132
|
if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
|
4120
|
4133
|
return
|
4121
|
4134
|
fi
|
4122
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
4135
|
+ 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
|
4123
|
4136
|
return
|
4124
|
4137
|
fi
|
4125
|
4138
|
if [ ! $MICROBLOG_DOMAIN_NAME ]; then
|
|
@@ -4361,7 +4374,7 @@ function install_redmatrix {
|
4361
|
4374
|
if grep -Fxq "install_redmatrix" $COMPLETION_FILE; then
|
4362
|
4375
|
return
|
4363
|
4376
|
fi
|
4364
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
4377
|
+ 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
|
4365
|
4378
|
return
|
4366
|
4379
|
fi
|
4367
|
4380
|
# if this is exclusively a social setup
|
|
@@ -4667,7 +4680,7 @@ function install_dlna_server {
|
4667
|
4680
|
if grep -Fxq "install_dlna_server" $COMPLETION_FILE; then
|
4668
|
4681
|
return
|
4669
|
4682
|
fi
|
4670
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
|
|
4683
|
+ 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
|
4671
|
4684
|
return
|
4672
|
4685
|
fi
|
4673
|
4686
|
apt-get -y --force-yes install minidlna
|
|
@@ -4719,7 +4732,7 @@ function install_mediagoblin {
|
4719
|
4732
|
if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
|
4720
|
4733
|
return
|
4721
|
4734
|
fi
|
4722
|
|
- if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
|
|
4735
|
+ 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
|
4723
|
4736
|
return
|
4724
|
4737
|
fi
|
4725
|
4738
|
# if this is exclusively a writer setup
|
|
@@ -4981,16 +4994,83 @@ function intrusion_detection {
|
4981
|
4994
|
echo 'intrusion_detection' >> $COMPLETION_FILE
|
4982
|
4995
|
}
|
4983
|
4996
|
|
|
4997
|
+# see http://adammelton.com/tor_dongle.php
|
|
4998
|
+# Attach the BeagleBone to a PC via USB and then have an enthernet
|
|
4999
|
+# connection to the internet router
|
|
5000
|
+function create_tor_dongle {
|
|
5001
|
+ if grep -Fxq "create_tor_dongle" $COMPLETION_FILE; then
|
|
5002
|
+ return
|
|
5003
|
+ fi
|
|
5004
|
+ if [[ $SYSTEM_TYPE != "$VARIANT_TOR_DONGLE" ]]; then
|
|
5005
|
+ return
|
|
5006
|
+ fi
|
|
5007
|
+
|
|
5008
|
+ apt-get -y --force-yes install tor tor-arm
|
|
5009
|
+
|
|
5010
|
+ # firewall
|
|
5011
|
+ iptables -A INPUT -i usb0 -p tcp --dport 9050 -j ACCEPT
|
|
5012
|
+ iptables -A INPUT -i usb0 -p tcp --dport 9051 -j ACCEPT
|
|
5013
|
+ save_firewall_settings
|
|
5014
|
+
|
|
5015
|
+ # tor settings
|
|
5016
|
+ sed -i "s/#SocksPort 192.168.0.1:9100/SocksPort 192.168.7.2:9050/g" /etc/tor/torrc
|
|
5017
|
+ sed -i 's/#ControlPort 9051/ControlPort 9051/g' /etc/tor/torrc
|
|
5018
|
+ sed -i 's/#CookieAuthentication 1/CookieAuthentication 1/g' /etc/tor/torrc
|
|
5019
|
+ if ! grep -q "DisableDebuggerAttachment" /etc/tor/torrc; then
|
|
5020
|
+ echo 'DisableDebuggerAttachment 0' >> /etc/tor/torrc
|
|
5021
|
+ fi
|
|
5022
|
+
|
|
5023
|
+ # ensure that USB networking is enabled
|
|
5024
|
+ echo '# The loopback network interface' > /etc/network/interfaces
|
|
5025
|
+ echo 'auto lo' >> /etc/network/interfaces
|
|
5026
|
+ echo 'iface lo inet loopback' >> /etc/network/interfaces
|
|
5027
|
+ echo '' >> /etc/network/interfaces
|
|
5028
|
+ echo '# The primary network interface' >> /etc/network/interfaces
|
|
5029
|
+ echo 'auto eth0' >> /etc/network/interfaces
|
|
5030
|
+ echo 'iface eth0 inet dhcp' >> /etc/network/interfaces
|
|
5031
|
+ echo '' >> /etc/network/interfaces
|
|
5032
|
+ echo '# USB network interface' >> /etc/network/interfaces
|
|
5033
|
+ echo 'iface usb0 inet static' >> /etc/network/interfaces
|
|
5034
|
+ echo ' address 192.168.7.2' >> /etc/network/interfaces
|
|
5035
|
+ echo ' netmask 255.255.255.0' >> /etc/network/interfaces
|
|
5036
|
+ echo ' network 192.168.7.0' >> /etc/network/interfaces
|
|
5037
|
+ echo ' gateway 192.168.7.1' >> /etc/network/interfaces
|
|
5038
|
+
|
|
5039
|
+ if ! grep -q "Tor Dongle" /home/$MY_USERNAME/README; then
|
|
5040
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
5041
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
5042
|
+ echo 'Tor Dongle' >> /home/$MY_USERNAME/README
|
|
5043
|
+ echo '==========' >> /home/$MY_USERNAME/README
|
|
5044
|
+ echo 'Connect your PC to the Beaglebone via the USB cable' >> /home/$MY_USERNAME/README
|
|
5045
|
+ echo 'and the Beaglebone ethernet to your internet router.' >> /home/$MY_USERNAME/README
|
|
5046
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
5047
|
+ echo 'Within your network proxy settings set the SOCKS host' >> /home/$MY_USERNAME/README
|
|
5048
|
+ echo 'to 192.168.7.2 and the port to 9050, with remote' >> /home/$MY_USERNAME/README
|
|
5049
|
+ echo 'DNS enabled. There should be no proxying for localhost' >> /home/$MY_USERNAME/README
|
|
5050
|
+ echo 'and 127.0.0.1' >> /home/$MY_USERNAME/README
|
|
5051
|
+ fi
|
|
5052
|
+
|
|
5053
|
+ echo 'Freedombone Tor Dongle installation is complete'
|
|
5054
|
+ cat /home/$MY_USERNAME/README
|
|
5055
|
+
|
|
5056
|
+ service networking restart
|
|
5057
|
+ service tor restart
|
|
5058
|
+ exit 873
|
|
5059
|
+}
|
|
5060
|
+
|
4984
|
5061
|
# see https://trac.torproject.org/projects/tor/wiki/doc/TransparentProxy
|
4985
|
5062
|
# Local Redirection and Anonymizing Middlebox
|
4986
|
5063
|
function route_outgoing_traffic_through_tor {
|
4987
|
5064
|
if grep -Fxq "route_outgoing_traffic_through_tor" $COMPLETION_FILE; then
|
4988
|
5065
|
return
|
4989
|
5066
|
fi
|
|
5067
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
|
|
5068
|
+ return
|
|
5069
|
+ fi
|
4990
|
5070
|
if [[ $ROUTE_THROUGH_TOR != "yes" ]]; then
|
4991
|
5071
|
return
|
4992
|
5072
|
fi
|
4993
|
|
- apt-get -y --force-yes install tor
|
|
5073
|
+ apt-get -y --force-yes install tor tor-arm
|
4994
|
5074
|
|
4995
|
5075
|
### set variables
|
4996
|
5076
|
# Destinations you don't want routed through Tor
|
|
@@ -5036,8 +5116,8 @@ function route_outgoing_traffic_through_tor {
|
5036
|
5116
|
save_firewall_settings
|
5037
|
5117
|
|
5038
|
5118
|
if ! grep -q "fs.file-max" /etc/sysctl.conf; then
|
5039
|
|
- echo "fs.file-max=100000" >> /etc/sysctl.conf
|
5040
|
|
- /sbin/sysctl -p
|
|
5119
|
+ echo "fs.file-max=100000" >> /etc/sysctl.conf
|
|
5120
|
+ /sbin/sysctl -p
|
5041
|
5121
|
fi
|
5042
|
5122
|
|
5043
|
5123
|
echo 'domain localdomain' > /etc/resolv.conf
|
|
@@ -5165,6 +5245,7 @@ create_backup_script
|
5165
|
5245
|
create_restore_script
|
5166
|
5246
|
backup_to_friends_servers
|
5167
|
5247
|
restore_from_friend
|
|
5248
|
+create_tor_dongle
|
5168
|
5249
|
intrusion_detection
|
5169
|
5250
|
install_final
|
5170
|
5251
|
echo 'Freedombone installation is complete'
|