Tutorial Cara Cache Konten HTTP/ HTTPS dengan menggunakan Proxy EXTERNAL UBUNTU + Squid 3.5.5 Feat MIKROTIK Marsha Manihuruk


Assalammualaikum pengunjung Blog Sha Malam ini Sha ingin berbagi Tutorial Cara Cache Konten HTTPS dengan menggunakan Proxy External khusunya menggunakan Ubuntu.

Kenapa Ubuntu? nggak ada alasan spesifik sih ya cuma kayaknya banyak para master jaringan yang merekomendasikan Linux ini buat Cache Server, kenapa begitu? ya karena dukungan dan Forumnya jelas dan banyak tutorial yang di bertebaran di Google.

Nah untuk forumnya silahkan berkunjung ke sini, untuk sekedar baca-baca silahkan menuju ke sini atau ke sini, atau ke sini juga boleh.  

Silahkan mendaftar dan Login di sana banyak yang anda bisa baca-baca tentang Linux jenis ini :).

Nah disini Sha nggak ngebahas cara Instal Ubuntunya nanti ada Sha share cara instal ulang Linux versi ini.

Yang Sha tekankan di Postingan ini adalah cara membuat Proxy External Ubuntu yang di isi Squid 3.5.5 Kita mampu menyimpan /Caching konten situs HTTPS.

KENAPA HTTPS harus di Cache bukannya itu mode aman biar nggak di Hack/Penyadapan Bla-bla???

Bukan apa-apa sih tapi buat pemilik warnet yang masih menggunakan kecepatan yang masih belum menembus 10mb (paket standar Indihome) pasti mengerti bagaimana leletnya membuka situs populer seperti Facebook, Twitter, Youtube atau yang lazim di buka anak-anak muda saat Online di saat jam sibuk, nah kalau situs HTTPS di cache kan lumayan menambah kecepatan Loadingnya :).

Kalau situsnya masih mode HTTP sih saya pikir nggak masalah, masih bisa di cache squid versi 2.7 atau di tambahin addons nya Lusca.



Nah kalau situs yang udah model HTTPS di cache pastinya pemilik senang, pemain bahagia (cepat banget Buka Situs nya), tinggal hitung pendapatan doang hi hi.

Nah untuk versi squidnya Sha memilih versi 3.5.5 yang udah support untuk HTTPS Caching.

Ok tanpa lama-lama ini step by step nya.

Oh Iya lupa Rekomendasi untuk CPU yang akan di gunakan untuk menjadi server proxy di bawah ini:

1. Procecor Core2Duo 2,0 GHz, 
2. RAM 2 atau 4 GB DDR2 atau DDR3
3. HDD SATA 500 atau 320 GB

Kok tinggi banget ya speknya??

Bukan bermaksud apa-apa cuma karena kita pengen Cache Konten HTTPS ya wajar kita make Ram segitu :), kita menekankan Performa. 

Coba bayangkan sendiri saat anda memiliki mesin server Proxy Ram 512mb, Hdd 150 Gb di set untuk cache HTTPS dan di hajar 30 client?? logika nggak? 

Buat Sha pribadi sih nggak kenapa? karena melayani lalu lintas yang gituan harus minimal spek yang lumayan bagus :) agak layanan terasa memuaskan.

Nah disini sha memakai Hdd berkisaran 500Gb Ram 4Gb.

Pembagiannya Sha set seperti ini.

1. Primary Root (/) 100 GB EXT4  
2. Logical Swap 4 GB (2X Jumlah RAM)  
3. Logical mount point : /Cache1 50 GB btrfs journaling, mount option noatime+nodiratime  
4. Logical mount point : /Cache2 50 GB  btrfs journaling, mount option noatime+nodiratime
5. Logical mount point : /Cache3 50 GB  btrfs journaling, mount option noatime+nodiratime
6. Logical mount point : /Cache4 50 GB  btrfs journaling, mount option noatime+nodiratime
7. Logical mount point : /Cache5 50 GB  btrfs journaling, mount option noatime+nodiratime

Setelah kamu menyelesaikan instalasi Ubuntu Server, ada beberapa hal yang perlu di seting.

