Spesifikasi yang digunakan untuk install Squid Proxy (spek minimum) adalah sebagai berikut:

  • Partisi Cache berada di /cache dengan partisi reiserfs dengan kapasitas 80 GB
  • CPU Intel(R) Pentium(R) 4 CPU 1.80GHz dengan RAM 2 GB
  • Linux Slackware 12 (di-compile dengan kernel 2.6.22.6)

Installasi Proxy Server menggunakan Squid (Versi 2.7 STABLE 6 dan 2.7 STABLE 7) di Linux Slackware 12.2

1. Lihat partisi hardisk yang akan digunakan sebagai partisi cache Squid. Perintah :

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 9.2G 373M 8.4G 5% /
/dev/sda3 9.2G 3.9G 4.9G 44% /var
/dev/sda5 9.2G 1.4G 7.4G 17% /usr
/dev/sda6 5.5G 140M 5.1G 3% /home
/dev/sdb1 19G 19G 0 100% /cache1
/dev/sdb2 19G 9.1G 9.6G 49% /cache2
/dev/sdb3 19G 33M 19G 1% /cache3
/dev/sdb4 19G 9.2G 9.6G 49% /cache4
tmpfs 947M 0 947M 0% /dev/shm

2. Buat beberapa partisi pada harddisk tersebut. Diasumsikan menggunakan harddisk yang terpasang di /dev/sdb. Harddisk tersebut lalu dibagi menjadi 4 bagian. Sebelum dilakukan pem-format-an, perlu dipastikan bahwa partisi harddisk tidak sedang dalam keadaan aktif:
# umount /dev/sdb1
# umount /dev/sdb2
# umount /dev/sdb3
# umount /dev/sdb4

3. Selanjutnya lakukan pemformatan dengan tool partisi di Linux, seperti fdisk dan cfdisk. Pada contoh ini akan digunakan cfdisk. Perintahnya adalah:

# cfdisk /dev/sdb

cfdisk (util-linux-ng 2.14.1)
Disk Drive: /dev/sdb
Size: 80026361856 bytes, 80.0 GB
Heads: 255 Sectors per Track: 63 Cylinders: 9729
Name Flags Part Type FS Type [Label] Size (MB)
—————————————————————————————————————————————————
sdb1 Primary Linux 20003.89
sdb2 Primary Linux 20003.89
sdb3 Primary Linux 20003.89
sdb4 Primary Linux 20012.11
Are you sure you want to write the partition table to disk? (yes or no): yes
Writing partition table to disk…

4. Ubah file system dari partisi-partisi di atas menjadi jenis ReiserFS File System. Perintahnya adalah :

# mkreiserfs /dev/sdb1

mkreiserfs 3.6.20
Copyright (C) 2001-2005 by Hans Reiser, licensing governed by reiserfsprogs/COPYING.
A pair of credits:
Edward Shushkin wrote the encryption and compression file plugins, and the V3
journal relocation code.
SuSE (www.suse.com) pays for continuing work on journaling for version 3, paid
for much of the previous version 3 work, and is paying for Chris and Jeff to do
V3 maintenance. Reiserfs integration in their distro is consistently solid, and
they were key to our becoming widely used.
Guessing about desired format.. Kernel 2.6.27.7-smp is running.
Format 3.6 with standard journal
Count of blocks on the device: 4883744
Number of blocks consumed by mkreiserfs formatting process: 8361
Blocksize: 4096
Hash function used to sort names: “r5″
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: c3904088-96e8-43de-a3d1-70ae54228ad4
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON ‘/dev/sdb1′!
Continue (y/n): y
Initializing journal – 0%….20%….40%….60%….80%….100%
Syncing..ok
Tell your friends to use a kernel based on 2.4.18 or later, and especially not a
kernel based on 2.4.9, when you use reiserFS. Have fun.
ReiserFS is successfully created on /dev/sdb1.

Lanjutkan langkah di atas untuk ketiga partisi berikutnya.

# mkreisfers /dev/sdb2
# mkreiserfs /dev/sdb3
# mkreiserfs /dev/sdb4

5. Buat 4 direktori di root dengan nama cache1 sampai cache4 untuk direktori cache engine. Perintahnya adalah :

# mkdir cache1
# mkdir cache2
# mkdir cache3
# mkdir cache4

6. Edit tabel file system fstab di /etc/fstab. Hal ini dilakukan untuk menyimpan perubahan yang telah dilakukan pada partisi harddisk yang telah dibuat sehingga langsung dapat digunakan setelah mesin reboot. Tambahkan beberapa baris perintah dibawah ini:

/dev/sdb1 /cache1 reiserfs notail,noatime 1 2
/dev/sdb2 /cache2 reiserfs notail,noatime 1 2
/dev/sdb3 /cache3 reiserfs notail,noatime 1 2
/dev/sdb4 /cache4 reiserfs notail,noatime 1 2

7. Mount semua partisi tadi dengan perintah :

# mount /dev/sdb1
# mount /dev/sdb2
# mount /dev/sdb3
# mount /dev/sdb4

maka kedua partisi itu akan dipasang pada direktori /cache1, /cache2, /cache3 dan /cache4.

8. Buat user dan group baru untuk digunakan daemon Squid. Perintahnya :

# groupadd squid
# useradd squid -g squid -s /bin/false

User Squid ini akan digunakan untuk seeting up permission bagi folder /cache1, cache2, cache3 dan /cache4

9. Edit hak akses untuk masing-masing /cache1, cache2, cache3 dan /cache4

