Wireless: Difference between revisions

From Hurlster Wiki
Jump to navigation Jump to search
(Created page with "Wireless WebGui https://github.com/rjpcomputing/raspap-webgui Requirements A raspberry pi with raspbian running on it. You will need to ssh into it to set this up. The Pac...")
 
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
Wireless WebGui
== RTL8822BU USB adapter driver ==
<pre>
sudo git clone https://github.com/EntropicEffect/rtl8822bu.git
cd rtl8822bu
sudo nano Makefile
</pre>
*Update lines 100 and 101 to this and save the file:
<pre>
CONFIG_PLATFORM_I386_PC = n 
CONFIG_PLATFORM_ARM_RPI = y
sudo apt-get install raspberrypi-kernel-headers
sudo make
sudo make install
sudo reboot
</pre>


https://github.com/rjpcomputing/raspap-webgui
*/etc/wpa_supplicant/wpa_supplicant.conf
<pre>
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1


Requirements
network={
A raspberry pi with raspbian running on it. You will need to ssh into it to set this up.
ssid="SSID"
psk="PASSWORD"


The Packages required for the WebGUI are:
# Protocol type can be: RSN (for WP2) and WPA (for WPA1)
proto=RSN


lighttpd
# Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise)
php5-cgi
key_mgmt=WPA-PSK
isc-dhcp-server
git
Steps
Install required packages


sudo apt-get install lighttpd php5-cgi git isc-dhcp-server
# Pairwise can be CCMP or TKIP (for WPA2 or WPA1)
pairwise=CCMP


Enable php in lighttpd
#Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used are SHARED and LEAP)
auth_alg=OPEN
}
</pre>


sudo lighty-enable-mod fastcgi-php
*cat /etc/network/interfaces.d/wlan0
sudo service lighttpd restart
<pre>
Edit /etc/sudoers to allow the www-data user to call the necessary commands. Add the following line to the end of the file.
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
</pre>
 
== Wireless WebGui ==


  www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat /etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,/sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,/etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,/etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf
  https://github.com/billz/raspap-webgui
Once those modifications are done, git clone the files to /var/www. Make sure that there are no files in the /var/www directory. There was a default lighttpd index file that I had to delete.
Prerequisites


sudo git clone https://github.com/rjpcomputing/raspap-webgui.git /var/www
You need to install some extra software in order for the Raspberry Pi to act as a WiFi router and access point. If all you're interested in is configuring your RPi as a client on an existing WiFi network, you can skip this step.


Set the files ownership to www-data user.
There are many guides available to help you select a WiFi adapter, install a compatible driver, configure HostAPD and so on. The details are outside the scope of this project, although I've had consistently good results with the Edimax Wireless 802.11b/g/n nano USB adapter – it's small, cheap and easy to work with.


sudo chown -R www-data:www-data /var/www
To configure your RPi as a WiFi router, either of these resources will start you on the right track:


Configure a static IP for the Pi
How To : Use The Raspberry Pi As A Wireless Access Point/Router Part 1
How-To: Turn a Raspberry Pi into a WiFi router (uses isc-dhcp-server instead of dnsmasq)
After you complete the intial setup, you'll be able to administer these services using the web UI.


Edit /etc/network/interfaces
Installation
sudo nano /etc/network/interfaces


Find and remove dhcp entry iface eth0 inet dhcp
Start off by installing lighttpd and php5.
Append new network settings
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8 8.8.4.4
Find and change iface wlan0 inet manual to iface wlan0 inet dhcp. This is under the wlan0 setup.
Comment out iface default inet dhcp and allow-hotplug wlan0 using the '#' character at the beginning of the line(s).
Example of /etc/network/interfaces after all changes are made:
auto lo
iface lo inet loopback


#iface eth0 inet dhcp
  $ sudo apt-get install lighttpd php5-cgi
  auto eth0
After that, enable PHP for lighttpd and restart it for the settings to take effect.
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
dns-nameservers 8.8.8.8 8.8.4.4


  auto wlan0
  sudo lighty-enable-mod fastcgi-php
#allow-hotplug wlan0
  /etc/init.d/lighttpd restart
  iface wlan0 inet dhcp
Now comes the fun part. For security reasons, the www-data user which lighttpd runs under is not allowed to start or stop daemons, or run commands like ifdown and ifup, all of which we want our page to do. So what I have done is added the www-data user to the sudoers file, but with restrictions on what commands the user can run. Add the following to the end of /etc/sudoers:
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp


Configure dhcpd by editing /etc/dhcp/dhcpd.conf
www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat
  sudo nano /etc/dhcp/dhcpd.conf
/etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata
Add the following to the end of the file
  /etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,
  subnet 10.0.0.0 netmask 255.255.255.0
  /sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,
  {
  /etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,
  range 10.0.0.50 10.0.0.99;
  /etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf
  option routers 10.0.0.254;
Once those modifications are done, git clone the files to /var/www.
  option domain-name "local";
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  }
Open /etc/default/isc-dhcp-server and change the INTERFACES="" to INTERFACES="eth0"


  sudo nano /etc/default/isc-dhcp-server
  sudo git clone https://github.com/billz/raspap-webgui /var/www
Set the files ownership to www-data user.


Install and configure the auto-reconnect WiFi script (wifi-check).
sudo chown -R www-data:www-data /var/www
Copy 'wifi-check' to /usr/local/bin/wifi-check
sudo cp /var/www/wifi-check /usr/local/bin/wifi-check
sudo chmod +x /usr/local/bin/wifi-check
Add it to cron so it runs every 5 minutes
sudo crontab -e
Append the line */5 * * * * /usr/local/bin/wifi-check > /tmp/wificheck.log 2>&1 to the end of the file
Save the file
Reboot and it should be up and running!
Reboot and it should be up and running!


  sudo reboot
  sudo reboot


[Category:Linux]
Please note that these are only UI's for now. If there's enough interest I'll complete the funtionality for these optional admin screens.
 
[[Category:Linux]]

Latest revision as of 20:07, 11 April 2023

RTL8822BU USB adapter driver

sudo git clone https://github.com/EntropicEffect/rtl8822bu.git 
cd rtl8822bu
sudo nano Makefile
  • Update lines 100 and 101 to this and save the file:
CONFIG_PLATFORM_I386_PC = n  
CONFIG_PLATFORM_ARM_RPI = y 
sudo apt-get install raspberrypi-kernel-headers
sudo make
sudo make install
sudo reboot
  • /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="SSID"
psk="PASSWORD"

# Protocol type can be: RSN (for WP2) and WPA (for WPA1)
proto=RSN

# Key management type can be: WPA-PSK or WPA-EAP (Pre-Shared or Enterprise)
key_mgmt=WPA-PSK

# Pairwise can be CCMP or TKIP (for WPA2 or WPA1)
pairwise=CCMP

#Authorization option should be OPEN for both WPA1/WPA2 (in less commonly used are SHARED and LEAP)
auth_alg=OPEN
}
  • cat /etc/network/interfaces.d/wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Wireless WebGui

https://github.com/billz/raspap-webgui

Prerequisites

You need to install some extra software in order for the Raspberry Pi to act as a WiFi router and access point. If all you're interested in is configuring your RPi as a client on an existing WiFi network, you can skip this step.

There are many guides available to help you select a WiFi adapter, install a compatible driver, configure HostAPD and so on. The details are outside the scope of this project, although I've had consistently good results with the Edimax Wireless 802.11b/g/n nano USB adapter – it's small, cheap and easy to work with.

To configure your RPi as a WiFi router, either of these resources will start you on the right track:

How To : Use The Raspberry Pi As A Wireless Access Point/Router Part 1 How-To: Turn a Raspberry Pi into a WiFi router (uses isc-dhcp-server instead of dnsmasq) After you complete the intial setup, you'll be able to administer these services using the web UI.

Installation

Start off by installing lighttpd and php5.

$ sudo apt-get install lighttpd php5-cgi

After that, enable PHP for lighttpd and restart it for the settings to take effect.

sudo lighty-enable-mod fastcgi-php
/etc/init.d/lighttpd restart

Now comes the fun part. For security reasons, the www-data user which lighttpd runs under is not allowed to start or stop daemons, or run commands like ifdown and ifup, all of which we want our page to do. So what I have done is added the www-data user to the sudoers file, but with restrictions on what commands the user can run. Add the following to the end of /etc/sudoers:

www-data ALL=(ALL) NOPASSWD:/sbin/ifdown wlan0,/sbin/ifup wlan0,/bin/cat
/etc/wpa_supplicant/wpa_supplicant.conf,/bin/cp /tmp/wifidata 
/etc/wpa_supplicant/wpa_supplicant.conf,/sbin/wpa_cli scan_results,
/sbin/wpa_cli scan,/bin/cp /tmp/hostapddata /etc/hostapd/hostapd.conf,
/etc/init.d/hostapd start,/etc/init.d/hostapd stop,/etc/init.d/dnsmasq start,
/etc/init.d/dnsmasq stop,/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf

Once those modifications are done, git clone the files to /var/www.

sudo git clone https://github.com/billz/raspap-webgui /var/www

Set the files ownership to www-data user.

sudo chown -R www-data:www-data /var/www

Reboot and it should be up and running!

sudo reboot

Please note that these are only UI's for now. If there's enough interest I'll complete the funtionality for these optional admin screens.