31
Mar
12

Membangun Hotspot + DHCP Server

Assalamu Alaikum Wr.Wb
Ditutorial kali ini saya akan mencoba membangun sebuah hotspot sendiri di Linux dengan Mesin Slackwareku dikarenakan kebutuhan akan jaringan Wireless semakin meningkat. Hotspot yang saya bangun ini sangatlah simple karena tidak menggunakan user database.
Untuk aplikasi Hotspotnya saya menggunakan Hostapd (dapat dicari di slackbuild.org) dan DHCPD untuk DHCP Servernya
Ok langsung saja, siapkan alat dan bahan :D
1. Kopi Cappucino + Sampoerna. :D hahahahaha
2. Silahkan Download dulu aplikasi Hostapd di disini, kemudian installnya aplikasinya

root@th3w1tch#installpkg hostapd-0610-i486-1_SBo.tgz

3. Konfigurasi Hostapd
Edit file /etc/hostapd/hostapd.conf, saya menggunakan konfigurasi sebagai berikut, sesuaikan keinginan anda :

interface=wlan0
driver=nl80211
ssid=coconut
country_code=ID
hw_mode=g
channel=1
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=coconut123
wpa_pairwise=TKIP
rsn_pairwise=CCMP

4. Konfigurasi DHCP Server
Edit file /etc/dhcpd.conf, saya menggunakan konfigurasi sebagai berikut: sesuaikan DNS dan IP yang anda gunakan.

# dhcpd.conf
#
# Configuration file for ISC dhcpd (see ‘man dhcpd.conf’)
#
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none; ddns-updates off;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.200 192.168.0.229;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}

4. Membuat Program Bash, untuk start dan stop Hotspot service.

root@th3w1tch:~#nano /etc/rc.d/rc.hotspot

#!/bin/sh
IPTABLES=/usr/sbin/iptables
IFCONFIG=/sbin/ifconfig
DHCPD=/usr/sbin/dhcpd
HOSTAPD=/usr/sbin/hostapd

intwlan0=wlan0
internet=ppp0
ip=192.168.0.1

case "$1" in
start)
echo "Starting $intwlan0 at ip address $ip"
echo 0 > /proc/sys/net/ipv4/ip_forward
killall hostapd
killall dhcpd
$IPTABLES -t nat -A POSTROUTING -o $internet -j MASQUERADE
$IPTABLES -A FORWARD -i $internet -o $intwlan0 -m state \
–state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -i $intwlan0 -o $internet -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
$IFCONFIG $intwlan0 down
$IFCONFIG $intwlan0 up
$IFCONFIG $intwlan0 $ip
if [ ! -f /var/state/dhcp/dhcpd.leases ]; then
touch /var/state/dhcp/dhcpd.leases
fi
$DHCPD -cf /etc/dhcpd.conf $intwlan0
$HOSTAPD -B -P /var/run/hostapd.pid /etc/hostapd/hostapd.conf
;;
stop)
echo "Stopping $intwlan0"
kill -INT $(cat /var/run/hostapd.pid)
kill -INT $(cat /var/run/dhcpd.pid)
iptables -F
iptables -Z
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

Perhatikan Kode diatas, sesuaikan interface yang terkoneksi internet, saya menngunakan interface ppp0

5. Rubah Permision File yang kita buat, kemudian jalankan

root@th3w1tch:~#chmod +x /etc/rc.d/rc.hotspot

root@th3w1tch:~#/etc/rc.d/rc.hotspot start

6. Silahkan Scan wirelesnya ke komputer Client. dan silahkan berhotspot ria
– Jika ingin Hotspotnya aktif setiap Komputer boot :
edit file /etc/rc.d/rc.local, tambahkan baris ini :

if [ -x /etc/rc.d/rc.hotspot ]; then
/etc/rc.d/rc.hotspot start
fi

- Jika anda ingin membuat sebuah halaman Login hotspot dengan user database, mainkan IPTABLES nya :
Redirect Semua paket melalui port 80 menuju webserver lokal

root@th3w1tch:~#iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp -m tcp –dport 80 -j REDIRECT –to-port 80

Pada webserver diletakkan halaman login untuk user WLAN, setelah user melakukan login, lakukan INSERT pada tabel FORWARD dan PREROUTING. Perintah ini bisa dilakukan oleh eksekusi php dan perl dalam lingkungan shell dari webserver. Misalkan buat shell script seperti berikut untuk membuka ip agar bisa berinternet.

#!/bin/bash
# file buka.sh
iptables -A FORWARD -s $1 -i wlan0 -o ppp0 -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -s 0.0.0.0/0 -i ppp0 -o wlan0 -d $1 -j ACCEPT
iptables -t nat -I PREROUTING -s $1 -p tcp -m tcp –dport 80 -d 0/0 -j RETURN

Sedangkan untuk menutup ip agar tidak bisa berinternet kita buat shell script seperti berikut:

#!/bin/bash
# file tutup.sh
iptables -A FORWARD -s $1 -i wlan0 -o ppp0 -d 0.0.0.0/0 -j ACCEPT
iptables -A FORWARD -s 0.0.0.0/0 -i ppp0 -o wlan0 -d $1 -j ACCEPT
iptables -t nat -D PREROUTING -s $1 -p tcp -m tcp –dport 80 -d 0/0 -j RETURN

Pastikan webserver utama adalah script login untuk pengguna hotspot tersebut.
Contoh penggunaan buka.sh dan tutup.sh, misalkan pada pengguna hotspot diberi IP 192.168.0.202 maka, setelah pengguna melakukan login, otomatis akan mengeksekusi perintah:
/path/buka.sh 192.168.0.202

Setelah selesai dan ingin menutup koneksi dari pengguna gunakan eksekusi tutup.sh
/path/tutup.sh 192.168.0.202

Silahkan Bereksperimen
Sekian dan Terima Kasih, Mudah-mudahan dapar bermanfaat. Mohon Maaf jika ada kesalahan. Silahkan Kritik dan Sarannya :

Referensi http://th3w1tch.wordpress.com/

About these ads

0 Responses to “Membangun Hotspot + DHCP Server”



  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.

%d bloggers like this: