NGURAJEKA.COM — TERMINAL v2.0
ngura//jeka
« BACK

Membuat Hotspot pribadi menggunakan Slackware

2012-09-25  |  tag: slackware, linux, hostapd, hotspot, dhcp

Posting lagi :D, kali ini saya akan memposting tentang bagaimana cara membuat atau membangun hotspot pribadi menggunakan slackware. (kebetulan ketemu artikel digoogle dan dicoba juga).
Mungkin sudah banyak yang pernah mencoba melakukan ini dengan berbagai cara. Kali ini kita akan menggunakan software yang bernama hostapd sebuah paket software yang digunakan untuk membuat atau membangun hotspot sendiri dengan mesin kita sebagai virtual akses poinnya :D (CMIIW).
Nah, langsung saja. Sebelumnya saya akan terangkan bahwa saya terkoneksi dengan modem di interface ppp0 dan akan melakukan sharing dengan device saya yang lain (android) dengan menggunakan hostapd ini. Bisa disimpulkan koneksi_internet = ppp0 dan koneksi_share = wlan0 .
pertama kita install terlebih dahulu hostapd di mesin kita. Bisa menggunakan paket build dari slackbuilds.org atau bisa juga dengan mendownload versi source code untuk dicompile sendiri di mesin kita.
Disini saya menggunakan versi source code dan download langsung dari http://hostap.epitest.fi/hostapd/
Setelah download filenya, lanjut kita compile dan install hostapd ini ke mesin.

$ cd ~/Downloads  
$ # file hostapd yang saya download berada di folder downloads
$ tar -xvf hostapd-x-x.tar.gz  
$ # sesuaikan dengan versi yang anda download
$ cd hostapd-x-x
$ cd hostapd  
$ # berpindah kedalam folder hostapd untuk compile
$ cp defconfig .config
$ make
$ make install  
$ # untuk menginstall hostapd ke mesin kita

Nah, setelah proses compile dan install selesai. Sekarang saatnya kita melakukan konfigurasi hostapd kita agar dapat berjalan dengan yang kita inginkan.

$ nano /etc/hostapd.conf
$ # untuk membuat dan mengedit file hostapd.conf di folder /etc

Nah, pada file ini saya isikan sebagai berikut

> interface=wlan0  
> driver=nl80211  
> ssid=Ngurajeka Hotspot  
> country_code=ID  
> hw_mode=g  
> channel=1  
> auth_algs=1  
> ignore_broadcast_ssid=0  
> wpa=3  
> wpa_passphrase=ngurajeka  
> wpa_pairwise=TKIP  
> rsn_pairwise=CCMP

Silahkan sesuaikan dengan keinginan anda. Selanjutnya kita membuat agar siapapun yang terkoneksi dengan hotspot kita mendapatkan ip secara automatis (DHCP). Dengan cara sebagai berikut:

$ nano /etc/dhcpd.conf  
$ # untuk mengedit file dhcpd.conf di folder /etc

Pada file ini yang saya tambahkan adalah sebagai berikut

subnet 192.168.23.0 netmask 255.255.255.0 {  
  range 192.168.23.100 192.168.23.200;  
  option subnet-mask 255.255.255.0;  
  option broadcast-address 192.168.23.255;  
  option routers 192.168.23.1;  
  option domain-name-servers 192.168.23.1, 8.8.8.8;  
  option domain-name anulinux.com;  
  default-lease-time 600;  
  max-lease-time 7200;  
}

Silahkan sesuaikan ip address dengan yang anda inginkan. Selanjutnya kita buat sebuah file untuk menjalankan service hostapd dan dhcpd secara bersamaan di /etc/rc.d/ dengan nama file rc.hotspot

$ touch /etc/rc.d/rc.hotspot  
$ nano /etc/rc.d/rc.hotspot  
#!/bin/bash

# Path ke binary
IPTABLES=/usr/sbin/iptables
DHCPD=/usr/sbin/dhcpd
HOSTAPD=/usr/sbin/hostapd

# Interface Settings
KONEKSI_MASUK="ppp0"
KONEKSI_SHARE="wlan0"
IP_AP="192.168.23.1"

case "$1" in
    start)
        echo "Menjalankan Mode AP di $KONEKSI_SHARE dengan alamat $IP_AP"
        
        # Matikan forwarding sementara
        echo 0 > /proc/sys/net/ipv4/ip_forward
        
        # Menghentikan proses lama jika ada
        killall hostapd 2>/dev/null
        killall dhcpd 2>/dev/null

        # Konfigurasi iptables (NAT)
        $IPTABLES -t nat -A POSTROUTING -o $KONEKSI_MASUK -j MASQUERADE
        $IPTABLES -A FORWARD -i $KONEKSI_MASUK -o $KONEKSI_SHARE -m state --state RELATED,ESTABLISHED -j ACCEPT
        $IPTABLES -A FORWARD -i $KONEKSI_SHARE -o $KONEKSI_MASUK -j ACCEPT

        # Mengaktifkan ip forwarding
        echo 1 > /proc/sys/net/ipv4/ip_forward

        # Konfigurasi Interface (Menggunakan ip command, lebih modern)
        ip link set $KONEKSI_SHARE down
        ip addr flush dev $KONEKSI_SHARE
        ip addr add $IP_AP/24 dev $KONEKSI_SHARE
        ip link set $KONEKSI_SHARE up

        # Cek file leases DHCP
        if [ ! -f /var/lib/dhcp/dhcpd.leases ]; then
            touch /var/lib/dhcp/dhcpd.leases
        fi

        # Menjalankan DHCP dan Hostapd
        $DHCPD -cf /etc/dhcpd.conf $KONEKSI_SHARE
        $HOSTAPD -B -P /var/run/hostapd.pid /etc/hostapd.conf
        
        echo "AP Berhasil dijalankan."
    ;;

    stop)
        echo "Mematikan Mode AP pada $KONEKSI_SHARE..."
        
        # Matikan proses
        killall hostapd 2>/dev/null
        killall dhcpd 2>/dev/null
        
        # Reset IP Forwarding & IPTables (Opsional tapi disarankan)
        echo 0 > /proc/sys/net/ipv4/ip_forward
        $IPTABLES -t nat -F
        $IPTABLES -F
        
        echo "Mode AP telah berhenti."
    ;;

    *)
        echo "Usage: $0 {start|stop}"
        exit 1
    ;;
esac

Nah, dengan script diatas setiap kali kita ingin menjalankan hostapd kita cukup memasukkan perintah $ /etc/rc.d/rc.hotspot start untuk menjalankannya dan option stop untuk menghentikannya.

— EOF —
MODE: RETRO● ONLINEPOWERED BY TANSTACK + MDX