Web Proxy Eksternal dengan Server Ubuntu
Web Proxy Eksternal yang diimplementasikan pada server Ubuntu bertindak sebagai perantara antara perangkat klien (misalnya, komputer, laptop, atau perangkat seluler) di luar jaringan lokal server dengan sumber daya internet (misalnya, situs web, layanan online). Alih-alih perangkat klien terhubung langsung ke internet, semua permintaan web mereka dialihkan melalui server Ubuntu yang menjalankan perangkat lunak proxy (dalam contoh ini, kita akan fokus pada Squid).
- Keamanan: Dapat menyembunyikan alamat IP asli klien, memberikan lapisan anonimitas, dan berpotensi memfilter konten berbahaya.
- Kontrol Akses: Memungkinkan administrator untuk mengontrol situs web dan sumber daya internet mana yang dapat diakses oleh klien.
- Caching: Meningkatkan kecepatan akses ke situs web yang sering dikunjungi dengan menyimpan salinan konten lokal di server proxy. Ketika klien lain meminta sumber daya yang sama, proxy dapat menyajikannya dari cache tanpa perlu mengambilnya lagi dari internet.
- Monitoring dan Logging: Memungkinkan pencatatan aktivitas web klien untuk tujuan audit dan pemantauan penggunaan internet.
- Melewati Pembatasan Geografis (dengan konfigurasi tertentu): Dalam beberapa kasus, proxy dapat digunakan untuk mengakses konten yang dibatasi berdasarkan lokasi geografis.
1.Permintaan Klien: Pengguna pada perangkat klien (yang telah dikonfigurasi untuk menggunakan proxy) mencoba mengakses sebuah halaman web (misalnya, www.example.com).
2.Permintaan ke Proxy: Alih-alih langsung menuju www.example.com, permintaan dari browser klien diarahkan ke alamat IP dan port server Ubuntu yang menjalankan Squid (misalnya, http://<alamat_ip_server>:3128).
3.Penerimaan Permintaan oleh Squid: Server Squid menerima permintaan tersebut
4.Pemeriksaan Konfigurasi: Squid memeriksa konfigurasi akses (ACLs - Access Control Lists) untuk menentukan apakah klien diizinkan untuk mengakses sumber daya yang diminta. Aturan-aturan ini dapat didasarkan pada alamat IP klien, waktu, jenis konten, dan banyak lagi.
5.Pencarian Cache (Opsional): Squid memeriksa cache lokalnya untuk melihat apakah salinan terbaru dari sumber daya yang diminta sudah tersedia.
●Cache Hit: Jika sumber daya ditemukan dan masih valid, Squid mengirimkannya langsung kembali ke klien tanpa perlu menghubungi server web tujuan. Ini mempercepat waktu pemuatan halaman dan mengurangi penggunaan bandwidth internet.
●Cache Miss: Jika sumber daya tidak ditemukan di cache atau sudah kedaluwarsa, Squid akan melanjutkan ke langkah berikutnya.p
6.Permintaan ke Server Web Tujuan: Squid membuat permintaan baru ke server web www.example.com atas nama klien. Alamat IP sumber permintaan sekarang adalah alamat IP server Ubuntu, bukan alamat IP klien asli.
7.Respon dari Server Web: Server web www.example.com memproses permintaan dan mengirimkan respons (berupa data HTML, CSS, JavaScript, gambar, dll.) kembali ke server Squid.
8.Penyimpanan Cache (Opsional): Jika sumber daya yang diterima memenuhi kriteria caching, Squid dapat menyimpan salinannya di cache lokal untuk permintaan di masa mendatang.
9.Pengiriman Respon ke Klien: Squid kemudian meneruskan respons dari server web kembali ke perangkat klien.
10.Tampilan di Browser Klien: Browser klien menerima data dari Squid dan menampilkannya kepada pengguna.
- Sebuah server Ubuntu yang terhubung ke internet dengan alamat IP statis (direkomendasikan).
- Akses sudo atau akses sebagai pengguna root pada server.
1.Backup File Konfigurasi (Penting): Sebelum membuat perubahan, buatlah salinan cadangan dari file konfigurasi asli:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup
2.Edit File Konfigurasi: Buka file konfigurasi menggunakan editor teks (misalnya, nano):
sudo nano /etc/squid/squid.conf
3.Konfigurasi Port: Cari baris yang dimulai dengan http_port. Secara default, Squid mendengarkan pada port 3128. Anda dapat mengubahnya jika perlu. Contoh mengubah port menjadi 8080:
http_port 8080
4.Konfigurasi Akses Kontrol (ACLs): Ini adalah bagian penting untuk mengontrol siapa yang dapat menggunakan proxy Anda.
- Mengizinkan Akses dari Jaringan Tertentu (Direkomendasikan):
Definisikan ACL untuk jaringan Anda. Ganti 192.168.1.0/24 dengan rentang IP jaringan Anda:
acl mynetwork src 192.168.1.0/24
- Izinkan akses dari jaringan yang didefinisikan:
- Tolak akses dari semua sumber lain (pastikan baris ini ada setelah aturan allow):
http_access deny all
- Mengizinkan Akses dari Satu Alamat IP:
acl client_ip src 203.0.113.10
http_access allow client_i http_access deny all
PERHATIAN: Mengizinkan akses dari semua IP (acl all src 0.0.0.0/0 dan http_access allow all) sangat tidak aman dan tidak direkomendasikan untuk proxy eksternal yang dapat diakses dari internet publik.
- cache_mem: Jumlah memori yang digunakan untuk menyimpan objek dalam cache.
- maximum_object_size: Ukuran maksimum objek yang dapat disimpan dalam cache.
- http_access deny CONNECT !SSL_ports: Mencegah klien membuat koneksi HTTPS melalui proxy secara eksplisit (untuk keamanan).
- Konfigurasi autentikasi pengguna (lebih kompleks dan memerlukan pengaturan tambahan).
- Simpan dan Tutup File Konfigurasi.
- Periksa status layanan Squid untuk memastikan tidak ada kesalahan:
- Alamat IP Server Ubuntu: Alamat IP publik atau alamat IP yang dapat dijangkau oleh klien.
- Port Squid: Port yang Anda konfigurasi di file squid.conf (misalnya, 3128 atau 8080).
- Autentikasi Proxy: Untuk mengamankan proxy lebih lanjut, pertimbangkan untuk mengimplementasikan autentikasi pengguna (misalnya, menggunakan basic auth atau integrasi dengan sistem autentikasi lain). Ini akan mengharuskan pengguna memasukkan nama pengguna dan kata sandi untuk dapat menggunakan proxy.
- HTTPS Interception (Hati-hati): Squid dapat dikonfigurasi untuk mencegat dan memeriksa lalu lintas HTTPS, tetapi ini melibatkan pembuatan dan pengelolaan sertifikat dan dapat menimbulkan masalah privasi dan keamanan jika tidak dikonfigurasi dengan benar. Ini adalah topik yang lebih lanjut dan memerlukan pemahaman yang mendalam.
- Pembaruan Reguler: Pastikan server Ubuntu dan paket Squid Anda selalu diperbarui dengan patch keamanan terbaru.
- Pemantauan Log: Pantau log Squid secara teratur untuk mendeteksi aktivitas yang mencurigakan atau masalah kinerja.

.png)








