If you would like to make your raspberry pi as access point or wifi router, the following tutorial would help.
You will need a Wi-Fi adapter for raspberry pi. The following adapter i prefer,
You will see some thing similar to the following lines at the end..
[3.282651] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
[3.392819] usb 1-1.2: New USB device found, idVendor=392, idProduct=7811
[3.407489] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[3.420530] usb 1-1.2: Product: 802.11n WLAN Adapter
If you get this, then your OS has recognised the Wi-Fi adapter.
Install the necessary Software
In order to make the Raspberry Pi to act as a WiFi router and access point we need to install some extra softwares.
hostapd
HostAPD is a user space daemon for access point and authentication servers. That is it will turn the raspberry pi as access point so that the other computers can connect to it. It will also handle security such that we can setup a Wifi password for it.
isc-dhcp-server
isc-dhcp-server is the internet system consortium's implementation of a DHCP server. A DHCP server is responsible for assigning address to computers and devices connection to the Wi-Fi acess point.
Run the following command to install DHCP.
sudo apt-get install isc-dhcp-server
Next up is the HostAPD software. Because our USB stick needs an access point driver, we need to install a custom version compiled with the driver we need.
wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz
tar -zxvf v1.1.tar.gz
cd RTL8188-hostapd-1.1/hostapd
sudo make
sudo make install
Configure the ISC-DHCP-Server
To configure the DHCP server open the file /etc/dhcp/dhcp.conf in your favorite text editor.
sduo nano /etc/dhcp/dhcp.conf
Find the following section and comment it out by placing a hashtag at the beginning of the line.
option domain-name "example.org";
option domain-name-servers nsl.example.org, ns2.example.org;
Next find the section below and un-comment authoritative.
#If this DHCP server is the official DHCP server for the local
#network, the authoritative directive should be uncommented.
#authoritative;
The file should look as like below:
Next we need to define the network and network address that the DHCP server will be serving. This done as shown below at the end of the file.
This will enable the DHCP server to hand out the ip address from 192.168.10.10 to 192.168.10.20 in its own local network. This configuration will use the Google DNS servers at 8.8.8.8 and 8.8.4.4.
To save the file press Ctrl+O this will write the file to the disk - afterwards you can exit nano by Ctrl+X.
Next file to edit is
/etc/default/isc-dhcp-server
sudo nano /etc/default/isc-dhcp-server
Scroll down to the line saying interfaces and update the line to say:
INTERFACES="wlan0"
The last step in configuring DHCP server is to configure ip address for the wireless network adapter. This is done in the file
/etc/network/interfaces before opening it make sure the WLAN is down.
sudo ifdown wlan0
sudo nano /etc/network/interfaces
Change the file to look like this:
This will make the wireless adapter take the address 192.16810.1.
Configuring HostAPD
To configure HostAPD, open the file called /etc/hostapd/hostapd.conf .
sudo nano /etc/hostapd/hostapd.conf
The standard configuration will create a new wireless network called wifi with the password YourPassPhrase . You can edit the parameter "ssid=wifi" to the SSID name you want and "wpa_passphrase=YourPassPhrase" to your own password.
Enable NAT
The last step before we can start the access point is setting up Network address Transmission(NAT).
Open /etc/sysctl.conf with
sudo nano /ect/sysctl.conf
Scroll down to the last line of the file and add the line:
Next start the translation right away by running:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Start the wireless network by running;
Next step up the actual translation between the ethernet port called eth0 and the wireless card called wlan0.
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
Thus NAT configured
Starting your wireless router
sudo service -sc-dhcp-server start
sudo service hostapd start
At this point you should be able to find your wireless network access on your laptop.
Final
The point it is not so cool you have to login every time it reboots to start the HostAPD and DHCP software...
To avoid this run the following commands:-
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable
To avoid to configure NAT every time the Raspberry Pi reboots you can do the following.
Run this command to backup the NAT configuration.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Add the following to the end of the file
/etc/network/interfaces to restore the configuration
when the network interfaces comes up
up iptables-restore < /etc/iptables.ipv4.nat
The file should look like:
Finally reboot the system
sudo reboot