Menjadikan Laptop Ubuntu Sebagai Access Point

Sebelumnya, saya pernah menulis tentang ini di sini. Namun dari segi judul maupun tulisan, mungkin agak membingungkan. Yang nulis juga bingung, apalagi yang baca (mungkin).

Nah, untuk membuat/menjadikan laptop Anda sebagai sebuah Access Point diperlukan berbagai bumbu alami, racikan para developer Linux antara lain bawang bombay, mrica, ketumbar, kunyit asam, dll. Eh, salah ding, yang benar adalah hostapd, isc-dhcp-server, beserta para ketergantungannya.

Periksa apakah kartu jaringan Anda mendukung pembuatan Access Point atau tidak :

iw list | sed -n -e '/* AP$/p'

Jika perintah tersebut tidak menghasilkan apapun, artinya kartu jaringan Anda tidak dapat untuk membuat Access Pont. Anda tidak perlu repot-repot melanjutkan ke langkah berikutnya. Sebaliknya, jika muncul * AP seperti yang diharapkan, artinya laptop Anda dapat dibuat AP dan lanjutkan ke langkah berikutnya.

Install paket hostapd, seperti biasa perintahnya adalah :

sudo apt-get install hostapd

Setelah selesai, buang skrip startup supaya tidak dijalankan saat boot1) :

update-rc.d hostapd disable

Lalu buat berkas konfigurasi di /etc/hostapd/hostapd.conf yang berisi :

# beberapa laptop interface untuk WiFi-nya berupa eth1
interface=wlan0
driver=nl80211
# nama WiFinya, bukan wife loh yah....
ssid=info@samsul.web.id
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
# password WiFi, sesuaikan dengan selera,
# minimal 8 karakter
wpa_passphrase=12345678-0
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Lalu pastkan berkas /etc/default/hostapd terdapat konfigurasi berikut :

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Sampai di sini, konfigurasi hostapd telah selesai.

Pembuatan DHCP Server saya tulis secara terpisah di sini.

Untuk menjalankan/menjadikan Laptop Anda sebagai Access Point dengan mudah, ada baiknya dibuatkan sebuah script sehingga dapat dijalankan dengan perintah :

sudo service wifi_ap start

Maka scriptnya kita simpan di /etc/init.d/wifi_ap yang isinya sebagai berikut2) :

#!/bin/bash

# deteksi interface aktif, sebagai sumber koneksi internet
ext_interface=$(ip route | grep default | cut -d' ' -f5)

function stop_wifi_ap {
    ### stop services dhcpd and hostapd
    sleep 3
    service isc-dhcp-server stop
    sleep 3
    service hostapd stop

    ### disable IP forwarding
    echo 0 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -D POSTROUTING -s 2.2.2.0/24 -o $ext_interface -j MASQUERADE 2>/dev/null
    ### nonaktifkan IP forwarding

    ### remove the static IP from the wifi interface
    if grep -q 'auto wlan0' /etc/network/interfaces
    then
        sed -i /etc/network/interfaces -e '/auto wlan0/,$ d'
        sed -i /etc/network/interfaces -e '$ d'
    fi

    ### restart network manager to takeover wifi management
    sleep 5
    service network-manager restart
    sleep 3
    nmcli nm wifi on
}

function start_wifi_ap {
    # stop_wifi_ap
    sleep 5

    ### see: https://bugs.launchpad.net/ubuntu/+source/wpa/+bug/1289047/comments/8
    rfkill unblock wlan
    #sleep 3
    rfkill unblock wlan
    #sleep 3
    rfkill unblock wlan
    sleep 5
    nmcli nm wifi off
    rfkill unblock wlan

    ### give a static IP to the wifi interface
    ip link set dev wlan0 up
    sleep 3
    ip address add 2.2.2.1/24 dev wlan0
    ## memberikan IP statik ke interface wifi

    ### protect the static IP from network-manger restart
    echo >> /etc/network/interfaces
    echo 'auto wlan0' >> /etc/network/interfaces
    echo '	iface wlan0 inet static' >> /etc/network/interfaces
    echo '	address 2.2.2.1' >> /etc/network/interfaces
    echo '	netmask 255.255.255.0' >> /etc/network/interfaces
    echo '	broadcast 2.2.2.255' >> /etc/network/interfaces


    ### enable IP forwarding
    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s 2.2.2.0/24 -o $ext_interface -j MASQUERADE 2>/dev/null
    ## mengaktifkan IP forward

    ### start services dhcpd and hostapd
    sleep 3
    ifconfig wlan0 2.2.2.1/24 up
    ifconfig wlan0 broadcast 2.2.2.255
    ## jalankan layanan dhcp dan hostapd
    sleep 3
    service isc-dhcp-server start
    sleep 3
    service hostapd start
}

### start/stop wifi access point
case "$1" in
    start) start_wifi_ap ;;
    stop)  stop_wifi_ap  ;;
    restart) stop_wifi_ap && sleep 7 && start_wifi_ap ;;
esac

Untuk menjalankan script ini dengan perintah tadi, pastikan script tersebut diberi akses eksekusi :

sudo chmod +x /etc/init.d/wifi_ap

Laptop Anda juga harus sudah terkoneksi ke internet (opsional), baik melalui modem maupun kabel jaringan.

Jika Anda menjalankan perintah dan outputnya seperti ini :

samsul@tios:~$ sudo service wifi_ap stop
isc-dhcp-server stop/waiting
 * Stopping advanced IEEE 802.11 management hostapd                                                                [ OK ] 
network-manager stop/waiting
network-manager start/running, process 5054

Maka, Anda telah berhasil menjadina laptop Anda sebagai Access Point3). Ujicobakan smartphone Anda atau gawai lainnya, hubungkan ke AP yang Anda buat tadi.


1)
Access Point dibuat/dijalankan hanya saat diperlukan saja.
2)
Script ini berdasarkan karya om Dashamir Hoxha di sini
3)
CATATAN: di laptop saya, script/perintah tersebut harus dijalankan dua kali (2x) baru berhasil. Entahlah, coba saja sendiri
  • linux/Menjadikan.Laptop.Ubuntu.Sebagai.Access.Point
  • Terakhir diubah: 9 bulan yang lalu
  • (Perubahan eksternal)