Monday, August 25, 2014

Install squid3_3.4.6-3 with http dan https support di ubuntu 12.04 dengan raid 0

 بِسْمِ اللّهِ الرَّحْمَنِ الرَّحِيْمِ
Terima kasih kepada  اَللّهُ  Subhaana wa Ta'alaa dan buat Master KWeteng yang dengan senang hati membagi ilmunya di forum mikrotik semoga beliau selalu dimudahkan usaha dan rezekinya . Amiin.
Sumber :
- http://www.forummikrotik.com/guide/18550-%5Bshare-htproxy%5D-cara-mudah-install-proxy-videocache-pada-ubuntu-htproxy-42.html
- http://mikrotikersnsquidlovers.wordpress.com/
- http://pen-testing-lab.blogspot.com/2013/11/squid-3310-transparent-proxy-for-http.html

Bahan - bahan :
- Cpu dengan processor 64 bit ( amd64)
- hardisk 2 buah untuk di raid ( disarankan ukurannya sama ), yang saya gunakan 2 buah
harddisk 320 GB
- memory 4 gb

Langkah - langkah :
1. Colokkan kedua harddisk di port sata1 dan sata2
2. Masuk ke bios cari setting raid di bios . Contoh : integrated peripherals -> On-Chip ATA devices -> RAID Mode = RAID ( save and exit )
3. Untuk masuk ke menu setting raid utility tekan CTRL+F
4. Di menu saya saya pilih define LD, stripe block= 64 KB, cache mode = writeThru dan pilih full capacity ( maksudnya menggunakan semua ukuran harddisk ), 2 x 320 GB = 640 GB
5. Setelah selesai pilih save and exit.
6. Masukkan cd instalasi ubuntu 12.04 ke dalam dvdroom
7. pilih install ubuntu server, install seperti biasa seperti menginstall satu harddisk,
nanti anda akan disuruh mengaktifkan ata raid device, pilih yes.
8. Langkah partisi sama seperti menggunakan satu harddisk.
9. Masalah akan muncul ketika menginstall grub2 di ubuntu, akan muncul dikotak install grub /dev/mapper
10. tekan ctrl+alt+f2 untuk masuk ke busybox terminal. Ketik ls -l /dev/mapper. Nanti akan muncul list seperti ini :
total 0
crw------- 1 root root 10, 236 Aug 25 09:08 control
lrwxrwxrwx 1 root root       7 Aug 25 09:08 pdc_ddeidghdjh -> ../dm-0
lrwxrwxrwx 1 root root       7 Aug 25 09:08 pdc_ddeidghdjh1 -> ../dm-1
lrwxrwxrwx 1 root root       7 Aug 25 09:08 pdc_ddeidghdjh2 -> ../dm-2
lrwxrwxrwx 1 root root       7 Aug 25 09:08 pdc_ddeidghdjh3 -> ../dm-3
lrwxrwxrwx 1 root root       7 Aug 25 09:08 pdc_ddeidghdjh4 -> ../dm-4
root@proxyserver:~#
Kita akan memilih /dm-0 untuk dimasukkan ke /dev/mapper
11. tekan ctrl+alt+f1 untuk kembali ke menu install grub
12. Masukkan nama /dev/mapper tadi menjadi /dev/mapper/pdc_ddeidghdjh. Pilih continue
13. Langkah selanjutnya akan sama seperti menginstall satu harddisk sampai proses install
selesai.
14.Login dengan user dan pass yang anda buat pas menginstall, kemudian ketik sudo su.
Masukkan password user yang anda buat tadi. Kemudian ketik passwd root
ENTER new UNIX password : (masukkan password baru untuk root)
Retype new UNIX password : (masukkan kembali password yang sama)
pastikan muncul tulisan : passwd : password updated successfully
15. copy dan paste kedalam putty perintah berikut:
- apt-get update
- apt-get install devscripts build-essential openssl libssl-dev fakeroot libcppunit-dev libsasl2-dev cdbs ccze libfile-readbackwards-perl libcap2 libcap-dev libcap2-dev
- apt-get install sysv-rc-conf
- apt-get install libnetfilter-conntrack3 libltdl7 php5-cli php5 libdb4.8 openssl libcap2 libssl0.9.8
16. Ganti date.timezone php.ini dengan sed :
sed -i 's/;date.timezone =/date.timezone = Asia\/Jakarta/g' /etc/php5/cli/php.ini
17. Install squid :
cd /tmp/
wget http://repo.hikmah-teknologi.com/squid3/deb-squid3_3.4.6-3_amd64-ssl.tar.bz2.gpg
gpg  deb-squid3_3.4.6-3_amd64-ssl.tar.bz2.gpg
enter passphrase : hikmahteknologi
tar xvf deb-squid3_3.4.6-3_amd64-ssl.tar.bz2
dpkg -i *.deb
18. Ubah pemilik folder /cache dan /var/log/squid3 ke proxy :
chown -R proxy:proxy /cache
chown -R proxy:proxy /var/log/squid3
19. Hapus folder ssl_db dalam /etc/squid3, kemudian paste perintah berikut :
/usr/lib/squid3/ssl_crtd -c -s /etc/squid3/ssl_db
chown -R proxy:proxy etc/squid3/ssl_db
/etc/init.d/squid3 start
20. Stop squid squid3 : /etc/init.d/squid3 stop
21. Edit /etc/squid3/squid.conf dengan winscp:
- sesuaikan cache_dir dengan folder cache , contoh : cache_dir aufs /cache 300000 64 256
- sesuaikan maximum_object_size anda dengan yang anda ingini contoh : maximum_object_size 2000 MB ( 2 gb )
- ganti http_port   3128  menjadi http_port   3128 intercept
tambahkan line berikut :
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=16MB cert=/etc/squid3/ssl_cert/keyCA.pem
close dan save squid.conf.
22. Ketik : squid3 -z untuk membuat direktori cache
23. Edit file /etc/rc.local dan masukkan perintah ini diatas exit 0 :
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129
iptables -I INPUT -p tcp -m tcp --dport 3129 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
atau bisa juga seperti ini :
#iptables -t nat -A PREROUTING -s 192.168.1.0/24 ! -d 192.168.0.0/16 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.100:3128
#iptables -t nat -A PREROUTING -s 192.168.1.0/24 ! -d 192.168.0.0/16 -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.1.100:3129
#iptables -I INPUT -p tcp -m tcp --dport 3129 -j ACCEPT
#echo 1 > /proc/sys/net/ipv4/ip_forward
save dan close /etc/rc.local.
24.Reboot pc proxy.
25. Setelah selesai reboot download file /etc/squid3/ssl_cert/keyCA.der dengan WINSCP dan masukkan ke browser
26. Untuk mozilla : klik tool - option - advanced - certificate - view certificates - authorities - pilih import dan pilih file keyCA.der - klik open - centang Trust this CA to identify websites.
27. Untuk chrome dan iE sama cukup satu kali, terserah mau di chrome atau di IE karna keduanya saling terhubung. Pilih Setelan - Cari tombol kelola sertifikat - pilih Trusted Root certification Authorities - klik import - next - browse - pilih type : all files - pilih keyCA.der - next dua kali dan finish lalu keluar jendela yes or no pilih yes.
28. Proxy sudah bisa digunakan untuk cache http dan https

