RSS

Instalasi Server Hotspot pada Linux Ubuntu (Chillispot dan Freeradius)

Berikut ini adalah step by step instalasi server hotspot pada Ubuntu menggunakan Chillispot dan Freeradius. Langkah pertama yang terlebih dahulu dilakukan adalah menginstall linux ubuntu sesuai dengan kebutuhan dan memastikan ubuntu tersebut bekerja dengan baik.

- Konfigurasi IP Address di masing-masing Ethernet Card pada Server.
Misalnya pada server terdapat 3 Ethernet Card yaitu :
eth0 : untuk IP Address Public,
eth1 : untuk IP address lokal atau intranet, dan
eth2 : tunnel interface yang digunakan oleh Chillispot.

File Konfigurasi IP Address pada ubuntu terletak pada /etc/network/interfaces, berikut contoh konfigurasinya :

auto eth0
iface eth0 inet static
address 77.67.76.10
netmask 255.255.255.240
gateway 77.67.76.1

auto eth1
iface eth1 inet static
address 192.168.12.25
netmask 255.255.255.224

- Setting IP DNS yang diberikan oleh pihak ISP maupun IP DNS Lokal/intranet.
File konfigurasi terletak pada /etc/resolv.conf, berikut contoh konfigurasinya :

domain example.ac.id
namserver 202.155.0.10
atau
domain example.ac.id
nameserver 192.168.12.10

- Mengaktifkan IP Forwading, sehingga Server berfungsi sebagai gateway dan mampu meneruskan paket data.
File konfigurasi terletak pada /etc/sysctl.conf, hilangkan tanda ‘ # ’ pada baris net.ipv4.conf.default.forwarding=1.

Awalnya seperti ini :
#net.ipv4.conf.default.forwarding=1
Menjadi :
net.ipv4.conf.default.forwarding=1

- Reboot & Pastikan semua konfigurasi berjalan dengan baik, jalankan PING dan NSLOOKUP untuk mengetahui apakah server sudah terhubung ke jaringan intranet maupun internet.

Langkah selanjutya adalah instalasi paket-paket yang dibutuhkan pada server Hotspot, diantaranya :
> Apache Web Server
> Mysql Database Server
> PHP
> SSL Certificate
> Freeradius, dan
> Chillispot

Untuk melakukan instalasi paket-paket yang dibutuhkan pada server, cukup dengan menggunakan sintaks apt-get install, berikut sintaks lengkapnya :

apt-get install apache2 php5 mysql-server libapache2-php5 php5-mysql ssl-cert freeradius freeradius-mysql chillispot

Pada saat instalasi paket, khususnya pada proses instalasi mysql server, Anda akan diminta untuk memasukkan password root mysql yang dikehendaki. Jika anda tidak dimintai untuk memasukkan password atau Anda mengabaikannya, Anda dapat membuatnya dengan perintah:

mysqladmin -u root password ’rahasiabanget’

Begitu juga dengan proses instalasi paket-paket yang lain, jika diminta untuk memasukkan konfigurasi tertentu Anda dapat mengabaikannya. Konfigurasi dapat dilakukan setelah proses instalasi.

- Konfigurasi Apache Web Server
File konfigurasi terletak pada /etc/apache2/apache2.conf, berikut contoh konfigurasi sederhana pada file apache2.conf :

Masukkan baris seperti dibawah ini,
ServerName hotspot.example.ac.id
atau
ServerName 192.168.12.25

Restart apache untuk me-reload konfigurasi:

/etc/init.d/apache2 restart

- Konfigurasi SSL pada Web Server
SSL digunakan oleh chillispot untuk menampilkan halaman otentikasi, Berikut dipaparkan langkah-langkah untuk mengaktifkan modul SSL pada Web Server :

# cd /etc/apache2/site-available/

copy file default-ssl menjadi ssl file pada direktory diatas
# cd /etc/apache2

buat direktory baru dengan nama ssl
# cd /etc/apache2/ssl

buat certificate apache.pem
# make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
# vi /etc/apache2/site-available/ssl
cari tulisan berikut:
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
dan ganti dengan
SSLCertificateFile /etc/apache2/ssl/apache.pem

Mengaktifkan module ssl
# a2enmod ssl

Mengaktifkan site ssl dengan nama file ssl
# a2ensite ssl

Restart /reload apache, cek dengan perintah https://example.ac.id

- Konfigurasi Chillispot
File Konfigurasi terletak pada /etc/chilli.conf, berikut contoh konfigurasinya :

#—/etc/chilli.conf—
net 172.16.20.0/24
dns1 192.168.12.10
dns2 192.168.12.10
radiusserver1 127.0.0.1
radiusserver2 127.0.0.1
radiussecret rahasiabanget
dhcpif eth2
uamserver https://172.16.20.1/cgi-bin/hotspotlogin.cgi
uamsecret rahasiabangetjuga
uamlisten 172.16.20.1

Keterangan:
> net, mendefinisikan network yang akan digunakan oleh chillispot sebagai penyedia IP Address untuk pengguna hotspot.
> radiussecret, digunakan oleh chillispot untuk berkomunikasi dengan server radius yang didefinisikan pada radiusserver1 maupun radiusserver2.
> dhcpif, interface yang digunakan sebagai tunnel interface oleh chillispot.
> uamserver, mengarah kepada hotspotlogin.cgi sebagai otentikasi user ketika menggunakan layanan hotspot URL menggunakan https untuk enkripsi data.
> uamsecret, digunakan oleh chillispot untuk berkomunikasi dengan uamserver.
> uamlisten, IP address pada tunnel Interface yang didefinisikan pada dhcpif.

