Saturday, November 7, 2009

Antara Aku, Mikrotik dan EasyHotspot(FreeRadius). Hehehehe...

Berawal dari kata "Bismillah". Bismillah yang artinya dengan menyebut nama allah dalam mengawali setiap kegiatan, termasuk menulis blog. hehehe...
Oke yang akan ku angkat dalam tulisan kali ini tidak terlalu jauh dari postingan sebelumnya yang banyak mengangkat mikrotik dan radius, Yaitu bagaimana jika kita ingin menggunakan service keduanya. Istilahnya adalah "menduet-maut" kan antara si mikrotik dan radius dari linux (FreeRadius).
Nah kira-kira apa sih manfaat jika kita menggabungkan atau mengkolaborasikan antara si mikrotik dengan FreeRadius si linux? Secara kan di mikrotik dah ada radiusnya?
Menurut-ku, ketika kita menggunakan radiusnya si mikrotik untuk keperluan yang luas (dalam arti perlu costomize dalam penggunaan) maka si mikrotik kurang terbuka. Karena kita sudah tidak bisa mengubah dalam hal accountingnya. Misal, di mikrotik cuma ada sistem pembayaran untuk prepaid atau model voucher, nah kalo misal kita pengen yang postpaid (bayar di belakang) maka tidak tersedia feature seperti itu di mikrotik.
Nah tujuan kita menggunakan FreeRadius adalah agar kita banyak bisa improvisasi di sana. Model pembayaran bisa dilakukan 2 cara, pre dan post paid, bahkan mekanisme nota dan lain sebagainya bisa ditambahkan di sini. Jadi intinya jika kita menggunakan jasa FreeRadius, akan banyak improvisasi terhadap sistem dan akan semakin bisa menyesuaikan dengan keinginan dari si mimin a.k.a admin.

Di sini untuk percobaan saya menggunakan EasyHotspot sebagai bahan percobaan. Karena Radius dkk sudah terinstall disini.
oke, itu mungkin sedikit tentang manfaat dari penggunaan 2 buah server dalam ber'hotspot ria.
----------------------------------------------------------------------------------
langsung saja kita masuk ke tata cara pembuatan.

Pertama adalah bahwa nantinya kita harus menggunakan 2 komputer server. 1 untuk mikrotik dan sisanya adalah untuk FreeRadius. Disini aku ga bahas bagaimana cara membuat masing2 servernya, aku berasumsi bahwa semua server sudah terconfig dan tinggal integrasi.
Ada dua tahap yang akan kita lakukan, langkah "sederhana" untuk si mikrotik dan langkah "agak sederhana" untuk radius.



Langkah "Sederhana" untuk Mikrotik

Secara default, jika kita menggunakan radius dari mikrotik-nya sendiri, maka alamat dari window radius akan diarahkan ke alamat ip sendiri, yaitu 127.0.0.1.
  1. Langkah pertama adalah arahkan ke alamat server FreeRadius. Isikan alamat ip radius dengan 29.29.29.9 (alamat ip_FreeRadius)
  2. Kemudian isikan secret dengan "mas_lantip"
gambar radius window

Untuk mikrotik cukup itu saja, sederhana bukan? :D

Langkah "agak sederhana" untuk FreeRadius

Ada 3 file yang bersangkutan dengan integrasi ini, yaitu clients.conf, naslist, dan radiusd.conf. Masing-masing akan kita konfigurasi, tapi tidak perlu khawatir, karena tidak banyak yang akan di konfigurasi. dijamin gampang
  1. Buka file /etc/freeradius/client.conf
kemudian tambahkan script "tambahan" pada bagian paling bawah seperti yang ada pada gambar

