Squid Automatic HTTP Proxy
Pada tutorial Linux kali ini kita akan mebuat automatic http proxy untuk pengalihan permintaan pada port 21/80/443 ke proxy untuk aplikasi apa pun yang tidak mendukung parameter konfigurasi proxy. Umumnya pada aplikasi proxy server seperti squid, jika komputer klien ingin melewati proxy, maka harus melakukan pengaturan proxy server secara manual dengan memasukan host dan port proxy. Ternyata kita juga bisa mengarahkan komputer klien secara otomatis agar melewati proxy meskipun tidak melakukan pengaturan proxy secara manual.
Hal ini sangat menguntungkan karena klien tidak perlu lagi gonta ganti setting proxy setiap kali terhubung ke jaringan kantor dan jaringan rumah. Berikut adalah langkah-langkah untuk melakukan automatic http proxy.
Bagian atas menentukan daftar rentang IP (saya menyertakan IPv4 dan IPv6) yang harus dikecualikan dari proxy. Anda harus mengeditnya sebagaimana mestinya. Bagian bawah menentukan 3 jenis URL berbeda yang ingin kita jadikan proxy, dan ke mana harus mengarahkan masing-masing. Semua ini dapat dihosting di sistem yang sama, atau di sistem yang berbeda. Setelah selesai mengedit ini, simpan sebagai 'proxy.pac'.
Pastikan Anda tidak memiliki entri tambahan untuk tipe ini di tempat lain dalam berkas. Jika berkas tersebut adalah berkas default (Anda belum melakukan perubahan), tipe ini tidak ada, hingga tanggal posting ini.
Secara default (pada FreeBSD), nginx secara default mencari konten di /usr/local/www/nginx/. Letakkan file 'proxy.pac' Anda di sini. Buat tautan simbolik ke file tersebut sebagai 'wpad.dat'.
Edit /etc/rc.conf dan aktifkan nginx:
Jalankan nginx: 'service nginx start' Anda seharusnya dapat mengambil file dengan ' http://proxy.server/proxy.pac
Sekarang kita uji proxy dengan menjalankan perintah berikut :
Anda akan melihat entri seperti:
Hal ini sangat menguntungkan karena klien tidak perlu lagi gonta ganti setting proxy setiap kali terhubung ke jaringan kantor dan jaringan rumah. Berikut adalah langkah-langkah untuk melakukan automatic http proxy.
1. Buat file PAC yang menentukan konfigurasi proxy
Konfigurasi Otomatis Proxy adalah fungsi JavaScript khusus yang akan dipanggil oleh browser sebagai bagian dari penentuan bagaimana permintaan ditangani. Buat file PAC seperti contoh dibawah ini:
function FindProxyForURL(url, host) { if ( isInNet(myIpAddress(), "127.0.0.0", "255.0.0.0") || isInNet(myIpAddress(), "10.0.0.0", "255.0.0.0") || isInNet(myIpAddress(), "192.168.0.0", "255.255.255.0") || isInNet(myIpAddress(), "172.16.0.0", "255.240.0.0") || isInNet(myIpAddress(), "74.125.28.141", "255.255.255.255") || shExpMatch(shExpMatch, "2607:f8b0:400e:c04::8d") || shExpMatch(shExpMatch, "fc00:101:ca7:*")) { return "DIRECT"; } else { if (shExpMatch(url, "http:*")) return "PROXY proxy.host:3128" ; if (shExpMatch(url, "https:*")) return "PROXY proxy.host:3130" ; if (shExpMatch(url, "ftp:*")) return "PROXY proxy.host:3128" ; return "DIRECT"; } }
Bagian atas menentukan daftar rentang IP (saya menyertakan IPv4 dan IPv6) yang harus dikecualikan dari proxy. Anda harus mengeditnya sebagaimana mestinya. Bagian bawah menentukan 3 jenis URL berbeda yang ingin kita jadikan proxy, dan ke mana harus mengarahkan masing-masing. Semua ini dapat dihosting di sistem yang sama, atau di sistem yang berbeda. Setelah selesai mengedit ini, simpan sebagai 'proxy.pac'.
2. Mengkonfigurasi Nginx
Instal pkg (atau port). Edit /usr/local/etc/nginx/mime.types Tambahkan baris berikut di bawah 'types {'
application/x-ns-proxy-autoconfig .pac
application/x-ns-proxy-autoconfig .dat
application/x-ns-proxy-autoconfig .dat
Pastikan Anda tidak memiliki entri tambahan untuk tipe ini di tempat lain dalam berkas. Jika berkas tersebut adalah berkas default (Anda belum melakukan perubahan), tipe ini tidak ada, hingga tanggal posting ini.
Secara default (pada FreeBSD), nginx secara default mencari konten di /usr/local/www/nginx/. Letakkan file 'proxy.pac' Anda di sini. Buat tautan simbolik ke file tersebut sebagai 'wpad.dat'.
cd /usr/local/www/nginx/
ln -s proxy.pac wpad.dat
ln -s proxy.pac wpad.dat
Edit /etc/rc.conf dan aktifkan nginx:
nginx_enable="YES"
Jalankan nginx: 'service nginx start' Anda seharusnya dapat mengambil file dengan ' http://proxy.server/proxy.pac
3. Konfigurasi DNS untuk Proxy Otomatis
Buat record A (dan record AAAA jika Anda menggunakan IPv6) untuk wpad.domain.tld Ini harus menunjuk ke tempat yang sama dengan proxy.server yang digunakan di atas.4. Konfigurasi Squid Sebagai Proxy
Perubahan pada konfigurasi default dibatasi pada 3 baris:acl localnet src 192.168.0.0/20
http_port 3128
https_port 3130 transparent cert=/usr/local/etc/squid/proxy.cmhome.cert key=/usr/local/etc/squid/proxy.cmhome.key
http_port 3128
https_port 3130 transparent cert=/usr/local/etc/squid/proxy.cmhome.cert key=/usr/local/etc/squid/proxy.cmhome.key
Sekarang kita uji proxy dengan menjalankan perintah berikut :
tail -F /var/log/squid/access.log /var/log/nginx-access.log
Anda akan melihat entri seperti:
192.168.101.13 - - [18/Jul/2014:22:50:38 +0000] "GET /wpad.dat HTTP/1.1" 200 921 "-" "com.apple.WebKit.WebContent/9538.43.42 CFNetwork/673.3 Darwin/13.3.0 (x86_64) (MacPro3%2C1)" 1405627253.231 1177 fc00:101:ca7:11::11 TCP_MISS/200 671 GET http://it.knightnet.org.uk/? - HIER_DIRECT/109.169.46.37 text/html