- Konfigurasi hotspotlogin.cgi
File awal terletak pada direktori /usr/share/doc/chillispot/. Jika file masih terbungkus dalam bentuk file archieve seperti hotspotlogin.cgi.gz maka ekstrak terlebih dahulu, baru kemudian di-copy menuju direktori /usr/lib/cgi-bin/.

# cd /usr/share/doc/chillispot
# ls
hotspotlogin.cgi.gz
# gunzip hotspotlogin.cgi.gz
# ls
hotspotlogin.cgi.gz hotspotlogin.cgi
# cp hotspotlogin.cgi /usr/lib/cgi-bin/
# cd /usr/lib/cgi-bin/
# chmod 755 hotspotlogin.cgi

Edit file hotspotlogin.cgi dan cari baris $uamsecret dan $userpassword, jika ada tanda ‘ # ’ pada baris tersebut maka hapuslah.

$userpassword = 1;
$uamsecret = “rahasiabangetjuga”; (disesuaikan dengan chilli.conf)

Beberapa file yang harus dikonfigurasi pada paket Freeradius diantaranya :
> /etc/freeradius/clients.conf
> /etc/freeradius/radiusd.conf
> /etc/freeradius/sql.conf
> /etc/freeradius/sites-enabled/default

- Konfigurasi clients.conf
Konfigurasi pada clients.conf pada initinya adalah mendefinisikan server chillispot yang terhubung dengan freeradius, pada tulisan ini server chillispot maupun freeradius tergabung dalam satu server. Berikut adalah contoh konfigurasinya :

#—clients.conf—
client localhost {
ipaddr = 127.0.0.1
secret = rahasiabanget (disesuaikan dengan chilli.conf)
nastype = other
}
Misal server chillispot terpisah dengan Freeradius:
#—clients.conf—
client 192.168.12.22/32 {
secret = rahasiabanget (disesuaikan dengan konfigurasi pada 192.168.12.22)
shortname = ddwrt
}

- Konfigurasi radiusd.conf
File radiusd.conf merupakan file konfigurasi utama yang menggabungkan file-file konfigurasi terpisah seperti clients.conf, sql.conf, dan modul-modul yang dibutuhkan oleh server freeradius.
- Konfigurasi sql.conf
Agar freeradius dapat terhubung dengan mysql, maka perlu mendefinisikan server mysql yang digunakan beserta user dan password yang mempunyai privillage pada database freeradius. Hanya ada beberapa baris konfigurasi yang disesuaikan, diantaranya :

#—sql.conf—
server = “localhost”;
login = “root”; (disarankan untuk tidak menggunakan user root)
password = “rahasia”;
radius_db = “nama_database”;

- Konfigurasi sites-enabled/default
Untuk mengaktifkan modul-modul pada freeradius dan dalam pembahasan ini adalah modul mysql, file konfigurasi terletak pada /etc/freeradius/sites-enabled/default. Hilangkan tanda ‘ # ’ pada setiap baris yang mengandung kata ‘ sql ’ .

authorize {


sql
noresetcounter (sesuaikan dengan /etc/freeradius/sql/mysql/counter.conf)

}

accounting {


sql
sql_log


}

session {

sql

}

post-auth {


sql
sql_log

}

- Menambahkan database radius pada mysql
Dalam paket instalasinya freeradius telah menyediakan struktur database standard dari freeradius itu sendiri yaitu pada file /etc/freeradius/sql/mysql/schema.sql. Jika Anda ingin menggunakan Struktur database yang disediakan dari Freeradius berikut langkah-langkahnya :

# cd /etc/freeradius/sql/mysql/
# mysql –u user –p nama_database < schema.sql

Jika Anda menggunakan database dari PhpMyPrepaid (Web Portal), importing database standar freeradius diatas tidak digunakan.

- Instalasi PhpMyPrepaid
Paket phpmyprepaid yang digunakan pada tutorial ini adalah phpmyprepaid0.3.3.tgz, paket tersebut dapat langsung didownload dari http://sourceforge.net/projects/phpmyprepaid/files/.
Kita asumsikan file phpmyprepaid0.3.3.tgz telah didownload dan berada pada direktori web server yaitu /var/www.

# cd /var/www
# ls
index.html phpmyprepaid0.3.3.tgz

Ektrak file phpmyprepaid0.3.3.tgz
# tar –xzvf phpmyprepaid0.3.3.tgz
# ls
index.html phpmyprepaid0.3.3.tgz phpmyprepaid0.3.3
# mv phpmyprepaid0.3.3 prepaid

Sebelum melanjutkan instalasi phpmyprepaid, terlebih dahulu membuat database yang akan digunakan phpmyprepaid pada Mysql. Misalnya : test.

# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 85
Server version: 5.1.41-3ubuntu12.6 (Ubuntu)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> exit
Bye

Kembali ke instalasi phpmyprepaid, buka browser dan ketikkan

http://example.ac.id/prepaid

Pada General Configuration for Mysql,
Server : localhost
User name : root (tidak disarankan menggunakan root)
Password : ********
Database name : test (contoh database yang dgunakan oleh prepaid)

Klik tombol Save Configuration, dan akan muncul halaman seperti dibawah ini.

Phpmyprepaid akan membuat table sendiri, dan kita akan diminta untuk memasukkan user dan password untuk login sebagai admin pada phpmyprepaid.

Login dengan menggunakan Username dan Password yang telah anda inputkan pada proses sebelumnya.

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