Salah satu fungsi proxy adalah untuk menyimpan cache. Apabila sebuah LAN menggunakan proxy untuk berhubungan dengan Internet, maka yang dilakukan oleh browser ketika user mengakses sebuah url web server adalah mengambil request tersebut di proxy server. Sedangkan jika data belum terdapat di proxy server maka proxy mengambilkan langsung dari web server. Kemudian request tersebut disimpan di cache proxy. Selanjutnya jika ada client yang melakukan request ke url yang sama, akan diambilkan dari cache tersebut. Ini akan membuat akses ke Internet lebih cepat.
Bagaimana agar setiap pengguna dipastikan mengakses Internet melalu web proxy yang telah kita aktifkan? Untuk ini kita dapat menerapkan transparent proxy. Dengan transparent proxy, setiap Browser pada komputer yang menggunakan gateway ini secara otomatis melewati proxy.
Mengaktifkan fiture web proxy di mikrotik:
[admin@routerOS] > /ip proxy set enabled=yes
[admin@routerOS] > /ip web-proxy set
cache-administrator=black-c0de.org
[admin@routerOS] > /ip web-proxy print
enabled: yes
src-address: 0.0.0.0
port: 3128
hostname: "routerOS"
transparent-proxy: yes
parent-proxy: 0.0.0.0:0
cache-administrator: "black-c0de.org"
max-object-size: 8192KiB
cache-drive: system
max-cache-size: unlimited
max-ram-cache-size: unlimited
status: running
reserved-for-cache: 4733952KiB
reserved-for-ram-cache: 2048KiB
Membuat rule untuk transparent proxy pada firewall NAT, tepatnya ada dibawah rule untuk NAT masquerading:
[admin@routerOS] > /ip firewall nat add chain=dstnat in-interface=local src-address=192.168.0.0/24 protocol=tcp dst-port=80 action=redirect to-ports=3128
[admin@routerOS] > /ip firewall nat print Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat out-interface=public action=masquerade
1 chain=dstnat in-interface=local src-address=192.168.0.0/24 protocol=tcp dst-port=80 action=redirect to-ports=3128
warning, kalau menggunakan RB kadang cachenya full, jadi bagusnya memakai transparansy squid external