Quellcode durchsuchen

More wifi hotspot changes

Bob Mottram vor 10 Jahren
Ursprung
Commit
f43f2f665a
1 geänderte Dateien mit 36 neuen und 38 gelöschten Zeilen
  1. 36
    38
      install-freedombone.sh

+ 36
- 38
install-freedombone.sh Datei anzeigen

@@ -7161,14 +7161,7 @@ function enable_wifi_hotspot {
7161 7161
       echo "auto $WIFI_INTERFACE" >> /etc/network/interfaces
7162 7162
       echo "iface $WIFI_INTERFACE inet static" >> /etc/network/interfaces
7163 7163
       echo '    address 192.168.4.1' >> /etc/network/interfaces
7164
-      echo '    network 192.168.4.0' >> /etc/network/interfaces
7165 7164
       echo '    netmask 255.255.255.0' >> /etc/network/interfaces
7166
-      echo '    broadcast 192.168.4.255' >> /etc/network/interfaces
7167
-      if [ $WIFI_PASSWORD ]; then
7168
-          echo -n '    wpa-psk  "' >> /etc/network/interfaces
7169
-          echo -n "$WIFI_PASSWORD" >> /etc/network/interfaces
7170
-          echo '"' >> /etc/network/interfaces
7171
-      fi
7172 7165
       service networking restart
7173 7166
   fi
7174 7167
 
@@ -7181,46 +7174,51 @@ function enable_wifi_hotspot {
7181 7174
 
7182 7175
   sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
7183 7176
 
7184
-  echo '### Wireless network name ###' > /etc/hostapd/hostapd.conf
7185
-  echo "interface=$WIFI_INTERFACE" >> /etc/hostapd/hostapd.conf
7186
-  echo '' >> /etc/hostapd/hostapd.conf
7187
-  echo 'country_code=GB' >> /etc/hostapd/hostapd.conf
7188
-  echo '' >> /etc/hostapd/hostapd.conf
7177
+  echo "interface=$WIFI_INTERFACE" > /etc/hostapd/hostapd.conf
7189 7178
   echo "ssid=$WIFI_ESSID" >> /etc/hostapd/hostapd.conf
7190
-  echo '' >> /etc/hostapd/hostapd.conf
7191
-  echo "channel=${WIFI_HOTSPOT_CHANNEL}" >> /etc/hostapd/hostapd.conf
7192
-  echo '' >> /etc/hostapd/hostapd.conf
7193 7179
   echo "hw_mode=$WIFI_HOTSPOT_MODE" >> /etc/hostapd/hostapd.conf
7194
-  echo '' >> /etc/hostapd/hostapd.conf
7195
-  if [ ! $WIFI_PASSWORD ]; then
7196
-      echo 'auth_algs=0' >> /etc/hostapd/hostapd.conf
7197
-      echo 'wpa_key_mgmt=WPA-NONE' >> /etc/hostapd/hostapd.conf
7198
-  else
7199
-      echo '' >> /etc/hostapd/hostapd.conf
7200
-      echo '# # Static WPA2 key configuration' >> /etc/hostapd/hostapd.conf
7201
-      echo '# #1=wpa1, 2=wpa2, 3=both' >> /etc/hostapd/hostapd.conf
7202
-      echo 'wpa=2' >> /etc/hostapd/hostapd.conf
7203
-      echo '' >> /etc/hostapd/hostapd.conf
7204
-      echo "wpa_passphrase=$WIFI_PASSWORD" >> /etc/hostapd/hostapd.conf
7205
-      echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
7206
-      echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
7207
-      echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
7208
-  fi
7209
-  echo '## Accept all MAC address ###' >> /etc/hostapd/hostapd.conf
7180
+  echo "channel=${WIFI_HOTSPOT_CHANNEL}" >> /etc/hostapd/hostapd.conf
7210 7181
   echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
7211
-  echo '#enables/disables broadcasting the ssid' >> /etc/hostapd/hostapd.conf
7182
+  echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
7212 7183
   echo 'ignore_broadcast_ssid=0' >> /etc/hostapd/hostapd.conf
7213
-  echo '# Needed for Windows clients' >> /etc/hostapd/hostapd.conf
7214
-  echo 'eapol_key_index_workaround=0' >> /etc/hostapd/hostapd.conf
7184
+  echo 'wpa=2' >> /etc/hostapd/hostapd.conf
7185
+  echo "wpa_passphrase=$WIFI_PASSWORD" >> /etc/hostapd/hostapd.conf
7186
+  echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
7187
+  echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
7188
+  echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
7215 7189
 
7216 7190
   service hostapd restart
7217 7191
   systemctl daemon-reload
7218 7192
 
7193
+  if ! grep -q "net.ipv4.ip_forward=1" /etc/sysctl.conf; then
7194
+	  echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
7195
+  fi
7196
+  if grep -q "#net.ipv4.ip_forward=" /etc/sysctl.conf; then
7197
+	  sed -i 's/#net.ipv4.ip_forward=.*/net.ipv4.ip_forward=1/g' >> /etc/sysctl.conf
7198
+  fi
7199
+  sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
7200
+
7201
+  iptables -P INPUT ACCEPT
7202
+  iptables -F
7203
+  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
7204
+  iptables -A FORWARD -i eth0 -o $WIFI_INTERFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
7205
+  iptables -A FORWARD -i $WIFI_INTERFACE -o eth0 -j ACCEPT
7206
+  save_firewall_settings
7207
+
7208
+  sed -i 's/option domain-name "example.org";/#option domain-name "example.org";/g' /etc/dhcp/dhcpd.conf
7209
+  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
7210
+  sed -i 's/#authoritative;/authoritative;/g' /etc/dhcp/dhcpd.conf
7211
+
7219 7212
   if ! grep -q "subnet 192.168.4.0 netmask 255.255.255.0" /etc/dhcp/dhcpd.conf; then
7220
-      echo '' >> /etc/dhcp/dhcpd.conf
7221
-      echo 'subnet 192.168.4.0 netmask 255.255.255.0 {' >> /etc/dhcp/dhcpd.conf
7222
-      echo '  range 192.168.4.2 192.168.4.10;' >> /etc/dhcp/dhcpd.conf
7223
-      echo '}' >> /etc/dhcp/dhcpd.conf
7213
+	  echo 'subnet 192.168.4.0 netmask 255.255.255.0 {' >> /etc/dhcp/dhcpd.conf
7214
+	  echo '    range 192.168.4.2 192.168.4.10;' >> /etc/dhcp/dhcpd.conf
7215
+	  echo '    option broadcast-address 192.168.4.255;' >> /etc/dhcp/dhcpd.conf
7216
+	  echo "    option routers $ROUTER_IP_ADDRESS;" >> /etc/dhcp/dhcpd.conf
7217
+	  echo '    default-lease-time 600;' >> /etc/dhcp/dhcpd.conf
7218
+	  echo '    max-lease-time 7200;' >> /etc/dhcp/dhcpd.conf
7219
+	  echo '    option domain-name "local";' >> /etc/dhcp/dhcpd.conf
7220
+	  echo '    option domain-name-servers 8.8.8.8, 8.8.4.4;' >> /etc/dhcp/dhcpd.conf
7221
+	  echo '}' >> /etc/dhcp/dhcpd.conf
7224 7222
   fi
7225 7223
 
7226 7224
   sed -i "s/INTERFACES=.*/INTERFACES='$WIFI_INTERFACE'/g" /etc/default/isc-dhcp-server