Senin, 26 Juli 2010

Membuat Proxy Server (squid) di Linux Fedora

Setelah membahas tutorial membuat sebuah router. Sekarang saya akan mencoba memberikan tutorial membuat proxy server (squid) transparent. Banyak tutorial-tutorial yang membahas tentang squid, tapi disini saya akan mencoba untuk lebih singkat dan jelas. Dengan kemampuan saya yang begitu terbatas.

Disini penulis menggunakan Fedora Core 4 dengan spec komputer

• Intel Cell 3,0 Ghz
• RAM 512Mb + 16Mb share VGA
• HD 80Gb
Dengan pembagian partisi
Filesystem Size
/swap 1G <– (2 x RAM)
/ 9.5G
/home 8.8G
/var 53G

Dan menggunakan squid versi paling baru di FC4 squid-2.5.STABLE13-1.FC4.i386.rpm
Dipastikan bahwa komputer anda telah siap dan sudah terinstal Fedora Core 4 dengan pilihan paket server. Kita mulai langkah pertama :

1) Defaultnya FC4 sudah mempunyai squid bawaan. Untuk mengupdatenya atau mengganti ke versi terbaru silahkan download di alamat ini http://www.eng.lsu.edu/mirrors/fedora/updates/4/i386/squid-2.5.STABLE13-1.FC4.i386.rpm

2) Hapus terlebih dahulu squid bawaan dengan perintah

# rpm –e squid

3) Kemudian install squid

# rpm –ivh squid-2.5.STABLE13-1.FC4.i386.rpm

4) File config terletak pada /etc/squid/squid.conf backup file asli dengan cara

# mv /etc/squid/squid.conf /etc/squid/squid.conf-ori

5) Kemudian buat file baru dengan nama squid.conf

# vi /etc/squid/squid.conf

Copy paste script untuk squid.conf dibawah ini :

http_port 3121
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
visible_hostname warnet.kita.com
cache_mgr admin@warnet.kita.com
hierarchy_stoplist cgi-bin ? localhost warnet.kita.com
acl QUERY urlpath_regex cgi-bin ? localhost warnet.kita.com
no_cache deny QUERY
cache_mem 4 MB
cache_swap_low 90
cache_swap_high 98
maximum_object_size 16 MB
maximum_object_size_in_memory 8 KB
ipcache_size 750
ipcache_low 90
ipcache_high 98
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
shutdown_lifetime 10 seconds
memory_pools off
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
cache_dir ufs /var/spool/squid 7500 16 256
pid_filename /var/run/squid.pid
mime_table /etc/squid/mime.conf
#logfile_rotate 500
cache_effective_user squid
cache_effective_group squid
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 SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
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 777 # multiling http
acl CONNECT method CONNECT
acl user src 192.168.30.0/24
http_access deny CONNECT !SSL_ports
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access allow user
http_access deny all
http_reply_access allow all
icp_access allow all
reload_into_ims on
pipeline_prefetch on
ie_refresh on
vary_ignore_expire on
quick_abort_min 0
quick_abort_max 0
quick_abort_pct 98

simpan file tersebut.

6) Kemudian membuat file log squid

# mkdir /var/log/squid
# chown –R squid.squid /var/log/squid

7) Masuk dalam direktori log squid yg telah dibuat tadi

# cd /var/log/squid

8) Buat file kosong dengan nama access.log cache.log dan store.log

# vi access.log
# vi cache.log
# vi store.log
# touch access.log cache.log store.log

9) Ubah kepemilikannya

# chown –R squid.squid access.log cache.log store.log

10) Buat direktori spool squid

# mkdir /var/spool/squid
# chown –R squid.squid /var/spool/squid

setelah selesai selanjutnya kita akan membuat direktori cache yang telah di definisikan pada squid.conf

11) Yaitu dengan menjalankan

# squid –z

Kemudian cache terbentuk secara otomatis

12) Sebelum menjalankan squid terlebih dahulu kita harus me-nat agar user yang akan browsing request ke squid terlebih dahulu sebelum langsung ke internet. Yaitu dengan menambahkan iptables redirect nya

# vi /etc/sysconfig/iptables

Tambahkan baris berikut diatas COMMIT

-A PREROUTING –s 192.168.30.0/24 –p tcp –dport 80 –j REDIRECT –to-port 3121

(perhatikan huruf besar dan kecil)

13) Jalankan squid nya

# /etc/init.d/squid start

14) Untuk melihat apakah squid jalan atau tidak

# tail –f /var/log/squid/access.log

15) Bila jalan maka akan terbentuk direct file dari web browsing kita




Read More..

Cara Installasi squid di Slackware

Berikut adalah cara sederhana untuk install squid di mesin slackware kita :

Pertama² download squid package nya:
# wget http://linuxpackages.inode.at/Slackware-10.1/Daemon/squid/squid-2.5.STABLE9-x86_64-1stb.tgz

kemudian install package
# installpkg squid-2.5.STABLE9-x86_64-1stb.tgz

Kemudian buat script bash sbb:
# pico /etc/rc.d/rc.squid

