Proxy Autentikasi dengan Program mysql_auth pada FreeBSD 6.0

dokumen-dokumen yang mirip
LAPORAN RESMI PRAKTIKUM KEAMANAN DATA LAPORAN RESMI KONFIGURASI KEAMANAN LAYANAN PROXY PROXY RADIUS

Praktikum 13 Konfigurasi Keamanan Layanan Proxy

MySQL J A M K E T I G A

E-trik Ajax. Database MySQL. Dedi Alnas

INSTALASI WEB SERVER PADA MICROSOFT WINDOWS

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

( Dari Ms-DOS windows, diasumsikan mysql client berada pada direktori tersebut.) mysql ( dari Linux). mysql --help

Koneksi PHP -ODBC Persiapan

Perintah - Perintah Dasar Pada MySQL

Web-Bulletin. Yogyakarta, September 2008 M Chusnan Aprianto

Menampilkan Data/Tabel MySQL di Ms.Access

ADMINISTRASI USER. I. Konfigurasi User Root mysql> Show Databases; mysql> Use Mysql; mysql> Show Tables; mysql> Select user,host,password from user;

MODUL I PENGENALAN MYSQL

Situs Jejaring Sosial Menggunakan Elgg

BAB 4 IMPLEMENTASI DAN EVALUASI. Web wizard akan ditempatkan pada server yang merupakan sebuah proxy server

BAB III PERANCANGAN SISTEM

Luqman Sungkar

MySQL AL AZHAR COMPUTER CLUB

1

MEMBANGUN E-COMMERCE DENGAN OSCOMMERCE

DESAIN DAN IMPLEMENTASI PROXY SERVER MENGGUNAKAN MYSQL PADA DINAS PERHUBUNGAN KOMUNIKASI DAN INFORMATIKA PROVINSI SUMATERA SELATAN

Manual Pengguna (User s Manual )

BAB IV IMPLEMENTASI SISTEM DAN PENGUJIAN. meliputi pembahasan mengenai proses perekaman gambar berdasarkan interval

Script PHP dan MySQL J A M K E E M P A T

Secara umum, eksploit dapat dibagi atas dua jenis, yaitu eksploit lokal (local exploit), dan eksploit remote (remote exploit).

PROJECT CYBERPRENEUR. Monitoring Jaringan dengan Proxy Aunthentication

BAB IV IMPLEMENTASI DAN PENGUJIAN

PERINTAH DASAR MySQL

Praktek Pemrograman Web

2.1 Instalasi Joomla Secara Lokal

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

PHP + MySQL M. RUDYANTO ARIEF, MT

PHP & MYSQL. Ingat, PC anda tidak memerlukan tambahan khusus atau apapun untuk melihat hasil eksekusi kode PHP anda. Mengapa?

Manajemen Data dengan Database MySQL Supriyono, M.Kom

Tahap Instalasi PostgreSQL di Windows

Install Italc Di Windows XP

Mengakses Microsoft SQL Server dengan PHP

BAB IV IMPLEMENTASI DAN EVALUASI. Berikut ini adalah daftar spesifikasi perangkat lunak yang

MODUL 7. Apakah Joomla itu? A. Pra-Instalasi Joomla. Tujuan : 1. Pengenalan Joomla 2. Installasi Joomla 3. Pengenalan Section dan Categories

MODUL PRAKTIKUM BASIS DATA TEKNIK INFORMATIKA UIN SUNAN KALIJAGA YOGYAKARTA 2011 PENGENALAN DATABASE MYSQL

PETUNJUK INSTALASI RETAIL OPERATIONS

MODUL 8 Mengoperasikan Perangkat Lunak Basis Data

BAB IV IMPLEMENTASI DAN PENGUJIAN

WEB DINAMIS 1 MANAJEMEN DATABASE MYSQL. Agustina Purwatiningsih., S.Kom

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

[PRAKTIKUM BASIS DATA TERDISTRIBUSI D3 TI UNS]

Menampilkan Data MySql Menggunakan Dreamweaver

Konversi Database. Klik Next. 3. Maka muncul kotak dialog berikutnya. Klik Next

4. Pilih direktori tempat penyimpanan lalu klik Lanjut. A. INSTALLASI SOFTWARE 1. Masukkan CD Program ke dalam CD ROM

Membuat Database mysql dengan PhpMyAdmin

Panduan Penggunaan dan Perawatan Server

BAB 4 IMPLEMENTASI DAN EVALUASI. Dalam ilmu komputer, implementasi menjadi tahap realisasi dari spesifikasi

IF PEMROGRAMAN LANJUT MENGAKSES DATABASE. Oleh : Andri Heryandi, M.T.