lebih jelasnya seperti ini
----------------------------------------------------------------------------------
#tambahan untuk mikrotik
client 29.29.29.1 {
secret = mas_lantip
shortname = mikrotik
}
----------------------------------------------------------------------------------
  • Alamat ip di isikan dengan alamat ip si mikrotik.
  • Secret adalah sebuah keywoard yang digunakan untuk menyamakan mesin antara si mikrotik dan si FreeRadius. keywoard ini di samakan dengan dengan secret dari radius mikrotik
  • Shortname di isi bebas, tidak mempengaruhi apapun.
2. buka file /etc/freeradius/nastlist

Naslist adalah file konfigurasi untuk listing server apa saja yang berhubungan dengan si FreeRadius. Jadi tambahkan lagi 1 baris script pada bagian paling akhir seperti yang ada pada gambar

lebih jelasnya seperti ini
----------------------------------------------------------------------------------
#tambahan dari lantip
29.29.29.1 mikrotik other
----------------------------------------------------------------------------------
Baris tersebut menjelaskan bahwa FreeRadius berhubungan dengan server 29.29.29.1 (ip_mikrotik) dengan shortname "mikrotik" dan tipe nya adalah other

3. Buka file /etc/freeradius/radiusd.conf

Scriptnya agak banyak, jadi yang tidak biasa dengan script2 "njrimet" mending segera menjauh dari monitor, segera saja menuju burjo terdekat. Hehehe...
yang dilakukan cukup dengan mencari baris berikut

----------------------------------------------------------------------------------
#passwd = /etc/passwd
shadow = /etc/shadow
#group = /etc/group
----------------------------------------------------------------------------------

  • Kemudian hilangkan kedua tanda pagar yang ada pada awal baris tersebut.
  • Restart daemon untuk FreeRadius, dengan perintah
[root@agilnotmild ~]#/etc/init.d/freeradius restart

Nah, setelah kita melakukan tersebut, maka kita sudah bisa mengkomunikasikan mikriting dan freeradius.


Tapi jika anda menggunakan easyhotspot dalam penggunaan freeradiusnya, maka ada firewall bawaan yang harus terlebih dahulu dimatikan, agar aliran data user dari si mikrotik bisa sampai ke EasyHotspot
Untuk mengubah aturan firewall

----------------------------------------------------------------------------------
[root@agilnotmild~]#vi /etc/init.d/chillispot.firewall

silahkan cari baris yang bertuliskan

$IPTABLES -P INPUT DROP

ubah menjadi

$IPTABLES -p INPUT ACCEPT
----------------------------------------------------------------------------------

File yang barusan di ubah adalah file .sh yang nantinya setiap komputer menyala, file tersebut akan di eksekusi. Agar perubahan itu langsung terlihat maka langsung restart komputer atau cukup dengan mengeksekusi ulang file tersebut.
dengan cara

[root@agilnotmild ~]#sh /etc/init.d/chillispot.firewall

Untuk pembuktian, silahkan ping dari mikrotik ke komputer linux.
jika ping sukses, maka konfigurasi sudah selesai, tapi jika belum, ada 1 cara terakhir, yaitu dengan flushing firewall
dengan perintah

[root@agilnotmild~]#iptables -F

beres....
monggo dicoba.
Selengkapnya...

Saturday, May 30, 2009

Brute Force Preventing


"Berawal dari" keluh kesah dari pihak warnet, yang kurang lebihnya seperti ini, 

"Mas Agil, kok koneksinya lemot banget ni yah?".  
Trus  kujawab, 
"ooo, itu mungkin dari speedynya mba?hehehe...". 

itu hari pertama, lha kok hari-hari berikutnya masih sama, tetep lemot.why???
Langsung deh, setelah mungkin laporan ketiga datang, aku langsung mengerahkan semua pasukan menuju TKP. Kurang lebih, sekitar 2 orang aku kerahkan kesana. itu aja 2 orang udah termasuk aku. hehehe...Masih dengan orang yang sama, ryan ramdhani sebagai partner setia-ku. Langsung menuju TKP dan menyisir barang-barang bukti yang berserakan. Namun barang bukti ini bukan seperti barang bukti yang kaya detektif2 itu, tapi dengan metode 3T, detailnya adalah seperti ini:
  • Tanya-tanya ke kasir warnetnya, kesan & pesan saat pertama kali mengenal-ku. (hehehe...nggak ding.)
  • Tanya-tanya ke kasir warnetnya, sejak kapan mulai lemotnya.
  • Trus liat log2 dari si server.
