31 December 2014

Membuat Hotspot WiFi Access Point Dengan Ubuntu Dan Windows 7

Menjadikan komputer atau laptop sebagai Access Point bukanlah sesuatu yang baru. Di internet juga telah tersedia banyak tutorial sebagi panduan bagi siapapun yang ingin mencobanya. Namun beberapa masalah mungkin terjadi pada sebagian pengguna Ubuntu 14.04 LTS.

Hotspot WiFi Access Point Dengan Ubuntu
Bug pada hostapd nampaknya menjadi penyebab kegagalan pengguna Ubuntu 14.04 dan atau versi sebelumnya untuk mengaktifkan WiFi LAN dengan pesan-pesan kesalahan seperti:

nl80211: Could not configure driver mode
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlan0 wasn't started


dan mungkin pesan kesalahan lain yang sejenis.

Tutorial berikut ini hanya akan memodifikasi panduan-panduan lain yang sebelumnya sudah ada guna mengatasi masalah yang muncul serta untuk mengoptimalkan pemanfaatan script yang telah banyak digunakan. Sebagai contoh, kami menggunakan sebuah USB WLAN untuk access point dan USB modem yang akan digunakan berbagi pakai koneksi internet.

Install paket-paket yang dibutuhkan seperti hostapd dan dnsmasq dengan perintah:
sudo apt-get install hostapd dnsmasq

Edit konfigurasi hostapd dengan perintah:
sudo gedit /etc/hostapd/hostapd.conf

Isi file hostapd.conf tersebut dengan baris-baris berikut:

interface=wlan0
driver=nl80211
ignore_broadcast_ssid=0
ssid=wifiku
hw_mode=g
channel=1
wpa=3
wpa_passphrase=passwod8
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP


Silahkan sesuaikan dengan kondisi dan kebutuhan Anda. Parameter interface=wlan0 adalah dengan asumsi hanya terdapat satu buah WLAN pada komputer dan dikenali sebagai wlan0, pada pengguna lain boleh jadi dikenali sebagai wlan1 atau lainnya (gunakan perintah ifconfig untuk memeriksa). Parameter ignore_broadcast_ssid=0 dapat diubah menjadi bernilai 1 jika Anda ingin menyembunyikan SSID. Parameter ssid=wifiku silahkan sesuaikan dengan nama SSID yang ingin digunakan. Parameter wpa_passphrase=passwod8 silahkan sesuaikan dengan password yang Anda gunakan, cukup dengan delapan karakter saja lalu simpan perubahan.

Edit konfigurasi dnsmasq dengan perintah:
sudo gedit /etc/dnsmasq.conf

Tambahkan ke bagian akhir file dnsmasq.conf baris-baris berikut ini:

interface=wlan0
dhcp-range=net:wlan0,192.168.137.100,192.168.137.150,255.255.255.0,1440m
dhcp-option=wlan0,3,192.168.137.1
dhcp-option=wlan0,6,8.8.8.8,8.8.4.4


Simpan perubahan.

Hentikan service hostapd dan dnsmasq:
sudo service hostapd stop
sudo service dnsmasq stop


Disable service hostapd dan dnsmasq supaya tidak langsung jalan saat booting:
sudo update-rc.d hostapd disable
sudo update-rc.d dnsmasq disable


Buat script ap_ctl untuk menjalankan fungsi access point dan sharing internet dengan perintah:
sudo gedit /usr/bin/ap_ctl

Isi dengan script berikut ini:

#!/bin/bash

# broadcasting interface
BROADCAST="wlan0"

# receiving interface broadcast is connected to
RECEIVE="$2"

if [[ $1 == "-1" || $1 == "--on" ]]
then
# send signal 2 to hostapd and dhcpd3
echo "Checking hostapd and dnsmasq services"
killall -2 hostapd dnsmasq
sleep 2
# fix on Ubuntu 14.04
nmcli nm wifi off
rfkill unblock wlan

## start hostapd
echo "Starting hostapd"
echo " You can view the log at /var/log/hostapd.log"

# launch hostapd daemon
hostapd -d /etc/hostapd/hostapd.conf > /var/log/hostapd.log &

## start dhcp server
echo "Starting dnsmasq"

# set IP address
ifconfig $BROADCAST 192.168.137.1
sleep 2

# launch dhcpd3 daemon
# echo "INTERFACES=$BROADCAST" > /etc/default/dhcp
# dhcpd3 $BROADCAST &
dnsmasq

# set kernel variable(s)
echo 0 > /proc/sys/net/ipv4/conf/all/forwarding

# restart networking
/etc/init.d/networking restart

elif [[ $1 == "-0" || $1 == "--off" ]]
then
# send signal 2 to hostapd and dhcpd3
killall -2 hostapd dnsmasq
# fix on Ubuntu 14.04
nmcli nm wifi on

# set kernel variable(s)
echo 0 > /proc/sys/net/ipv4/conf/all/forwarding

# restart networking
/etc/init.d/networking restart


##------ AP ICS ------------------------------------------#

elif [[ $1 == "-i" || $1 == "--start" ]]
then
# send signal 2 to hostapd and dhcpd3
echo "Checking hostapd and dnsmasq services"
killall -2 hostapd dnsmasq
sleep 2
# fix on Ubuntu 14.04
nmcli nm wifi off
rfkill unblock wlan

