Merubah WiFi Client menjadi Acces Point Router di PC dengan OS Ubuntu 10.04


Berselancar di dunia maya (internet) untuk saat ini sudah menjadi hal biasa sehari-harinya, bahkan ada sebagian orang yang menjadikannya sebagai menu utama hariannya. 1 hari saja tidak akses atau bermain di internet, bikin kepala mereka pusing. Sebagai pengguna umumnya, akses internet ini bisa didapatkan melalui modem (baik ADSL atau USB) yang terlebih dahulu berlanggananan dengan ISP atau melalui operator telekomunikasi untuk yang mobile. Selain itu juga kita bisa memanfaatkan fasilitas WiFi atau lebih dikenal dengan Hotspot ditempat-tempat umum dan kantor, tentunya yang dicari adalah free or gratis. Maklum demi penghematan pengeluaran, tapi kebutuhan tetap terpenuhi, asyik.

Beberapa waktu lalu, terlintas dipikiran ini bagaimana kalau kita ingin berbagi atau sharing internet dengan teman-teman lainnya. Tapi infrastrukturnya tidak ada (bahasa kerennya), seperti Access Point Router, switch hub, kabel UTP dan lain-lainnya. Yang ada hanya komputer laptop atau notebook, akhirnya kita berpikir bagaimana menjadikan WiFi Card di komputer saya menjadi Access Point Router bagi komputer teman-teman lainnya. Setelah melakukan berbagai trik dicoba, akhirnya dapat intisari yang pas untuk diterapkan di komputer saya, yang kebetulan operating system-nya adalah Ubuntu 10.04 LTS versi 4. Untuk yang versi Windows-nya akan dibahas di edisi berikutnya, maklum karena sebagian besar pengguna ditempat saya kerja rata-rata masih menggunakan Windows.

Tanpa basa-basi lagi, berikut ini tahapan yang harus dilakukan agar komputer laptop / notebook-nya menjadi Acces Point Router, yaitu :
1. Buka terminal, dan install hostapd dengan mengetikan perintah :
    sudo apt-get install hostapd

2. Setelah instalasi selesai, ubah konfigurasi hostapd dengan perintah :
    sudo nano /etc/hostapd/hostapd.conf

   Tambahkan perintah berikut ini pada baris paling bawah
   # Konfigurasi untuk Hotspot WiFi
 interface=wlan0
 driver=nl80211
 ssid=Free_Hotspot <bisa dirubah sesuai keinginan anda>
 hw_mode=g
 channel=1

  Jika ingin menambahkan password  pada  Access  Point  anda,  tambahkan  perintah  berikut  ini  pada baris selanjutnya :
 wpa=1
 wpa_passphrase=<password yang diinginkan>
 wpa_key_mgmt=WPA-PSK
 wpa_pairwise=TKIP CCMP
 wpa_ptk_rekey=600

3. Selanjutnya installasi paket dnsmasq, dengan perintah :
   sudo apt-get install dnsmasq

4. Kemudian buka file konfigurasi dnsmasq, untuk melakukan pengaturan IP Address WiFi Client-nya :
   sudo nano /etc/dnsmasq.conf
 
   Tambahkan perintah ini pada baris bagian paling bawah dari konfigurasi default dnsmasq, yaitu :
   interface=wlan0
 dhcp-range=net:wlan0,192.168.0.100,192.168.0.150,255.255.255.0,1440m
 dhcp-option=wlan0,3,192.168.0.1

   ( range ip address dianggap seperti ini, kalian bisa menentukannya sendiri )

5. Paket dnsmasq akan dijalankan secara otomatis pada saat proses booting. Hal ini akan menimbulkan masalah baru, jika kita sebelumnya sudah terkoneksi ke network yang sudah memiliki server dhcp. Untuk mencegah paket dnsmasq tidak otomatis dijalankan saat booting, perintah yang harus kita lakukan adalah :
   sudo update-rc.d -f dnsmasq remove

6. Langkah terakhir selanjutnya adalah kita membuat script untuk mengendalikan sharing internet melalui WiFi. Simpanlah script tersebut di /usr/bin. Ketikan perintahnya di terminal :
   sudo nano /usr/bin/ap_ctl

   Kemudian copy paste script berikut ini di editornya. File ini didapatkan dari sumber lainnya.

#!/bin/bash

# broadcasting interface
BROADCAST="wlan0"

# receiving interface broadcast is connected to
RECEIVE="ppp0"

if [[ $1 == "-0" || $1 == "--start" ]]
 then
 ## 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.0.1
 sleep 2

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

elif [[ $1 == "-1" || $1 == "--stop" ]]
 then
 # send signal 2 to hostapd and dhcpd3
 killall -2 hostapd  dnsmasq

elif [[ $1 == "-2" || $1 == "--ics" ]]
 then
 # create iptables rules
 iptables -A FORWARD -i $RECEIVE -o $BROADCAST -s 192.168.0.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

 # edit kernel configuration
 cp /etc/sysctl.conf /etc/sysctl.conf.ap_ctl
 echo "net.ipv4.conf.default.forwarding=1" >> /etc/sysctl.conf
 echo "net.ipv4.conf.all.forwarding=1" >> /etc/sysctl.conf

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

elif [[ $1 == "-3" || $1 == "--noics" ]]
 then
 # remove iptables rules
 iptables -D FORWARD 1
 iptables -D FORWARD 1

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

 # revert kernel configuration
 mv -i /etc/sysctl.conf.ap_ctl /etc/sysctl.conf

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

else
 echo $0
 echo "A tool to manage hostapd and dhcpd3"
 echo "Usage:"
 echo "    -0 --start    Start hostapd and dhcpd3"
 echo "    -1 --stop    Stop hostapd and dhcpd3 with signal 2"
 echo "    -2 --ics    Activate internet connection sharing"
 echo "            between specified interfaces"
 echo "    -3 --noics    Undo internet connection sharing settings"
fi

exit 0

Pada bagian RECEIVE dari script diatas, apabila kita menggunakan kabel LAN sebagai koneksinya, ubahlah nilainya menjadi "eth0". Jika kita menggunakan USB Modem sebagai koneksinya, ubahlah nilainya menjadi "ppp0". Kemudian tekan ctrl + x, lalu tekan tombol y untuk menutup dan menyimpannya.

7. Langkah selanjutnya adalah menjadikan script yang dibuat tadi bisa diakses atau istilahnya adalah executable. Perintah yang dituliskan di terminal adalah :
   sudo chmod +x /usr/bin/ap_ctl

8. Selanjutnya mari kita coba Access Point Router atau Hotspot / WiFi yang baru kita buat tadi dengan mengetikan perintah pada terminal :
   sudo ap_ctl --start
   sudo ap_ctl --ics

9. Kalau sudah puas bermain internet-nya, untuk memberhentikan WiFi kita ini adalah dengan mengetikan perintah :
   sudo ap_ctl --stop

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar: