Mysql based auth di squid
artikel ini dibuat untuk kamu2 yg ingin membuat authentifikasi squid dan user dan password disimpan di database mysql
asumsi-2:
1. squid-2.4 atau squid-2.5 terinstall dgn baik, dan user dan group yg menjalankan Squid adalah squid (lihat /etc/passwd)
2. mysql (versi berapa aja) terinstall dgn baik
3. RH 7.1 (atau linux yg lainnya
4. gcc, et al
5. admin tidak gila 🙂
6. yg kurang mohon ditambahkan sendiri
file yg perlu di download:
mysql_auth-0.5.tar.gz (http://freshmeat.net/projects/mysql_auth/)
langkah2 :
1. Ekstrak file mysql_auth
# tar xzpf mysql_auth-0.5.tar.gz
# cd mysql_auth-0.5
2. Cari dan catat lokasi file mysql.h dan libmysqlclient.a
# locate mysql.h
/usr/include/mysql/mysql.h
# locate libmysqlclient.a
/usr/lib/mysql/libmysqlclient.a
3. edit file Makefile
# vi Makefile
ubah baris2 berikut :
a. CFLAGS = -I/usr/local/include -L/usr/local/lib
menjadi
CFLAGS = -I/usr/include/mysql -L/usr/lib/mysql
note : perhatikan yg dicetak tebal di langkah 2 harus sama dengan yg dicetak tebal pada langkah diatas
b. $(INSTALL) -o nobody -g nogroup -m 755 mysql_auth /usr/local/squid/bin/mysql_auth
menjadi
$(INSTALL) -o squid -g squid -m 755 mysql_auth /usr/bin/mysql_auth
c. $(INSTALL) -o nobody -g nogroup -m 600 $(CONF) /usr/local/squid/etc/mysql_auth.conf
menjadi
$(INSTALL) -o squid -g squid -m 600 $(CONF) /etc/mysql_auth.conf
d. $(INSTALL) -o nobody -g nogroup -m 600 $(CONF) /usr/local/squid/etc/mysql_auth.conf.default
menjadi
$(INSTALL) -o squid -g squid -m 600 $(CONF) /etc/mysql_auth.conf.default
catatan : bila user dan group yg menjalankan bukan “squid”, misalnya “otong”, ganti -o squid -g squid menjadi -o otong -g otong
4. edit src/define
# vi +5 src/define.h
ubah baris
#define CONFIG_FILE “/usr/local/squid/etc/mysql_auth.conf”
menjadi
#define CONFIG_FILE “/etc/mysql_auth.conf”
5. compile dan install
# make
# make install
6. tambahkan database untuk authentifikasi
# cd scripts
# mysql -u root -p < create_script
7. untuk konfigurasi file /etc/mysql_auth.conf, tambahkan user yang bisa menangani mysql_auth database, misalnya user squid dan password squid
a. ganti user menjadi
user squid
b. ganti password menjadi
password squid
c. enkripsi password user menjadi
encrypt_password_form YES
8. tambahkan user ke database
# /usr/bin/mypasswd userbaru passwordnya
9. test mysql_auth
# /usr/bin/mysql_auth
userbaru
passwordnya
OK / ERR
10. konfigurasi squid
a. untuk squid 2.4 tambahkan direktif ini
proxy_auth_realm Squid proxy server
authenticate_program /usr/bin/mysql_auth
authenticate_ttl 10 seconds
authenticate_children 10
acl butuhpasswd proxy_auth REQUIRED
http_access allow butuhpasswd
http_access deny all
b. untuk squid 2.5. tambahkan direktif ini
auth_param basic program /usr/bin/mysql_auth
auth_param basic realm Squid proxy-caching web server
auth_param basic children 5
auth_param basic credentialsttl 2 hours
acl password proxy_auth REQUIRED
http_access allow password
authenticate_ip_ttl 2 hours
http_access deny all
11. arahkan browser dengan menggunakan proxy, klik tool -> internet option -> Connections -> LAN Settings
12. smoga bisa
Note: Thanks Jambronk 🙂 Sip!