Pertama adalah mengeset SSH di Ubuntu agar Putty dan WinSCP bisa login sebagai Root, tanpa itu bakalan repot  (harus ketik manual di Server Ubuntu).

Ketik Perintah ini di ubuntu Servernya tanpa memakai Putty atau WinSCP karena jalur SSH ( untuk Remote Proxy Servernya) dari luar belum di buka.

Masuk ke root silahkan masukkan user name Ubuntu kamu dan masukkan passwordnya setelah terbuka/ sukses silahkan ketikkan code di bawah agar jalur SSHnya terbuka.

nano /etc/ssh/sshd_config [tekan enter]

Perhatikan baik-baik cari baris seperti ini.

Authentication:  
LoginGraceTime 120  
PermitRootLogin without-password  
StrictModes yes

Ubah menjadi seperti ini.

# Authentication:  
LoginGraceTime 120  
#PermitRootLogin without-password  
PermitRootLogin yes  
StrictModes yes

Simpan settingannya dengan menekan kombinasi tombol CTRL + X dan tekan tombol enter.

Selanjutnya ketik di Terminal Ubuntunya dengan perintah seperti ini.

service ssh restart  [tekan tombol enter]
ssh stop/waiting
ssh start/running, process 1588

Kemudian kamu akan di perintahkan membuat password Server yang baru J.

#passwd [tekan tombol enter]  
#enterpassword [tekan tombol enter]
#enterpasswdagain [tekan tombol enter] 

Proses untuk membuka port SSH Ubuntu selesai.

Selanjutnya memasuki proses yang agak lama karena update servernya hi hi, kalau kamu punya internet yang cepat ya mungkin cepat slesai kalau nggak ya kamu tinggal dulu nonton atau apalah hi -hi.

Buka Putty dari komputer yang bertugas remote Server Proxy nya, setelah terbuka silahkan login, masukkan perintah seperti ini di Putty.

apt-get update  [tekan tombol enter]

Kalau Internet kamu kencang ya nggak bakalan memakan waktu lama, kalau lambat ya gitu deh hi hi.

Setelah proses update selesai kemudian ketikkan atau Copy-Paste satu persatu perintah seperti di bawah.

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 [tekan tombol enter]

apt-get install sysv-rc-conf -y [tekan tombol enter]

cd   [tekan tombol enter]

wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.5.tar.gz  [tekan tombol enter]

tar xzvf squid-3.5.5.tar.gz  [tekan tombol enter]

cd squid-3.5.5  [tekan tombol enter]

Setelah semua proses di atas sukses, Copy-paste perintah di bawah tanpa ada yang kurang di terminal Puttynya.

./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 kita masukkan perintah.

make && make install && make install-pinger

Mungkin proses pembuatannya agak lama kamu tinggal aja sambil ngapain gitu J.

Setelah semua selesai kamu silahkan download File Squid yang sudah Sha set, di baris squidnya udah Sha kasih komentar dimana yang kamu ganti agar sesuai dengan Kondisi jaringan kamu.

Silahkan download di sini .

Password Rar nya : marsha-manihuruk

Edit File Squid dengan menggunakan Software Notepad++

Isi File winrarnya ada 3 buah yaitu:
  • Squid
  • Squid.conf
  • Store-id.pl
Buka Software WinSCP dan loginkan.

Copy file squid ke direktori /etc/init.d/.
Copy file squid.conf dan store-id.pl ke /etc/squid/.

Buka lagi Puttynya ketik atau copy-paste perintah di bawah satu-persatu.

chmod 755 /etc/init.d/squid 
update-rc.d squid defaults
/etc/init.d/squid stop 

Selanjutnya silahkan ketik atau copy-paste perintah di bawah di terminal Putty.

chown -R proxy:proxy /var/log/squid

cd /var/log/squid

touch access.log

touch cache.log

Buka lagi Terminal Puttynya.

Ketik atau copy-paste satu-persatu perintah di bawah.

cd

chown -R proxy:proxy /var/log/squid/access.log

chown -R proxy:proxy /var/log/squid/cache.log

chown -R proxy:proxy /cache1