Pada saat kami melakukan langkah ke-3 nya langsung tersentak, terenyuh, dll. Coba bayangkan saja, dalam 1 jam ada user yang nyoba login +- (kurang lebih) 500x, bayangkan!!!

"Membayangkan....
Krik...Krik...Krik...Krik...Krik..."

Langsung saat itu juga kami menyimpulkan, bahwa orang itu telah melancarkan sebuah guessing username + password alias "brute force". Wew...
Aku dan ryan langsung atur strategi...(kali ini strateginya tidak dibuat singkatan). Kira2 rencananya seperti ini:
Alamat public dari si user tadi tidak langsung kami blok, kenapa? Karena, ia akan kami manfaatkan sebagai tester. hehehe...jadi untuk sementara kami kasih firewall saja dulu yang didalamnya aturannya adalah seperti ini 
  • Ketika ada seorang user mencoba login lebih dari 10x dalam 1 menit, maka koneksi akan di tolak
  • Setelah ditolak, maka alamat tersebut akan di blok
Kira2 script (di mikritingnya) nya seperti ini:

add chain=input protocol=tcp dst-port=21 src-address-list=ftp_blacklist action=drop

add chain=output action=accept protocol=tcp content="530 Login incorrect" dst-limit=1/1m,9,dst-address/1m

add chain=output action=add-dst-to-address-list protocol=tcp content="530 Login incorrect" \
address-list=ftp_blacklist address-list-timeout=3h

---------------------------------------------------
add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \
comment="drop ssh brute forcers" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist \
address-list-timeout=10d comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 \
address-list-timeout=1m comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 \
action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list \
address-list=ssh_stage1 address-list-timeout=1m comment="" disabled=no

Keterangan:
Disitu aku pisahkan scriptnya jadi dua, yang bagian atas itu untuk preventing jika si penyerang mencoba masuk lewat port 21, dan yang bagian bawah jika si penyerang mencoba masuk lewat port 22.
Oke setelah, firewall sudah di pasang, kemudian kami diamkan selama satu hari. Esok harinya langsung kami lihat lognya. "Oke, kita sudah blok user tersebut secara otomatis." Jadi kami sudah bisa menyimpulkan bahwa rencana firewall-nya sudah berfungsi dengan baik tanpa testing terlebih dahulu. hehehehe....

"what a nice plan."
semoga bermanfaat

Selengkapnya...

Monday, March 23, 2009

Tutorial Easy Hotspot by: agilnotmild


"Berawal dari" tema blog-ku yang mengharuskan untuk memulai setiap postingan dengan mengimbuhkan kata "Berawal dari". Maka mau nggak mau saya buatkan sebuah paragraf yang nggak nyambung, yang penting ada kata "Berawal dari"-nya. Mungkin agak sedikit tidak bermutu, tapi memang seperti inilah aku. wkwkwkw.... 
Langsung saja menuju ke tema postinganku kali ini yang akan membahas tentang Easy Hotspot. Sebenarnya ini disebabkan karena sebelumnya mencoba bermain-main dengan mikrotik,eh malah jadi keranjingan dengan yang namanya HotSpot. Kalo diliat dari katanya, arti dari HotSpot itu apa ya? kok bisa jadi bikin ketagihan? why? Hot=panas, Spot=titik. Titik panas? Apa memang semua yang panas2 bikin ketagihan ya?. Sudah-sudah, tidak usah dibahas. langsung saja, sebenarnya apa sih Easy Hotspot itu?



