Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
docs:user-guide:network:wifi:wireless.overview [2018/03/03 16:50] – ↷ Links adapted because of a move operation bobafetthotmaildocs:guide-user:network:wifi:wireless.overview [2023/06/22 22:24] – [Wireless Drivers in OpenWrt] Grammar and capitalization memicinn19
Line 1: Line 1:
 ====== Wireless overview ====== ====== Wireless overview ======
- 
-for outdated information check [[doc:howto:wireless.overview.old|Wireless Overview Archive]] 
- 
 This article deals with 802.11 wireless. OpenWrt supports other wireless devices too, see This article deals with 802.11 wireless. OpenWrt supports other wireless devices too, see
-[[docs:user-guide:hardware:bluetooth:start|Bluetooth]], 802.15.4 ([[https://dev.openwrt.org/changeset/45348|r45348]]) or RTL-SDR ([[http://blog.y3xz.com/blog/2014/04/24/feeding-data-to-flightradar24-dot-com/|RTL-SDR on TL-WR703n]])+[[docs:guide-user:hardware:bluetooth:start|Bluetooth]], 802.15.4 ([[https://dev.openwrt.org/changeset/45348|r45348]]) or RTL-SDR ([[https://yuv.al/blog/feeding-data-to-flightradar24-dot-com/|RTL-SDR on TL-WR703n]])
  
 ===== Introduction ===== ===== Introduction =====
-[[http://wireless.kernel.org/en/users|Linux Wireless]] is //the// source for documentation regarding the entire **Linux Kernel IEEE 802.11 ("wireless") subsystem**. It is a wiki like this one, so feel free to contribute there as well! Everything not OpenWrt specific, belongs there. This page is an exception, as I believe I can provide a better introduction. ;-)+[[https://wireless.wiki.kernel.org/welcome|Linux Wireless]] is //the// source for documentation regarding the entire **Linux Kernel IEEE 802.11 ("wireless") subsystem**. It is a wiki like this one, so feel free to contribute there as well! Everything not OpenWrt specific, belongs there. This page is an exception, as I believe I can provide a better introduction. ;-)
  
   * IEEE 802.**3** is a family of communication protocols comprising [[wp>Physical Layer|Layer 1]] and [[wp>Media Access Control|Layer 2 Sublayer MAC]]    * IEEE 802.**3** is a family of communication protocols comprising [[wp>Physical Layer|Layer 1]] and [[wp>Media Access Control|Layer 2 Sublayer MAC]] 
Line 15: Line 12:
   * The support for IEEE 802.11 in the Linux-Kernel is fragmented: this means there are two frames (WEXT=deprecated, cfg80211 + nl80211=current) and multiple drivers, e.g.   * The support for IEEE 802.11 in the Linux-Kernel is fragmented: this means there are two frames (WEXT=deprecated, cfg80211 + nl80211=current) and multiple drivers, e.g.
     * for some broadcom WNICs, there are also three drivers available: broadcom proprietary drivers (''broadcom-wl''), broadcom mac80211-based drivers (the ''b43'') and the brcmSmac- and brcmFmac drivers     * for some broadcom WNICs, there are also three drivers available: broadcom proprietary drivers (''broadcom-wl''), broadcom mac80211-based drivers (the ''b43'') and the brcmSmac- and brcmFmac drivers
-      * to set up and configure **[[https://wireless.wiki.kernel.org/en/users/documentation/iw|wireless utilities]]** are available, however on OpenWrt we rather use UCI: ''[[docs:user-guide:network:wifi:basic|/etc/config/wireless]]'' and ''[[docs:user-guide:network:basics|/etc/config/network]]''+      * to set up and configure **[[https://wireless.wiki.kernel.org/en/users/documentation/iw|wireless utilities]]** are available, however on OpenWrt we rather use UCI: ''[[docs:guide-user:network:wifi:basic|/etc/config/wireless]]'' and ''[[docs:guide-user:base-system:basic-networking|/etc/config/network]]''
-    * There are two different types of WNICs to distinguish: [[http://www.linuxwireless.org/en/developers/Documentation/Glossary?highlight=%28softmac%29#SoftMAC|SoftMAC]] and [[http://www.linuxwireless.org/en/developers/Documentation/Glossary?highlight=%28FullMAC%29#FullMAC|FullMAC]] devices; also see //[[http://linuxwireless.org/en/developers/Documentation/mac80211|About mac80211]]//.+    * There are two different types of WNICs to distinguish: [[https://wireless.wiki.kernel.org/en/developers/documentation/glossary#:~:text=(Access%20Point)-,SoftMAC,-SoftMAC%20is%20a|SoftMAC]] and [[https://wireless.wiki.kernel.org/en/developers/documentation/glossary#:~:text=or%20terminal%20emulator.-,FullMAC,-FullMAC%20is%20a|FullMAC]] devices; also see //[[https://wireless.wiki.kernel.org/en/developers/documentation/mac80211|About mac80211]]//.
   * Many drivers might require firmware blobs. Most firmware code is closed source. (Exception carl9170, [[https://wireless.wiki.kernel.org/en/developers/gsoc/2012/ath9k_htc_open_firmware|ath9k_htc]])   * Many drivers might require firmware blobs. Most firmware code is closed source. (Exception carl9170, [[https://wireless.wiki.kernel.org/en/developers/gsoc/2012/ath9k_htc_open_firmware|ath9k_htc]])
   * Atheros ath9k does not require firmware.   * Atheros ath9k does not require firmware.
Line 39: Line 36:
  
 ==== Regulation in law ==== ==== Regulation in law ====
-Available FrequenciesBands and Channels are subject to regulation in each state. +Available frequenciesbands and channels are subject to regulation in each state. 
-Please see: http://git.kernel.org/cgit/linux/kernel/git/wireless/wireless-regdb.git/tree/db.txt+Please see: https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/tree/db.txt
  
  
 ===== Wireless Drivers in OpenWrt ===== ===== Wireless Drivers in OpenWrt =====
-Wireless drivers are pulled on a more or less regularly basis from [[http://git.kernel.org/cgit/linux/kernel/git/wireless/wireless-testing.git/|wireless-testing]] and the OpenWrt-patches which are not mainlined yet are adjusted, see e.g. [[https://dev.openwrt.org/changeset/36939/trunk|r36939]]. +Wireless drivers are pulled on a more or less regular basis from [[http://git.kernel.org/cgit/linux/kernel/git/wireless/wireless-testing.git/|wireless-testing]] and the OpenWrt patches which are not mainlined yet are adjusted, see e.g. [[https://dev.openwrt.org/changeset/36939/trunk|r36939]]. 
-OpenWrt does not use Kernel drivers. The package is called mac80211.+OpenWrt does not use kernel drivers. The package is called mac80211.
   * [[https://dev.openwrt.org/log/trunk/package/kernel/mac80211|history of commits to OpenWrt trunk regarding mac80211]]   * [[https://dev.openwrt.org/log/trunk/package/kernel/mac80211|history of commits to OpenWrt trunk regarding mac80211]]
   * [[https://dev.openwrt.org/search?ticket=on&q=mac80211|tickets on mac80211]], better is a custom query in [[wp>Trac]]: e.g. [[https://dev.openwrt.org/query?status=accepted&status=assigned&status=new&status=reopened&description=~mac80211&max=20&order=priority|custom query]]   * [[https://dev.openwrt.org/search?ticket=on&q=mac80211|tickets on mac80211]], better is a custom query in [[wp>Trac]]: e.g. [[https://dev.openwrt.org/query?status=accepted&status=assigned&status=new&status=reopened&description=~mac80211&max=20&order=priority|custom query]]
  
-Similar work (brand new drivers for older Kernel) is done by the [[https://backports.wiki.kernel.org/index.php/Main_Page|backports]] project [[http://marc.info/?l=linux-backports&m=136490878702448|April 2013 announcement]], previously called compat-wireless or compat-driver. OpenWrt does not use this, despite referencing it by name.+Similar work (brand new drivers for older kernel) is done by the [[https://backports.wiki.kernel.org/index.php/Main_Page|backports]] project [[http://marc.info/?l=linux-backports&m=136490878702448|April 2013 announcement]], previously called compat-wireless or compat-driver. OpenWrt does not use this, despite referencing it by name.
  
 ===== Wireless Utilities in OpenWrt ===== ===== Wireless Utilities in OpenWrt =====
-  * [[docs:user-guide:network:wifi:wireless.utilities|Wireless Utilities]]+  * [[docs:guide-user:network:wifi:wireless-tool:wireless.utilities|Wireless Utilities]]
  
  
 ===== Wireless Tools and Applications available in the OpenWrt repository ===== ===== Wireless Tools and Applications available in the OpenWrt repository =====
-  * [[docs:user-guide:network:wifi:wireless.tool.kismet]] – An IEEE 802.11 network detector, sniffer and intrusion detection system. +  * [[docs:guide-user:network:wifi:wireless-tool:kismet]] – An IEEE 802.11 network detector, sniffer and intrusion detection system. 
-  * [[docs:user-guide:network:wifi:wireless.tool.aircrack-ng]] – Aircrack-ng is the next generation of aircrack with new features +  * [[docs:guide-user:network:wifi:wireless-tool:aircrack-ng]] – Aircrack-ng is the next generation of aircrack with new features 
-  * [[docs:user-guide:network:wifi:wireless.tool.horst]] – A scanning and analysis tool for IEEE 802.11 networks and especially IBSS (ad-hoc) mode and mesh networks (OLSR).+  * [[docs:guide-user:network:wifi:wireless-tool:horst]] – A scanning and analysis tool for IEEE 802.11 networks and especially IBSS (ad-hoc) mode and mesh networks (OLSR).
  
  
 ==== Captive portal software available in the OpenWrt repository ==== ==== Captive portal software available in the OpenWrt repository ====
  
-| ''[[docs:user-guide:services:wireless.hotspot.nodogsplash|nodogsplash]]'' | Layer 3 |  https://github.com/nodogsplash/nodogsplash |+| ''[[docs:guide-user:services:captive-portal:wireless.hotspot.nodogsplash|nodogsplash]]'' | Layer 3 |  https://github.com/nodogsplash/nodogsplash |
 | ::: | NoDogSplash offers a simple way to open a free hotspot providing restricted access to an internet connection.\\ It is another alternative from NoCat which aims to offer captive portal solutions local to the router/gateway and a simplistic setup, user bandwidth control and basic auth/splash page. Nodogsplash is small, well tested, tailored for OpenWrt by its author and can be set up with only one or two config file changes, in contrast Chilli is more complete but complex to set up. || | ::: | NoDogSplash offers a simple way to open a free hotspot providing restricted access to an internet connection.\\ It is another alternative from NoCat which aims to offer captive portal solutions local to the router/gateway and a simplistic setup, user bandwidth control and basic auth/splash page. Nodogsplash is small, well tested, tailored for OpenWrt by its author and can be set up with only one or two config file changes, in contrast Chilli is more complete but complex to set up. ||
-| ''[[docs:user-guide:services:wireless.hotspot.coova-chilli|coova-chilli]]'' | Layer 2 / Layer 3|  http://www.coova.org/ |+| ''[[docs:guide-user:services:captive-portal:wireless.hotspot.coova-chilli|coova-chilli]]'' | Layer 2 / Layer 3|  http://www.coova.org/ |
 | ::: | CoovaChilli is an open source access controller for wireless LAN access points and is based on ChilliSpot. It is used for authenticating users of a wireless (or wired) LAN. It supports web based login (UAM) which is today's standard for public HotSpots and it supports Wireless Protected Access (WPA) which is the standard of the future. Authentication, authorization and accounting (AAA) is handled by your favorite RADIUS server.\\ Built on top of Chillispot with several improvements and additions. Includes [[wp>WISPr]] support, and much more. Main captive portal solution used in CoovaAP. || | ::: | CoovaChilli is an open source access controller for wireless LAN access points and is based on ChilliSpot. It is used for authenticating users of a wireless (or wired) LAN. It supports web based login (UAM) which is today's standard for public HotSpots and it supports Wireless Protected Access (WPA) which is the standard of the future. Authentication, authorization and accounting (AAA) is handled by your favorite RADIUS server.\\ Built on top of Chillispot with several improvements and additions. Includes [[wp>WISPr]] support, and much more. Main captive portal solution used in CoovaAP. ||
  
Line 126: Line 123:
 | kmod-ath          |   10.059 | This module contains some common parts needed by Atheros Wireless drivers.  | | kmod-ath          |   10.059 | This module contains some common parts needed by Atheros Wireless drivers.  |
 | kmod-b43          |  210.860 | Kernel module for Broadcom 43xx wireless support (mac80211 stack) | | kmod-b43          |  210.860 | Kernel module for Broadcom 43xx wireless support (mac80211 stack) |
 +| kmod-brcm-wl      | 1847.448 | Proprietary kernel module for Broadcom SSB/B43xx, it replaces kmod-b43. It requires also the packages nas and wlc |
 +| kmod-brcmsmac      550.416 | Kernel module for Broadcom BCMA/IEEE802.11n PCIe Wireless cards |
 | kmod-mac80211      139.372 | Generic IEEE 802.11 Networking Stack (mac80211)              | | kmod-mac80211      139.372 | Generic IEEE 802.11 Networking Stack (mac80211)              |
 | kmod-cfg80211       93.696 | cfg80211 is the Linux wireless LAN (802.11) configuration API.  | | kmod-cfg80211       93.696 | cfg80211 is the Linux wireless LAN (802.11) configuration API.  |
 | iw                |   32.100 | cfg80211 interface configuration utility  | | iw                |   32.100 | cfg80211 interface configuration utility  |
 | wireless-tools    |   23.153 | Contains ''[[man>iwconfig]]'', ''[[man>iwlist]]'' and ''[[man>iwpriv]]''; tools for configuring wireless adapters implementing the WExt.  | | wireless-tools    |   23.153 | Contains ''[[man>iwconfig]]'', ''[[man>iwlist]]'' and ''[[man>iwpriv]]''; tools for configuring wireless adapters implementing the WExt.  |
-| crda              |    9.627 | The [[http://www.linuxwireless.org/en/developers/Regulatory/CRDA|Central Regulatory Domain Agent]] serves one purpose: tell Linux kernel what to enforce. In essence it is a udev helper for communication between the kernel and userspace. You only need to run this manually for debugging purposes. For manual changing of regulatory domains use iw (''iw reg set'') or wpa-supplicant (feature yet to be added).  |+| crda              |    9.627 | The [[https://wireless.wiki.kernel.org/en/developers/regulatory/crda|Central Regulatory Domain Agent]] serves one purpose: tell Linux kernel what to enforce. In essence it is a udev helper for communication between the kernel and userspace. You only need to run this manually for debugging purposes. For manual changing of regulatory domains use iw (''iw reg set'') or wpa-supplicant (feature yet to be added).  |
 | libnl-tiny        |   13.529 | This package contains a stripped down version of libnl  | | libnl-tiny        |   13.529 | This package contains a stripped down version of libnl  |
  
  
-| {{:meta:icons:tango:48px-outdated.svg.png?nolink}}  | Due to [[https://dev.openwrt.org/changeset/31954/|r31954]] tweaking the ''regulatory.bin'' to enbale channel 13 and 14 is no longer an option.  | +| {{:meta:icons:tango:48px-outdated.svg.png?nolink}}  | Due to [[https://dev.openwrt.org/changeset/31954/|r31954]] tweaking the ''regulatory.bin'' to enable channel 13 and 14 is no longer an option.  |
- +
-===== Wireless security ===== +
- +
-  * <color #af0000>**DO NOT, //under any circumstances//, utilize WPS (WiFi Protected Setup), or WEP/WPA encryption**</color> +
-    * <color #af0000>//They're not even remotely secure//</color> +
- +
-=== Encryption === +
- +
-  * **Basic** +
-    * It is //recommended// to use **WPA2-PSK** //and// **Force CCMP (AES)** as both are the best means of non-enterprise encryption. +
- +
-  * **Advanced** +
-    * One can improve WiFi network security even further by utilizing [[https://en.wikipedia.org/wiki/IEEE_802.11w-2009|802.11w]] and [[https://en.wikipedia.org/wiki/Extensible_Authentication_Protocol|EAP]]. +
-      * <color #4b4b4b>These are more advanced, enterprise level encryption/authorization methods and one should ensure they have a decent understanding of them prior to implementation</color> +
-        * [[docs:user-guide:network:wifi:wireless.security.8021x|Basic WPA Enterprise configuration instructions]] +
-        * [[docs:user-guide:network:wifi:encryption#configure_wpa2_enterprise_eap-tls_with_external_radius_server|EAP-TLS]] +
-        * [[docs:user-guide:network:wifi:encryption#configure_wpa2_enterprise_client_peap-gtc_using_one_time_password_otp|EAP-GTC OTP]] +
- +
-=== Passwords === +
-    * <color #af0000>**WiFi network passwords should be a //minimum 16 characters// & contain //at least//:**</color>  +
-      * **2** //uppercase// letters +
-      * **2** //lowercase// letters +
-      * **2** //numbers// +
-      * **2** //symbols// +
- +
-    * <color #af0000>**Do //not// utilize these in your passwords:**</color> +
-      * **Personal info** +
-        * <color #4b4b4b>//Your name, Family/Friends/Pets' names//</color> +
-        * <color #4b4b4b>//Important dates (birthdays, anniversaries, etc.)//</color> +
-        * <color #4b4b4b>//Dictionary words//</color> +
-      * **Router Admin** <color #646464>//[root]//</color> **password** +
-        * <color #4b4b4b>//Any form of your Admin <color #646464>[root]</color> password//</color> +
- +
-    * <color #af0000>**Above all, do not write down passwords & do not save them in files**</color> +
-      * <color #4b4b4b>//If you, for whatever reason, require writing passwords down, please utilize://</color> +
-        * [[https://www.gnupg.org|GnuPG]] <color #646464>(Linux)</color> +
-        * [[https://www.gpg4win.org/|Gpg4Win]] <color #646464>(Windows)</color> +
-      * <color #4b4b4b>//to create a 4096bit or greater signing cert, protect it with a password inline with the above, and use that signing cert to encrypt the document.//</color> +
- +
-=== SSIDs === +
- +
-  * Should be customized, //not generic// <color #646464>(i.e. **//not//** OpenWrt, Linksys, etc.)</color> +
- +
-=== WiFi Access === +
- +
-  * Your home network is like your house, you don't give your house keys to anyone but those you trust; WiFi networks and their passwords are the same.  +
  
-  * vLANs should be configured for guest networks and the vLANs should be firewalled off from your home network 
-    * <color #4b4b4b>**For example, to completely firewall off traffic from:**</color> <color #6e6e6e>**//LAN -> Guest//**</color> <color #4b4b4b>**&**</color> <color #6e6e6e>**//Guest -> LAN//**</color><color #4b4b4b>**:**</color> 
-      * <color #646464>Chain name(s)</color> <color #6e6e6e>[//forward//]</color> <color #646464>and interfaces</color> <color #6e6e6e>[//br0 (LAN), br1 (Guest)//]</color> <color #646464>will vary</color> 
-      * <code bash> 
-iptables -t filter -I forward 1 -i br1 -m state --state NEW -j ACCEPT 
-iptables -t filter -I forward 2 -i br1 -o br0 -m state --state NEW -j DROP 
-iptables -t filter -I forward 3 -i br0 -o br1 -m state --state NEW -j DROP 
-</code> 
  
 ===== Wireless Configuration HowTo and Recipes ===== ===== Wireless Configuration HowTo and Recipes =====
-You can find a couple of probed scenarios under ->[[doc:howto:start|Howto]].+You can find a couple of probed scenarios under ->[[docs:guide-user:network:wifi: | wifi section]].
  
 ===== Troubleshooting ====== ===== Troubleshooting ======
Line 203: Line 148:
  
 ===== OpenWrt Wireless FAQ ===== ===== OpenWrt Wireless FAQ =====
-  * ->[[docs:user-guide:network:wifi:faq.wireless|OpenWrt Wireless FAQ]]+  * -> {{tagpage>wireless|OpenWrt Wireless FAQ}}
  • Last modified: 2023/06/22 22:48
  • by memicinn19