Monday, 6 March 2017

IN CLASS HOST-Access Point SETUP

In this experiment, the aim is to make raspberry pi as an access point of Wifi.


Items Required:

  • Raspberry Pi. 
  • Ethernet cable.
  • WiFi adapter.
  • SD Card with Raspbian installed in it.
  • Power supply for your Pi & a Micro USB cable.
This post is about the experience of Host access point setup in class:
  • Connect Raspberry Pi to the router.
  • Change the password into desired one from "raspberry" which is by default.
Now getting into the protocols and type out commands in the command-line interpreter of the Raspberry Pi:

  • The first step is to install the required packages for setting up access point by 

"sudo apt-get install dnsmasq hostapd "
( 'hostapd' - This is the package that allows you to use the built in WiFi as an access point. 'dnsmasq' - This is a combined DHCP and DNS server that's very easy to configure).

  • Since I have used Raspberry Pi-3 which has very latest version of the RaspianThe interface configuration is handled by dhcpcd. It shall ignore wlan0, as we will be configuring it with a static IP address elsewhere. we do this by opening dhcpcd configuration file with "Sudo nano /etc/dhcpcd.conf" and add the following line in the dhcpcd "denyinterfaces wlan0".
  • Static IP needs to be configured, with “sudo nano /etc/network/interfaces” and edit the wlan0 section should look as follows:

allow-hotplug wlan0  
iface wlan0 inet static  
    address 172.24.1.1
    netmask 255.255.255.0
    network 172.24.1.0
    broadcast 172.24.1.255
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Now, restart dhcpcd with sudo service dhcpcd restart and then reload the configuration for wlan0 with sudo ifdown wlan0; sudo ifup wlan0.
  • Next step is to configure hostapd by creating a new configuration file sudo nano /etc/hostapd/hostapd.conf with the following contents:


# This is the name of the WiFi interface we configured above

interface=wlan0


# Use the nl80211 driver with the brcmfmac driver
driver=nl80211

# This is the name of the network
ssid=Pi3-AP

# Use the 2.4GHz band
hw_mode=g

# Use channel 6
channel=6

# Enable 802.11n
ieee80211n=1

# Enable WMM
wmm_enabled=1

# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]

# Accept all MAC addresses
macaddr_acl=0

# Use WPA authentication
auth_algs=1

# Require clients to know the network name
ignore_broadcast_ssid=0

# Use WPA2
wpa=2

# Use a pre-shared key
wpa_key_mgmt=WPA-PSK

# The network passphrase
wpa_passphrase=raspberry

# Use AES, instead of TKIP
rsn_pairwise=CCMP

"sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf" can be used to verify if the hostapd is working.
Until this stage was the work done in the class and rest was done as a homework assignment. The post followed by this post will clearly explain how it is done.

Open up the default configuration file with sudo nano /etc/default/hostapd and find the 
line #DAEMON_CONF="" and replace it with DAEMON_CONF="/etc/hostapd/hostapd.conf"





  •  To Configure DNSMASQ create a new file with
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
and paste the file with the contents as follows:
interface=wlan0      # Use interface wlan0  
listen-address=172.24.1.1 # Explicitly specify the address to listen on  
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere  
server=8.8.8.8       # Forward DNS requests to Google DNS  
domain-needed        # Don't forward short names  
bogus-priv           # Never forward addresses in the non-routed address spaces.  
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time.
  • Now the next step is to Setup IPv4 forwarding
This step enables packet forwarding

open up the sysctl.conf file with sudo nano /etc/sysctl.conf, and remove the # from the beginning of the line containing net.ipv4.ip_forward=1. This will enable it on the next reboot, but because we are impatient, activate it immediately with: 
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

need to share our Pi's internet connection to our devices connected over WiFi by the configuring a NAT between our wlan0 interface and our eth0 interface. We can do this using the following commands:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT  

we need these rules to be applied every time we reboot the Pi, so run  sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" to save the rules to the file /etc/iptables.ipv4.nat. Now we need to run this after each reboot, so open the rc.local file with sudo nano /etc/rc.local and just above the line exit 0, add the following line:

" iptables-restore < /etc/iptables.ipv4.nat "


Now we are done with setting up our wifi on Raspberry Pi. This can be hosted using the following commands:

sudo service hostapd start

sudo service dnsmasq start

To check if we have got everything configured correctly reboot with “sudo reboot”


References:






No comments:

Post a Comment