From charlesreid1

No edit summary
No edit summary
Line 1: Line 1:
<!--
=Configure RPi As Wireless Access Point=
 
these instructions will walk you through setting up raspberry pi as wireless access point.


The steps for configuring the Raspberry Pi as a wireless access point are:
start by connecting to your pi via ssh. Install some software needed to turn the RPi into a router:


Log in to the Raspberry Pi either directly or remotely.
<pre>
Use the apt-get install command to install the software packages hostapd, udhcpd, and iw.
$ apt-get install -y hostapd udhcpd iw
pi@raspberrypi ~ $ sudo apt-get install -y hostapd udhcpd iw
</pre>
Reading package lists... Done
Building dependency tree     
Reading state information... Done


The following extra packages will be installed:
Now pick out a wireless USB adapter that can act as an access point.  
  crda wireless-regdb
The following NEW packages will be installed:
  crda hostapd iw udhcpd wireless-regdb
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/509 kB of archives.
After this operation, 1,188 kB of additional disk space will be used.
Selecting previously unselected package wireless-regdb.
(Reading database ... 88434 files and directories currently installed.)
Unpacking wireless-regdb (from .../wireless-regdb_2014.10.07-1~deb7u1_all.deb) ...
Selecting previously unselected package crda.
Unpacking crda (from .../crda_1.1.2-1_armhf.deb) ...
Selecting previously unselected package hostapd.
Unpacking hostapd (from .../hostapd_1%3a1.0-3+deb7u2_armhf.deb) ...
Selecting previously unselected package iw.
Unpacking iw (from .../archives/iw_3.4-1_armhf.deb) ...
Selecting previously unselected package udhcpd.
Unpacking udhcpd (from .../udhcpd_1%3a1.20.0-7_armhf.deb) ...
Processing triggers for man-db ...
Setting up wireless-regdb (2014.10.07-1~deb7u1) ...
Setting up crda (1.1.2-1) ...
Setting up hostapd (1:1.0-3+deb7u2) ...
Setting up iw (3.4-1) ...
Setting up udhcpd (1:1.20.0-7) ...
udhcpd: Disabled. Edit /etc/default/udhcpd to enable it.


pi@raspberrypi ~ $  
<pre>
The apt-get install command downloads and installs the software packages hostapd, udhcpd, and iw.
$ iw list | grep "* AP"
Check the wireless USB adapter.
</pre>
Note
Check your wireless USB adapter for AP mode with this command:


sudo iw list | grep '* AP'
(If no results, try a different wireless card.)


If no lines are returned, the wireless adapter does not have AP mode.
View the name server (DNS) address stored in <code>/etc/resolve.conf</code>


Use the iw list command (filtered with grep) to see if the wireless adapter supports Access Point (AP) mode.
Now let's configure the DHCP server, which is responsible for handing out leases.
pi@raspberrypi ~ $ sudo iw list | grep '^[[:blank:]]*\* A'
* AP
* AP/VLAN
* AP/VLAN
* AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0
* AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0
* AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
pi@raspberrypi ~ $
Display the nameserver address.
Use the cat command to display the nameserver address stored in /etc/resolve.conf.
pi@raspberrypi ~ $ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 192.168.2.1


pi@raspberrypi ~ $
Edit <code>/etc/udhcpd.conf</code>, use sample file below:
The DNS nameserver used by the Raspberry Pi is 192.168.2.1.


Configure the udhcpd server.
<pre>
Use the vi editor to edit the udhcpd configuration file /etc/udhcpd.conf.
pi@raspberrypi ~ $ sudo vi /etc/udhcpd.conf
The vi editor displays the contents of the configuration file. Instructions for using the editor can be found in the vi manpages (see the recipe Reading the built-in documentation in Chapter 2,Administration).
# Sample udhcpd configuration file (/etc/udhcpd.conf)
# Sample udhcpd configuration file (/etc/udhcpd.conf)


# The start and end of the IP lease block
# The start and end of the IP lease block
start          192.168.0.20    #default: 192.168.0.20
start          192.168.0.20    #default: 192.168.0.20
end            192.168.0.254  #default: 192.168.0.254
end            192.168.0.254  #default: 192.168.0.254


# The interface that udhcpd will use
# The interface that udhcpd will use
interface      eth0            #default: eth0
interface      eth0            #default: eth0


"/etc/udhcpd.conf" 123 lines, 3054 characters
# Settings
Change the network interface used by udhcpd by changing the line beginning with interface to read interface wlan0.
# The interface that udhcpd will use
 
interface      wlan0
Change the example configuration of udhcpd by changing the section beginning with #Examples at the bottom of the file. Replace the example DNS address with the nameserver address used by your Raspberry Pi (192.168.2.1, from Step 5).
#Examples
opt    dns    192.168.2.1
opt    dns    192.168.2.1
option  subnet  255.255.255.0
option  subnet  255.255.255.0
Line 93: Line 39:
option  domain  local
option  domain  local
option  lease  864000
option  lease  864000
Save the file and exit the editor (:wq).
</pre>
Enable the udhcpd server.
 
pi@raspberrypi ~ $ sudo vi /etc/default/udhcpd
This assumes that the resolve.conf file contained <code>192.168.2.1</code>.
Use the vi editor to edit the udhcpd configuration file, /etc/default/udhcpd.
 
The vi editor displays the contents of the configuration file.
Now edit one more file: <code>/etc/default/udhcpd</code>
 
