Proxy Server Linux dengan Squid

Proxy Server LinuxBagi sebagian rekan-rekan yang mau membuat proxy server dengan Linux, atau bagi adik-adik Ilmu Komputer USD yang mau coba-coba belajar bikin proxy, saya ingin membagikan pengalaman kecil saya dalam membuat proxy menggunakan Linux. Meski banyak software untuk membuat proxy server, saya memilih squid karena paketnya sudah ter-include dalam distro yang saya gunakan (Fedora Core) dan hampir sebagian proxy server Linux menggunakan squid. Untuk spesifikasi hardware yang saya gunakan, dapat dilihat di artikel Proxy Server di tempat kerja saya. Proxy server tersebut menggunakan squid versi 2.6-12 pada distro Fedora Core 6 yang saya fungsikan sebagai:

  1. Menyimpan halaman web di proxy untuk mempercepat akses Internet.

  2. Akses kontrol Internet berdasarkan IP Address. Menggunakan 2 network yang berbeda (saya fungsikan juga sebagai router – dengan IP Forwarding), untuk ini, saya menggunakan 3 NIC pada 1 server.

  3. Blacklist daftar situs terlarang secara manual.

  4. Membatasi ukuran download File dengan ekstension tertentu dan hanya berlaku pada jam tertentu.

  5. Pesan Error dalam format Bahasa Indonesia.

  6. Rule untuk memperbolehkan akses Internet hanya protokol tertentu saja.

Langkah-langkah yang saya lakukan:

  1. Instal aplikasi squid
  2. Edit file konfigurasi squid
  3. Buat direktori dan file blacklist untuk blacklist secara manual
  4. Buat direktori dan file untuk pesan error dalam bahasa indonesia
  5. Check konfigurasi firewall yang diterapkan di proxy
  6. Jalankan servicenya
  7. Test konfigurasi di proxy dan client

File konfigurasi squid: /etc/squid/squid.conf (versi saya)

#SQUID 2.6.STABLE12
#Author by: http://fxekobudi.net

# OPTION JARINGAN
# —————————————————————————–
http_port 3128
icp_port 0

# OPTION UKURAN CACHE
# ——————————————————————-
cache_mem 256 MB
cache_swap_low 94
cache_swap_high 96
maximum_object_size 16384 KB
minimum_object_size 4 KB
maximum_object_size_in_memory 2048 KB
fqdncache_size 1024
cache_replacement_policy heap GDSF
memory_replacement_policy heap GDSF

# DIREKTORI LOG DAN CACHE
# ——————————————————————
cache_dir aufs /var/spool/squid 9000 16 256
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
cache_store_log none

# TUNING CACHE PROXY
# ——————————————————————
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
negative_ttl 1 minutes

# TIMEOUT
# —————————————————————–
half_closed_clients off
# ————————————-
# Memblok situs terlarang (blacklist)secara manual
# ————————————-
acl noblacklist dstdomain “/etc/squid/blacklist/no-blacklist.txt”
acl katablacklist url_regex -i “/etc/squid/blacklist/kata-blacklist.txt”
acl domainblacklist dstdomain “/etc/squid/blacklist/domain-blacklist.txt”
acl ipblacklist dst “/etc/squid/blacklist/ip-blacklist.txt”

acl tdkbebasdownload time 08:00-13:00

# AKSES KONTROL
# ——————————————————————
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
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 777 # multiling http
acl CONNECT method CONNECT
# ————————————-
# Daftar IP address
# ————————————-
acl lab1 src 192.168.254.1-192.168.254.40/255.255.255.255
acl staf-it src 192.168.254.41-192.168.254.42/255.255.255.255
acl lab2 src 192.168.254.43-192.168.254.44/255.255.255.255
acl ruang1 src 192.168.1.1-192.168.1.8/255.255.255.255
acl ruang2 src 192.168.1.11-192.168.1.17/255.255.255.255

# ————————————-
# Memblok situs terlarang secara manual
# ————————————-
http_access allow noblacklist
http_access deny katablacklist
http_access deny domainblacklist
http_access deny ipblacklist

http_access allow manager localhost
http_access deny manager
# ————————————-
# Rule yang saya terapkan
# ————————————-
http_access allow lab1
http_access allow staf-it
http_access allow lab2
http_access allow ruang1
http_access allow ruang2

acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar.bz2 .bz2 .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso

# Cancel download if file is bigger than 2 MB = 2000×1024 byte = 2048000 byte
reply_body_max_size 2048000 allow magic_words2 tdkbebasdownload

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all

# PARAMETER ADMINISTRATOR
# —————————————————————–
cache_mgr fxekobudi@gmail.com
cache_effective_user squid
cache_effective_group squid
visible_hostname proxy.fxekobudi.local

# PESAN ERROR DALAM BAHASA INDONESIA
# ——————————————————————–
error_directory /usr/share/squid/errors/Indonesian

Agar fungsi blacklist manual itu dapat digunakan, buat direktori berisi file-file disebutkan dalam blacklist manual:

# mkdir /etc/squid/blacklist
# cd /etc/squid/blacklist/
# vim no-blacklist.txt
# vim kata-blacklist.txt
# vim domain-blacklist.txt
# vim ip-blacklist.txt

Minimal dimasukkan satu item untuk masing-masing file tersebut, karena jika tidak, maka saat kita melihat error log squid sesaat setelah service dijalankan, akan ada pesan error tidak menemukan item pada file tersebut…

Selain itu, saya juga menyertakan konfigurasi untuk pesan Error dari Proxy squid dalam bentuk bahasa indonesia, agar user di tempat kerja saya lebih mudah memahami maksudnya… Ide pesan error ini kemudian menjadi inspirasi saya saat mengkonfigurasi redirect SquidGuard untuk mengarah kepada file yang sengaja saya buat di root direktori web server proxy.
Untuk melakukannya, tinggal copykan saja pesan Error dalam bahasa Inggris ke direktori lokasi pesan error berbahasa Indonesia.

# cp /usr/share/squid/errors/English /usr/share/squid/errors/Indonesian

trus terjemahkan file-filenya…

Untuk menjalankan servicenya, gunakan saja perintah:

# /sbin/service squid start

Oh ya, Anda juga perlu menambahkan di konfigurasi Firewall menggunakan Iptable agar client diperbolehkan mengakses Internet ini melalui proxy, request client ke proxy dengan IP address yang terdaftar diperbolehkan melalui port 3128 (atau 8080) tergantung konfigurasi yang Anda gunakan… Saya jadi ingat waktu pertama kali mencoba, koneksi internet di server pake proxy udah jalan, tapi kok clientnya ngga bisa akses, eh ternyata emang client belum diperbolehkan akses ke IP address dan portnya proxy… Hehe. Agar bisa akses ke proxy, rule iptable-nya untuk file /etc/sysconfig/iptables harus memuat rule ini: (saya pakai konfigurasi firewall bawaan Fedora Core)

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT

Untuk menerapkan IP forwarding, saya edit file /etc/sysctl.conf dan memberi nilai 1 (enable) untuk direktive:

net.ipv4.ip_forward = 0 menjadi net.ipv4.ip_forward = 1

Konfigurasi proxy ini saya gunakan sebagian ditempat kerja saya (YBHK dan persekolahan Tarsisius 1, Damai, Tarsisius 2, Vianney, dan Tarsisius Vireta) dengan beberapa tambahan fitur yang tidak dapat saya sebutkan disini… Dengan alasan keamanan. Hehe…

Sedangkan konfigurasi squid untuk menggunakan blacklist dari redirect SquidGuard dan firewall-nya akan saya tulis beberapa minggu ke depan… Setelah saya pulang berlibur ke rumah orang tua saya sekaligus tanah kelahiran saya di Sarolangun, Jambi.

Related Posts

  1. Redirect Squid Proxy Server Linux dengan SquidGuard
  2. Mengamati Statistik Akses URL Situs pada Proxy Server dengan Squid Analysis Report Generator (SARG)
  3. Membuat DNS Server, Web Server dan Database Server Menggunakan Linux Fedora 8
  4. DNS Server Linux
  • You are free to share (copy, distribute, transmit) & adapt this blog post under the similar license (Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported; CCA-NC-SA 3.0 Unported). Please put these links on your copy:
  • Taken from: Proxy Server Linux dengan Squid by FX. Eko Budi Kristanto.

