03 Desember 2007

install proxy dengan squid2.6STABLE14 di ubuntu 7.10

Hallo rekan-rekan semua, jumpa lagi ama gue. Sory, baru sempat ngisi blog sekarang soalnya lagi ada kerjaan ngedisain web sebuah lembaga. Dah hampir jadi sich, tinggal isi/konsepnya tergantung mereka aja.

Kali ini gue rencana mau ngejelasin gimana nginstall proxy / squid di ubuntu 7.10. Penggunaan proxy gue harap kawan-kawan dah ngerti yach. singkatnya dia nyimpen file gambar di server kita yang suatu saat jika user mau browsing dengan domain yang pernah dibuka sebelumnya, so tinggal ambil di proxy kita aja. Jadi lebih ngemat bandwidth. Langsung ke praktek, OK.

disini gue nyaranin langsung jadi root aja yach.
1. install paket squid
#apt-get install squid

ket: pada ubuntu versi 7.10 paket squid yang diberikan biasanya adalah squid2.6STABLE14

2. pindahkan file konfigurasi squid yang asli
#mv /etc/squid/squid.conf /etc/squid/squid.conf.original

3. buat konfigurasi squid yang baru
#nano /etc/squid/squid.conf
-- isinya copy mulai tulisan dibawah ini --

http_port 3128 transparent
icp_port 3130
udp_incoming_address 0.0.0.0
udp_outgoing_address 255.255.255.255
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 64 MB
cache_swap_low 90
cache_swap_high 95
connect_timeout 1 minutes
negative_ttl 5 minutes
read_timeout 15 minutes
request_timeout 5 minutes
persistent_request_timeout 1 minutes
client_lifetime 5 day
pconn_timeout 120 seconds
shutdown_lifetime 30 seconds
maximum_object_size 20480 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 4096 KB
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
cache_replacement_policy lru
memory_replacement_policy lru
cache_dir ufs /var/spool/squid 15000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
log_ip_on_direct on
debug_options ALL,1
client_netmask 255.255.255.255
ftp_user Squid@
ftp_list_width 32
ftp_passive on
ftp_sanitycheck on
ftp_telnet_protocol on
redirect_children 10
auth_param basic children 10
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
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 563 6667 7000
acl Safe_ports port 80
acl Safe_ports port 81
acl Safe_ports port 21
acl Safe_ports port 443 563
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777 110
acl Safe_ports port 4461
acl Safe_ports port 5050
acl CONNECT method CONNECT
http_access allow manager localhost
acl perusahaan src 192.168.10.0/24 # ini bisa diganti sesuai ip lokal yang dipake
http_access allow perusahaan
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
http_reply_access allow all
icp_access allow all
miss_access allow all
cache_mgr namalo # nama lo disini, ya nama lo, bego amat sich lo.... he, he, he...
visible_hostname domainlo.com # terserah nama domainnya asal aja, cuma formalitas doang
logfile_rotate 10
buffered_logs off
snmp_port 3401
snmp_access allow localhost
snmp_access deny all
snmp_access deny all
coredump_dir /var/spool/squid
ie_refresh on
##Delay pools
acl download url_regex -i ftp \.exe$ \.mp3$ \.mp4$ \.tar.gz$ \.gz$ \.tar.bz2$ \.rpm$ \.zip$ \.rar$
acl download url_regex -i \.avi$ \.mpg$ \.mpeg$ \.rm$ \.iso$ \.wav$ \.mov$ \.dat$ \.mpe$ \.mid$
acl download url_regex -i \.midi$ \.rmi$ \.wma$ \.wmv$ \.ogg$ \.ogm$ \.m1v$ \.mp2$ \.mpa$ \.wax$
acl download url_regex -i \.m3u$ \.asx$ \.wpl$ \.wmx$ \.dvr-ms$ \.snd$ \.au$ \.aif$ \.asf$ \.m2v$
acl download url_regex -i \.m2p$ \.ts$ \.tp$ \.trp$ \.div$ \.divx$ \.mod$ \.vob$ \.aob$ \.dts$
acl download url_regex -i \.ac3$ \.cda$ \.vro$ \.deb$
delay_pools 1
delay_class 1 1
delay_parameters 1 6000/32000
delay_access 1 allow download
delay_access 1 deny all