Easy Hotspot adalah sebuah bundle distro linux berbasis ubuntu 7, yang memang sengaja dipaketkan oleh anak bangsa, dan sudah diakui di dunia internasional, untuk keperluan hotspot building. dimana paket itu sudah meliputi tiga komponen
  1. MySql : Sarana penyimpanan data2 dan informasi2
  2. FreeRadius : Untuk membangun Radius Server, yaitu merupakan sebuah aplikasi yang memungkinkan keamanan jaringan wireless untuk melakukan authentication, authorize, dan accounting, untuk meremote para pengguna atau user yang ingin mengakses suatu layanan jaringan.
  3. Chillispot : Adalah captive portal yang di desain untuk authentikasi terhadap database keabsahan user yang sudah ada, seperti RADIUS
Dengan ketiga komponen tersebut, maka sudah lengkaplah distro tersebut sebagai distro untuk membangun hotspot dengan AAA [authentication, authorized, & accounting]. Bisa diartikan sendiri lah ya. info lengkap mengenai Easy Hotspot
Nah, kebetulan aku baru kenal Easy Hotspot ini dari internet 2 minggu yang lalu. Isu-isu yang berhembus mengatakan bahwa distro ini "capcus" banget buat hotspot2an. Ya sudah, karena hati tak kuasa memendam rasa penasaran. Terjebaklah aku dalam kesesatan, yang mengakibatkan susah tidur, dan berkurangnya gairah di kampus dan di lab.
Oke, karena tutorial tentang Easy Hotspot ini masih amat jarang di internet2, maka timbulah inisiatif untuk coba2 bikin tutorial versi agilnotmild. Jadi misal masih ada kekurangan tolong di perbaiki.hehehe....
Oke, langsung kita masuk ke tata cara penyajian Easy Hotspot menurut versi agilnotmild

[] Installasi dilakukan seperti biasa distro linux ubuntu pada umumnya, namun perlu diketahui bahwa untuk membuat server hotspot diperlukan 2 ethernet card. 1 untuk koneksi internet, dan 1 lainnya untuk koneksi dalam (client)

[] Setelah installasi berhasil, maka langkah yang pertama dan yang paling utama adalah mengganti nama dari ethernet card anda terlebih dahulu. Easy Hotspot hanya akan melewatkan semua paket dan konfigurasi radiusnya hanya pada ethernet card eth0 dan eth1. Karena memang sudah ditetapkan di dalam file /etc/init.d/chillispot.firewal. Eth0 difungsikan untuk koneksi keluar, sedangkan eth1 digunakan untuk dhcp dan mengalirkan koneksi ke client yang ada di bawahnya. Jadi kalo misal ethernet card anda masih kedetek sebagai selain eth0 dan eth1, maka harus diubah terlebih dahulu.

agilnotmild@agileasyhotspot:~$#sudo su
root@agileasyhotspot:~$#ifconfig


misal, ethernet card yang terlihat adalah eth3 & eth4. Edit supaya menjadi eth0 & eth1.

root@agileasyhotspot:~$#vim /etc/udev/rules.d/70-persistent-net.rules


Edit baris yang bertuliskan eth3 & eth4 menjadi eth0 & eth 1

# PCI device 0x10ec:0x8139 (8139too) SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="ff:ff:ff:ff:ff:ff", NAME="eth3"
# PCI device 0x10ec:0x8136 (r8169) SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:1e:ec:a8:04:71", NAME="eth4"


[] Restart komputer agar terlihat efeknya.

[] Setelah ethernet card sudah berubah menjadi eth0 & eth1, kita set eth0 sebagai koneksi ke internet (terhubung ke modem)

root@agileasyhotspot:~$#ifconfig eth0 192.168.1.21 netmask 255.255.255.0
root@agileasyhotspot:~$#route add default gw 192.168.1.1 (kita gatewaykan ke ip modem)
root@agileasyhotspot:~$#vim /etc/resolv.conf

kemudian isikan 203.130.208.18 (ip dns yang akan kita gunakan)
kita anggap komputer server sudah terhubung dengan internet


