Bismillahirrohmanirrohiim
.
Bahan - bahan :
1. CPU dgn processor 64 bit ( AMD atau Intel ).
2. RAM 4 GB
3. Harddisk 300 GB
4. Flashdisk Minimal 1 GB
5. Win32 Disk Imager , dapat didownload disini :
http://sourceforge.net/projects/win32diskimager/
6. Image Freebsd 10 , download disini :
http://mfsbsd.vx.sk/files/images/10/amd64/mfsbsd-se-10.0-RELEASE-amd64.img
7.
Rokok , Capucino dan obat sakit kepala :p .
Langkah - langkah :
1. Install Win32 Disk Imager di pc windows dan write image freebsd 10
dengan Win32 Disk Imager ke dalam flashdisk.
2. Colokkan flashdisk yang udah di write tersebut ke cpu FreeBSD , set
first boot ke Flashdisk di BIOS.
3. CPU akan boot ke flashdisk , tunggu sampai ada perintah untuk login.
Loginnya adalah root dan passwordnya adalah mfsroot.
4. Cek dulu nama harddisk , nama flashdisk dan nama Ethernet ( lan ) .
5. Jika Harddisk yang digunakan SATA biasanya nama dimulai dengan nama
"ada" . Maka kita cek dengan perintah : ls /dev/ada*. Hasilnya akan
keluar seperti ini : /dev/ada0.
Jika ada partisi di Harddisk sebelumnya, dihancurkan dulu dengan
perintah :
gpart destroy -F /dev/ada0
6. Cek nama Flashdisk , perintahnya : ls /dev/da* . Hasilnya akan keluar
seperti ini :
/dev/da0 /dev/da0a
Letak file Install Freebsd ada di /dev/da0a. Sedangkan /dev/da0 adalah
tempat booting freebsd diflashdisk.
7. Cek nama ethernet , perintahnya : ifconfig . Hasilnya akan keluar
seperti ini :
"re0: flags=8843 metric 0 mtu 1500
options=8209b
ether d4:3d:7e:xx:xx:xx"
re0 adalah nama ethernet.
8. Kita mount flashdisk agar bisa digunakan. Perintahnya : mount
/dev/da0a /cdrom
9. Install freebsd , perintahnya :
zfsinstall -p HDD1 -d /dev/ada0 -u /cdrom/10.0-RELEASE-amd64 -s 4G -V
28
Keterangan :
* -p HDD1 - merename nama pool yang kita buat menjadi HDD1 , karna nama
defaultnya adalah tank.
* Ketika sampai di "-u /cdrom/" tekan tombol TAB maka akan keluar
10.0-RELEASE-amd64.
* -s 4G adalah besarnya partisi swap. Rekomendasinya adalah 2 kali besar
RAM.
*-V 28 adalah versi zfs pool yang akan kita pakai.
dan ENTER, tunggu sampai instalasi selesai.
Cara cek versi zfs pool : zpool get version
10. Ganti dir root : chroot /mnt
11. Ubah Password root : passwd root . Masukkan password baru 2 kali.
12. Configurasi ssh agar bisa melakukan remote via putty dan winscp :
ee /etc/ssh/sshd_config
Hilangkan tanda # pada baris berikut dan ganti no menjadi yes :
Port 22
PermissionRootLogin yes
( tekan tombol ESC nanti akan keluar box . Pilih leave editor lalu save
).
13. Set Ip address dan config jaringan lainnya untuk FreeBSD :
echo 'defaultrouter="192.168.1.1"' >> /etc/rc.conf -->
gateway untuk freebsd
echo 'hostname="evoproxy"' >> /etc/rc.conf
echo 'ifconfig_re0="inet 192.168.1.100 netmask 255.255.255.0"' >>
/etc/rc.conf --> ip address freebsd
echo 'sshd_enable="YES"' >> /etc/rc.conf
echo 'gateway_enable="YES"' >> /etc/rc.conf
14. Setelah selesai reboot dengan perintah : reboot . Cabut flashdisk
dan kembalikan first boot ke Harddisk.
15. Setelah selesai reboot. Login dengan nama root dan password yang
sudah diubah tadi.
16, Selanjutnya membuat partisi cache.
zfs create HDD1/cache
zfs set mountpoint=/cache HDD1/cache
zfs set atime=off HDD1/cache
zfs set quota=200G HDD1/cache
Set kuota HDD1/root
zfs set quota=80G HDD1/root
Lihat hasilnya : zfs list .
17. Edit /etc/rc.conf dengan menggunakan winscp untuk mengaktifkan
unbound dan IPFW :
zfs_enable="YES"
defaultrouter="192.168.1.1"
hostname="evoproxy"
ifconfig_re0="inet 192.168.1.100 netmask 255.255.255.0"
sshd_enable="YES"
local_unbound_enable="YES"
firewall_enable="YES"
firewall_type="open"
firewall_script="/etc/ipfw.rules"
squid_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
18. Buat file /etc/ipfw.rules :
touch /etc/ipfw.rules
Dan masukkan line berikut :
# Interface where client requests are coming from
IFACE=re0
# The IP Squid is listening on for requests. localhost is safest.
SQUIDIP=127.0.0.1
# Path to ipfw command
IPFW=/sbin/ipfw
${IPFW} -f flush
${IPFW} add 60000 permit ip from any to any
${IPFW} add 100 fwd ${SQUIDIP},3128 tcp from any to any 80 recv ${IFACE}
${IPFW} add 100 fwd ${SQUIDIP},3129 tcp from any to any 443 recv
${IFACE}
19. Edit /etc/sysctl.conf untuk mengaktifkan ip forwarding dan tune up
freebsd .
net.inet.ip.forwarding=1
kern.ipc.somaxconn=8192
net.inet.tcp.delayed_ack=0
net.inet.tcp.sendspace=65536
net.inet.udp.recvspace=65536
net.inet.udp.maxdgram=57344
net.local.stream.recvspace=65536
net.local.stream.sendspace=65536
net.inet.icmp.icmplim=300
net.inet.icmp.icmplim_output=0
net.inet.tcp.delayed_ack=0
kern.maxfilesperproc=65536
kern.maxfiles=65536
net.inet.ip.portrange.last=65536
net.inet.ip.portrange.first=10000
kern.maxvnodes=250000
Tune up di /boot/loader.conf :
vfs.zfs.write_limit_override=134217728
Nilai 134217728 = 128 MB Untuk RAM 2 GB ,
Untuk 1 GB = 64 MB (67108864) , Selanjutnya anda kalikan saja sesuai
dengan RAM yang anda pakai ,misal jika 4 GB berarti 256 MB ( 268435456
).
20. Start Unbound : service local_unbound start
Lalu : fetch ftp://FTP.INTERNIC.NET/domain/named.cache -o
/var/unbound/root.hints
Edit /var/unbound/unbound.conf :
# Generated by local-unbound-setup
server:
username: unbound
directory: /var/unbound
chroot: /var/unbound
pidfile: /var/run/local_unbound.pid
root-hints: /var/unbound/root.hints
# auto-trust-anchor-file: /var/unbound/root.key
include: /var/unbound/forward.conf
21. Buat file resolv.conf : touch /etc/resolv.conf
Edit /etc/resolv.conf :
search evo.net
nameserver 127.0.0.1
options edns0
Jalankan perintah : resolvconf -u
22. Edit /var/unbound/forward.conf :
# Generated by resolvconf
forward-zone:
name: "evo.net"
forward-addr: 203.130.193.74
forward-addr: 202.134.0.155
forward-addr: 8.8.8.8
forward-addr: 8.8.4.4
forward-addr: 203.130.196.155
forward-addr: 208.67.220.220
forward-addr: 208.67.222.222
forward-addr: 203.34.118.10
forward-zone:
name: "."
forward-addr: 203.130.193.74
forward-addr: 202.134.0.155
forward-addr: 8.8.8.8
forward-addr: 8.8.4.4
forward-addr: 203.130.196.155
forward-addr: 208.67.220.220
forward-addr: 208.67.222.222
forward-addr: 203.34.118.10
Lalu reboot.
Setelah restart cek apakah unbound sudah jalan :
sockstat -4 | grep unbound
23. Set timezone ke WIB :
tzsetup
lalu set tanggal : date yymmddHHMM contoh : date 201410230116 hasilnya
akan seperti ini :
Thu Oct 23 01:16:00 WIB 2014
24. Update ports dan extract :
portsnap fetch
portsnap extract
update database locate agar memudahkan pencarian :
/usr/libexec/locate.updatedb
25. Install pkg :
cd /usr/ports/ports-mgmt/pkg
make
make install clean
26. Install package yang diperlukan untuk squid :
pkg install openssl
pkg install fakeroot
pkg install ccze
pkg install libxml2-2.9.1_1
pkg install gmake-3.82_2 ( atau pkg install automake )
pkg install libltdl-2.4.2.418
pkg install perl5-5.16.3_11
27. Download squid
fetch http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.8.tar.gz
28. Extract : tar xzvf squid-3.4.8.tar.gz
29. Masuk kedalam direktori squid-3.4.8 : cd squid-3.4.8
30. Edit file squid-3.4.8/src/ssl/gadgets.cc, cari line ini
:NID_key_usage ubah menjadi //NID_key_usage
Atau anda bisa mempatch nya dengan file ssl.patch seperti dibawah ini.
31. Download patch - patch untuk squid disini : squid-patch.rar
Letakkan file - file tersebut di direktori /root .
32. Patch squid :
patch -p0 < /root/anti-forgery.patch
patch -p0 < /root/302_v2_memleak.patch
patch -p0 < /root/patch-compat_Makefile.in
patch -p0 < /root/patch-compat_strlen
patch -p0 < /root/patch-configure
patch -p0 < /root/patch-src_tools.cc
patch -p0 < /root/patch-src-cf.data.pre
patch -p0 < /root/ssl.patch
anti-forgery.patch adalah patch untuk webpage yang menggunakan ip yang
berbeda untuk domainnya. Tanpa patch ini webpage yang menggunakan ip
yang berbeda-beda untuk domainnya , akan dianggap miss oleh squid,
walaupun linknya sama.
Patch lainnya dapat didapatkan dari /usr/ports/www/squid/files
33. Cek cpu freebsd :
sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
34. Cari Safe Flags nya di sini Safe Flags
35. Compile Squid :
./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 \
--enable-default-err-language=English \
--infodir=/usr/share/info \
--mandir=/usr/share/man \
--disable-dependency-tracking \
--enable-storeio=ufs,aufs,diskd \
--enable-removal-policies=lru,heap \
--disable-linux-netfilter \
--disable-linux-tproxy \
--enable-http-violations \
--enable-pf-transparent \
--enable-ipfw-transparent \
--disable-wccp \
--enable-esi \
--disable-wccpv2 \
--disable-select \
--enable-icap-client \
--enable-kill-parent-hack \
--enable-cache-digests \
--enable-icmp \
--enable-follow-x-forwarded-for \
--enable-x-accelerator-vary \
--enable-zph-qos \
--enable-async-io=32 \
--with-aufs-threads=32 \
--with-swapdir=/var/spool/squid \
--with-default-user=proxy \
--with-logdir=/var/log/squid \
--with-pidfile=/var/run/squid/squid.pid \
--with-large-files \
--with-aio \
--with-dl \
--disable-ident-lookups \
--enable-large-cache-files \
--enable-err-languages=English \
--enable-ltdl-convenience \
--with-filedescriptors=65536 \
--with-openssl \
--enable-ssl \
--enable-ssl-crtd \
--disable-auth \
--disable-ipv6 \
--disable-translation \
--with-pthreads
Jika anda ingin mengetahui opsi apa aja yang bisa ditambahkan kedalam
squid ketika compile gunakan perintah ini dalam folder instalasi squid :
#cd squid-3.4.8
#./configure --help
Kemudian :
make all
make install
make install-pinger
36. Buat Dir /var/log/squid/yt dan buat file /tmp/storeid.log:
mkdir /var/log/squid/yt
touch /tmp/storeid.log
chown -R proxy:proxy /tmp/storeid.log
37. Ubah Owner Folder - folder berikut :
chown -R proxy:proxy /var/log/squid
chmod 777 /var/log/squid
chown -R proxy:proxy /cache
chmod 777 /cache
chown -R proxy:proxy /var/spool/squid
chmod 777 /var/spool/squid
chown -R proxy:proxy /var/run/squid
chmod 777 /var/run/squid
38. Download file ini : freebsd conf .rar
Copy copy squid.conf dan store-id.pl ke /etc/squid/
Ubah owner file tersebut ke proxy:proxy
chown -R proxy:proxy /etc/squid
chmod 777 /etc/squid/*
copy squid ke /etc/rc.d/ dan set agar bisa dieksekusi :
chmod +x /etc/rc.d/squid
39.Kemudian buat certificate yang akan digunakan nantinya :
cd /etc/squid
mkdir ssl_cert
cd ssl_cert
openssl genrsa -out evo.net.private 2048
openssl req -new -key evo.net.private -out evo.net.csr ( nanti akan
diminta untuk input data , dapat di isi terserah yang anda inginkan).
openssl x509 -req -days 3652 -in evo.net.csr -signkey evo.net.private
-out evo.net.cert
40. Buat folder database ssl :
cd
mkdir /var/squid
cd /var/squid
mkdir 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
41. Edit file /etc/squid/conf :
Edit line cache_mem dan maximum_object_size_in_memory sesuai dengan
besar RAM . Direkomendasikan jangan terlalu besar seperti ini :
cache_mem 64 MB
maximum_object_size_in_memory 32 KB
defaultnya seperti dibawah ini :
cache_mem 256 MB
maximum_object_size_in_memory 512 KB
Edit line : cache_dir aufs /cache 200000 470 256 , cari nilai 470 dengan
squid calculator jika besar cache anda berbeda dgn ini.
Edit line : coredump_dir /cache , agar squid ketika dijalankan chdir ke
direktori pertama cache . Defaultnya adalah coredump_dir
/var/spool/squid
42. Cek Configurasi squid : squid -k parse . Cek apakah ada yang error .
43. Buat file cache : squid -z
44. Debug squid untuk melihat error : squid -Nd1. Jika tidak ada error
tekan CTRL + C . lalu jalankan :
/etc/rc.d/squid start
Import file /etc/squid/ssl_cert/evo.net.cert ke browser yang anda
gunakan.
Ceklist show hidden files di winscp : option - preferences - panel. Agar
dapat melihat file hidden di freebsd
Untuk memudahkan cek access.log pada squid , edit file /root/.cshrc:
Tambahkan ini :
alias ceklog "tail -f /var/log/squid/access.log | ccze"
dibawah line berikut :
alias h history 25
alias j jobs -l
alias la ls -aF
alias lf ls -FA
alias ll ls -lAF
45. Cek apakah squid sudah jalan : ps -ax | grep squid , atau dengan
ini sockstat -4 | grep squid
setelah itu reboot.
46. Jika ingin menghapus squid :
cd /root/squid-3.4.8
make uninstall
rm -rf /etc/squid/*
rm -rf /etc/squid
47. Jika ingin menghapus file yang tercache :
squidclient -m PURGE url , contoh :
squidclient -m PURGE
http://steampowered.squid.internal/.steampowered.com
48. Jika digabungkan dgn Mikrotik :
Mode Intercept sample script mikrotik
Asumsi IP proxy re0= 192.168.1.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=intercept 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=intercept src-address=192.168.1.0/24
# /ip firewall nat
# add chain=srcnat out-interface=wan action=masquerade disabled=no
to-addresses=0.0.0.0
# = Routing Mikrotik =
# /ip route
# add distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.100
routing-mark=intercept
49. Agar file log squid bisa dirotate automatis , edit file
/etc/newsyslog.conf dan tambahkan line berikut paling bawah :
/var/log/squid/access.log proxy:proxy 777 7 500 * ZB
/var/run/squid/squid.pid 30
/var/log/squid/cache.log proxy:proxy 777 7 500 * ZB
/var/run/squid/squid.pid 30
/tmp/storeid.log proxy:proxy 777 7 500 * ZB
/var/run/squid/squid.pid 30
50. Untuk Mode Tproxy :
==================
1. Edit /etc/squid/squid.conf :
http_port 3127
http_port 3128 tproxy
https_port 3129 tproxy ssl-bump generate-host-certificates=on
dynamic_cert_mem_cache_size=4MB key=/etc/squid/ssl_cert/evo.net.private
cert=/etc/squid/ssl_cert/evo.net.cert
2. Edit /etc/ipfw.rules :
ipfw -f flush
ipfw add 60000 permit ip from any to any
ipfw add 100 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any 80 in via
re0
ipfw add 100 fwd 127.0.0.1,3129 tcp from 192.168.1.0/24 to any 443 in
via re0
ipfw add 100 fwd 127.0.0.1 tcp from any 80 to 192.168.1.0/24 in via re0
ipfw add 100 fwd 127.0.0.1 tcp from any 443 to 192.168.1.0/24 in via re0
3. Restart Pc proxy. Setelah restart cek apakah rule firewall sudah
diload :
ipfw list
4. Rule 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.1.100
# add action=mark-routing chain=prerouting connection-mark=tproxy_cm
disabled=no in-interface=wan new-routing-mark=tproxy_rm passthrough=no
# add action=mark-packet chain=postrouting comment="proxy hit"
disabled=yes dscp=12 new-packet-mark=proxy-hit passthrough=no
# /ip firewall nat
# add chain=srcnat out-interface=wan action=masquerade disabled=no
to-addresses=0.0.0.0
# = Routing Mikrotik =
# /ip route
# add distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.100
routing-mark=tproxy_rm
Note :
ether3-local-slave = interface ke client
192.168.1.100 = ip proxy
ether5-local-slave = interface ke proxy
wan = interface ke internet
51. Set resolusi youtube dan block iklan youtube
=================================
Tambahkan line berikut ke squid.conf :
acl gaHack url_regex -i google-analytics\.com\/ga\.js
acl gaHack url_regex -i google-analytics\.com\/analytics\.js
acl ytHack url_regex -i \/pagead\/js\/lidar\.js
acl ytHack url_regex -i google\.com\/js\/bg\/.*\.js
deny_info http://arbinet.wc.lt/script/gahack.js? gaHack
deny_info http://arbinet.wc.lt/script/yt.js? ytHack
http_access deny gaHack
http_access deny ytHack
52. Tambahan untuk xshot dan garena IM :
acl partial_content url_regex -i
^http:\/\/.*(\.garenanow\.com|\.starhub\.com)\/.*\.(exe)$
acl partial_content url_regex -i
^http:\/\/.*\.winnerinter\.co\.id\/.*\.(exe)$
Credit and Thanks to :
Allah Subhaana Wata'alaa
Source storeid.pl : https://www.fazar.net
Grup Facebook Mikrotik squid Indonesia .
Master MikroTiker N SquidLover
Source Gahack.js dan yt.js : www.comstuff.net
Dan lain lainnya.
sumber: http://learningbytutz.blogspot.com/2014/10/install-squid-348-intercept-mode-di.html