-- berakhir diatas tulisan ini --
simpan dengan menekan ctrl+x tekan y kemudian enter

ket: disini kita make konsep delay pools yaitu untuk blok download diatas 32kb pada file-file yang disebutkan diatas maka otomatis download maksimal yang dapet sekitar 6 kbps (lihat 6000/32000). cara ini biasanya digunain untuk blok user-user yang make download akselerator atau sejenisnya. Untuk lebih jelasnya mengenai delay pools, belajarnya cari aja di internet, Ok.

4. aktifkan squid
#/etc/init.d/squid start

5. sekarang tinggal transparant proxynya, pake aja iptables
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p udp --dport 80 -j REDIRECT --to-ports 3128

ket:
-t nat = akan membuat satu tabel baru pada iptables
-A PREROUTING = akan membuat satu aturan baru pada bagian ROUTING nya.
-i eth1 = perintah akan mengarah ke bagian eth1 atau client yaitu pada jaringan lokal kita.
tcp = paket tcp
udp = paket udp
--dport 80 = untuk port 80
-j REDIRECT = akan diteruskan
--to-ports 3128 = ke port 3128 yaitu port proxy

6. jangan lupa simpen transparant proxy nya di rc.local agar setiap kali server dinyalain kita nggak perlu repot lagi nyeting transparant proxy nya
#nano /etc/rc.local

dibawah rc.local tambahkan iptables berikut
/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
/sbin/iptables -t nat -A PREROUTING -i eth1 -p udp --dport 80 -j REDIRECT --to-ports 3128

simpen make ctrl+x tekan y kemudian enter

sekian dulu penjelasan dari gue, lain waktu sambung lagi yach, kalo ada yang ditanyakan jangan sungkan untuk nulisnya di koment blog ini. Disini kita sama-sama belajar....

salam dingin

pinokio

7 komentar:

Anonim mengatakan...

Sebelumnya saya mengucapkan terima kasih tulisannya sangat bermanfaat buat saya..
Saya ada pertanyaan,,kenapa saya coba transaparentnya tidak berhasil ya?
saya harus setting proxy nya di browser..barulah bisa browsing.
mohon sarannya..terima kasih

Unknown mengatakan...

Terima kasih...
begini mas/mbak (abis anonim sich)
untuk settingan squid versi 2,5 transparant proxy terletak pada bagian:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

sedangkan untuk squid 2,6 bagian itu sudah dihilangkan, diganti dengan
http_port 3128 transparent
(lihat perbedaan settingan http_port 3128 untuk squid 2,5 dan squid 2,6 di blogger ini)

Nah, sekarang mas/mbak udah nulis kata "transparent" nya nggak ??
Kalau sudah, harusnya transparant proxy udah jalan dan nggak perlu di setting di browser client..
Terakhir jangan lupa untuk nge redirect port 80 ke 3128 dengan iptables.. moga bisa membantu

Anonim mengatakan...

Halo Mas ..met tahun baru.
Sori baru bisa bales lagi komentar yang kemarin.
Saya menggunakan konfigurasi yg mas berikan..dan kata2 http_port 3128 transparent itu juga ada.
redirect port juga sudah saya lakukan sesuai dg yg mas berikan.
Tapi masih belum bisa jalan juga transaparentnya.
Oya saya menggunakan 1 ethernet saja.

apakah ip_forwarding nya juga perlu diaktifkan?

terima kasih sebelumnya..

Salam kenal,
DIdi

Unknown mengatakan...

maaf baru jawab sekarang soalnya udah mulai mau aktif kulaih lagi, jadi untuk koneksi ke internet udah mulai jarang.
boleh send konfigurasi squidnya nggak?
untuk ip_forwading memang perlu diaktifkan..

terima kasih

Anonim mengatakan...

mas, kalo mau ngebatesin bandwidth client yang makek torrent itu gimana ya???

mohon bantuannya ya ^_^

Anonim mengatakan...

trims atas tulisannya
saya sudah mengikuti semua langkah di atas dan transparentnya berhasil,
tetapi jika klien surfing ke situs2 https:// (login ke yahoo atau google) harus setting manual proxy di browser
mohon pencerahaanya

Anonim mengatakan...

terma kasih banget atas tulisannya, sebelumnya belum tau jadi tahu.