Hostapd require access to the wpa_psk_file to insert data in the context
of WPS usage.

>From hostapd.conf documentation:
  Note: If wpa_psk_file is set, WPS is used to generate random, per-device PSKs
  that will be appended to the wpa_psk_file. If wpa_psk_file is not set, the
  default PSK (wpa_psk/wpa_passphrase) will be delivered to Enrollees. Use of
  per-device PSKs is recommended as the more secure option (i.e., make sure to
  set wpa_psk_file when using WPS with WPA-PSK).

Since we set the option by default, we involuntary enabled also this WPS
feature, that was broken all this time because we create the
wpa_psk_file as root and hostapd doesn't have access to it to write the
per-device psk.

Giving correct permission makes hostapd correctly write the entry and
permits devices connected with WPS Push-Button to re-authenticate on
next connection.

Signed-off-by: Christian Marangi <ansuels...@gmail.com>
---
 .../network/config/wifi-scripts/files/lib/netifd/hostapd.sh  | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh 
b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh
index 763702e76b..a357418fe1 100644
--- a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh
+++ b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh
@@ -689,7 +689,10 @@ hostapd_set_bss_options() {
                        fi
                        [ -z "$wpa_psk_file" ] && set_default wpa_psk_file 
/var/run/hostapd-$ifname.psk
                        [ -n "$wpa_psk_file" ] && {
-                               [ -e "$wpa_psk_file" ] || touch "$wpa_psk_file"
+                               [ -e "$wpa_psk_file" ] || {
+                                       touch "$wpa_psk_file"
+                                       chown network:network "$wpa_psk_file"
+                               }
                                append bss_conf "wpa_psk_file=$wpa_psk_file" 
"$N"
                        }
                        [ "$eapol_version" -ge "1" -a "$eapol_version" -le "2" 
] && append bss_conf "eapol_version=$eapol_version" "$N"
-- 
2.43.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to