isi dari rc.squid sbb:
#!/bin/sh
echo -n ' squid '
case "$1" in
start)
/usr/sbin/squid -D
;;
stop)
/usr/sbin/squid -k shutdown
;;
restart)
/usr/sbin/squid -k reconfigure
;;
*)
echo "Usage: `basename $0`
{start|stop|restart}"
;;
esac

Kemudian buat /etc/rc.d/rc.squid supaya bisa di eksekusi
#chmod 755 /etc/rc.d/rc.squid

Supaya squid dapat di load otomatis ketika restart edit file rc.inet2
# pico /etc/rc.d/rc.inet2

tambah baris dibawah ini pada file /etc/rc.d/rc.init2
# Start SQUID (Squid proxy server):
if [ -x /etc/rc.d/rc.squid ]; then
. /etc/rc.d/rc.squid start
fi

Ubah kepemilikan direktori squid
# chown -R nobody:nogroup /var/lib/squid/

Buat swap dengan :
# squid -z
2005/09/17 13:31:10| Creating Swap Directories

Edit file /etc/squid/squid.conf
# pico /etc/squid/squid.conf

secara singkat edit pada baris dibawah di uncoment:
acl our_networks src 192.168.0.0/27 <--- tergantung network client kita
http_access allow our_networks

Jika kita ingin menjalankan squid sebagai transparent proxy maka entry² berikut pada file squid.conf harus di enable:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Jika ingin config secara advance dapat di lihat di :
http://squid.visolve.com/squid/index.htm

kemudian tambahkan pada firewall kita dengan baris dibawah ini:
misal eth1 sebagai local dan eth0 adalah yang erhubung degan internet dengan ip 200.200.200.1

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 200.200.200.1:3128

Start squid dengan:

# /etc/rc.d/rc.squid start


Read More..

menginstall squid proxy dengan linux slackware

Download source dari squid
#wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE16.tar.gz
Extract squid tersebut
#tar -zxvf squid-2.6.STABLE16.tar.gz -C /usr/local/src (sembarang mau ditaruh di mana hasil ekstraknya squid).
Masuk ke direktori ekstrak squid tersebut
#cd /usr/local/src/squid-2.6.STABLE16
Buat group dan user yang akan di gunakan untuk menjalankan squid
#groupadd _squid
#useradd -c “SQUID PROXY CACHE” -d /dev/null -s /bin/false -g _squid _squid
saya memberi tanda _ di depan squid biar keren seperti style BSD hehehe meski ada alasan tertentu sih demi security aja.