[] Eth1 tidak usah kita set IP-nya, karena memang digunakan untuk koneksi ke bawah, dan secara default sudah diberikan ip 192.168.182.1, sedangkan ip untuk client dibawahnya akan diberikan ip pada network 192.168.182.0/24

[] Untuk percobaanya, silahkan tancapkan kabel LAN dari laptop menuju ke eth1. Kemudian set ip di laptop sebagai automatically.

[]Kemudian buka web browser, kemudian arahkan ke salah satu situs, semisal agilnotmild.blogspot.com. maka akan keluar halaman login.



[] Nah untuk bisa menggunakan fasilitas internet, kamu harus login terlebih dahulu. Lalu, kita harus login pake account apa? 
Solusinya, kita harus buat account-nya dulu. Untuk bikin accountnya caranya sangat gampang, langsung buka aja halaman web baru di sisi server Easy Hotspot, arahkan url-nya ke localhost. secara ajaib akan muncul halaman portal baru seperti ini.


[] Untuk login ke dalam sistem tersebut bisa dilakukan dengan 2 user, yang pertama jika ingin berhak-akses admin maka gunakan user:admin, password:admin123. sedangkan untuk setara kasir gunakan user:vcool password:vcool123. kemudian buatlah user di dalamnya.

Oke deh, kita sudah berhasil membuat server hotspot dengan menggunakan Easy Hotspot. Tapi, settingan di atas masih merupakan settingan default. Jadi masih sangat belum aman. kemudian apa yang perlu dilakukan agar, sistem yang telah kita buat itu aman (walaupun belum 100% aman).

[] Ganti password mysql-nya. karena secara default, password dari mysqlnya adalah easyhotspot. Jadi harus di ganti, agar pihak luar tidak bisa melihat data base kita.
Matikan service mysql

root@agileasyhotspot:~$#/etc/init.d/mysql stop


Masuk ke mysql melalui safe mode

root@agileasyhotspot:~$#mysqld_safe --skip-grant-table


Buka terminal baru, lalu ketikkan

root@agileasyhotspot:~$#mysql -u root
mysql>use mysql
mysql>UPDATE user SET Password=Password('Lantip') WHERE User='easyhotspot'
mysql>exit;


Kita sudah mengubah password defaultnya berubah menjadi 'Lantip', keren bukan.hahaha...
Langkah berikutnya, restart service mysql-nya

root@agileasyhotspot:~$#/etc/init.d/mysql restart


[] Langkah berikutnya adalah, ganti password untuk file dari web-nya agar bisa mengakses mysql dengan password baru tadi.

root@agileasyhotspot:~$#vim /var/www/system/application/config/database.php


Kemudian cari baris yang bertuliskan
$db['default']['password'] = "easyhotspot"

Ganti dengan 'Lantip'. kalo udah, langsung saja save. Maka, database kita sudah insyaallah aman.

[] Membolehkan web portal agar bisa dibuka lewat komputer lain. Web portal ini yang dimaksud adalah web yang digunakan untuk menejemen user. Jadi untuk memenej user bisa dilakukan tidak hanya di komputer server, tapi bisa juga di komputer client. Caranya adalah sebagai berikut

root@agileasyhotspot~:#vim /var/www/system/application/config/config.php


Cari baris yang bertuliskan
$config['base_url'] = "http://localhost/"

Ganti localhost dengan alamat ip dari komputer server kamu, misal diganti dengan 192.168.182.1

Oke, kalau sudah. hotspot siap di luncurkan. hore.....

-------------------------------------------------------------------------------------------------
nah yang berikutnya aku mau nulis tentang kolaborasi antara mikrotik dan easy hotspot. bakalan asyik pokoknya, tunggu aja yah. Riset sudah selesai, tinggal males nulis ke blog-nya aja. Hehehehe...tunggu postingan saya berikutnya...
-------------------------------------------------------------------------------------------------




Selengkapnya...