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