Configure dan install squid
#./configure \
–prefix=/squid/ –sysconfdir=/etc/ –enable-gnuregex –enable-async-io=16 \
–with-aufs-threads=16 –with-pthreads –with-aio –with-dl \
–enable-storeio=aufs –enable-removal-policies=heap –enable-delay-pools \
–disable-wccp –enable-cache-digests –enable-default-err-languages=English \
–enable-err-languages=English –enable-linux-netfilter –disable-ident-lookups \
–disable-hostname-checks –enable-underscores –enable-snmp –enable-useragent-log \
–disable-wccpv2 –enable-epoll –disable-internal-dns –enable-htcp
Keterangan opsi :
–enable-async-io=16 dan –with-aufs-threads=16 di sesuaikan dengan kemampuan mesin server
Untuk pentium III dengan ram 128 kebawah dapat menggunakan 8
Untuk pentium III ram 128 s/d PIV 1,8 Ghz ram 256 dapat menggunakan 16
Untuk pentium IV ram 256 1,8 s/d PIV 2,4 ram 256 dapat menggunakan 24
Untuk pentium di atasnya atau sekelasnya dapat menggunakan 32
Pilihan diatas hanya sebuah perkiraan penulis karena penulis hanya menggunakan P4 ram 256 saja.
Kompile source
#make && make install
Keterangan tambahan :
–enable-auth=basic \
–enable-basic-auth-helpers=NCSA
Digunakan jika proxy squid akan digunakan dengan menggunakan authentikasi user.
Tanda # didepan perintah maksudnya adalah root di dalam bash bukan comment.
Setelah instalasi selesai dan tidak terdapat kesalahan, langkah berikutnya adalah mengatur konfigurasi squid, bukalah file /etc/squid.conf dengan editor teks favorit anda (vi, pico, dll), file ini adalah file konfigurasi squid.
#pico -w /etc/squid.conf (Silahkan edit dengan editor kesukaan anda)
Rubahlah konfigurasi default squid.conf di sesuaikan dengan kebutuhan.
Jangan lupa untuk membuang yang kira kira tidak perlu dan membebani server.
agar squid dapat berjalan transparan maka untuk squid versi 2.6 keatas dapat memberikan opsi :
–> http_port 3128 transparent
di dalam confignya.
Sebelum squid dapat berjalan, anda harus menciptakan direktori swap dan membuat file log maupun direktori yang di butuhkan. Lakukanlah dengan menjalankan perintah :
#mkdir /var/log/squid
#touch /var/log/squid/access.log <= ini berfungsi membuat file bernama access.log #touch /var/run/squid.pid #chown -R _squid._squid /squid/cache/ <= mengubah kepemilikan direktori ke user _squid dan grup _squid #chown -R _squid._squid /var/run/pid #chown -R _squid._squid /var/log/squid/access.log Perintah ini hanya perlu dijalankan satu kali saja ketika squid pertama kali akan dijalankan pada komputer anda. #/squid/sbin/squid -z Jika keluar message seperti : 2007/09/20 14:10:22| Creating Swap Directories # Dan langsung masuk ke konsole lagi tanpa keterangan error berarti pembuatan swap anda berhasil, bisa dilihat di dalam direktori /squid/cache akan terbentuk beberapa direktori random yang terdiri dari angka angka ajaib Cek dulu konfigurasi squid sudah benar atau belum #/squid/sbin/squid -k parse Kalo masih terdapat kesalahan atau error silahkan di edit kembali konfigurasinya. Untuk menjalankan squid gunakan perintah : #/squid/sbin/squid -sYD Jika perintah sudah dijalankan bisa diihat log di /var/log/messages : #tail -f /var/log/messages Jika muncul message : Sep 20 15:16:27 proxy squid[3152]: 0 Objects expired. Sep 20 15:16:27 proxy squid[3152]: 0 Objects cancelled. Sep 20 15:16:27 proxy squid[3152]: 0 Duplicate URLs purged. Sep 20 15:16:27 proxy squid[3152]: 0 Swapfile clashes avoided. Sep 20 15:16:27 proxy squid[3152]: Took 1.6 seconds ( 0.0 objects/sec). Sep 20 15:16:27 proxy squid[3152]: Beginning Validation Procedure Sep 20 15:16:27 proxy squid[3152]: Completed Validation Procedure Sep 20 15:16:27 proxy squid[3152]: Validated 0 Entries Sep 20 15:16:27 proxy squid[3152]: store_swap_size = 0k Sep 20 15:16:27 proxy squid[3152]: storeLateRelease: released 0 objects dan ketika di liat proses nya berjalan seperti : #ps aux|grep squid muncul : squid 3152 0.9 0.8 10836 4500 ? Sl 15:16 0:00 (squid) -sDY squid 3153 0.0 0.1 1904 596 ? Ss 15:16 0:00 (dnsserver) squid 3154 0.0 0.1 1904 592 ? Ss 15:16 0:00 (dnsserver) squid 3155 0.0 0.1 1904 596 ? Ss 15:16 0:00 (dnsserver) squid 3156 0.0 0.1 1900 596 ? Ss 15:16 0:00 (dnsserver) squid 3157 0.0 0.1 1904 596 ? Ss 15:16 0:00 (dnsserver) squid 3158 0.0 0.0 1508 300 ? Ss 15:16 0:00 (unlinkd) root 3177 0.0 0.1 2000 636 pts/0 R+ 15:17 0:00 grep squid seperti tersebut maka saya ucapkan selamat anda telah berhasil menginstall sebuah proxy server. Jika ada keterangan error berarti belum nasib anda. Edit kembali konfigurasi sesuai kesalahan error didalam log. setting transparan iptables nya : Buat file transparannya biar mudah memanggilnya : #pico /etc/rc.d/rc.nat isi dengan : # Redirect proxy for SQUID in 80 3128 444 3127 3129 do iptables -t nat -A PREROUTING -p tcp –dport $SQUID -j REDIRECT –to-ports 3128 done –> Hal diatas memiliki maksud semua port yang menuju ke 80,3128,444,3127,3129 di larikan ke port 3128 dimana port 3128 adalah port yang kita setting di dalam file squid.conf tsb. BIsa saja kita membuat port lain seperti 444, 1984, 2007 atau lain lain.
Buatlah file agar dapat di eksekusi
#chmod +x /etc/rc.d/rc.nat
Jalankan transparan :
#/etc/rc.d/rc.nat
Untuk membuat squid jalan sendiri setiap kali booting maka tambah kan perintah di atas di /etc/rc.d/rc.local
#pico /etc/rc.d/rc.local
tambahkan baris :
# Squid Proxy Cache
/squid/sbin/squid -sYD
# Transparan Proxy
/etc/rc.d/rc.nat
Sampai disini anda sudah melakukan instalasi, setting dan mengaktifkan squid. Mudah bukan?
Semua diatas telah di di test dan berjalan dengan baik dengan asumsi :
- Partisi Cache berada di /squid/cache dengan partisi ext3 dan kapasitas 10 GB
- Dengan menggunakan komputer Intel(R) Pentium(R) 4 CPU 1.70GHz Ram 256 MB
- Linux Slackware 12 ( Dikompile dengan kernel 2.6.22.6 ) - Tutorial Kompile / upgrade kernel sudah saya jelaskan sebelumnya.
- Dengan menggunakan format partisi ext3
Sumber : http://www.squid-cache.org/Versions/v2/2.6


Read More..

Ipod Qu