## start hostapd
echo "Starting hostapd"
echo " You can view the log at /var/log/hostapd.log"

# launch hostapd daemon
hostapd -d /etc/hostapd/hostapd.conf > /var/log/hostapd.log &

## start dhcp server
echo "Starting dnsmasq"

# set IP address
ifconfig $BROADCAST 192.168.137.1
sleep 2

# launch dhcpd3 daemon
# echo "INTERFACES=$BROADCAST" > /etc/default/dhcp
# dhcpd3 $BROADCAST &
dnsmasq

sleep 2
# create iptables rules (from --ics)
iptables -A FORWARD -i $RECEIVE -o $BROADCAST -s 192.168.137.1/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

# set kernel variable(s)
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

# restart networking
/etc/init.d/networking restart

elif [[ $1 == "-s" || $1 == "--stop" ]]
then
# send signal 2 to hostapd and dhcpd3
killall -2 hostapd dnsmasq
# fix on Ubuntu 14.04
nmcli nm wifi on

# remove iptables rules (from --noics)
iptables -D FORWARD 1
iptables -D FORWARD 1

# set kernel variable(s)
echo 0 > /proc/sys/net/ipv4/conf/all/forwarding

# restart networking
/etc/init.d/networking restart


else
echo $0 "A tool to manage hostapd and dnsmasq/dhcpd3"
echo
echo "Usage: ap_ctl [OPTION]"
echo " -1, --on Start hostapd and dnsmasq/dhcpd3"
echo " -0, --off Stop hostapd and dnsmasq/dhcpd3"
echo " --help display this help and exit"
echo
echo "Usage: ap_ctl [OPTION] [ICS_INTERFACE]"
echo " -i, --start Start ICS, hostapd and dnsmasq/dhcpd3"
echo " -s, --stop Stop ICS, hostapd and dnsmasq/dhcpd3"
echo
echo "Examples:"
echo " ap_ctl --on Start hostapd and dnsmasq/dhcpd3 without ICS"
echo " ap_ctl -i ppp0 Start hostapd and dnsmasq/dhcpd3 with ICS"
echo
echo
fi

exit 0


Simpan, lalu jadikan executable dengan perintah:
sudo chmod +x /usr/bin/ap_ctl

Hotspot WiFi Access Point Dengan Ubuntu


Untuk menggunakan, jalankan terminal lalu ketik perintah:

sudo ap_ctl -1 atau sudo ap_ctl --on  Untuk menjalankan fungsi accsess point tanpa sharing internet.

sudo ap_ctl -0 atau sudo ap_ctl --off  Untuk menghentikan fungsi accsess point dan kembali menjadi WiFi client.

sudo ap_ctl -i ppp0 atau sudo ap_ctl --start ppp0 Untuk menjalankan fungsi accsess point dengn ICS melalui interface ppp0 (modem USB).

sudo ap_ctl -s atau sudo ap_ctl --stop Untuk menghentikan fungsi accsess point dengn ICS dan kembali menjadi WiFi client).

sudo ap_ctl --help Untuk menampilkan bantuan penggunaan.

Jika sharing internet Anda lakukan melalu ethernet misalnya eth0 maka ubah parameter "ppp0" menjadi "eth1" misalnya: sudo ap_ctl -i eth0.

Hotspot WiFi Access Point Dengan Ubuntu


Selamat mencoba...


Berikut adalah link-link terkait masalah ini:

http://ubuntu-indonesia.com/forums/ubbthreads.php/topics/92502/1
http://wireless.kernel.org/en/users/Documentation/hostapd
https://bugs.launchpad.net/ubuntu/+source/wpa/+bug/1289047

Lalu bagai mana Membut Hotspot WiFi Access Point Dengan Windows 7? Jika ada waktu pada artikel berikutnya... :D


Dipublikasikan di:
WiFi Access Point, Access Point Ubuntu

Your comments:

Gunakan kode " :) :( ;) :p :d :xd :o :s :'( :x( :* :8) :a 3: " untuk menambahkan Emoticon pada komentar.

5 comments :

  1. Nice post :)
    Kunjungi balik, Gan.
    http://themindware.blogspot.com

    ReplyDelete
  2. I really like your site.. continue the good work! Have you any idea the actual theme is by the way?

    ReplyDelete
  3. Hello, I wish for to subscribe for this website to obtain newest updates, therefore where can i
    do it please assist.

    ReplyDelete
  4. Thanks infonya kk.
    Sangat bermanfaat.

    Kalau suka main capsa susun, main bareng aku ya di Situs Capsa Susun Online Terbaik

    ReplyDelete
  5. terimakasih info tentang Membuat Hotspot WiFi Access Point Dengan Ubuntu Dan Windows 7

    ReplyDelete

Terima kasih untuk tidak meletakkan direct link pada isi komentar karena Blogger anti spam akan secara otomatis menandai sebagai spam dan menyembunyikannya.

Bantu kami meningkatkan kualitas blog ini dengan meninggalkan komentar pada artikel yang Anda baca. Terima kasih...