Introduction/Disclaimer
——————–
This document may be modified, reproduced, and distributed free of charge, as
long as the “INTRODUCTION/DISCLAIMER” notice and the original author’s name are
both included. Also, please go to http://www.freebsd.org/copyright/index.html for
FreeBSD copyright information.
Created Fri Oct 24 00:13:23 MYT 2003 - aka ded1
E-mail: ded1@MyBSD.org.my
WWW: http://www.ded1.net
*Sebarang komen/idea/pertanyaan dialu-alukan.
APAKAH ITU SQUID DAN SERVER PROXY ?
———————————–
Untuk yang belum mengetahui ape benda ni, sila baca serta fahamkan di:
http://www.squid-cache.org/Doc/FAQ/FAQ.html
Benda yang digunakan untuk setup serta menguji proxy server ini:
- 1 FreeBSD 4.7-RELEASE server (IP: 202.188.88.250)
- 1 switch
- 3 workstation (IP: 202.188.77.0/24)
- Kemudahan sambungan ke internet
1. Ambil source code terbaru versi stable squid di: http://www.squid-cache.org/Versions/
2. Contoh: http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE4.tar.gz
3. Kemudian letak di mana-mana directory contoh di /root/SQUID/
4. tar source code tu:
tar -xzvf squid-2.5.STABLE4.tar.gz
5. lepas tar akan wujud 1 dir baru bernama squid-2.5.STABLE4/
6. cd ke squid-2.5.STABLE4/
7. baca file README dan INSTALL dan fahamkan.
8. Mulakan compile squid dengan option command:
./configure –enable-delay-pools –enable-ipf-transparent
RUJUKAN:
–enable-delay-pools = dengan option ini, sebenarnya adalah untuk menghadkan penggunaan bandwidth.
Ini akan memberikan penggunaan bandwidth sama rata di kalangan pengguna dalam
LAN. Saya tidak mahu ada seorang/sebahagian sahaja pengguna yang menggunakan
semua bandwidth dengan memuat turun video klip/cerita yang bersaiz besar di mana
menyebabkan pengguna lain menderita kesakitan yang amat sangat akibat salahguna
bandwidth oleh individu tertentu.
–enable-ipf-transparent = dengan option ini, adalah untuk enable Transparent Proxy untuk sistem menggunakan
IP Filter network address redirect. Option ini merupakan cara paling baik untuk
memaksa pengguna dalam LAN agar menggunakan proxy setiap masa untuk browser mereka.
Kemudian:
make all
make install
9. Siap compile & install squid.
10. Sekarang kita perlu edit squid.conf, Backup squid.conf yang asal dan gunakan squid.conf saya (jika
anda mahu), semuanya terpulang pada anda, kerana squid.conf asal agak kompleks dan memeningkan.
11. Cipta 1 file bernama squid.conf dan letakkan di /usr/local/squid/etc/
12. Berikut ialah kandungan squid.conf saya :
—————————————————————
# PROXY SERVER ded1
#
http_port 1616
icp_port 0
acl noaccess dstdomain “/usr/local/squid/etc/noaccess.dat”
acl QUERY urlpath_regex cgi-bin \?
acl local dst 202.188.88.250
acl fullspeed dstdomain “/usr/local/squid/etc/fullspeed.dat”
acl nodelay src 202.188.78.1
#
# specifies the network in which to “delay” web access.
#
acl capped src 202.188.85.0/255.255.255.0
no_cache deny QUERY
cache_mem 16 MB
cache_dir ufs /etc/cache 256 16 256
redirect_rewrites_host_header off
dns_nameservers 202.188.0.133
icon_directory /usr/local/squid/share/icons
cache_replacement_policy GDSF
#
# specify the network address and subnet of the local network to which the linux server is connected to.
#
acl localnet src 202.188.77.0/255.255.255.0
#
# specify the BSD server’s IP address.
#
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 8443 563 777
acl Safe_ports port 25 80 110 443 563 777 210 119 70 21 1025-65535
acl CONNECT method CONNECT
acl all src 0.0.0.0/0.0.0.0
http_access deny noaccess
http_access allow localnet
http_access allow localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all
cache_mgr ded1@crap.com
cache_effective_user squid
cache_effective_group squid
log_icp_queries off
buffered_logs on
# Delay Pools (Bandwidth Throttling)
delay_pools 3
# Delay Pool number 1 of class 2 for local network NOT throttled for local services.
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow local fullspeed
# Delay Pool number 2 of class 2 for local network NOT throttled for ACL nodelay.
delay_class 2 2
delay_parameters 2 -1/-1 -1/-1
delay_access 2 allow nodelay
# Delay Pool number 3 of class 2 for local network THROTTLED to 4K for non local
# services.
delay_class 3 2
delay_parameters 3 15000/15000 4000/4000
delay_access 3 allow capped
———————————————————————————–
13. Untuk pengetahuan anda, proxy server ini di bind pada port 1616 (Pastikan port itu belum
diguna oleh mana-mana service sebelum anda bind!)
14. cd semula ke directory /usr/local/squid/etc/
15. Taip command berikut:
root@crap:etc:# touch noaccess.dat
root@crap:etc:# touch fullspeed.dat
16. Isikan perkara berikut pada file noaccess.dat
# LAMAN WEB TERLARANG
.sex.com
.porn.com
nota: Ini sebenarnya adalah untuk melarang semua pengguna dari memasuki laman web
yang bermula dari domain tersebut atas sebab tertentu.
17. Isikan perkara berikut pada file fullspeed.dat
# LAMAN WEB YANG DIGALAKKAN
.ded1.org
.mybsd.org.my
nota: Ini sebenarnya adalah untuk memberi laluan tanpa DELAY dan FULL SPEED kepada
pengguna ketika memasuki laman web bermula dari domain tersebut.
18. adduser yang bernama squid dan group squid
19. Kemudian buat pula directory cache dan swap untuk squid
root@crap:etc:# mkdir /etc/cache
root@crap:etc:# chown /etc/cache
root@crap:etc:# chgrp /etc/cache
20. Set agar menggunakan transparent proxy dengan ipfilter (pastikan server telah diinstall & jalan
dengan IPF)
Edit /etc/rc.conf
# Tambahkan benda berikut
ipfilter_enable=”YES”
ipnat_enable=”YES”
ipmon_enable=”YES”
ipfs_enable=”YES”
Edit /etc/ipnat.rules
# Tambahkan benda berikut; xl0 merupakan NIC
# dalaman
# Redirect segalanya kepada squid pada port 1616
rdr xl0 0/0 port 80 -> 127.0.0.1 port 1616 tcp
21. Flush network pada server itu.
22. Start squid daemon.
root@crap:etc:# /usr/local/squid/sbin/squid -z
23. Untuk melihat sama ada squid berjalan atau tidak, sila tengok log:
root@crap:etc:# tail -f /usr/local/squid/var/logs/access.log
1066927464.436 254 202.188.77.9 TCP_MISS/200 2779 GET http://www.mybsd.org.my/news/comments.php? - DIRECT/202.157.183.150 text/html
1066927476.791 1129 202.188.77.9 TCP_MISS/200 4836 GET http://www.google.com.my/ - DIRECT/216.239.33.99 text/html
1066927477.088 488 202.188.77.9 TCP_MISS/200 3226 GET http://www.google.com.my/images/hp1.gif - DIRECT/216.239.33.99 image/gif
1066927477.096 495 202.188.77.9 TCP_MISS/200 2975 GET http://www.google.com.my/images/hp2.gif - DIRECT/216.239.33.99 image/gif
1066928975.012 0 202.188.77.9 TCP_DENIED/403 1369 GET http://www.sex.com - NONE/- text/html
24. Cara yang paling mudah untuk menentukan sama ada squid berjalan atau tidak, gunakan netstat.
root@crap:etc:# netstat -an | grep 1616
tcp4 0 0 *.1616 *.* LISTEN
Nota: Keputusan di atas menunjukkan squid daemon berjalan dan LISTEN pada port 1616 (port di mana kita bind squid
seperti yang di set pada squid.conf)
25. Siap.
Sekarang mesin anda telah siap sebagai transparent proxy server yang menggunakan squid.
Sekian.
- ded1
SQUID Proxy Server Tutorial
Wednesday, December 26, 2007
Posted by M. Thoyib HM at 6:58 PM
Subscribe to:
Post Comments (Atom)

0 comments:
Post a Comment