Untuk kali ini DSI akan melanjutkan artikel kemarin yang membahas Install squid3 pada part #1 dan part #2 namun belum support untuk melakukan transparent.
Transparent Proxy biasanya diterapkan agar admin proxy tidak perlu manual setting pada browser user / pelanggan saat membelokkan traffic browsing ke service proxy. Tproxy dan Intercept adalah mode transparent yang bisa diterapkan pada squid 3.1 ke atas.
Baca artikel instalasi squid :
Cara setting transparent proxy squid3 ini menggunakan mode tproxy dengan mikrotik yang akan melakukan firewall. Karena ini melanjutkan maka di anggap anda sudah mengikuti cara install squid3 pada artikel sebelumnya.
Install Squid3 untuk Transparent Proxy
Langkah Pertama
- Seperti biasa buka program putty lalu ssh ke PC ubuntu server kemudian login menggunakan user ‘root’
- Install Paket pendukung untuk Tproxy pada OS ubuntu
apt-get install libcap-* -y
- Hapus Instalasi squid sebelumnya
cd squid-3*
make uninstall
make clean
- Lakukan compile ulang squid anda dengan mengaktifkan opsi ‘–enable-linux-netfilter’
./configure --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid --localstatedir=/var --libdir=/usr/lib --with-default-user=proxy --with-logdir=/var/log/squid --with-pidfile=/var/run/squid.pid --enable-ssl-crtd --with-openssl --enable-linux-netfilter
make && make install
- Pada squid.conf tambahkan ‘http_port 3129 tproxy’ tepat di bawah ‘http_port 3128’ dan edit pada port 3127 menjadi ‘https_port 3127 tproxy ssl-bump…..’
https_port 3127 tproxy ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/myCA.pem
http_port 3128
http_port 3129 tproxy
- atau hapus isi squid.conf yang sudah ada lalu copy script di bawah ini jangan lupa edit, kemudian masukan ulang pada squid.conf
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
https_port 3127 tproxy ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/myCA.pem
http_port 3128
http_port 3129 tproxy
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
ssl_bump peek step1 all
ssl_bump bump all
# BAGIAN YANG PERLU DI SESUAIKAN
# DISINI SAYA MENGGUNAKAN PARTISI /cache untuk cache_dir, jika nama partisi anda berbeda silahkan sesuaikan
# UNTUK UKURAN cache_dir sesuaikan juga, disini yang mencontohkan 100gb,
cache_dir aufs /cache 100000 100 256
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# END
- Tambahkan Iptable pada ubuntu server dan simpan pada file “/etc/rc.local” tepat di atas ‘exit 0’
nano /etc/rc.local
copy script di bawah ini, lalu masukan di atas ‘exit 0’
iptables -t mangle -F
iptables -t mangle -X
echo 0 > /proc/sys/net/ipv4/conf/lo/rp_filter
echo 1 > /proc/sys/net/ipv4/ip_forward
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100
iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
iptables -t mangle -A PREROUTING -p tcp --dport 8080 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3129
iptables -t mangle -A PREROUTING -p tcp --dport 443 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 3127
- Sampai disini squid kita sudah support untuk transparent mode, untuk mengakhiri langkah pertama, silahkan restart ubuntu server anda.
reboot
Langkah Kedua
- Sekarang buka mikrotik anda lewat winbox
- copy script dibawah ini, kemudian paste ke dalam ‘new terminal’ pada menu winbox
/ip firewall mangle
add action=mark-connection chain=prerouting comment="HTTP + HTTPS TO PROXY" 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=08:00:27:F7:75:7D
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.1.2 routing-mark=tproxy_route
Ket:
192.168.1.2 adalah IP Ubuntu server (squid)
192.168.2.0/24 adalah Network Lan
08:00:27:F7:75:7D adalah Mac-Address Ubuntu
Jika pada jaringan lokal anda terdapat dua network yang berbeda atau lebih, anda cukup copy mangle yang pertama dan tentukan IP dan port yang mau di belokkin ke proxy
ketika anda sudah masukan mangle di atas dan mau uji coba, pastikan squid anda sudah berjalan dengan baik, dan jika pada mikrotik anda terdapat mangle-mangle yang lain di sarankan di disable terlebih dulu, tujuanya untuk memastikan tproxy anda berjalan dengan semestinya.
firewall mangle di atas belum termasuk bypass HIT traffic, Bypass domain / IP dan Limit bandwidth. Mudah-mudahan lain waktu DSI akan menyajikan mangle yang sudah lengkap.
Demikian cara install squid3 yang sudah support transparent mode, semoga tutorial kali ini bisa bermanfaat buat pembaca semuanya.
Kami mohon Kritik dan saran mengenai artikel ini jika terdapat kesalahan baik penulisan atau pun script. Jangan lupa share artikel ini jika anda terbantu dengan tutorial di atas.
silahkan berkomentar dibawah ini untuk permasalahan mengenai artikel di atas.
Terimakasih atas kunjungan anda.
di squid 3 untuk bisa cache https apa bsa lngsung diterapkan dgn penambhan di dst portnya ? ato msih ada penambahan add on lagi ?
gan klu squidnya dari utor 1 sampe 3 apa qt musti clean squidnya berrty yg tutor 1 dan 2 tdk jadi di pakai?
dokter apakah dengan tutorial ini masih import sertifikat, trimakasih
Kalo udh di transparent apa masih butuh di setting sertifikat browseR?
thanks gan udah 1 – 3 tutorial semuanya work gan 😀 ane senang banget .
tutorialnya dari agan mudah di mengerti .tinggal youtube mungkin gan belom ane ikutin semoga ane juga mengerti 😀
thanks 1000000 % work ….
buat yang gagal coba di nat interface proxy jangan di masqurade atau delete aja 😀
dokter kalau saya intall squid nya di virtualbox dan ip virtualbox/ubuntu sejajar dengan client (single interface)
mangle dan iptable nya gimana ya master
topologinya seperti ini :
ether 1 mikrotik > modem >192.168.88.1
ether2 mikrotik>local>192.168.100.1
ether2 mikrotik >proxy>192.168.100.200
mohon mencerahannya masterr ??
saya uda coba tutor di atas kok malah muter muter doang ya gan di brwsernya ????
dokter saya sudah coba tutor diatass , tapi kok muter muter doang ya di browserr nya ???
mohon bntuAnya masterr ???
Pada proses make && make install kok lama sekali ya, seperti ga selesai – selesai, apakah memang lama seperti itu?
pak dokter klo errorny seperti ini apa ya ? 2016/11/09 17:54:20 kid1| ERROR: NAT/TPROXY lookup failed to locate original IPs on local=74.125.130.190:443 remote=192.168.170.100:58097 FD 12 flags=17
mohon pencerahannya pak dokter…
Terimakasih gan….
mantappp…
tapi ane ada masalah ni pada cache.log nya..
ini ss nya.
2016/11/11 05:29:44 kid1| Error negotiating SSL connection on FD 225: error:140944
18:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca (1/0)
2016/11/11 05:29:45 kid1| Error negotiating SSL on FD 226: error:14090086:SSL rout
sebelumnya terimakasih gans…