Mode Intercept sample script mikrotik
Asumsi IP proxy ubuntu eth0 = 192.168.0.100 dan IP Local Client = 192.168.1.0/24
# = Mangle mikrotik =
# Taruh di baris paling awal (sebelum mangle qos)
# /ip fi mangle
# add action=mark-routing chain=prerouting dst-address=!192.168.0.0/16 dst-port=80 new-routing-mark=proxy  src-address=192.168.1.0/24
# add action=mark-routing chain=prerouting dst-address=!192.168.0.0/16 dst-port=443 new-routing-mark=proxy  src-address=192.168.1.0/24
# = Routing Mikrotik =
# /ip route
# add  distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.100 routing-mark=proxy

Jika tidak ingin terdeteksi di whatismyip.com tambahkan line berikut di squid.conf :
#via off
#forwarded_for off

mirror link : Squid3_3.4.6-3

Jika ingin mengubah menjadi mode TPROXY,  ikuti langkah - langkah berikut :
1. Anda perlu router untuk melakukan routing untuk proxy misalnya : mikrotik. Jika hanya mesin proxy saja tidak bisa digunakan mode TPROXY.

2. Edit squid.conf :
#https_port 3127 tproxy  ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/ssl_cert/keyCA.pem
#http_port 3128
#http_port 3129 tproxy
3. Edit file /etc/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.100/32 -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
iptables -t mangle -A PREROUTING ! -d 192.168.0.100/32 -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