<pre>
# Comment the following line to enable
# Comment the following line to enable
DHCPD_ENABLED="no"
DHCPD_ENABLED="no"
Line 107: Line 55:


DHCPD_OPTS="-S"
DHCPD_OPTS="-S"
~                                                                                                                     
</pre>
~                                                                                                                     
 
"/etc/default/udhcpd" 9 lines, 164 characters
Now you're ready to enable DHCP server, simply by commenting out <code>DHCPD_ENABLED="no"</code>
Enable the udhcpd server by commenting out the line DHCP_ENABLED="no". To comment out the line, place a # at the beginning of the line.
 
# Comment the following line to enable
Change it to <code>#DHCPD_ENABLED="no"</code> and you'll be ready to go.
#DHCPD_ENABLED="no"
 
Save the file and exit the editor (:wq).
Configure the hostapd server by editing the file <code>/etc/hostapd/hostapd.conf</code> and adding the following contents:
Configure the hostapd server. Use the vi editor to create a new hostapd configuration file, /etc/hostapd/hostapd.conf.
 
pi@raspberrypi ~ $ sudo vi /etc/hostapd/hostapd.conf
<pre>
The vi editor displays the empty configuration file.
Add the following parameters to the hostapd configuration file:
interface=wlan0
interface=wlan0
ssid=Raspi_AP
ssid=CIA_Surveillance_Van
wpa_passphrase=Pr0t3ct3d
wpa_passphrase=ITSASECRET
driver=nl80211
driver=nl80211
hw_mode=g
hw_mode=g
Line 131: Line 77:
wpa_pairwise=TKIP
wpa_pairwise=TKIP
rsn_pairwise=CCMP
rsn_pairwise=CCMP
Save the file and exit the editor (:wq).
</pre>
Enable the hostapd server. Use the vi editor to enable the hostapd service by editing the service default file (/etc/default/hostapd).
 
pi@raspberrypi ~ $ sudo vi /etc/default/hostapd
Now enable the hostapd service by creating a default file in <pre>/etc/default/hostapd</code>
The vi editor displays the contents of the configuration file.
 
# Defaults for hostapd initscript
<pre>
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file and hostapd will be started during system boot. An example configuration
Line 168: Line 110:
# See sysctl.conf (5) for information.
# See sysctl.conf (5) for information.
#
#
</pre>
<!--


"/etc/sysctl.conf" 64 lines, 2137 characters
The vi editor opens the kernel parameters file (/etc/sysctl.conf).
The vi editor opens the kernel parameters file (/etc/sysctl.conf).
Uncomment the line beginning with net.ipv4.ip_forward by removing the # from the beginning of the line.
Uncomment the line beginning with net.ipv4.ip_forward by removing the # from the beginning of the line.
# Uncomment the next line to enable packet forwarding for IPv4
# Uncomment the next line to enable packet forwarding for IPv4

Revision as of 17:20, 17 March 2016

Configure RPi As Wireless Access Point

these instructions will walk you through setting up raspberry pi as wireless access point.

start by connecting to your pi via ssh. Install some software needed to turn the RPi into a router:

$ apt-get install -y hostapd udhcpd iw

Now pick out a wireless USB adapter that can act as an access point.

$ iw list | grep "* AP"

(If no results, try a different wireless card.)

View the name server (DNS) address stored in /etc/resolve.conf

Now let's configure the DHCP server, which is responsible for handing out leases.

Edit /etc/udhcpd.conf, use sample file below:

# Sample udhcpd configuration file (/etc/udhcpd.conf)

# The start and end of the IP lease block
start           192.168.0.20    #default: 192.168.0.20
end             192.168.0.254   #default: 192.168.0.254

# The interface that udhcpd will use
interface       eth0            #default: eth0

# Settings
opt     dns     192.168.2.1
option  subnet  255.255.255.0
opt     router  192.168.0.1
option  domain  local
option  lease   864000

This assumes that the resolve.conf file contained 192.168.2.1.

Now edit one more file: /etc/default/udhcpd

# Comment the following line to enable
DHCPD_ENABLED="no"

# Options to pass to busybox' udhcpd.
#
# -S    Log to syslog
# -f    run in foreground

DHCPD_OPTS="-S"

Now you're ready to enable DHCP server, simply by commenting out DHCPD_ENABLED="no"

Change it to #DHCPD_ENABLED="no" and you'll be ready to go.

Configure the hostapd server by editing the file /etc/hostapd/hostapd.conf and adding the following contents:

interface=wlan0
ssid=CIA_Surveillance_Van
wpa_passphrase=ITSASECRET
driver=nl80211
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Now enable the hostapd service by creating a default file in

/etc/default/hostapd</code>

<pre>
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
#DAEMON_CONF=""

# Additional daemon options to be appended to hostapd command:-
#       -d   show more debug messages (-dd for even more)
#       -K   include key data in debug messages
#       -t   include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
#DAEMON_OPTS=""
~                                                                                                                       
"/etc/default/hostapd" 20 lines, 770 characters
Replace the line beginning with #DAEMON_CONF with the line DAEMON_CONF="/etc/hostapd/hostapd.conf".
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Save the file and exit the editor (:wq).
Configure IP forwarding. Use the vi editor to enable IP forwarding by editing the kernel parameters file, /etc/sysctl.conf.
pi@raspberrypi ~ $ sudo vi /etc/sysctl.conf
The vi editor displays the contents of the configuration file.
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additonal system variables
# See sysctl.conf (5) for information.
#






How It Works