Konfigurasi squid sebagai proxy server

Squid adalah program proxy server. Proxy sendiri adalah program untuk melakukan caching terhadap halaman website, sehingga pengaksesan ke halaman website menjadi lebih cepat karena halaman web yang sudah dibuka telah tersimpan di proxy server. Gabungan aplikasi proxy server dan firewall, dapat menjadikanya semacam gateway untuk mengakses halaman website.
Squid yang saya gunakan ini adalah versi 2.6 .Proses instalasi saya lakukan lewat source. Hasilnya sama saja dengan lewat port atau package. Setelah proses instalasi pastikan ada file konfigurasinya squid.conf, biasanya berada di /usr/local/etc/squid/squid.conf dan juga ada user squid dan group squid sebagai user yang menjalankan squid, demi keamanan sistem.
Kita mulai dengan mngkonfigurasi dari squid.conf, biasanya
pertama-tama tama kita definisikan dahulu pada port berapa http request akan dilistening squid

http_port 3128
icp_port 3130

icp adalah internet cache protocol, yaitu pada port berapa cache ini dipertukarkan, biasanya untuk hubungan sibling dengan proxy lain

kemudian kita definisikan access control list atau disingkat acl. Nah acl ini mendefinisikan tipe-tipe koneksi yang di allow atau di-blok proxy

acl sumber berdasar ip dan netmask sumber dengan atribut “src”

acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl arc src 167.205.3.0/255.255.255.192

acl berdasarkan ports

acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 631 # cups
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # SWAT

acl berdasarkan url tertentu

acl porno url_regex “/usr/local/etc/squid/porno.txt” # porno.txt mendefinisikan web-web tertentu

acl berdasarkan url (ada kata-kata tertentu dalam url)

acl QUERY urlpath_regex cgi-bin \?

acl berdasarkan method/perintah, misal bila telnet ke http ada perintah semacam GET, CONNECT dll

acl purge method PURGE
acl CONNECT method CONNECT

acl berdasarkan tipe protokol, misal disini adalah FTP dan obyek cache

acl FTP proto FTP
acl manager proto cache_object

acl berdasarkan autentikasi proxy, acl ini ditujukan bagi mereka yang terautentikasi

acl otentik proxy_auth REQUIRED

Ada banyak tipe ACl yang lain seperti ip destinasi, waktu dll

Untuk proxy_auth kita perlu mendefinisikan lagi cara autentikasinya, seperti LDAP, NCSA, MySQL. saya memakai metode NCSA, hampir sama seperti user dan password yang terenkripsi di /etc/passwd, berikut list konfigurasinya

auth_param basic program /usr/local/libexec/squid/ncsa_auth /etc/squid/basic.passwd # file txt dimana user dan password tersimpan
auth_param basic realm sopo koe???? #string yang ditampilkan saat autentikasi
auth_param basic children 5 # helper prosesnya
auth_param basic credentialsttl 2 hours #kalau sudah diautentikasi, selama 2 jam tidak akan menghasilkan helper proses lagi

nah setelah kita definisikan tipe ACL-nya kita definisikan hak-hak akses dari tipe-tipe tadi

no_cache QUERY

artinya Query yang ada teks cgi-bin tidak akan disimpan atau di-cache

http_access deny porno

website2 yang didefinisikan dalam teks porno.txt tidak akan diakses

http_access manager localhost
http_access deny manager

cache obyek hanya boleh diakses lcalhost

http_access purge localhost
http_access deny purge

command purge hanya boleh dilakukan localhost

http_access !Safe_ports

! artinya selain, jadi artinya tolak akses selain dari Safeports

http_access deny CONNECT !SSL_ports

tolak command connect selain dari port SSL

http_access allow localhost
http_access allow otentik arc
http_access deny all

Pengaturan ini berdasarkan matching dari bawah ke atas, jadi kalau dibaca, akses dibolehkan untuk obyek cache trus localhost, kalau bukan localhost boleh dari arc DAN user yang sudah terautentikasi, selain itu maka ditolak

always_direct allow FTP
always_direct deny all

langsung mendirect protokol FTP

Selanjutnya, apabila kita terkoneksi dengan proxy server lain maka kita dapat melakukan hubungan parent atau sibling ke proxy server tersebut.

cache_peer cache.itb.ac.id parent 8080 0 login=hamkanen:rahasiadonk weight=10 default

saya memakai parent cache.itb.ac.id

cache_effective_user squid

kita ingin menjalankan squid dengan user squid, tentunya segera setelah dijalankan sebagai root

cache_dir ufs /home/cache 10000 16 256

saya menaruh hasil caching ini di folder /home/cache dengan skema ufs, ukuran 10000 mega, dengan subdirektori 16 buah dan 256 subsub direktori

cache_mgr muhammad.hamka@arc.itb.ac.id

merupakan alamat email admin, apabila diprotes pengguna😀

Masih banyak konfigurasi squid.conf yang lain, yang bermanfaat.

Kemudian jalankan perintah “squid -z ” untuk mem-build swap space ,

kemudian jalankan “squid -sD” untuk menjalankan squid sebagai daemon.

Semoga tulisan ini bermanfaat.Sekian

One thought on “Konfigurasi squid sebagai proxy server

  1. mas kalau kita menggunakan autentikasi mysql bagaimana script/perintah yang di masukkan dlam squid.conf, mohon bantuannya

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s