Spesifikasi Komputer yang saya gunakan:
Core2Duo 2,0 GHz, RAM 2 GB DDR2, HDD SATA 500 GB
Pembagian Hardisk yang saya gunakan sbb :
Harddisk 500GB (saya pakai kapasitas segini)
Primary Root (/) 100 GB EXT4
Logical Swap 4 GB (2X Jumlah RAM)
Logical mount point : /Cache1 50 GB btrfs journaling, mount option noatime+nodiratime
Logical mount point : /Cache2 50 GB btrfs journaling, mount option noatime+nodiratime
Logical mount point : /Cache3 50 GB btrfs journaling, mount option noatime+nodiratime
Logical mount point : /Cache4 50 GB btrfs journaling, mount option noatime+nodiratime
Logical mount point : /Cache5 50 GB btrfs journaling, mount option noatime+nodiratime
Untuk masalah pemasangan Ubuntu di PC Server, diluar pembahasan atau sudah dianggap selesai.
Setelah kita menyelesaikan instalasi Ubuntu, ada beberapa hal yang perlu
di seting.
Pertama adalah mengeset SSH di Ubuntu agar Putty (Remote
Command) bisa login sebagai root (Karena saya capek sudo su mulu).
Kita bekerja selalu di modus Terminal, karena ini server bung! Bukan Desktop dengan GUI.
Langkahnya :
#nano /etc/ssh/sshd_config [enter]
Carilah baris :
# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes
Ubahlah menjadi :
# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes
Simpan dengan tombol ctrl+x lalu y [enter]
#service ssh restart [enter]
#ssh stop/waiting
#ssh start/running, process 1588
Lalu buat password root yang baru
#passwd [enter]
#masukkanpassword [enter]
#masukkansekalilagi [enter]
Selesai.
Kita akan pindah ke PC Windows (Kita tidak lagi main langsung di PC Server)
Download aplikasi Putty dari : Putty download untuk akses remote terminal dan WinSCP di WinSCP download untuk Remote File Managernya.
Silahkan rujuk masing-masing program bagaimana cara pakainya.
Saya anggap anda sudah faham menggunakan kedua program tersebut dan sudah berada di terminal Putty dan login sebagai root.
Update dulu Ubuntunya
Lalu Install Aplikasi pendukung Squidnya
# apt-get install devscripts build-essential openssl libssl-dev fakeroot libcppunit-dev libsasl2-dev cdbs ccze libfile-readbackwards-perl libcap2 libcap-dev libcap2-dev -y [enter]
# apt-get install sysv-rc-conf -y [enter]
Setelah selesai, kita masuk ke proses download master source Squidnya.
# cd [enter]
# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.5.tar.gz [enter]
# tar xzvf squid-3.5.5.tar.gz [enter]
Copas kode di bawah ke terminal tanpa kurang atau lebih
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib/squid \
--sysconfdir=/etc/squid \
--localstatedir=/var \
--libdir=/usr/lib \
--includedir=/usr/include \
--datadir=/usr/share/squid \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--disable-dependency-tracking \
--disable-strict-error-checking \
--enable-async-io=32 \
--with-aufs-threads=32 \
--with-pthreads \
--enable-storeio=ufs,aufs,diskd \
--enable-removal-policies=lru,heap \
--with-aio \
--with-dl \
--enable-icmp \
--enable-esi \
--enable-icap-client \
--disable-wccp \
--disable-wccpv2 \
--enable-kill-parent-hack \
--enable-cache-digests \
--disable-select \
--enable-http-violations \
--enable-linux-netfilter \
--enable-follow-x-forwarded-for \
--disable-ident-lookups \
--enable-x-accelerator-vary \
--enable-zph-qos \
--with-default-user=proxy \
--with-logdir=/var/log/squid \
--with-pidfile=/var/run/squid.pid \
--with-swapdir=/var/spool/squid \
--with-large-files \
--with-openssl \
--enable-ltdl-convenience \
--with-filedescriptors=65536 \
--enable-ssl \
--enable-ssl-crtd \
--disable-auth
Lalu tekan Enter.
Kemudian kita mulai compile...
#make && make install && make install-pinger [enter]
Proses ini mungkin akan memakan waktu 10 sampai 30 menit, santai saja.
Setelah proses ini selesai, silahkan download file squid.zip lalu ekstrak ke folder komputer anda.
Akan ada 3 file yang diperlukan : squid, squid.conf dan store-id.pl
Jalankan WinSCP dan login sebagai root
Copy file squid ke direktori /etc/init.d/
Copy file squid.conf dan store-id.pl ke /etc/squid/
Kembali ke Terminal Putty dan ketikkan perintah berikut
#chmod 755 /etc/init.d/squid [enter]
#update-rc.d squid defaults [enter]
#/etc/init.d/squid stop [enter]
Pastikan direktori-direktori yang diperlukan sudah ada
Misalnya direktori /var/log/squid.
Jika belum ada, buat dengan perintah : md nama_direktori
Ubah owner direktori /var/log/squid
# chown -R proxy:proxy /var/log/squid [enter]
Masuk ke direktori /var/log/squid
# cd /var/log/squid [enter]
Ciptakan dua buah file baru untuk log
# touch access.log [enter]
# touch cache.log [enter]
Kembali ke direktori root
Ubah owner dua file yang diciptakan tadi
Ketik :
# chown -R proxy:proxy /var/log/squid/access.log [enter]
Ketik :
# chown -R proxy:proxy /var/log/squid/cache.log [enter]
Ubah owner partisi mount point cache yang kita buat saat install server Ubuntu
# chown -R proxy:proxy /cache1 [enter]
# chown -R proxy:proxy /cache2 [enter]
# chown -R proxy:proxy /cache3 [enter]
# chown -R proxy:proxy /cache4 [enter]
# chown -R proxy:proxy /cache5 [enter]
Ubah owner file store-id.pl
# chown -R proxy:proxy /etc/squid/store-id.pl [enter]
Ubah mode direktori cache
# chmod 777 /cache1 [enter]
# chmod 777 /cache2 [enter]
# chmod 777 /cache3 [enter]
# chmod 777 /cache4 [enter]
# chmod 777 /cache5 [enter]
Ubah mode file store-id.pl
# chmod 777 /etc/squid/store-id.pl [enter]
Masuk direktori squid
Buat direktori sertificate
Di sinilah rahasia mengapa Squid 3.5 bisa mencache file terenkripsi alias mode port https.
# openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem [enter]
File hasil generate ini nantinya akan kita import ke dalam browser
misalnya Mozilla Firefox atau Chrome. Squid https tidak akan bisa
berkomunikasi dengan browser menggunakan port https jika sertifikat
keamanan milik squid tidak dikenali.
Cara import sertifikat ke dalam browser boleh ikuti langkah di Youtube ini
# openssl x509 -in myCA.pem -outform DER -out myCA.der [enter]
# mkdir /var/squid [enter]
# chown -R nobody /var/squid/ssl_db/ [enter]
Mengaitkan library ke sertifikat database
# /usr/lib/squid/ssl_crtd -c -s /var/squid/ssl_db/certs [enter]
# chown -R proxy:proxy /var/squid/ssl_db/ [enter]
Selanjutnya kita periksa apakah semua proses di atas sudah benar, lalu kita parsing konfigurasi squid
Jika semua aman maka kita lanjut membuat direktori squid dalam partisi cache (yang lima buah tadi),
mengikuti pengaturan konfigurasi squid.conf
Kemudian restart service squidnya
# /etc/init.d/squid restart [enter]
Terakhir adalah mengatur mangle di IP Table milik Ubuntu, untuk mengarahkan permintaan client ke port yang benar.
Buka WinSCP lalu buka file /etc/rc.local
Copy lalu paste semua script di bawah ini di atas baris "exit.0" dalam file rc.local
modprobe xt_TPROXY
modprobe xt_socket
modprobe nf_tproxy_core
modprobe xt_mark
modprobe nf_nat
modprobe nf_conntrack_ipv4
modprobe nf_conntrack
modprobe nf_defrag_ipv4
modprobe ipt_REDIRECT
modprobe iptable_nat
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -N DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
iptables -t mangle -A INPUT -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A PREROUTING ! -d 192.168.0.50 /24 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
iptables -t mangle -A PREROUTING ! -d 192.168.0.50 /24 -p tcp --dport 443 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3127
/sbin/ip rule add fwmark 1 lookup 100
/sbin/ip route add local 0.0.0.0/0 dev lo table 100
echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
echo 1 > /proc/sys/net/ipv4/ip_forward
Informasi : alamat IP yang berwarna merah, sesuaikan dengan IP PC Server Ubuntu+Squid anda.
Restart PC Server
Lalu coba uji apakah ada muncul kesalahan
# squid –k reconfigure [enter]
Error yang mungkin muncul terkait dengan store-id.pl
Coba atasi dengan menghapus atau menimpa store-id.pl yang ada di
/etc/squid/ dengan yang baru (hasil download). Lakukan lagi chown
seperti proses di atas khusus untuk file store-id.pl saja.
Dan lakukan perintah di bawah kembali
# squid –k reconfigure [enter]
|