X-Git-Url: https://git.archive.openwrt.org/?a=blobdiff_plain;f=package%2Fnetwork%2Fservices%2Fhostapd%2Ffiles%2Fhostapd.sh;h=b8ba7bdf05db141094e087b6494ef9871e4c45c3;hb=841882e87b80ec019f2fdd7b69c02c325217309a;hp=aace21ce6711da3407cefe67a7fc306e3aacbe0b;hpb=f12ff74e963af24cabaf72c9d9df418dbe713b07;p=openwrt.git diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh index aace21ce67..b8ba7bdf05 100644 --- a/package/network/services/hostapd/files/hostapd.sh +++ b/package/network/services/hostapd/files/hostapd.sh @@ -93,7 +93,7 @@ hostapd_set_bss_options() { [ -n "$wpa_pair_rekey" ] && append "$var" "wpa_ptk_rekey=$wpa_pair_rekey" "$N" [ -n "$wpa_master_rekey" ] && append "$var" "wpa_gmk_rekey=$wpa_master_rekey" "$N" ;; - *wpa*) + *wpa*|*8021x*) # required fields? formats? # hostapd is particular, maybe a default configuration for failures config_get auth_server "$vif" auth_server @@ -106,9 +106,13 @@ hostapd_set_bss_options() { config_get auth_secret "$vif" auth_secret [ -z "$auth_secret" ] && config_get auth_secret "$vif" key append "$var" "auth_server_shared_secret=$auth_secret" "$N" + # You don't really want to enable this unless you are doing + # some corner case testing or are using OpenWrt as a work around + # for some systematic issues. config_get_bool auth_cache "$vif" auth_cache 0 - [ "$auth_cache" -gt 0 ] || append "$var" "disable_pmksa_caching=1" "$N" - [ "$auth_cache" -gt 0 ] || append "$var" "okc=0" "$N" + config_get rsn_preauth "$vif" rsn_preauth + [ "$auth_cache" -gt 0 ] || [[ "$rsn_preauth" = 1 ]] || append "$var" "disable_pmksa_caching=1" "$N" + [ "$auth_cache" -gt 0 ] || [[ "$rsn_preauth" = 1 ]] || append "$var" "okc=0" "$N" config_get acct_server "$vif" acct_server [ -n "$acct_server" ] && append "$var" "acct_server_addr=$acct_server" "$N" config_get acct_port "$vif" acct_port @@ -126,7 +130,9 @@ hostapd_set_bss_options() { append "$var" "radius_das_client=$dae_client $dae_secret" "$N" } config_get nasid "$vif" nasid + config_get ownip "$vif" ownip append "$var" "nas_identifier=$nasid" "$N" + append "$var" "own_ip_addr=$ownip" "$N" append "$var" "eapol_key_index_workaround=1" "$N" append "$var" "ieee8021x=1" "$N" append "$var" "wpa_key_mgmt=WPA-EAP" "$N" @@ -190,10 +196,13 @@ hostapd_set_bss_options() { config_get device_type "$vif" wps_device_type "6-0050F204-1" config_get device_name "$vif" wps_device_name "OpenWrt AP" config_get manufacturer "$vif" wps_manufacturer "openwrt.org" - config_get wps_pin "$vif" wps_pin "12345670" + config_get wps_pin "$vif" wps_pin + + config_get_bool ext_registrar "$vif" ext_registrar 0 + [ "$ext_registrar" -gt 0 -a -n "$bridge" ] && append "$var" "upnp_iface=$bridge" "$N" append "$var" "eap_server=1" "$N" - append "$var" "ap_pin=$wps_pin" "$N" + [ -n "$wps_pin" ] && append "$var" "ap_pin=$wps_pin" "$N" append "$var" "wps_state=${wps_not_configured:-2}" "$N" append "$var" "ap_setup_locked=0" "$N" append "$var" "device_type=$device_type" "$N" @@ -209,12 +218,25 @@ hostapd_set_bss_options() { if [ "$wpa" -ge "2" ] then - # RSN -> allow preauthentication - config_get_bool rsn_preauth "$vif" rsn_preauth "$auth_cache" + # RSN -> allow preauthentication. You have two + # options, rsn_preauth for production or rsn_preauth_testing + # for validation / testing. if [ -n "$bridge" -a "$rsn_preauth" = 1 ] then append "$var" "rsn_preauth=1" "$N" append "$var" "rsn_preauth_interfaces=$bridge" "$N" + append "$var" "okc=1" "$N" + else + # RSN preauthentication testings hould disable + # Opportunistic Key Caching (okc) as otherwise the PMKSA + # entry for a test could come from the Opportunistic Key Caching + config_get rsn_preauth_testing "$vif" rsn_preauth_testing + if [ -n "$bridge" -a "$rsn_preauth_testing" = 1 ] + then + append "$var" "rsn_preauth=1" "$N" + append "$var" "rsn_preauth_interfaces=$bridge" "$N" + append "$var" "okc=0" "$N" + fi fi # RSN -> allow management frame protection