note : 192.168.0.100 adalah ip proxy
Restart pc proxy.

4. Tambahkan mangle berikut di mikrotik :
/ ip firewall mangle
#add action=mark-routing chain=prerouting comment="TPROXY ROUTING" disabled=no dst-port=80,443 in-interface=ether3-local-slave new-routing-mark=tproxy_rm passthrough=no protocol=tcp
#add action=mark-connection chain=prerouting disabled=no dst-port=80,443 in-interface=ether5-local-slave new-connection-mark=tproxy_cm passthrough=yes protocol=tcp src-address=!192.168.0.100
#add action=mark-routing chain=prerouting connection-mark=tproxy_cm disabled=no in-interface=!ether5-local-slave new-routing-mark=tproxy_rm passthrough=no

ini untuk melosskan hit dari proxy, tambahkan queuenya di queue tree :
#add action=mark-packet chain=prerouting comment="proxy hit" disabled=no dscp=12 new-packet-mark=proxy-hit passthrough=no
/queue tree
#add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=hitproxy packet-mark=proxy-hit parent=global-out priority=1 queue=default

note :
ether3-local-slave adalah interface ke client ( 192.168.1.2 - 192.168.1.254 )
ether5-local-slave adalah interface ke proxy ( dimana ip proxy : 192.168.0.100 dan ip interface ether5 tersebut adalah 192.168.0.1 )
5. Tambahkan nat, ingat harus diisi out-interface ( interface menuju ke internet ) . Disini contohnya pppoe-out
/ip firewall nat
#add action=masquerade chain=srcnat comment="default configuration" disabled=no out-interface=pppoe-out1 src-address-list=ipwarnet to-addresses=0.0.0.0
6. Tambahkan routing di /ip route :
/ip route
#add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.0.100 routing-mark=tproxy_rm scope=30 target-scope=10

Squid.conf dan refresh pattern untuk tproxy :
squid.conf 3.4.6.3 dan refresh_patterns.conf

Jika ada situs yang error karna mode tproxy , tambahkan dst-address-list=!bypass dibelakang code berikut dan masukkan ip addressnya di address list dengan nama "bypass":
/ ip firewall mangle
#add action=mark-routing chain=prerouting comment="TPROXY ROUTING" disabled=no dst-port=80,443 in-interface=ether3-local-slave new-routing-mark=tproxy_rm passthrough=no protocol=tcp


Note :
Cara menghapus Squid di ubuntu 12.04 dapat di lakukan dengan mudah : "apt-get remove squid" itu untuk menghapus squid tetapi konfigurasi tidak ."apt-get remove --purge squid" untuk menghapus squid dan konfigurasi nya .
 

2 comments:

  1. squid 3 untuk yang intel ada g ?

    ReplyDelete
  2. maw tanya..kalo tanpa import certificated ke browser bisa gk ya..?? soalnya buat rt rw net..cukup dari mikrotik aja bisa gk ya bos.. tolong pencerahanya..

    ReplyDelete