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.
gan ini udah bisa tcp_hit belum yaa
thanks please make video tutorials if you have already video tutorials please share thanks again
Tanya dikit dong bro
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
ACL di atas mendefinisikan apa? Kok pas di parsing (squid3 -k parse) output nya :
2017/12/17 22:57:52| FATAL: Invalid ACL type ‘at_step’
FATAL: Bungled /etc/squid3/squid.conf line 1645: acl step1 at_step SslBump1
Suthadi DSI
I have been working for some time with Mikrotik with the edge firewall function and in parallel Pfsense with squid enabled to generate access logs to sites visited by devices within an organization.
Following your post above I would like to congratulate you because it helped me a lot in resolving the https sites coming out of port 443.
It was necessary to create a rule where I release the ASXXXX from the site with https access problems, below mark the routes and the connections according to their rules posted receiving all the logs from the https sites.
saya sudah setting squid dari part 1 sampe selesai dan bisa transparent. tapi saat buka https://web.whatsapp.com/ tidak bisa menampilkan QRcode,
thanks
saya sudah ngikuti tutorial dari part 1 sampe akhir. dan bisa transparent proxy. tapi saat buka web.whatsapp.com tidak bisa muncul qrCode nya loading terus. knp ya? mohon pencerahannya. terima kasih
bypass whatsapp.com , jangan di forward ke proxy. silahkan coba
Abang, kalau untuk setting ke Proxy 4.0.22 konfigurasinya sama nggak?
gan itu kok yang poin iptables di rc.local scriptnya gak ada ya..
Iptable pada ubuntu server dan simpan pada file “/etc/rc.local” tepat di atas ‘exit 0’
script nya gab
sudah ikuti semua tutorial dari part 1 sampai part 3 hasilnya seperti ini:
1555144494.292 59853 192.168.2.1 TAG_NONE/200 0 CONNECT 74.214.196.134:443 – ORIGINAL_DST/74.214.196.134 –
1555144494.292 59852 192.168.2.1 TAG_NONE/200 0 CONNECT 67.202.110.12:443 – ORIGINAL_DST/67.202.110.12 –
1555144494.292 59851 192.168.2.1 TAG_NONE/200 0 CONNECT 72.34.250.78:443 – ORIGINAL_DST/72.34.250.78 –
1555144494.292 59844 192.168.2.1 TAG_NONE/200 0 CONNECT 104.254.150.59:443 – ORIGINAL_DST/104.254.150.59 –
1555144494.292 59843 192.168.2.1 TAG_NONE/200 0 CONNECT 104.254.150.59:443 – ORIGINAL_DST/104.254.150.59 –
1555144494.292 59842 192.168.2.1 TAG_NONE/200 0 CONNECT 35.203.66.107:443 – ORIGINAL_DST/35.203.66.107 –
1555144494.292 59842 192.168.2.1 TAG_NONE/200 0 CONNECT 104.254.150.59:443 – ORIGINAL_DST/104.254.150.59 –
1555144494.292 59832 192.168.2.1 TAG_NONE/200 0 CONNECT 172.217.194.95:443 – ORIGINAL_DST/172.217.194.95 –
1555144494.292 59649 192.168.2.1 TAG_NONE/200 0 CONNECT 13.35.8.64:443 – ORIGINAL_DST/13.35.8.64 –
1555144495.292 59313 192.168.2.1 TAG_NONE/200 0 CONNECT 104.20.208.21:443 – ORIGINAL_DST/104.20.208.21 –
1555144498.295 59858 192.168.2.1 TAG_NONE/200 0 CONNECT 104.254.150.59:443 – ORIGINAL_DST/104.254.150.59 –
1555144498.295 59856 192.168.2.1 TAG_NONE/200 0 CONNECT 72.34.250.78:443 – ORIGINAL_DST/72.34.250.78 –
1555144498.295 59855 192.168.2.1 TAG_NONE/200 0 CONNECT 104.254.150.59:443 – ORIGINAL_DST/104.254.150.59 –
1555144498.295 59848 192.168.2.1 TAG_NONE/200 0 CONNECT 67.202.110.12:443 – ORIGINAL_DST/67.202.110.12 –
1555144498.295 59847 192.168.2.1 TAG_NONE/200 0 CONNECT 104.254.150.59:443 – ORIGINAL_DST/104.254.150.59 –
1555144498.295 59847 192.168.2.1 TAG_NONE/200 0 CONNECT 74.214.196.134:443 – ORIGINAL_DST/74.214.196.134 –
1555144498.295 59845 192.168.2.1 TAG_NONE/200 0 CONNECT 35.203.66.107:443 – ORIGINAL_DST/35.203.66.107 –
1555144498.295 59844 192.168.2.1 TAG_NONE/200 0 CONNECT 13.35.8.64:443 – ORIGINAL_DST/13.35.8.64 –
1555144500.284 60020 192.168.2.1 TAG_NONE/200 0 CONNECT 104.20.208.21:443 – ORIGINAL_DST/104.20.208.21 –
1555144501.298 60130 192.168.2.1 TAG_NONE/200 0 CONNECT 74.125.24.103:443 – ORIGINAL_DST/74.125.24.103 –
1555144501.298 59727 192.168.2.1 TAG_NONE/200 0 CONNECT 74.125.24.103:443 – ORIGINAL_DST/74.125.24.103 –
1555144501.298 59512 192.168.2.1 TAG_NONE/200 0 CONNECT 5.45.59.12:443 – ORIGINAL_DST/5.45.59.12 –
1555144502.299 59963 192.168.2.1 TCP_MISS/503 4265 GET http://67.202.110.12/ – ORIGINAL_DST/67.202.110.12 text/html
1555144503.300 59967 192.168.2.1 TAG_NONE/200 0 CONNECT 172.217.194.190:443 – ORIGINAL_DST/172.217.194.190 –
1555144505.302 60114 192.168.2.1 TAG_NONE/200 0 CONNECT 74.125.130.94:443 – ORIGINAL_DST/74.125.130.94 –