Utak-Atik Linsys 160 NL

download Utak-Atik Linsys 160 NL

of 34

description

Utak-Atik Linsys 160 NL

Transcript of Utak-Atik Linsys 160 NL

  • Membuat HOTSPOT RT/RW Net dan Cafe Menggunakan WRT160NL

    dan Firmware DD-WRT dan Openwrt

    Description

    ini akan memungkin anda untuk mensetup jalur akses berdasarkan hotspot yang nantinya anda buat. Perpaduan Chillispot, Freeradius dan MySQL dapat menghasilkan HotSpot yang handal. Chillispot sebagai Authentifikasi, Freeradius untuk accounting, phpmyprepait sebagai billing HotSpot dan MySQL untuk databasenya.

    Pembahasan kali ini kita akan utak atik linksys wrt160nl, untuk membuat hotspot yang handal menggunakan DD-WRT dan OpenWRT, tidak hanya itu berbagi koneksi internet juga (Load Balancing) akan dijelas seperti koneksi internet menggunakan speedy dan TelkomselFlash untuk hotspot akan di bahas dibawah ini.

    Dukungan terhadap Firmware DD-WRT dan Openwrt membuat kita lebih kratif lagi dengan cara membuat sendiri firmwarenya. Dibawah ini saya akan menjelasakan membuat Bandwith Management (HTB) Sendiri dengan menggunakan Firmware Openwrt yang sudah di modifikasi.

    Nama : Fadly KasimAlamat : Jl. Baji Ateka II No 7 MakassarNo Tlp : 081543121415email : [email protected] : http://firstly.wordpress.comoccupation : Pengedar Linuxachievements : Tim Pustekkom, Member Linux Community, TIM Linux BlankOn, Create Medical Linux. Member Ubuntu https://launchpad.net/~fadly-kasim

  • Instalasi Freeradius, ChilliSpot dan phpmyprepait

    Perangkat yang dibutuhkan untuk membuat Hotspot sesuai gambar di bawah ini.

    Gambar 1 Configration Jaringan

    1. Hotspot Access Point devices, dalam hal ini saya menggunakan Linksys WRT160NL yang sebelumnya saya pernah menulis di blog saya menggunakan Linksys tipe WRT54GL (http://firstly.wordpress.com)

    2. Sebuah Komputer yang terinstal Linux Ubuntu 10.043. Komputer Server Radius yang terinstall LAMP-server dan Billing Hotspot4. Koneksi Internet, Menggunakan Speedy dan TelkomselFlash5. Script Load Balancing Untuk 2 Koneksi

    1. Instalasi DD-WRT pada WRT160NL dengan menggunakan firmware LinksysAnda perlu menginstal firmware DD-WRT, dapatkan versi yang saya gunakan saat menulis tutorial ini dari http://www.dd-wrt.com

    Gambar 3. Website-dd-wrt

    untuk melakukan Upgrade anda harus masuk ke Router WRT160NL via web-base ke http://192.168.1.1 untuk user dan password secara default masih menggunakan admin. Kemudian klik administrator dan klik Firmware Upgrade.

    Gambar 4. Upgrade firmware

    Selama proses upgrade berjalan jangan mengclose web browser, mematikan Linksys WRT160NL atau melepas kabel LAN dari komputer anda. Jika hal ini benar-benar terjadi maka anda akan di repotkan dengan melakukan Brick pada Linksys anda. Ini kemungkinan bisa berhasil lagi 50 %. setelah upgrade selesai di lakukan makan anda akan melihat pesan di tengah layar browser, kemudian tuutup

    Server RadiusBilling Hotspot

    AP WRT160NL

    Modem ADSL(Speedy)MODE HUAWEI

    TIPE E220

  • browser anda, tunggu sampai 60 detik kemudian buka web browser anda.

    Gambar 5. Upgrade successfull

    kemudian masukkan http://192.168.1.1 untuk melukan browser ke DD-WRT yang anda upgrade tadi. Anda sekarang berada pada halam status Administrator kemudian masukkan user name root dan password anda (new password), setelah selesai saya coba untuk melakukan telnet ke Linksys WRT160NL hasilnya seperti dibawah ini

    Gambar 6. Telnet ke DD-WRT

    Mengaktifkan Chillispot di DD-WRT

    sekarang kita perlu melakukan configurasi chillispot untuk authentifikasi seperti pada gambar 7, disini ada beberapa point penting dalam configurasi chillispot

    radiussecret, ini dibutukan untuk komunikasi antara radius server dan chillispotuamserver, dimana file hotspotlogin.cfg disimpan biasanya diletakkan di /var/www/cgi-bindhcpif, disesuikan dengan interface yang nantinya digunakan untuk client

    Gambar 7. Setingan Hotspot

  • untuk melihat hasil chillispot dari shell sebelum di configurasi yaitu :

    Gambar 8. Hasil chillispot wrt160nl

    sekarang kita akan melakukan configurasi untuk koneksi ke radius server, sebelum memulai langkah ini saya sarankan anda untuk melihat tulisan saya tentang cara membuat radius server dan phpmyprepaid (billing).

    contoh configurasi seperti dibawah ini

    Gambar 10. Configurasi Hotspot menggunakan ISP Speedy

    Saya asumsikan bahwa komputer PC 192.168.10.50 adalah komputer server yang terinstal freeradius ubuntu jika belum terinstall silahkan anda baca pada bagian Instalasi LAMP-server Ubuntu 10.04, kemudian koneksi internet menggunakan Telkom Speedy, dan Linsys WRT160NL sebagai AP. Selanjutnya kita akan konfigurasi hotspot pada WRT160NL dengan menggunakan chillispot sebagai authentikasi ke radius server secara default pada saat kita melakukan upgrade firmware ke DD-WRT maka linksys WRT160NL langsung di setting sebagai Access Point (AP) tinggal merubah SSID sesuai dengan keinginan anda.

    Buka web browser anda dan masukkan address http://192.168.10.229:8080 sebelumnya saya mengaktifkan webserver Linksys wrt160nl untuk bisa di akses dari port Internet dengan menggunakan port 8080, kemudian klik Servicess Hotspot aktifkan chillispot seperti pada gambar 11 dibawah ini

  • gambar 11. chillispot wrt160NL

    ada beberapa hal yang perlu di perhatikan dalam konfigurasi ini, yaitu

    DHCP Interface = ath0Remote Network = 192.168.182.0/24Primary Radius Server IP/DNS = 192.168.10.50Backup Radius Server IP/DNS = 192.168.10.50DNS IP = 202.134.1.10Redirect URL = https://192.168.10.50:/cgi-bin/hotspotlogin.cgi/Shared Key = testing123Radius NAS ID = irouterUAM Secret = theuamsecretUAM Allowed = 192.168.10.229,google.comMACauth = Diseble

    Keterangan :

    DHCP Interface, hal ini penting untuk memilih defaice yang terhubung oleh wireless Remote Network, untuk memberikan ip DCHP ke client yang nantinya akan terkoneksi ke Linksys 160NLPrimary Radius Server IP/DNS, Backup Radius Server IP/DNS, ini untuk alamat IP dari server radiusDNS IP, untuk dns server dari ISP dimana anda melakukan koneksi internetRedirect URL, URL dari server web yang digunakan untuk autentikasi client Shared Key, password untuk koneksi ke server radius Radius NAS ID, Radius Network access server identifierUAM Secret, password untuk chillispot yang nantinya akan terkoneksi dengan script hotspotlogin.cgiUAM Allowed, mengijinkan alamat IP atau segmen jaringan client tanpa harus melakukan authentifikasi

    setelah selesa save configurasi anda dan klik Apply Settings

    selanjutnya kita harus melakukan configurasi freeradius client untuk memberi akses ke WRT160NL Lihat tulisan saya tentang Intalasi freeradius, buka terminall anda kemudian tambahkan file berikut di bagian paling bawah

    #pico /etc/freeradius/clients.conf

    client 192.168.10.229 { secret = testing123 nastype = other ipaddr = 192.168.10.229

    }

    restart freeradius anda

    #/etc/init.d/freeradius restart

    sampai disni maka konfigurasi untuk hotspot pada WRT160NL telah selesai, selanjutnya kita akan membuat tapilan login dari settingan Redirect URL Hotspot Login.

  • Pembahasan ini berhubungan erat dengan settingan Apache SSL di pembahasan sebelumnya. Selahkan anda membaca setingan tersebut. Setelah semua selesai di configurasi makan kita akan membuat file hotspotlogin.cgi di /usr/lib/cgi-bin/

    #pico /usr/lib/cgi-bin/hotspotlogin.cgi

    isi dari file tersebut yaitu seperti dibawah ini :

    #!/usr/bin/perl $uamsecret = "theuamsecret"; $userpassword=1; $loginpath = "/cgi-bin/hotspotlogin.cgi"; use Digest::MD5 qw(md5 md5_hex md5_base64); $OK_CHARS='-a-zA-Z0-9_.@&=%!'; $_ = $input = ; s/[^$OK_CHARS]/_/go; $input = $_; $OK_CHARS='-a-zA-Z0-9_.@&=%!'; $_ = $query=$ENV{QUERY_STRING}; s/[^$OK_CHARS]/_/go; $query = $_; if (!($ENV{HTTPS} =~ /^on$/)) { print "Content-type: text/html\n\n KLiX HotSpot Login Failed KLiX HotSpot Login Failed Login must use encrypted connection. "; exit(0); } @array = split('&',$input); foreach $var ( @array ) { @array2 = split('=',$var); if ($array2[0] =~ /^UserName$/) { $username = $array2[1]; } if ($array2[0] =~ /^Password$/) { $password = $array2[1]; } if ($array2[0] =~ /^challenge$/) { $challenge = $array2[1]; } if ($array2[0] =~ /^button$/) { $button = $array2[1]; } if ($array2[0] =~ /^logout$/) { $logout = $array2[1]; } if ($array2[0] =~ /^prelogin$/) { $prelogin = $array2[1]; } if ($array2[0] =~ /^res$/) { $res = $array2[1]; } if ($array2[0] =~ /^uamip$/) { $uamip = $array2[1]; } if ($array2[0] =~ /^uamport$/) { $uamport = $array2[1]; } if ($array2[0] =~ /^userurl$/) { $userurl = $array2[1]; } if ($array2[0] =~ /^timeleft$/) { $timeleft = $array2[1]; } if ($array2[0] =~ /^redirurl$/) { $redirurl = $array2[1]; } } @array = split('&',$query); foreach $var ( @array ) { @array2 = split('=',$var); if ($array2[0] =~ /^res$/) { $res = $array2[1]; } if ($array2[0] =~ /^challenge$/) { $challenge = $array2[1]; } if ($array2[0] =~ /^uamip$/) { $uamip = $array2[1]; } if ($array2[0] =~ /^uamport$/) { $uamport = $array2[1]; } if ($array2[0] =~ /^reply$/) { $reply = $array2[1]; } if ($array2[0] =~ /^userurl$/) { $userurl = $array2[1]; } if ($array2[0] =~ /^timeleft$/) { $timeleft = $array2[1]; } if ($array2[0] =~ /^redirurl$/) { $redirurl = $array2[1]; } } $reply =~ s/\+/ /g; $reply =~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/seg; $userurldecode = $userurl; $userurldecode =~ s/\+/ /g; $userurldecode =~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/seg; $redirurldecode = $redirurl; $redirurldecode =~ s/\+/ /g; $redirurldecode =~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/seg; $password =~ s/\+/ /g; $password =~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/seg; # If attempt to login if ($button =~ /^Login$/) { $hexchal = pack "H32", $challenge; if (defined $uamsecret) {

  • $newchal = md5($hexchal, $uamsecret); } else {

    $newchal = $hexchal; } $response = md5_hex("\0", $password, $newchal); $pappassword = unpack "H32", ($password ^ $newchal); #sleep 5; print "Content-type: text/html\n\n"; print " KLiX HotSpot Login "; if ((defined $uamsecret) && defined($userpassword)) {

    print " "; } else {

    print " "; } print " "; print "Logging in to KLiX HotSpot"; print " Please wait...... "; exit(0); } $result = 0; # If login successful if ($res =~ /^success$/) { $result = 1; } # If login failed if ($res =~ /^failed$/) { $result = 2; } # If logout successful if ($res =~ /^logoff$/) { $result = 3; } # If tried to login while already logged in if ($res =~ /^already$/) { $result = 4; } if ($res =~ /^notyet$/) { $result = 5; } if ($res =~ /^smartclient$/) { $result = 6; } if ($res =~ /^popup1$/) { $result = 11; } if ($res =~ /^popup2$/) { $result = 12; } if ($res =~ /^popup3$/) { $result = 13; } if ($result == 0) { print "Content-type: text/html\n\n KLiX HotSpot Login Failed KLiX HotSpot Login Failed Login must be performed through KLiX HotSpot daemon. "; exit(0); }

  • print "Content-type: text/html\n\n KLiX HotSpot Login var blur = 0; var starttime = new Date(); var startclock = starttime.getTime(); var mytimeleft = 0; function doTime() { window.setTimeout( \"doTime()\", 1000 ); t = new Date(); time = Math.round((t.getTime() - starttime.getTime())/1000); if (mytimeleft) { time = mytimeleft - time; if (time
  • # }

    #print "THE INPUT: $input"; #foreach $key (sort (keys %ENV)) { # print $key, ' = ', $ENV{$key}, "\n"; #}

    if ($result == 2) { print " KLiX HotSpot Login Failed"; if ($reply) {

    print " $reply "; } }

    if ($result == 5) { print " KLiX HotSpot Login"; }

    if ($result == 2 || $result == 5) { print " Username: Password: "; }

    if ($result == 1) { print " Logged in to KLiX HotSpot";

    if ($reply) { print " $reply "; }

    print " Logout "; }

    if (($result == 4) || ($result == 12)) { print " Logged in to KLiX HotSpot Logout "; } if ($result == 11) { print "Logging in to KLiX HotSpot"; print " Please wait...... "; } if (($result == 3) || ($result == 13)) { print " Logged out from KLiX HotSpot Login "; } exit(0);

  • Setelah selesai kita akan melakukan testing koneksi ke AP Linksys 160NL dengan menggunaan wireless. Pada saat anda melakukan koneksi internet maka anda diminta untuk melakukan authentikasi SSL, dan kemudian akan tapil tapilan Login Dari ChilliSpot yang telah kita buat tadiTapilannya seperti pada gambar dibawah ini

    Gambar 12. tampilan Login Hotspot

    kemudian masukkan username dan password yang sudah di buat dari phpmyprepaid, setelah berhasil maka akan tapil tapilan seperti di bawah ini

    Gambar 13. Login Hotspot

    sampai disini maka selesai sudah konfigurasi HotSpot RT/RW Net

    Konfigurasi diatas menggukana Moden ADSL untuk koneksi ke internet, sekarang kita akan konfigurasi WRT160NL dengan menggunakan Modem Telkomsel Flash tipe HUAWEI E220 yang di colok pada port USB dari WRT160NL. Kemudian Server radius di colok ke Port LAN pada WRT160NL

    untuk konfigurasinya seperti pada gambar 14 dibawh ini

    Gambar 14. Configurasi jaringan Hotspot Menggunakan Telkomflash

    berikutnya kita akan mengaktifkan USB WRT160NL buka web browsing anda dan kitik alamat berikut http://192.168.10.229:8080 kemudian klik Services USB kemudian aktifkan seperti pada gambar dibawah ini

    AP WRT160 Server RadiusModem HUAWEI E220

  • Gambar 15. Enable USB Support

    setelah selesai tekan save, kemudian kita akan mengconfigurasi koneksi modem ke internet dengan menggukan Port USB, Klik Setup Basic Setup pada bagian ini kita akan memilih tipe koneksi 3G/UMTS seperti pada gambar dibawah ini

    Gambar 16. Setting 3G/UMTS

    untuk konfigurasi di atas (gambar 16), user name dan password saya kosongkan sedangkan APN saya isi dengan internet (disesuikan dengan modem anda) kedian di save. Setelah selesai di save sekarang kita akan setting IP interface LAN yang nantinya akan terhubung ke Server Radius seperti pada gambar dibawah ini

    Gambar 17. Setingan IP WAN

    ip lan saya masukkan 192.168.10.229 ip ini sebelumnya sudah terkoneksi ke radius, ini bembahasan lanjutan dari tulisan saya di atas. Setelah selesai di save dan klik Apply Settings

    setelah selesai makan Linksys WRT160NL akan melakukan reboot system dan selanjutnya koneksi ke TelkonFlash langsung terdetek. Anda bisa melakukan uji coba ke internet dan lagi-lagi tampilan login authentikasi dari chillispot akan tampil di komputer anda untuk mengkonfirmasi Username dan Password Login ke internet seperti pada gambar 14.

    untuk melihat status koneksi internet anda silahkan klik Status WAN jika sudah terkoneksi maka akan terlihat seperti pada gambar 18 di bawah ini

    Gambar 18. Status Koneksi 3G/UMTS Linksys WRT160NL

  • 2. WRT160NL dengan Firmware OpenWRT

    Setelah selesai mengkonfigurasi dengan menggunaan DD-WRT 160NL sekarang kita akan mengkonfigurasi WRT160NL menggunakan OpenWRT kita akan melakukan upgrade ke openwrt, tipe yang nantiya akan kita gunakan yaitu openwrt-ar71xx-wrt160nl-squashfs.bin anda bisa langsung mendownload dari openwrt.org, sedangkan untuk cara upgrade sama dengan langkah di atas lihat gambar 3.

    Setelah selesai di upgrade maka akan tampil seperti pada ambar dibawah ini

    Gambar 19 Login Openwr

    Kemudian masukkan password baru anda untuk bisa login ke openwr, ingat secara default bawaan openwrt belum terinstall paket wireless, untuk itu kita perlu mengintal paket-paket tersebut untuk bisa diaktifkan wirelessnya, sekarang pastikan linksys wrt160nl anda bisa terkoneksi ke internet, kemudian kita akan melakukan update paket dari repository openwrt, caranya klik Administrator Overview LuCI Components kemudian pada bagian Filter ada ketik kmod-ath9k, kemudian Find Packags pada bagian bawa akan tampil paket tersebut seperti terlihat pada gambar dibawah ini. Silahkan anda mengklik untuk melakukan instalasi paket

    Gambar 20 openwrt instalasi packages

    Setelah selesai selanjutnya kita akan mengintasll paket-paket tambahan yang lain sepert: wpad, wireless-tools, collectd-mod-madwifi, kmod-madwifi, ip. reboot linksys wrt160nl anda, pada bagian Network wifi, saudah ada nama interface yaitu RADIO0 sepeti pada gambar dibawah ini

  • Gambar 21. Wifi openwrt

    Sekarang anda harus mengaktifkan wifi tersebut dengan cara centang pada bagian enable dan save & apply. Pada saat di save lampu wifi pada linksys wrt160nl tidak berkedip untuk itu kita perlu mengaktifkannya, caranya pilih pada bagian System LED Configuration, kemudian klik Add Entry masukkan konfigurasi berikut

    LED Name = wifiLED Device = wrt160nl:blue:wlanDefault status = centangTrigger = Network DeviceDevice = wlan0Trigger mode = semuanya di centang

    Setelah selesai di save & Apply maka kelihatan bahwa lampu wifi sudah menyala (aktif)

    untuk membuat hotspot seperti pada bagian diatas anda tinggal menginstall paket chillispot, atau webif bawaan chillispot

  • Instalasi LAMP Server Ubuntu 10.04

    Setelah selesai melakukan installasi ubuntu 10.04 sekarang kita akan menginstall webserver di komputer tersebut.Untuk melakukan ini anda harus terkoneksi ke internet atau anda harus mempunya repository dari ubuntu 10.04, yang nantinya diperlukan untuk menginstall Aplikasi Billing HotSpot yaitu LAMP (Linux, Apache, MySQL, PHP) dan aplikasi tambahan seperti ChilliSpot, Freeradius, phpmyprepaid.Berikut langkah-langkah installasi webserver

    Klik Aplications Accessories terminal dan update paket anda.

    #sudo apt-get update

    setelah semua paket selesai di unduh maka kita sudah siap untuk melakukan installasi via terminal, para pengembang Ubuntu telah membuatnya mempermudah untuk menginstal paket LAMP server dengan perintah tunggal. Cukup ketikkan di terminal

    #sudo apt-get install lamp-server^

    NB, Harap dipastikan untuk menyertakan tanda sisipan (^). Perintah tidak akan berfungsi tanpa itu.

    Gambar 22. Instalasi Lamp-server

    Anda kemudian akan diminta untuk menggantikan password root pada database MySQL

    gambar 23. Configurasi password MySQL

    Masukkan password yang anda inginkan. Anda akan diminta memasukkan kedua kalinya untuk konfirmasi. Setelah anda mengkonfirmasi sandi Anda, cenderung akan terus menginstall seluruh paket. Setelah selesai mengintall seluruh paket, sekarang anda perlu mendapatkan beberapa hal untuk dikonfigurasi

  • agar membuat sistem anda bekerja dengan mudah.

    Tesiting PHP

    Sekarang kita akan menguji instalasi PHP. Harus buat sebuah file testing.php dan di letakkan di /var/www

    #sudo nano /var/www/testing.php

    masukkan baris berikut kedalan editor text, simpan file dan keluar.

    selanjutnya, restart Apache dengan perintah termainal sebagai berikut.

    #sudo /etc/init.d/apache2 restart

    sekarang kembali ke browser Anda dan masukkan alamat http://localhost/testing.php/. Anda akan melihat halaman yang menampilkan informasi versi untuk instalasi php Anda.

    Gambar 24. phpinfo

    Setup apache dan mengaktifkan SSL

    untuk mengaktifkan ssl kita harus pastikan nama hostname dari komputer

    #hostname -f

    untuk hostname komputer saya yaitu deluna-desktop

    buat direktori ssh di dalam folder /etc/apache2

    #mkdir -p /etc/apache2/ssl

    kemudian kita akan membuat sertifikasi dari SSL

    #make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

    isikan dengan hostname dari komputer anda pastikan tidak salah

    kemudian kita akan menambahkan modul mod_ssl ini adalah sebuah fitur dalam apache2 kemampuan untuk mengenkripsi, Jadi, ketika browser Anda berkomunikasi menggunakan enkripsi SSL, prefix yang digunakan pada awal Uniform Resource Locator (URL) pada panel navigasi browser., adalah https: / /

  • #sudo a2enmod ssl

    Kemudian reload apache

    #/etc/init.d/apache2 force-reload

    Buat virtual host

    Buat file VirtualHost sehingga terlihat seperti dibawah ini

    #pico /etc/apache2/sites-available/hotspot

    ServerAdmin webmaster@localhost DocumentRoot /var/www

    Options FollowSymLinks AllowOverride None

    Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all

    ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/ssl_access.log combined Alias /doc/ "/usr/share/doc/"

    Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128

    SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    SSLOptions +StdEnvVars

    SSLOptions +StdEnvVars BrowserMatch ".*MSIE.*" \

    nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

    Selanjut mengenabel ssl hotspot

    #sudo a2ensite hotspot

    kemudian restart apache2

    #/etc/init.d/apache2 reload

  • Configurasi MySQL

    Karena saya menginstall LAMP untuk lingkungan pengembang web, saya ingin database MySQL untuk diikutkan ke alamat IP localhost. Ini harus 127.0.0.1 untuk sistem anda, Anda dapat memastikannya dengan perintah ini di trerminal

    #cat /etc/hosts | grep localhost

    sekarang kita akan memastikan bahwa alamat yang benar mengikuti file my.cnf MySQL.

    #cat /etc/mysql/my.cnf | grep bind-address

    anda akan melihat baris seperti ini :

    bind-address = 127.0.0.1

    jika alamat IP tidak cocok dengan sistem anda, anda perlu mengedit file my.cf untuk memperbaikinya.

    Instalasi phpMyAdmin

    Anda tidak perlu mengintasl phpMyAdmin, jika anda yakin bisa menggukan MySQL dari terminal, tapi cara yang mudah untuk masuk ke dalam database MySQL anda jika anda tidak terbiasa dengan perintah-perintah MySQL. Anda dapat mengintal phpMyAdmin dari baris perintah dibawah ini.

    #sudo apt-get install libapache2-mod-auth-mysql phpmyadmin

    kemudian instalasi akan meminta anda untuk memilih server web yang kita gunakan (apache2) untuk di konfigurasi secara otomatis, hal ini penting untuk memilih apache2 dan tekan

    Gambar 25. phpmyadmin-setup

    pada gambar 26, akan menjelaskan beberapa informasi tentang konfigurasi database. Menekan tombol untuk melanjutkan

  • Gambar 26 phpmyadmin-setup2

    berikutnya anda akan diminta untuk memasukkan password root MySQL yang anda buat sebelumnya sebanyak 2x.

    Instalasi dan konfigurasi phpMyAdmin sekarang sudah selesai. Untuk menguji buka browser web anda dan masukkan alamat http://localhost/phpmyadmin/ anda akan melihat halaman seperti ini.

    Gambar 27. Login phpmyadmin

    anda dapat login dengan username root dan password root yang anda buat sebelumnya

    Gambar 28. Tampilan PHPmyAdmi

    Selamat sekarang anda siap untuk membangun billing hotspot anda. Jika anda bekerja di satu site anda bisa menyimpan semua file direktori root dari apache2 anda ke /var/www. Jika anda akan bekerja pada beberapa site anda mungkin ingin mempertimbangkan beberapa konfigurasi Apache tambahan untuk menjaga hal-hal yang tidak di inginkan.

    Instalasi phpmyprepaid

    karena apache memerlukan penyebutan server name maka kita perlu mengkonfigurasi apache2.conf dan mengaktifkan extension mysql.so di php.ini

  • edit file /etc/apache2/apache2.conf untuk melaukan editing disesuaikan dengan editor yang kalian pahami ada beberapa text editor bawaan linux seperti pico, vi, dan gedit

    #pico /etc/apache2/apache2.conf

    tambahkan perintah ServerName 127.0.0.1 paling akhir kemudian seve

    kemudian kita akan mengaktifkan modul mysql.so yang sebelumnya tidak di aktifkan, edit file php.ini

    #pico /etc/php5/apache2/php.ini

    cari tulisan dibawah ini, (baris 932)

    ; extension=msql.so

    kemudian kita hapus tanda titik koma dan msql.so di ganti menjadi mysql.so

    extension=mysql.so

    selanjutnya cari file post_max_size (baris 728) kemudian kita edit menjadi

    post_max_size = 32M

    setelah selesai restart apache2 caranya ketik perintah

    #/etc/init.d/apache2 restart

    Kemudian download phpmyprepaid di http://sourceforge.net/projects/phpmyprepaid/files/ pada saat saya menulis artikel ini saya mendownload versi terbaru dari phpmyprepaid http://biznetnetworks.dl.sourceforge.net/project/phpmyprepaid/phpmyprepaid/Phpmyprepaid-RC3/phpmyprepaidRC3.tgz

    kemudian lakukan extract file ke direktori /var/ww

    #tar -zxvf phpmyprepaidRC3.tgz -C /var/ww

    kemudian memberi permesion file untuk melakukan instalasi lakukan perintah dibawah ini

    #chmod 777 -R /var/www/phpmyprepaid

    sekarang kita akan membuat database untuk phpmyprepaid agar bisa terkoneksi dengan radius.

    #mysql -uroot -p

    mysql> create database radius; Query OK, mysql>exit;

    Setelah semua selesai buka web browser anda dan arahkan addressnya ke http://localhost/phpmyprepaid/www untuk melakukan instalasi phpmyprepaid

    Gambar 29. welcome phpmyprepaid-RC3

  • Anda akan di hadapkan dengan tapilan setup 1. Welcome to PhpMyPrepaid Setup ini adalah bagian pertama dari 11 langka instalasi. Kemudian lanjutkan instalasi dengan mengklik Start

    Gambar 30. phpmyprepaid Licence

    Bagian ke dua adalah membahas masalah lisensi dari phpmyprepaid jika anda setuju dengan persetujuan yang ada maka centang I Accept

    Gambar 31. phpmyprepaid verifying

    pada Gambar 31, yaitu phpmyadmin akan mengecek componen pendukung untuk melakukan instalasi jika semua berhasil maka pada bagian status akan berubah warna menjadi hijau, untuk langkah ke empat yaitu bagian configurasi letak file

  • Gambar 32. phpmyprepaid Configurasi

    pada bagian ini harus di perhatikan letak file dari instalasi sebelumnya configurasi yang benar adalah sebagai berikut :

    Phpmyprepaid path : /var/www/phpmyprepaidCron direktory path : /usr/cron.d/Cron bin : cronApache site path : /etc/apache2/site-enabled/Apache bin : apache2Apache ssl path : /etc/apache2/ssl/RRDTOOL binary path : /usr/bin/rrdtoolSudo binary path : /usr/bin/sudoSystem log file path : /var/log/messagesRadclient command : /usr/bin/radclientMySQL client commmand : /usr/bin/mysqlsnmpwalk command : /usr/bin/snmpwalksnmpget command : /usr/bin/snmpget

    gambar 33. phpmyprepaid radius config

    secara default tidak ada yang berubah pada gambar 33 (disesuikan dengan distro anda) kecuali FreeRADIUS start/stop/restart/status script defaultnya /etc/init.d/radiusd di rubah menjadi /etc/init.d/freradius dan kemudian

  • pilih FreeRADIUS version. Pilih 2 x

    Gambar 34. phpmyprepaid user interface

    Gambar 35. phpmyprepaid database config

    Gambar 36 phpmyprepaid database done

    gambar 37. phpmyprepaid setup locasi

  • gambar phpmyprepaid general config

    Gambar 38. phpmyprepaid Finished

    setelah phpmyprepaid berhasil di install seperti pada gambar 38, sekarang anda harus mengubah hak akses file 755 di direktori phpmyprepaid kemudian menghapus direktori /var/www/phpmyprepaid/www/install/

    #chmod 755 -R /var/www/phpmyprepaid/www#rm -rf /var/www/phpmyprepaid/www/install/

    kemudian buka web browser anda dan masukkan address berikut http://localhost/phpmyprepaid/www

    Gambar 39. phpmyprepaid-login

    masukkan user dan password yang sebelumnya anda buat seperti pada gambar 35. setelah berhasi maka akan tampil seperti pada gambar 40

  • Gambar 40. Tampilan phpmyprepaid

    selamat anda berhasil melakukan instalasi, untuk membuat vocer akan di bahas pada bagian tersendiri. Selanjutnya kita akan menginstall freeradius

    Instalasi freeradius

    #apt-get install vim php5 php5-cli php-pear php-db freeradius freeradius-mysql freeradius-utils

    setelah selesai instalasi freeradius maka file configurasinya ada di /etc/freeradius. Ada beberapa file yang nantinya kita akan configurasi untuk bisa terkoneksi dengan MySQL dan database dari phpmyprepaid (billing hotspot)

    Seting freeradius

    edit file /etc/freeradius/clients.conf ini akan membuat komunikasi dengan chillispot yang ada di WRT160NL#pico /etc/freeradius/clients.conf

    client localhost {ipaddr = 127.0.0.1secret = testing123nastype = other}

    berikutnya edit file sql.conf, karena kita akan menggunakan databa MySql sebagai database user authentic maka ada beberapa poin yang harus di konfigurasi

    sql {database = "mysql" // modul yang digunakan untuk koneksi ke server mysqldriver = "rlm_sql_${database}" // modul yang digunakan untuk koneksi ke databaseserver = "localhost" //server mysql beradaport = 3306 // port mysql yang kita gunakanlogin = "root" // login akses ke mysql password = "" // password untuk koneksi ke databaseradius_db = "radius" // database-nama dimana user radius berada

    kemudian edit file radiusd.conf yang perlu di rubah yaitu mengaktifan modul sql dan conter

    #pico /etc/freeradius/radiusd.conf

    cari file di bawah ini dan rubah denan menghilangkan tanda

    modules {

    $INCLUDE ${confdir}/modules/

  • $INCLUDE eap.conf$INCLUDE sql.conf$INCLUDE sql/mysql/counter.conf}

    instantiate {execexprexpiration logintime}

    setelah selesai save configurasi sekarang kita akan menconfigurasi file /etc/freeradius/sites-available/default, caranya sama dengan yang di atas menghilangkan tanda #, ini hanya penambahan noresetcounter untuk perhitungan jam billing pada saat melakukan login

    #pico /etc/freeradius/sites-available/default

    authorize { preprocess chapmschapsuffix eapsqlnoresetcounter }

    authenticate {Auth-Type PAP{ pap }Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap }unixeap}

    Setelah selesai simpan file configurasi dan sekarang kita akan melakukan testing kones antara freeradius dan phpmyprepaid.pertama-tama buat 1 vocer di phpmyprepaid caranya klik create accounts Timed Accounts kemudian jawab pertannyaan di bawah iniHow many tickets would you like to create? Isikan dengan angka 1 Select your Billing plan? Pilih 30 menitsetelah selesai pilih CREATE CARDSakan tampil seperti pada gambar di bawah ini.

    Gambar 41. phpmyprepaid create vocer

  • kemudian jalankan freeradius

    #freeradius -X

    sampai tampil seperti pada gambar dibawah ini

    gambar 42. freeradius -X

    Untuk pengujian kita akan menggukan perintah radtest contoh

    #radtest pcxbcs skd 127.0.0.1 1812 testing123

    pcxbcs = usernameskd = password127.0.0.1 = localhost (sesuaikan dengan konfigurasi)1812 = port radiustesting123 = secret freeradius (sesuaikan dengan konfigurasi)

    untuk tampilan di atas akan tampil seperti pada gambar dibawah ini

    gambar 43. radtest berhasil

    Jika berhasil maka akan tampil seperti pada gambar 43

    rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=156, length=26 Session-Timeout = 1800

    dan hasil dari log freeradius seperti pada gambar berikut ini

  • Gambar 44 log radius

    Setelah selesai instalasi dan configurasi freeradius sekarang kita akan configurasi networking dari komputer tersebut. Berikut hasil capture interface di komputer deluna

    Gambar 45. hasil interface

    Saya asumsikan bahwa interface eth0 (internet) dan eth1 (AP) linksys WRT160NL, untuk configurasi ip static kita harus mengedit file /etc/network/interfaces

    #pico /etc/network/interfacesauto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.10.50 netmask 255.255.255.0 gateway 192.168.10.1 auto eth1 iface eth1 inet static address 192.168.1.254 netmask 255.255.255.0

    kemudian tambahkan dns server di /etc/resolv.confnameserver 202.134.1.10 (disesuikan dengan dns anda)nameserver 202.134.0.155 (disesuikan dengan dns anda)

    sekarang restart networing anda#/etc/init.d/networking restart

    kemudian kita akan mengkonfigurasi ip forwaring caranyaedit file dibawah ini

  • #pico /etc/sysctl.conf

    cari file

    #net.ipv4.ip_forward=1

    hilangkan tanda kemudian save dan keluar

    Configurasi tambahanberikut ini adalah Konfigurasi firewall jika anda melakukan NAT pada PC anda untuk koneksi ke internet

    hapus konfigurasi firewall

    iptables -A INPUT -j ACCEPTiptables -A OUTPUT -j ACCEPTiptables -A FORWARD -j ACCEPTiptables -Fhapus konfigurasi NAT firewaliptables -t nat -Fiptables -t nat -A POSTROUTING -s 192.168.182.0/24 -j MASQUERADElannvram set lan_ipaddr=192.168.0.1nvram set lan_gateway=192.168.0.1nvram set lan_proto=static // untuk mematikan dhcp server yang ada di 160nldi asumsukan bahwa

    Pengecekan pada saat usb belum di aktifkan

    root@DD-WRT:/etc# nvram show |grep usb usb_automnt=0 size: 19863 bytes (45673 left) usb_ohci=0 usb_storage=0 usb_mntpoint=mnt usb_runonmount= usb_fs_ext3=0 usb_printer=0 usb_usb2=0 usb_fs_fat=0 usb_uhci=0 usb_enable=0

    pengecekan pada saatusb aktif

    root@DD-WRT:/etc# nvram show |grep usb size: 19900 bytes (45636 left) usb_automnt=1 usb_ohci=1 usb_storage=1 usb_mntpoint=mnt usb_runonmount= usb_fs_ext3=1 usb_printer=1 usb_usb2=1 usb_fs_fat=1 usb_uhci=1 usb_enable=1

    root@DD-WRT:~# nvram show |grep usb usb_automnt=0 usb_ohci=1 usb_storage=0 3gdata=/dev/usb/tts/0 usb_mntpoint=mnt usb_runonmount= usb_fs_ext3=0 usb_printer=0

  • usb_usb2=1 usb_fs_fat=0 usb_uhci=1 size: 22815 bytes (42721 left) usb_enable=1 root@DD-WRT:~#

    secara default jffs2 tidak aktif untuk mengaktifkan bisa menggunaan perintah

    root@DD-WRT:/tmp# nvram show |grep jf enable_jffs2=0 sys_enable_jffs2=0 clean_jffs2=0 size: 19925 bytes (45611 left) dhcpd_usejffs=0

    jika di akatifkan maka akan tampil seperti pada baris dibawah ini

    root@DD-WRT:/tmp# nvram show |grep jf size: 19936 bytes (45600 left) enable_jffs2=1 sys_enable_jffs2=0 clean_jffs2=1 dhcpd_usejffs=0

    Brick linksys configurasiini sangat perlu jika terjadi Brick pada linksys wrt160nl

    root@fadly-laptop:/media/data/Linsys# tftp 192.168.1.1 tftp> mode binary tftp> put openwrt-ar71xx-wrt160nl-squashfs.bin Sent 2621472 bytes in 11.4 seconds tftp>

    daftar paket openwrt pada linksys wrt160nl untuk mengkatifkan wifi dan modem 3G/HSDPA

    root@OpenWrt:~# opkg list-installed base-files - 42-r20728 busybox - 1.15.3-2 ccid - 1.3.11-2 chat - 2.4.4-5 chillispot - 1.1.0-3 collectd - 4.9.1-1 collectd-mod-madwifi - 4.9.1-1 comgt - 0.32-1 crda - 1.1.0-2 dnsmasq - 2.52-2 dropbear - 0.52-4 fdisk - 2.13.0.1-4 firewall - 1-10 haserl - 0.9.26-1 hotplug2 - 1.0-beta-1 ip - 2.6.29-1-2 iptables - 1.4.6-2 iptables-mod-conntrack - 1.4.6-2 iptables-mod-nat - 1.4.6-2 iw - 0.9.19-1 kernel - 2.6.32.10-1 kmod-ath - 2.6.32.10+2010-03-24-5 kmod-ath9k - 2.6.32.10+2010-03-24-5 kmod-button-hotplug - 2.6.32.10-1 kmod-cfg80211 - 2.6.32.10+2010-03-24-5 kmod-crc-ccitt - 2.6.32.10-1 kmod-crypto-aes - 2.6.32.10-1

  • kmod-crypto-arc4 - 2.6.32.10-1 kmod-crypto-core - 2.6.32.10-1 kmod-fs-autofs4 - 2.6.32.10-1 kmod-fs-msdos - 2.6.32.10-1 kmod-fs-ntfs - 2.6.32.10-1 kmod-fs-vfat - 2.6.32.10-1 kmod-fuse - 2.6.32.10-1 kmod-ide-core - 2.6.32.10-1 kmod-input-core - 2.6.32.10-1 kmod-input-gpio-buttons - 2.6.32.10-1 kmod-input-polldev - 2.6.32.10-1 kmod-ipt-conntrack - 2.6.32.10-1 kmod-ipt-core - 2.6.32.10-1 kmod-ipt-nat - 2.6.32.10-1 kmod-ipt-nathelper - 2.6.32.10-1 kmod-leds-gpio - 2.6.32.10-1 kmod-mac80211 - 2.6.32.10+2010-03-24-5 kmod-madwifi - 2.6.32.10+r3314-4 kmod-mmc - 2.6.32.10-1 kmod-nls-base - 2.6.32.10-1 kmod-p54-common - 2.6.32.10+2010-03-24-5 kmod-p54-usb - 2.6.32.10+2010-03-24-5 kmod-ppp - 2.6.32.10-1 kmod-pppoe - 2.6.32.10-1 kmod-scsi-core - 2.6.32.10-1 kmod-tun - 2.6.32.10-1 kmod-usb-core - 2.6.32.10-1 kmod-usb-serial - 2.6.32.10-1 kmod-usb-serial-option - 2.6.32.10-1 kmod-usb-storage - 2.6.32.10-1 kmod-usb-uhci - 2.6.32.10-1 kmod-usb2 - 2.6.32.10-1 libc - 0.9.30.1-42 libcyassl - 1.4.0-2 libfuse - 2.8.3-1 libgcc - 4.3.3+cs-42 libiptc - 1.4.6-2 liblua - 5.1.4-6 libnl-tiny - 0.1-1 libpcap - 1.0.0-2 libpcre - 8.02-1 libpcsclite - 1.5.5-3 libpthread - 0.9.30.1-42 librt - 0.9.30.1-42 libuci - 12012009.5-1 libuci-lua - 12012009.5-1 libusb - 0.1.12-2 libxtables - 1.4.6-2 lua - 5.1.4-6 mountd - 0.1-1 mtd - 12 ntfs-3g - 2010.1.16-3-fuseint opkg - 513-2 ppp - 2.4.4-5 ppp-mod-pppoe - 2.4.4-5 px5g - 1 remotefs - 854-1 swconfig - 5 uci - 12012009.5-1 uclibcxx - 0.2.2-2 udevtrigger - 106-1 uhttpd - 7 uhttpd-mod-tls - 7 webif - 0.3-4895 webif-applications - 0.1-1 wireless-tools - 29-4 wpad-mini - 20100309-1

  • zlib - 1.2.3-5

    Bandwith management

    secara default biling hotspot yang kita buat sudan diikutkan dengan bandwith Limiter. Jika anda paham tentang linux anda bisa mengkatifkan limiter sesuai dengan script yang saya buat di bawah ini dan silahkan anda kembangkan dengan sendirinya

    pertama-tama buat direktori htbkemudian di dalam direktori htb ada file htb, htb.conf, user

    isi dari file htb seperti dibawh ini

    ###################################################################################### Jangan lupa mengedit /etc/htb/htb.conf#######################################################################################. /etc/htb/htb.confcd $lokasi

    case $1 in

    jalankan)cd $lokasi

    ########################## Tambahan untuk IFB ##########################modprobe ifbip link set ifb0 uptc qdisc add dev eth1 ingresstc filter add dev eth1 parent ffff: protocol ip prio 10 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0########################

    $echo /usr/sbin/iptables -t mangle -F$echo /usr/sbin/iptables -F FORWARD

    ## Berhitunglet TotalPelanggan=`awk '{total += $2} END {print total}' pelanggan-aktif`echo TotalPelanggan=$TotalPelangganecho ""JumlahPelanggan=`wc -l pelanggan-aktif |awk '{print $1}'`echo JumlahPelanggan=$JumlahPelangganecho ""

    for Link in $Devicedo let BandwidthTersedia=$[$Link$Max]

    if (($[$Link$type]==1))then naik=dst turun=src portnaik=sport portturun=dport echo satuelif (($[$Link$type]==2))then naik=src turun=dst portnaik=dport portturun=sport echo duaelse exit "Salah ketik. Link type harus diisi angka 1 atau 2"fi

  • Rasio=`echo "scale=3 ; $TotalPelanggan / $[$Link$Max]" | bc` echo "Mengerjakan $Link sebesar $BandwidthTersedia Kbps"## Pembentukan kelas parent$echo /usr/sbin/tc qdisc add dev $Link root handle 1: htb default 99 r2q 1

    ## Pembentukan kelas default $echo /usr/sbin/tc class add dev $Link parent 1: classid 1:99 htb rate 90Mbit$echo /usr/sbin/tc qdisc add dev $Link parent 1:99 handle 99: pfifo limit 3

    ## Pembentukan kelas parent Utama$echo /usr/sbin/tc class add dev $Link parent 1: classid 1:1 htb rate $[$Link$Max]$kbit burst 64Kbit

    ## Pembentukan kelas unlimit #$echo /usr/sbin/tc class add dev $Link parent 1: classid 1:2 htb rate 10Mbit burst 64Kbit#$echo /usr/sbin/tc filter add dev $Link protocol ip parent 1:0 prio 1 u32 match ip dst $MyIP match ip dport 22 0xffff flowid 1:2#$echo /usr/sbin/tc filter add dev $Link protocol ip parent 1:0 prio 1 u32 match ip src $MyIP match ip dport 22 0xffff flowid 1:2#$echo /usr/sbin/tc filter add dev $Link protocol ip parent 1:0 prio 1 u32 match ip dst $MyIP match ip protocol 1 0xff flowid 1:2#$echo /usr/sbin/tc filter add dev $Link protocol ip parent 1:0 prio 1 u32 match ip src $MyIP match ip protocol 1 0xff flowid 1:2

    for (( pelanggan=1 ; pelanggan

  • do $echo /usr/sbin/tc qdisc add dev $Link parent 1:$ClassID$kelas handle $ClassID$kelas: sfq done # Pembentukan Filter for (( ip=4 ; ip
  • ;;

    *)echo salah pencetecho yang benarecho $0 startecho $0 stopecho $0 test;;

    esac

    ini file htb.conf adalah :

    ## Lokasi data pelanggan dan direktori kerja#lokasi=/etc/htb#

    ## List semua link yang adaDevice="eth1 ifb0"## Bandwdidth tiap link# Nama link, akhiri dengan kata Max#ifb0Max=4700eth1Max=4700## Tipe tiap link (1=uplink, 2=downlink)#ifb0type=2eth1type=1### Prioritas pelangganPrioDown="53"PrioUp="53"

    ## Parameter di bawah ini jangan diubah#bit=bit # Jangan diubahkbit=Kbit # Jangan diubahk=k # Jangan diubahDev=DevMax=Maxtype=typeMyIP=192.168.10.229

    untuk file user, silahkan anda masukan nama dan network dari nama pelanggan contoh

    fadly 192.168.182.5

    Sekian dan terima kasih

    Salam,Fadly Kasim