Petunjuk Teknis Instalasi MySQL dan Penempatan File Database SIKI

Pemrograman Database Java

Berikut ini adalah beberapa hal yang harus Anda siapkan untuk memasang wordpress di localhosting:

2.4 Proses Upload File dan Database di Free Hosting Membuat Account di Free Hosting

Mahasiswa mengetahui & memahami mengenai DML, DCL di SQL. (Isi_Field_1, Isi_Field_2,, Isi_Field_N) ;

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

Muhammad Adri. Pendahuluan. Instalasi Xampp

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

Instalasi Cacti Network Monitoring System. Pada Centos 6.5

Cara Gampang Install Senayan di Local Host Windows Oleh Happy Chandraleka, S.T.

Linux. Tatas Fachrul Arta Aditya. How to make Proxy server based on Ubuntu Operating System. Code name Precise

A. INSTALLASI SOFTWARE

Modul 9 INSTALL DAN KONFIGURASI PROXY SERVER

Untuk pembuatan web offline ada beberapa cara dan juga alat/software yang digunakan antara lain: 1. INSTALLASI XAMPP

Gambar ini menunjukkan informasi pemilihan folder untuk melakukan instalasi software XAMPP.

BAB 4 IMPLEMENTASI DAN EVALUASI. Untuk membantu dalam proses pemantauan jaringan switch backbone

Pertemuan 11 Pengenalan DBMS dan MySQL

Cara Install WordPress Offline di Localhost XAMPP. Jackson Sihite. Abstrak. Pendahuluan.

BAB 3 PERANCANGAN SISTEM Mendefinisikan Web Dalam Dreamweaver MX 2004

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

MODUL 7 NAT dan PROXY

BAB IV HASIL DAN PEMBAHASAN

Step-Step dalam pembuatan Web

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Bab 4 Pembahasan dan Hasil

5. Jika beres, botting lewat flashdisk dan anda akan masuk pada tampilan awal Free NAS.

Tutorial Membuat Website Gratis

LAMPIRAN C INSTALASI PERANGKAT LUNAK

Pemrograman Web. Koneksi dan Manipulasi Basis Data. 7 Adam Hendra Brata

Instalasi Joomla. 1. Masukkan Bonus CD yang berisi program WampServer2.2a-x32 ke DVD/CD Driver.

Written by Administrator Wednesday, 15 June :49 - Last Updated Thursday, 20 December :10

INSTALLATION GUIDE INSTALLATION GUIDE. PT.Technomatic Cipta Mandiri. IT division: Jl. Cikutra Baru Raya No.2 Bandung-40124

Database. Danu Wira Pangestu 1. Mengenal Database. Lisensi Dokumen:

PRAKTIKUM ADMINISTRASI JARINGAN KOMPUTER. SQUID (Proxy Server) Oleh : Idris Winarno

BAB III PEMBAHASAN. Kerja Praktek yang penulis lakukan dilaksanakan pada tanggal 1

Bab I Pengenalan dan Instalasi

visit :

Widhy Hayuhardhika NP, S.Kom


BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. Pada tahap ini merupakan tahapan implementasi dari

Instalasi FreeBSD 6.0

Database dan Instalasi

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Transkripsi:

Proxy Autentikasi dengan Program mysql_auth pada FreeBSD 6.0 Ricki Zurwindar <rz.bangka@gmail.com> Universitas YARSI Copyright 2007 Pada pembahasan ini, hak akses internet untuk setiap pengguna akan diatur sesuai dengan nama user (username) dan password yang terdaftar di komputer server. Terdapat 3(tiga) alternatif pilihan yang dapat digunakan untuk memeriksa valid atau tidaknya nama user dan password untuk setiap pengguna. Ketiga pilihan tersebut antara lain adalah penggunaan program autentikasi (authentication program) seperti ncsa_auth, squid_ldap_auth dan mysql_auth. Pada implementasi ini digunakan program mysql_auth sebagai program autentikasi. Program akan menghasilkan output berupa teks OK jika autentikasi berhasil dan output berupa teks ERR jika autentikasi gagal. Hasil berupa pesan OK akan diterima oleh Squid sebagai tanda dibukanya hak untuk mengakses internet. Hasil berupa pesan ERR akan diterima oleh Squid sebagai tanda gagalnya hak untuk mengakses internet. Alur proses yang bekerja pada program authenticate tersebut dapat dilihat dalam flowchart berikut ini. 1

Start User, Password Print ERR User & Password Benar? Print OK Gambar 1 Flowchart program mysql_auth Program mysql_auth, merupakan program dalam bahasa C yang dibuat sendiri dengan memanfaatkan cara kerja Squid saat memeriksa nama user dan password yang berhak. Program mysql_auth akan memanfaatkan database MySQL dalam pengelolaan nama user dan password. Dengan mysql_auth, data user dan password tidak dapat dilihat kecuali oleh administrator database dan user yang diberi hak. Namun demikian karena mysql_auth tidak disediakan saat instalasi Squid, program mysql_auth harus dibuat sendiri dan mengompilasinya sehingga menjadi file binner yang dapat dimanfaatkan sebagai program autentikasi. Akan tetapi berkat adanya sumbangan program mysql_auth dari Frank Liu (frank@ctcqnx4.ctc.cummins.com), tidak perlu membuat sendiri program autentikasi mysql hanya perlu mengubah beberapa konfigurasi sesuai dengan kondisi server. Langkah-langkah yang dilakukan untuk membuat program autentikasi menggunakan mysql_auth adalah sebagai berikut: 1. Pastikan bahwa MySQL telah terinstall di komputer yang akan digunakan untuk melakukan autentikasi. Jika MySQL belum terinstall, lakukan instalasi MySQL terlebih dahulu. 2. Membuat User dan Password. 2

Setelah MySQL dipastikan telah terinstall, dilakukan persiapan untuk data user dan password yang akan digunakan untuk autentikasi dengan langkah-langkah berikut: Login ke MySQL dengan user root. # mysql -u root -h localhost p Digunakan database MySQL untuk memasukkan user dan password yang akan mengelola data autentikasi dengan MySQL. mysql> use mysql; mysql> insert into user -> (host, user, select_priv, insert_priv, update_priv) -> values ("localhost","squid","y","y","y") -> ; mysql> flush privileges; Selanjutnya dibuat database yang bernama dbsquid dan tabel user untuk menampung nama-nama pengguna dan password-nya. mysql> create database dbsquid; mysql> use dbsquid; mysql> create table user (username text, password text); Setelah itu diisi tabel user dengan beberapa nama pengguna seperti berikut: mysql> insert into user values ( admin, admin ); mysql> insert into user values ( ricki, testmysql ); Setelah itu keluar dari mysql, dengan perintah: mysql> quit; 3. Membuat Program mysql_auth. Seperti yang telah diungkapkan sebelumnya, program mysql_auth tidak perlu dibuat sendiri karena pada tanggal 13 November 1998 Frank Liu membuatnya dalam bahasa C dan program tersebut dapat disebarluaskan secara bebas dan gratis. Tetapi program yang digunakan pada autentikasi ini terdapat sedikit modifikasi untuk menyesuaikan fungsi-fungsi MySQl. Konfigurasi tersebut antara lain adalah lokasi server MySQL. Jika server MySQL terletak di 1(satu) komputer maka DBHOST diisi dengan localhost. Jika terletak di komputer berbeda, DBHOST diisi dengan IP address komputer tersebut. Konfigurasi DBUSER diisi dengan nama user MySQL yang telah dibuat sebelumnya untuk kepentingan mysql_auth yaitu squid. Selanjutnya, konfigurasi DB diisi dengan dbsquid. 3

Terakhir, konfigurasi DBPASSWORD diisi dengan NULL karena pada konfigurasi sebelumnya user squid tidak memiliki password. Jika menghendaki user squid memiliki password, baris berikut ini perlu dimodifikasi dan disesuaikan dengan password yang digunakan. #define DBHOST "localhost" #define DBUSER "squid" #define DB "dbsquid" #define DBPASSWORD NULL Coding program ditempatkan di direktori /usr/local/squid/bin, selengkapnya dapat dilihat pada listing program berikut ini: / mysql_auth.c Copyright 1998 Frank Liu (frank@ctcqnx4.ctc.cummins.com) Distributed under the GPL 26 Sep 1999, version 2: 1. fixed a bug where A_TABLE is defined but never used. (thanks to luciano.ghezzi@linux.it) 2. now you can choose to use either clear text password or encrypted password in the MySQL table. 13 Nov 1998, version 1: initial release Needs to be compiled/linked with MySQL libs. Assuming MySQL header files are installed in /usr/local/mysql/include and MySQL libs in /usr/local/mysql/lib On my Linux box: cc -I /usr/local/mysql/include -O -o mysql_auth mysql_auth.c \ -L /usr/local/mysql/lib -lmysqlclient -lm Then modify the squid.conf to use this external auth program: authenticate_program /usr/local/squid/bin/mysql_auth / #include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql.h> 4