80 Responses to “Proxy Server Linux dengan Squid”

Comments

Read below or add a comment...

  1. ymmij says:
    Firefox 3.0 Firefox 3.0 Windows XP Windows XP

    distro linux yang paling bagus dan stabil untuk proxy server apa ya mas? thx

    FX. Eko Budi Kristanto:
    Kebanyakan distro untuk server bagus dan stabil Mas.. Silahkan mencobanya dengan Debian, Ubuntu atau Fedora.. :D

  2. Wisnu says:
    Firefox 3.0.4 Firefox 3.0.4 Windows XP Windows XP

    Mohon bantuan pa,

    Bagaimana setting transparent proxy ?
    Saya sudah configure proxy tapi harus setting manual di browser client.. Bagaimana biar client bisa automatic detect proxy server tanpa harus setting2 di browser client lagi?

  3. yeret says:
    Firefox 3.0.6 Firefox 3.0.6 Windows XP Windows XP

    dear mas eko,
    saya mau ngeblok user untuk mengakses website tertentu pada jam tertentu, bagaimana sintaxnya yah…

  4. umang says:
    Firefox 3.0.4 Firefox 3.0.4 SuSE SuSE

    makasih mas atas toterialnya kebetulan lg belajar proxy…. untuk memblok situs2 tidak bermanfaat… karena banyak yang menyala gunakan pengunaan internet.

  5. galeks43 says:
    Firefox 3.0.4 Firefox 3.0.4 Windows XP Windows XP

    ass Mas
    Mau belajar dar mas nie
    saya Dapat TA dengan Kajian Proxy squid dengan linux Centos,
    ada beberapa pertanyaan nie mas
    1. Konfigurasi diatas bisa di pake pada Linux Centos ga?
    2. untuk squid sendiri Versi berapa yang paling stabil??

    FX. Eko Budi Kristanto:
    Langsung saja:
    1. Bisa Mas, karena centos sekeluarga dengan Fedora kok.
    2. Sampai saat ini, beberapa server di tempat kerja saya yang menggunakan squid 2.6 dan 3 sudah 3 tahun bekerja tetap stabil Mas, dan belum pernah ada trouble.

  6. sunu says:
    Firefox 3.0.7 Firefox 3.0.7 Windows XP Windows XP

    Salam kenal mas,saya mau tanya.. saya coba konfigurasi squid.conf punya mas ,tetapi Daftar IP Address yang saya gunakan 192.168.1.1-192.168.1.50/255.255.255.255..kemudian saya jalankan /sbin/service squid start..keluar pesan..starting squid: /etc/init.d/squid: line 53: 11676 Aborted $SQUID_OPTS >>/var/log/squid/suid.out 2>&1…Artinya Apa ya Mas?

    FX. Eko Budi Kristanto:
    Jika dilihat dari pesan error, kayaknya bukan karena IP yang digunakan, tapi dari konfigurasi log file untuk squid. Baris-nya ada di squid.conf juga kok. Silahkan dilihat kembali.

  7. Sunu says:
    Firefox 3.0.8 Firefox 3.0.8 Windows XP Windows XP

    Ass mas
    Proxy server di kantor ku sudah jalan, ACL sudah berjalan baik, situs yang diblok tidak bisa diakses .. saya mau tanya mas, klo mau buat ACL time bagaimana ya mas? saya pakai squid stable 2.6, saya sudah coba acl time seperti yang ada pada squid-cache.org, tapi tidak berhasil..dimana ACL time yang dibuat pada jam sebelum 08.30 dan pada jam 12.00-13.00 dan jam 17.30 bisa buka web yang diblok..mohon pencerahannya

    Thanks & Rgds

  8. cHerCut says:
    Firefox 3.0.8 Firefox 3.0.8 Windows XP Windows XP

    om … cHer maU nanya dunk.
    cHer kan server’nya pake uBuntu server 8.04 di vmware.
    trus client’nya windows itu sendiri.
    aku sUdah ngikutin artikeL om.
    sQuid’nya udah oke, IP windows udah diseting, gateway’nya pake IP vmware.
    tapi ko pas di windows (client) ga bisa internetan ya ??? di server’nya (vmware) bisa.
    0m .. bantuan’nya dunk napa bisa gitu :(
    ip-forwating=1 udah di seting. trus apa lagi om supaya client bisa internetan n proxy ku jalan di client!?? [-o<

    cHer masi baru ama ginian om :(

    FX. Eko Budi Kristanto:
    vmware (virtual machine) ada yang gratis Mas? Saya belum pernah menggunakannya.. :D Dan kenapa server harus menggunakan vmware?

    • johan says:
      Google Chrome 4.0.249.78 Google Chrome 4.0.249.78 Windows XP Windows XP

      hmm,, saya punya pertanyaan yang sama seperti cher..
      mungkin juga alasaan yang sama..
      kalo saya mencoba konfigurasi squid proxy di linux dalam vmware..
      buat nyoba2 dlu aja gitu mas.. jadi nanti mencoba linux jadi proxy.. dan windows nantinya connect ke inet melalui proxy linux..
      tapi saya pun masih belum berhasil…
      johan´s last blog ..Learn from the Air

  9. sutisna says:
    Firefox 3.0.8 Firefox 3.0.8 Windows Vista Windows Vista

    mas lam kenal
    Aq mo tanya nih….

    apa kalau aku pk fedora 9.0 apa untuk squid tersebut bisa saya terapkan untuk spek kompi aku yang akan saya jadikan proxy server.untuk mengatur pemakaian bandwith internet di tempat aku ???????????.
    spek komputer saya
    lenovo pentium 4 +memory 1gb+ hd 130 gb…ada cd rom trus klu aku hanya memakai satu NIC busa ga yah

    FX. Eko Budi Kristanto;
    Dengan spesifikasi Mas, saya yakin sangat bisa Mas.. Ada satu server proxy ditempat saya yang menggunakan Pentium 4 rakitan dengan memory 512 MB dan sudah 3 tahun ini belum pernah bermasalah. Untuk NIC, jika hanya satu, bisa menggunakan aliasing, tetapi hasilnya kurang memuaskan, karena jalur keluar masuk hanya satu.

  10. Aan Marliansa says:
    Firefox 3.0b4 Firefox 3.0b4 Windows XP Windows XP

    Asslm….
    Mass tolong posting cara setting proxy server pada linux Redhat.

    Thanks sebelumnya……

  11. cHerCut says:
    Firefox 3.0.11 Firefox 3.0.11 Windows XP Windows XP

    0m, cHer cEwE yaaa !!! buKan mas2 :(
    kEnaPa paKe vmware ?
    karEna, paS siDan9 nTar cHer ribEt kLo baWa 2 LapTop.
    maKanya cHer paKe vmware.

    mas, bisa cLient pas di seTTing IP nya 9a bisa internetan, taPi kLo setting dari browsernya bisa interneTan.

    kenaPa be9iTu mas ??
    kLo cLient nya banyak kan ribEt :D

    bErarTi tranSparent pr0xy cHer beLum jaLan d0nk :(

    baNtuin dunk mas [-o<

  12. Andika says:
    Firefox 3.0.10 Firefox 3.0.10 Windows XP Windows XP

    mas gmn caranya klu muncul pesan kayak gini
    stopping squid: /etc/init.d/squid: line 162 : 3707 Aborted $SQUID -k check >dev/null 2>&1 [FAILED]
    starting squid: /etc/init.d/squid: line 162 : 3708 Aborted $SQUID $SQUID_OPTS 2>/dev/null [FAILED] tolong penjelasannya soalnya baru belajar squid nih…..tolong mas……..cara lengkapnya.makasih…..

  13. johan says:
    Opera 9.64 Opera 9.64 Windows XP Windows XP

    wah bagus ini, save dulu :-P .
    btq p eko, kok domainnya tidak diregistrasikan atas nama p eko, tetapi di registrasikan atas nama provider. cek—> http://whois.domaintools.com/fxekobudi.net
    johan´s last blog ..Laptop Battery Care

    FX. Eko Budi Kristanto:
    Sudah atas nama saya Pak.. :D

  14. oman says:
    Firefox 3.5.2 Firefox 3.5.2 Windows XP Windows XP

    mas klo kita mo blok download mp3 gimana aclnya? terus klo download mp3 dari 4 shared masih bisa tembus gimana?

    trims

    FX. Eko Budi Kristanto:
    Dalam tulisan saya ini saya menggunakan direktif acl magic_words2 url_regex -i

  15. deden says:
    Opera 9.64 Opera 9.64 Windows XP Windows XP

    Mas kalo setting port forwading gimana? mohon pencerahannya…

    saya pake redhat linux dengan squid…

    mohon pencerahannya

  16. dhanie says:
    Firefox 3.5.3 Firefox 3.5.3 Windows Vista Windows Vista

    mo nanya.. kalau di /var/log/squid/access.log ketemu hal seperti : 1256653190.900 457 192.168.1.2 TCP_DENIED/501 1464 POST ftp:
    dan di brawser client di tulis : The following error was encountered:

    * Unsupported Request Method and Protocol

    Squid does not support all request methods for all access protocols. For example, you can not POST a Gopher request. mohon pencerahannya dunk.. OS yg di pakai centOS 5.3 upgrade ke 5.4 squid-2.6.STABLE21-3.el5
    terimakasih

    salam,

    dhanie

  17. Moch.Rasyid says:
    Firefox 3.5.2 Firefox 3.5.2 GNU/Linux GNU/Linux

    Saya masih bingung untuk melakukan pembatasan download. Saya sudah coba pembatasan tersebut, namun masih belum bisa juga…kira – kira ada pembahasan yang lebih lengkap ndak ?
    Moch.Rasyid´s last blog ..Distro Linux

  18. aank says:
    Firefox 3.0.15 Firefox 3.0.15 Windows Server 2003 Windows Server 2003

    Salam kenal….!
    wah saya newbie buanggetss…!pgn bisa setting proxy…

    Di Lab sekolah saya rencananya mau migrasi online menggunakan SQUID ( tp di XP ). mohon bantuan dari mas fxekobudi agar dapat diberikan solusi jitu untuk hal tersebut diatas.

    Analisisnya seperti ini :
    * OS masih Windows XP, dijadikan sebagai server.
    * Modem menggunakan Drytek Vigor IP 192.168.0.1
    * Server Data IP 192.168.0.2-192.168.0.3 (IP ini tdk bs Aksses)

    * Disekolah ada 2 Lab,
    1. Lab untuk Kepsek,wakepsek,guru2,TU,dll dengan IP Range 192.168.0.4-192.168.0.8
    2. Lab untuk murid dgn IP range 192.168.0.9 – 192.168.0.30

    Yang ingin saya tanyakan :
    a. Lab 1 IP 192.168.0.4-8, full access internet seharian tanpa dibatasi.
    b. Lab 2 IP 192.168.0.9-30 hanya bisa diakses dari jam 15.00 s/d 18.00 pada hari senin s/d jum’at, selebihnya tidak bisa diakses.
    c. Bagi user yang mengganti Ipnya dari 192.168.0.31-255 tidak bisa mengakses internet.
    Bagaimanakah configurasi Squid Conf tersebut? karena saya pernah configurasi tetapi gagal justru computer yg dijadikan server malah ikut2an tidak bisa akses seperti lab 2.
    Saya menunggu pencerahan dari mas Fxekobudi.

    Terima kasih sebelumya
    Best Regards
    aankkbm@gmail.com

  19. samp says:
    Firefox 2.0.0.20 Firefox 2.0.0.20 Windows XP Windows XP

    msh newbies bgt nih.linux yg bgs bwt proxy apaan ya?

  20. ilham says:
    Firefox 3.0 Firefox 3.0 Linux Mint Linux Mint

    mas punya instalannya gak, kalau gak link download nya. terimakasih

  21. Aqsha says:
    Firefox 3.5.5 Firefox 3.5.5 Windows XP Windows XP

    mas.. bagi file2 blacklist dan nonblacklistnya donk.. hehe..
    thx sebelumnya atas penjelasannya…
    Aqsha´s last blog ..Lowongan terkini dari Karir.com untuk Posisi IT Staff

  22. arif says:
    Firefox 3.0.4 Firefox 3.0.4 SuSE SuSE

    MAS …

    saya mau tanya settingan untuk proxy squid di Opensuse 11.1??
    sekaligus settingan web sever,DNS server, dan database sever??

    trimakasih mas..

Share Your Thoughts