chown -R proxy:proxy /cache2

chown -R proxy:proxy /cache3

chown -R proxy:proxy /cache4

chown -R proxy:proxy /cache5

chown -R proxy:proxy /etc/squid/store-id.pl

chmod 777 /cache1

chmod 777 /cache2

chmod 777 /cache3

chmod 777 /cache4

chmod 777 /cache5

chmod 777 /etc/squid/store-id.pl

Buka Lagi terminal  Putty nya.

Ketik copy-paste kembali Perintah di bawah.

cd /etc/squid

mkdir ssl_cert

cd ssl_cert

openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout myCA.pem -out myCA.pem

Nah itu proses pembuatan sertifikat SSL untuk cache HTTPS, silahkan masukkan manual ke browser masing-masing iyah :).

Selanjutnya.

Buka lagi Puttynya


openssl x509 -in myCA.pem -outform DER -out myCA.der


 cd /


mkdir /var/squid


cd /var/squid


mkdir ssl_db


cd ssl_db


chown -R nobody /var/squid/ssl_db/


/usr/lib/squid/ssl_crtd -c -s /var/squid/ssl_db/certs


chown -R proxy:proxy /var/squid/ssl_db/


squid -k parse


squid -z


/etc/init.d/squid restart

Langkah berikutnya adalah mengatur  IP Table server Ubuntu,

Buka WinSCP nya dan Buka File  /etc/rc.local

Copy-paste semua Scrip di bawah ini di atas baris "exit.0" di 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 xxx.xxx.xxx.xxx/24 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129  
 iptables -t mangle -A PREROUTING ! -d xxx.xxx.xxx.xxx/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 

Ket:

xxx.xxx.xxx.xxx/24 itu ganti dengan IP server Ubuntu kamu.

Selanjutnya buka Puttynya ketik perintah.


reboot

Itu perintah untuk Merestart server Ubuntunya.

Setelah proses Rebootnya Selesai silahkan lakukan cek ulang Konfigurasi.


squid –k reconfigure

Jika sukses selamat!! kamu udah berhasil membuat server yang mampu mencaching situs HTTPS :).

Tapi jika masih ada Error silahkan lakukan langkah ini.

Error yang mungkin ada kemungkinan karena terkait dengan file store-id.pl

Hapus atau Timpa File store-id.pl yang ada di /etc/squid/ dengan yang baru (File Download yang tadi).

Lakukan lagi Perintah. di terminal Putty .

chown -R proxy:proxy /etc/squid/store-id.pl

Dan lakukan Perintah.


squid –k reconfigure

Jika semua beres tanpa ada yang error selamat kamu udah berhasil membuat server yang mampu mencache konten HTTPS.

Nah untuk mangle Mikrotik agar bisa menerima settingan Proxy Externalnya silahkan ketik atau copas scrip di bawah.

Di Firewall Mangle Mikrotik, scrip ini harus berada paling atas agar efektif.

Ket:

192.168.3.2 adalah IP Ubuntu Server.
192.168.2.0/24 adalah Network Lan.
BC-AE-C5-5C-15-61 adalah Mac-Address Proxy External Ubuntu.

Kode yang di masukkan ke Mangle Mikrotik.

/ip firewall mangle
add action=mark-connection chain=prerouting comment="HTTP + HTTPS TO PROXY HIT BOOSTER" dst-port=80,8080,443 new-connection-mark=to_proxy protocol=tcp src-address=192.168.2.0/24
add chain=prerouting src-mac-address=BC-AE-C5-5C-15-61
add action=mark-routing chain=prerouting connection-mark=to_proxy new-routing-mark=tproxy_route passthrough=no
/ip route
add distance=1 gateway=192.168.3.2 routing-mark=tproxy_route

Selesai!!

Terimaksih sudah mau berkunjung ke blog sederhana Sha :).

Jika ada pertanyaan silahkan layangkan ke kotak komentar dengan senang hati saya akan membalas nya.

Walaikumsalam.


Berkomentarlah Yang Baik Agar Komentar Anda Langsung di Balas Pemilik Blog :)
EmoticonEmoticon