/ comment out next line if you use clear password in MySQL DB / / #define ENCRYPTED_PASS / can use NULL for localhost, current user, or no password / #define DBHOST "localhost" #define DBUSER "squid" #define DB "dbsquid" #define DBPASSWORD NULL / table for the user database for the squid authentication, column names for auth username and auth password / #define A_TABLE "user" #define A_USERNAME "username" #define A_PASSWORD "password" #define BUFSIZE 256 int main(int argc, char argv[]) { char buf[bufsize], qbuf[bufsize]; char p; MYSQL mysql,sock; MYSQL_RES res; / make standard output line buffered / if (setvbuf(stdout, NULL, _IOLBF, 0)!= 0) return; while (1) { if (fgets(buf, BUFSIZE, stdin) == NULL) break; if ((p = strchr(buf, '\n'))!= NULL) p = '\0'; / strip \n / if ((p = strchr(buf, ' ')) == NULL) { (void) printf("err\n"); continue; p++ = '\0'; / buf is username and p is password now / mysql_init(&mysql); 5

if (!(sock = mysql_real_connect(&mysql, DBHOST, DBUSER, DBPASSWORD, DB, 0, 0, 0))) { / couldn't connect to database server / printf("err\n"); continue; sprintf(qbuf, "select " A_USERNAME " from " A_TABLE " where " A_USERNAME "='%s' and " A_PASSWORD #ifdef ENCRYPTED_PASS "=password('%s')", buf, p); #else "='%s'", buf, p); #endif if(mysql_query(sock,qbuf)!(res=mysql_store_result(sock))) { / query failed / printf("err\n"); mysql_close(sock); continue; if ( res->row_count!=0 ) { printf("ok\n"); else printf("err\n"); mysql_free_result(res); mysql_close(sock); exit(0); Selanjutnya masuk ke direktori /usr/local/squid/bin dengan perintah: # cd /usr/local/squid/bin Setelah itu, dilakukan kompilasi file mysql_auth.c dengan perintah: # gcc -I /usr/local/mysql/include/mysql -O -o mysql_auth mysql_auth.c -L /usr/local/lib/mysql -lmysqlclient -lm 6

Setelah kompilasi berhasil dilakukan, program dicoba melalui terminal. Output ERR akan munculketika autentikasi gagal, sedangkan output OK akan muncul ketika autentikasi sukses dilakukan. #./mysql_auth ricki 12345 ERR ricki testmysql OK 4. Mengubah Konfigurasi Squid. Agar web browser dapat menerima permintaan input berupa nama user dan password dari setiap pengguna yang terdaftar di server MySQL, diperlukan perubahan konfigurasi Squid pada file squid.conf yang berada di direktori /usr/local/squid/etc. Perubahan tersebut antara lain meliputi beberapa hal yang ditampilkan pada potongan listing berikut: Potongan listing /usr/local/squid/etc/squid.conf... # TAG: auth_param auth_param basic program /usr/local/squid/bin/mysql_auth auth_param basic realm Masukkan password akses internet! # TAG: ACCESS CONTROLS acl pengguna proxy_auth REQUIRED # TAG: http_access http_access deny!pengguna Pada bagian TAG: auth_param, tampak bahwa parameter untuk autentikasi diaktifkan dengan program mysql_auth di /usr/local/squid/bin dan parameter realm digunakan untuk menampilkan string ketika prompt username dan password. Pilihan database dan tabel tidak perlu dituliskan lagi pada file squid.conf karena sudah disebutkan pada source program mysql_auth. Di bagian TAG: ACCESS CONTROLS, tampak bahwa definisi access control dengan nama pengguna yang akan menggunakan program autentikasi. Selanjutnya, modifikasi terakhir yang tampak pada bagian TAG: http_access menunjukan bahwa selain pengguna akses internet akan ditolak. Hasil penulisan konfigurasi tersebut akan berdampak bahwa pengguna yang tidak terdaftar di dalam server MySQL atau salah menuliskan password tidak akan dapat memanfaatkan internet. Web browser akan menampilkan kotak dialog yang berisi permintaan nama user dan password secara terus-menerus sampai username dan password tepat atau dengan menekan tombol Cancel. Gambar dibawah ini 7

menunjukan paermintaan input user dan password saat pertama kali mengakses internet. Gambar 2 Permintaan input user dan password Jika gagal mengisi kotak dialog tersebut dengan benar sampai 3(tiga) kali atau akhirnya menekan tombol Cancel, maka web browser akan menampilkan pesan penolakan akses internet (lihat gambar 3). 8

Gambar 3 User tidak terdaftar atau password salah Semoga artikel ini dapat membantu saat membuat proxy autentikasi menggunakan mysql_auth pada sistem operasi FreeBSD 6.0. Pustaka: dari berbagai sumber 9