|
@@ -306,12 +306,18 @@ REMOTE_BACKUPS_LOG=/var/log/remotebackups.log
|
306
|
306
|
# Whether to enable wifi (on the BBB via USB)
|
307
|
307
|
ENABLE_WIFI="no"
|
308
|
308
|
|
|
309
|
+# Whether to enable wifi hotspot (on the BBB via USB)
|
|
310
|
+ENABLE_WIFI_HOTSPOT="no"
|
|
311
|
+
|
309
|
312
|
# ESSID for wifi
|
310
|
313
|
WIFI_ESSID=
|
311
|
314
|
|
312
|
315
|
# Optional wifi password
|
313
|
316
|
WIFI_PASSWORD=
|
314
|
317
|
|
|
318
|
+# wifi interface
|
|
319
|
+WIFI_INTERFACE="wlan0"
|
|
320
|
+
|
315
|
321
|
# message if something fails to install
|
316
|
322
|
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."
|
317
|
323
|
|
|
@@ -363,7 +369,7 @@ function argument_checks {
|
363
|
369
|
DOMAIN_NAME="tor-wifi"
|
364
|
370
|
SYSTEM_TYPE=$VARIANT_TOR_WIFI
|
365
|
371
|
ROUTE_THROUGH_TOR="yes"
|
366
|
|
- ENABLE_WIFI="yes"
|
|
372
|
+ ENABLE_WIFI_HOTSPOT="yes"
|
367
|
373
|
fi
|
368
|
374
|
if [[ $DOMAIN_NAME == "tor" || $DOMAIN_NAME == "tor-dongle" || $DOMAIN_NAME == "tordongle" ]]; then
|
369
|
375
|
DOMAIN_NAME="tor-dongle"
|
|
@@ -394,9 +400,15 @@ function read_configuration {
|
394
|
400
|
if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
|
395
|
401
|
LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
396
|
402
|
fi
|
|
403
|
+ if grep -q "WIFI_INTERFACE" $CONFIGURATION_FILE; then
|
|
404
|
+ WIFI_INTERFACE=$(grep "WIFI_INTERFACE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
405
|
+ fi
|
397
|
406
|
if grep -q "ENABLE_WIFI" $CONFIGURATION_FILE; then
|
398
|
407
|
ENABLE_WIFI=$(grep "ENABLE_WIFI" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
399
|
408
|
fi
|
|
409
|
+ if grep -q "ENABLE_WIFI_HOTSPOT" $CONFIGURATION_FILE; then
|
|
410
|
+ ENABLE_WIFI_HOTSPOT=$(grep "ENABLE_WIFI_HOTSPOT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
411
|
+ fi
|
400
|
412
|
if grep -q "WIFI_PASSWORD" $CONFIGURATION_FILE; then
|
401
|
413
|
WIFI_PASSWORD=$(grep "WIFI_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
402
|
414
|
fi
|
|
@@ -7063,11 +7075,98 @@ function get_wifi_password {
|
7063
|
7075
|
fi
|
7064
|
7076
|
}
|
7065
|
7077
|
|
|
7078
|
+function enable_wifi_hotspot {
|
|
7079
|
+ if grep -Fxq "enable_wifi_hotspot" $COMPLETION_FILE; then
|
|
7080
|
+ return
|
|
7081
|
+ fi
|
|
7082
|
+ if [[ ENABLE_WIFI_HOTSPOT != "yes" ]]; then
|
|
7083
|
+ return
|
|
7084
|
+ fi
|
|
7085
|
+ apt-get -y install hostapd dnsmasq
|
|
7086
|
+
|
|
7087
|
+ get_wifi_essid
|
|
7088
|
+ get_wifi_password
|
|
7089
|
+
|
|
7090
|
+ # Create an ESSID if one doesn't exist
|
|
7091
|
+ if [ ! $WIFI_ESSID ]; then
|
|
7092
|
+ WIFI_ESSID="Freedom"$(openssl rand -base64 4)
|
|
7093
|
+ fi
|
|
7094
|
+ # Add a password
|
|
7095
|
+ if [ ! $WIFI_PASSWORD ]; then
|
|
7096
|
+ WIFI_PASSWORD=$(openssl rand -base64 8)
|
|
7097
|
+ fi
|
|
7098
|
+
|
|
7099
|
+ sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
|
|
7100
|
+
|
|
7101
|
+ echo '### Wireless network name ###' > /etc/hostapd/hostapd.conf
|
|
7102
|
+ echo "interface=$WIFI_INTERFACE" >> /etc/hostapd/hostapd.conf
|
|
7103
|
+ echo '#' >> /etc/hostapd/hostapd.conf
|
|
7104
|
+ echo '### Set your bridge name ###' >> /etc/hostapd/hostapd.conf
|
|
7105
|
+ echo '#bridge=br0' >> /etc/hostapd/hostapd.conf
|
|
7106
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7107
|
+ echo '#driver' >> /etc/hostapd/hostapd.conf
|
|
7108
|
+ echo 'driver=nl80211' >> /etc/hostapd/hostapd.conf
|
|
7109
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7110
|
+ echo 'country_code=GB' >> /etc/hostapd/hostapd.conf
|
|
7111
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7112
|
+ echo "ssid=$WIFI_ESSID" >> /etc/hostapd/hostapd.conf
|
|
7113
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7114
|
+ echo 'channel=3' >> /etc/hostapd/hostapd.conf
|
|
7115
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7116
|
+ echo 'hw_mode=n' >> /etc/hostapd/hostapd.conf
|
|
7117
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7118
|
+ echo '# # Static WPA2 key configuration' >> /etc/hostapd/hostapd.conf
|
|
7119
|
+ echo '# #1=wpa1, 2=wpa2, 3=both' >> /etc/hostapd/hostapd.conf
|
|
7120
|
+ echo 'wpa=2' >> /etc/hostapd/hostapd.conf
|
|
7121
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7122
|
+ echo "wpa_passphrase=$WIFI_PASSWORD" >> /etc/hostapd/hostapd.conf
|
|
7123
|
+ echo '' >> /etc/hostapd/hostapd.conf
|
|
7124
|
+ echo '## Key management algorithms ##' >> /etc/hostapd/hostapd.conf
|
|
7125
|
+ echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
|
|
7126
|
+ echo '#' >> /etc/hostapd/hostapd.conf
|
|
7127
|
+ echo '## Set cipher suites (encryption algorithms) ##' >> /etc/hostapd/hostapd.conf
|
|
7128
|
+ echo '## TKIP = Temporal Key Integrity Protocol' >> /etc/hostapd/hostapd.conf
|
|
7129
|
+ echo '## CCMP = AES in Counter mode with CBC-MAC' >> /etc/hostapd/hostapd.conf
|
|
7130
|
+ echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
|
|
7131
|
+ echo '#rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
|
|
7132
|
+ echo '#' >> /etc/hostapd/hostapd.conf
|
|
7133
|
+ echo '## Shared Key Authentication ##' >> /etc/hostapd/hostapd.conf
|
|
7134
|
+ echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
|
|
7135
|
+ echo '## Accept all MAC address ###' >> /etc/hostapd/hostapd.conf
|
|
7136
|
+ echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
|
|
7137
|
+ echo '#enables/disables broadcasting the ssid' >> /etc/hostapd/hostapd.conf
|
|
7138
|
+ echo 'ignore_broadcast_ssid=0' >> /etc/hostapd/hostapd.conf
|
|
7139
|
+ echo '# Needed for Windows clients' >> /etc/hostapd/hostapd.conf
|
|
7140
|
+ echo 'eapol_key_index_workaround=0' >> /etc/hostapd/hostapd.conf
|
|
7141
|
+
|
|
7142
|
+ service hostapd restart
|
|
7143
|
+
|
|
7144
|
+ sed -i "s/#interface=/interface=$WIFI_INTERFACE/" /etc/dnsmasq.conf
|
|
7145
|
+ sed -i 's/#dhcp-range=192.168.0.50,192.168.0.150,12h/dhcp-range=192.168.1.1,192.168.1.50,12h/g' /etc/dnsmasq.conf
|
|
7146
|
+
|
|
7147
|
+ service dnsmasq restart
|
|
7148
|
+
|
|
7149
|
+ # Add details to the README file
|
|
7150
|
+ if ! grep -q "Wifi Hotspot" /home/$MY_USERNAME/README; then
|
|
7151
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
7152
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
7153
|
+ echo 'Wifi Hotspot' >> /home/$MY_USERNAME/README
|
|
7154
|
+ echo '============' >> /home/$MY_USERNAME/README
|
|
7155
|
+ echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
|
|
7156
|
+ echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
|
|
7157
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
7158
|
+ fi
|
|
7159
|
+
|
|
7160
|
+ service networking restart
|
|
7161
|
+
|
|
7162
|
+ echo 'enable_wifi_hotspot' >> $COMPLETION_FILE
|
|
7163
|
+}
|
|
7164
|
+
|
7066
|
7165
|
function enable_wifi {
|
7067
|
7166
|
if grep -Fxq "enable_wifi" $COMPLETION_FILE; then
|
7068
|
7167
|
return
|
7069
|
7168
|
fi
|
7070
|
|
- if [[ ENABLE_WIFI != "yes" ]]; then
|
|
7169
|
+ if [[ ENABLE_WIFI != "yes" || ENABLE_WIFI_HOTSPOT != "yes" ]]; then
|
7071
|
7170
|
return
|
7072
|
7171
|
fi
|
7073
|
7172
|
sed -i 's/#auto wlan0/auto wlan0/g' /etc/network/interfaces
|
|
@@ -7080,23 +7179,28 @@ function enable_wifi {
|
7080
|
7179
|
# Create an ESSID if one doesn't exist
|
7081
|
7180
|
if [ ! $WIFI_ESSID ]; then
|
7082
|
7181
|
WIFI_ESSID="Freedom"$(openssl rand -base64 4)
|
7083
|
|
- sed -i "s/essid/$WIFI_ESSID/g" /etc/network/interfaces
|
7084
|
7182
|
fi
|
|
7183
|
+ sed -i "s/essid/$WIFI_ESSID/g" /etc/network/interfaces
|
|
7184
|
+
|
7085
|
7185
|
# Add a password
|
7086
|
7186
|
if [ $WIFI_PASSWORD ]; then
|
7087
|
7187
|
sed -i 's/# wpa-psk "password"/ wpa-psk "wifipassword"/g' /etc/network/interfaces
|
7088
|
7188
|
sed -i "s/wifipassword/$WIFI_PASSWORD/g" /etc/network/interfaces
|
7089
|
7189
|
fi
|
7090
|
7190
|
|
|
7191
|
+ service networking restart
|
|
7192
|
+
|
7091
|
7193
|
# Add details to the README file
|
7092
|
|
- if ! grep -q "Wifi settings" /home/$MY_USERNAME/README; then
|
7093
|
|
- echo '' >> /home/$MY_USERNAME/README
|
7094
|
|
- echo '' >> /home/$MY_USERNAME/README
|
7095
|
|
- echo 'Wifi Settings' >> /home/$MY_USERNAME/README
|
7096
|
|
- echo '=============' >> /home/$MY_USERNAME/README
|
7097
|
|
- echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
|
7098
|
|
- echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
|
7099
|
|
- chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
7194
|
+ if [[ ENABLE_WIFI_HOTSPOT != "yes" ]]; then
|
|
7195
|
+ if ! grep -q "Wifi Settings" /home/$MY_USERNAME/README; then
|
|
7196
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
7197
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
7198
|
+ echo 'Wifi Settings' >> /home/$MY_USERNAME/README
|
|
7199
|
+ echo '=============' >> /home/$MY_USERNAME/README
|
|
7200
|
+ echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
|
|
7201
|
+ echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
|
|
7202
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
7203
|
+ fi
|
7100
|
7204
|
fi
|
7101
|
7205
|
|
7102
|
7206
|
echo 'enable_wifi' >> $COMPLETION_FILE
|
|
@@ -7126,6 +7230,7 @@ function install_final {
|
7126
|
7230
|
read_configuration
|
7127
|
7231
|
argument_checks
|
7128
|
7232
|
install_not_on_BBB
|
|
7233
|
+enable_wifi_hotspot
|
7129
|
7234
|
enable_wifi
|
7130
|
7235
|
remove_default_user
|
7131
|
7236
|
configure_firewall
|