# chown -R squid.squid /cache1
# chown -R squid.squid /cache2
# chown -R squid.squid /cache3
# chown -R squid.squid /cache4

10. Ubah settingan dari file descriptor pada Linux Slackware. Variabel yang perlu diubah adalah pada FD_SETSIZE yang ada di file /usr/include/bits/typesizes.h atau /usr/include/bits/types.h (Slackware <12.2) dan atau /usr/include/linux/posix_types.h (Slackware 12.2). Edit file tersebut dan cari baris berikut:

/* Number of descriptors that can fit in an `fd_set’. */
#define __FD_SETSIZE 1024

ubah menjadi:

/* Number of descriptors that can fit in an `fd_set’. */
#define __FD_SETSIZE 16384

Kemudian ketikkan perintah berikut:

# ulimit -HSn 16384

11. Download source code file Squid (dalam contoh ini diasumsikan menggunakan squid-2.7STABLE7.tar.gz) dari website Squid resmi di http://www.squid-cache.org.

12. Installasi source code file Squid:

# tar zxf squid-2.7STABLE7.tar.gz
# cd squid-2.7STABLE7.tar.gz

Sebelum melanjutkan ke langkah berikutnya, yaitu melakukan ‘configure’ source code tersebut, sebaiknya lihat dulu spesifikasi processor yang digunakan. Hal ini akan berguna untuk menetapkan ukuran settingan parameter di perintah ‘configure’. Untuk melihat spesifikasi processor adalah dengan perintah:

# cat /proc/cpuinfo

processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 95
model name : AMD Athlon(tm) Processor LE-1600
stepping : 3
cpu MHz : 1795.136
cache size : 1024 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow up pni cx16 lahf_lm svm extapic cr8_legacy
bogomips : 4420.27
clflush size : 64
power management: ts fid vid ttp tm stc

pada hasil di atas kecepatan processor yang ada adalah 1,8 GHz.

Lanjutkan dengan memberikan perintah ‘configure’ beserta opsi-opsinya:

./configure ‘–prefix=/usr’ ‘–exec-prefix=/usr’ ‘–libexecdir=/usr/lib/squid’ \
‘–localstatedir=/var’ ‘–sysconfdir=/etc/squid’ ‘–enable-delay-pools’ \
‘–enable-http-violations’ ‘–enable-poll’ ‘–disable-ident-lookups’ ‘–enable-truncate’ \
‘–enable-removal-policies=lru,heap’ ‘–enable-cachemgr-hostname=www’ \
‘–enable-linux-netfilter’ ‘–enable-stacktraces’ ‘–enable-unlinkd’ \
‘–enable-storeio=diskd,ufs,aufs,coss,null’ ‘–enable-snmp’ ‘–bindir=/usr/sbin’ \
‘–enable-arp-acl’ ‘–enable-async-io=XXX’ ‘–disable-icmp’ ‘–enable-gnuregex’ \
‘–enable-large-cache-files’ ‘–with-aufs-threads=XXX’ ‘–with-maxfd=16384′ \
‘–enable-htcp’ ‘–enable-coss-aio-ops’ ‘–with-pthreads’ ‘–with-large-files’ \
‘CFLAGS=-O6 -s -DNUMTHREADS=XXX’

catatan :

XXX (bilangan bulat) didapat dari perhitungan sebagai berikut:
xxx = [X/500] * 30
X = Kecepatan Prosesor
Angka 500 merupakan parameter standart processor yang dipakai untuk installasi squid.
Misalkan kecepatan prosesor adalah 1,6 MHz, maka bisa ditulis seperti berikut ini:
XXX = [1795/500] * 30
= 3.59 * 30
= 108

13. Lanjutkan dengan perintah:

# make && make install

Jika tidak ada pesan error, maka Squid telah berhasil diinstall.

14. Lakukan penyettingan lebih lanjut untuk konfigurasi Squid pada file /etc/squid/squid.conf . Lakukan penyesuaian terhadap jaringan yang digunakan pada opsi access control list (acl). Edit beberapa parameter yang diperlukan antara lain :

cache_mem ==> rumus cache memori = (besar memori fisik/4)
cache_dir ==> tulis parameter cache_dir sebesar 80% dari kapasitas partisi/cacheX (misalkan: 16000 64 256)

Parameter yang ditambahkan untuk transparent proxy adalah:

http_port 3128 transparent

Untuk bagian ini diperlukan pembahasan yang lebih lanjut pada tulisan yang lain.

14. Buat file untuk log Squid dan sekaligus setting hak aksesnya :

# mkdir -p /var/log/squid
# touch /var/log/squid/access.log
# touch /var/log/squid/cache.log
# chown -R squid.squid /var/log/squid

15. Jalankan daemon Squid:

# squid -z 
==> perintah di atas untuk membuat child directory di cache squid
# squid & (tekan Enter 2 kali)

Periksa file log Squid dengan perintah:

# tail -f /var/log/squid/cache.log

Bilatidak terdapat pesan error muncul dan terdapat pesan diantaranya “ready to serve request” maka daemon Squid telah berhasil dijalankan (running).
Untuk melihat aktifitas Squid tersebut, perintahnya:

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

Akan muncul sederetan link dari protokol 80 yaitu mengenai website yang sedang ditangani oleh daemon Squid beserta keterangan-keterangannya.

16. Tambahkan beberapa perintah yang akan dijalankan sewaktu mesin Linux Slackware booting agar dapat menjalankan Squid secara otomatis. File yang perlu diedit adalah file /etc/rc.d/rc.local. Perintah yang perlu ditambahkan:

# run squid cache daemon
ulimit -HSn 16384
squid &