GNU/Linux >> Belajar Linux >  >> Panels >> Webmin

Server Proksi Squid

Artikel ini menjelaskan apa itu server proxy HTTP atau FTP, dan kemudian menjelaskan bagaimana Webmin dapat digunakan untuk mengonfigurasi server proxy Squid yang populer.

Isi

Pengantar Proxy dan Squid

Server proxy HTTP pada dasarnya adalah program yang menerima permintaan dari klien untuk URL, mengambilnya atas nama klien, dan mengembalikan hasilnya ke klien. Proxy digunakan pada jaringan di mana klien tidak memiliki akses langsung ke Internet tetapi masih harus dapat melihat halaman web. Proxy juga digunakan untuk menyimpan halaman yang biasa diminta sehingga jika lebih dari satu klien ingin melihat halaman yang sama, itu hanya perlu diunduh satu kali.

Banyak perusahaan dan organisasi mengatur firewall mereka untuk memblokir semua lalu lintas masuk dan keluar oleh sistem di LAN internal. Ini mungkin dilakukan untuk alasan keamanan, atau untuk membatasi apa yang dapat diakses karyawan di Internet. Karena kemampuan untuk melihat halaman web sangat berguna, proxy sering kali diatur agar situs web dapat diakses melaluinya.

Organisasi besar dan ISP dengan banyak PC klien yang mengakses web mungkin juga ingin menjalankan server proxy untuk mengurangi beban pada jaringan mereka. Karena salah satu tugas utama proxy adalah membuat cache halaman yang diminta oleh klien, halaman apa pun yang diminta lebih dari sekali akan dikembalikan dari cache alih-alih diambil dari server asal. Untuk alasan ini, sistem klien sering dikonfigurasi atau dipaksa untuk menggunakan proxy caching untuk mengakses web.

Proxy hanya berguna jika browser klien dikonfigurasikan untuk menggunakannya alih-alih terhubung ke situs web secara langsung. Untungnya, setiap browser web yang ada, dan hampir semua program yang mengunduh file melalui HTTP untuk berbagai tujuan, dapat dikonfigurasi untuk menggunakan proxy. Ini memberitahu mereka untuk membuat koneksi HTTP proxy khusus ke server proxy sebagai gantinya, menentukan URL lengkap untuk diunduh.

Proxy tidak hanya untuk HTTP - mereka juga dapat mendukung permintaan protokol FTP dan Gopher dari klien, yang mereka layani dengan membuat koneksi FTP atau Gopher ke server yang diminta sebenarnya. Bahkan koneksi SSL terenkripsi dapat ditangani oleh proxy, meskipun tidak dapat mendekripsi permintaan. Sebaliknya, proxy hanya meneruskan semua data dari klien ke server tujuan dan kembali lagi.

Squid adalah server proxy paling populer untuk sistem Unix/Linux. Ini adalah open source dan tersedia secara bebas untuk diunduh dari www.squid-cache.org, dan disertakan sebagai paket standar dengan semua distribusi Linux dan banyak sistem operasi lainnya. Squid mendukung proxy, caching, dan akselerasi HTTP, dan memiliki sejumlah besar opsi konfigurasi untuk mengontrol perilaku fitur ini.

Squid membaca konfigurasinya dari file teks squid.conf, biasanya ditemukan di atau di bawah direktori /etc. File ini terdiri dari serangkaian direktif, satu per baris, yang masing-masing memiliki nama dan nilai. Setiap arahan menetapkan beberapa opsi, seperti port TCP untuk mendengarkan atau direktori untuk menyimpan file yang di-cache. Modul Squid Webmin mengedit file ini secara langsung, mengabaikan komentar atau arahan yang tidak dimengerti.

Banyak versi Squid telah dirilis selama bertahun-tahun, masing-masing telah mendukung arahan konfigurasi yang berbeda atau memberikan arti yang berbeda pada arahan yang sama. Ini berarti bahwa file squid.conf dari versi 2.0 mungkin tidak kompatibel dengan Squid 2.5 - dan file dari Squid 2.5 pasti tidak akan bekerja dengan versi 2.0. Untungnya, Webmin mengetahui direktif mana yang didukung setiap rilis dan hanya mengizinkan pengeditan yang diketahui oleh versi Squid yang sedang berjalan.

Halaman web yang di-cache disimpan dalam file dalam struktur direktori multi-level untuk meningkatkan kinerja sistem file. Squid dapat dikonfigurasi untuk menggunakan beberapa direktori cache yang terpisah, sehingga Anda dapat menyebarkan file ke disk yang berbeda untuk meningkatkan kinerja. Setiap kali halaman yang dapat di-cache diminta, halaman tersebut disimpan dalam file, sehingga ketika permintaan berikutnya untuk halaman yang sama tiba, file tersebut dapat dibaca dan data disajikan darinya. Karena beberapa halaman web berubah dari waktu ke waktu (atau bahkan dibuat secara dinamis), Squid melacak tanggal modifikasi terakhir dan tanggal kedaluwarsa halaman web sehingga dapat menghapus data dari cache ketika sudah kedaluwarsa.

Program sebenarnya yang menangani permintaan klien adalah proses server yang berjalan secara permanen yang disebut squid. Ini juga dapat memulai beberapa sub-proses lain untuk tugas-tugas seperti pencarian DNS atau otentikasi klien, tetapi semua pemrosesan protokol HTTP yang sebenarnya dilakukan dalam proses master tunggal. Tidak seperti server serupa lainnya seperti Apache atau Sendmail, Squid tidak memulai atau menggunakan sub-proses untuk menangani permintaan klien.

Squid dapat dikompilasi pada semua rasa Unix yang didukung Webmin, dan bekerja hampir sama pada semuanya. Ini berarti bahwa antarmuka pengguna modul Webmin juga sama di seluruh sistem operasi, dengan pengecualian jalur default yang digunakannya untuk program Squid dan file konfigurasi.

Modul Server Proxy Squid

Jika Anda ingin mengatur atau mengkonfigurasi Squid dari dalam Webmin, Anda harus menggunakan modul Squid Proxy Server, yang terdapat di bawah kategori Servers. Ketika ikonnya diklik, halaman yang ditunjukkan pada gambar di bawah akan muncul, dengan asumsi bahwa Squid diinstal dan dikonfigurasi dengan benar. Seperti yang Anda lihat, halaman utama hanya terdiri dari tabel ikon, yang masing-masing dapat diklik untuk menampilkan formulir untuk mengedit setelan dalam kategori tersebut.


Halaman utama modul Squid

Jika Anda belum mengonfigurasi atau memulai Squid di sistem Anda sebelumnya, direktori cache mungkin belum diatur. Modul akan mendeteksi ini dan menampilkan pesan seperti *Direktori cache Squid Anda /var/spool/squid belum diinisialisasi* di atas tabel ikon. Untuk menginisialisasi cache, ikuti langkah-langkah berikut  :

  1. Jika Anda tidak puas dengan direktori cache yang ditampilkan, sekaranglah saatnya untuk mengubahnya. Ikuti petunjuk di bagian *Menambahkan direktori cache* untuk menentukan direktori Anda sendiri sebelum melanjutkan.
  2. Di sebagai pengguna Unix bidang masukkan nama pengguna yang akan memiliki file cache dan sebagai siapa proses daemon akan dijalankan. Biasanya ini akan menjadi pengguna squid khusus yang dibuat untuk tujuan tersebut (dan bidang akan default ke squid jika pengguna seperti itu ada), tetapi sebenarnya setiap pengguna akan melakukannya. Saya sarankan menggunakan modul Users and Groups (dibahas dalam bab 4) untuk membuat pengguna bernama squid yang direktori home-nya adalah direktori cache jika diperlukan.
  3. Klik tombol Inisialisasi Cache tombol. Konfigurasi Squid akan diperbarui untuk menggunakan nama pengguna yang Anda pilih, dan perintah squid -z akan dijalankan untuk mengatur direktori cache. Semua output yang dihasilkannya akan ditampilkan sehingga Anda dapat melihat bagaimana inisialisasi berlangsung.
  4. Setelah proses selesai, kembali ke halaman utama modul dan pesan kesalahan seharusnya sudah hilang.

Jika Squid tidak diinstal sama sekali di sistem Anda (atau diinstal di lokasi yang berbeda dengan yang diharapkan Webmin), pesan kesalahan seperti File konfigurasi Squid /etc/squid.conf tidak ada akan muncul di halaman utama alih-alih tabel ikon. Jika Anda benar-benar telah menginstalnya, baca bagian *Mengonfigurasi modul Server Proxy Squid* untuk instruksi tentang cara mengubah jalur yang digunakan modul. Di sisi lain, jika benar-benar tidak terinstal, Anda harus menggunakan modul Paket Perangkat Lunak (tercakup di Paket Perangkat Lunak) untuk menginstal paket squid dari CD atau situs web distribusi Linux Anda.

Jika tidak ada paket seperti itu untuk sistem operasi Anda, Anda perlu mengunduh, mengkompilasi, dan menginstal versi terbaru Squid dari www.squid-cache.org. Selama Anda memiliki kompiler yang terinstal di sistem Anda, ini adalah proses yang relatif sederhana tanpa ketergantungan.

Setelah server terinstal, jika Anda ingin menggunakannya dalam jangka panjang, Anda harus mengaturnya untuk memulainya saat boot, menggunakan modul Bootup dan Shutdown (yang bab 9 menjelaskan cara menggunakannya). Semua paket Linux menyertakan skrip aksi bootup untuk Squid, meskipun mungkin dinonaktifkan secara default sehingga mengharuskan Anda untuk mengaktifkannya di modul itu. Jika tidak, Anda perlu membuat tindakan yang menjalankan perintah seperti
/usr/local/squid/bin/squid  -sY
, dengan asumsi Anda telah menginstal Squid di /usr/local/squid.

Setelah Squid diinstal dan diinisialisasi, Anda dapat mulai menggunakan modul ini. Saat Squid berjalan, setiap halaman memiliki dua tautan di bagian atas - Terapkan Perubahan yang memaksa konfigurasi saat ini untuk dibaca ulang, dan Stop Squid yang mematikan server proxy. Jika server tidak berjalan, link tersebut diganti dengan *Start Squid* sebagai gantinya, yang seperti namanya mencoba untuk memulainya. Jika belum berjalan, Anda mungkin ingin memulainya sekarang.

Karena setiap versi Squid telah memperkenalkan arahan konfigurasi baru, antarmuka pengguna modul ini akan muncul secara berbeda tergantung pada versi Squid yang dideteksi pada sistem Anda. Semua instruksi dalam bab ini ditulis untuk Squid 2.4 karena saat ini merupakan versi yang paling banyak digunakan. Jika Anda menjalankan rilis yang lebih lama atau lebih baru, bidang yang berbeda mungkin muncul di formulir atau memiliki lebih banyak atau lebih sedikit opsi. Misalnya, setiap versi baru telah memperkenalkan jenis ACL yang berbeda, dan otentikasi telah ditangani dalam tiga cara berbeda melalui riwayat program. Namun, konsep dasarnya selalu sama.

Saat Anda menggunakan modul ini, pastikan browser Anda dikonfigurasi untuk tidak menggunakan proxy Squid untuk mengakses server Webmin Anda. Jika tidak, Anda berisiko memutus akses Anda sendiri ke modul jika Anda membuat kesalahan konfigurasi atau mematikan proses server. Semua browser yang dapat menggunakan proxy memiliki bidang untuk mendaftar host yang akan terhubung secara langsung, di mana Anda dapat memasukkan nama host server Webmin Anda.

Mengubah port dan alamat proxy

Secara default, Squid mendengarkan permintaan proxy pada port TCP 3128 pada semua alamat IP sistem Anda. Karena ini bukan port yang biasa dijalankan oleh proxy (8000 dan 8080 tampaknya yang paling umum), Anda mungkin ingin mengubahnya. Anda mungkin juga ingin mengedit alamat mendengarkan sehingga hanya klien di jaringan internal Anda yang dapat terhubung, jika sistem Anda memiliki lebih dari satu antarmuka jaringan.

Untuk menentukan port yang digunakan Squid, ikuti langkah berikut :

  1. Pada halaman utama modul, klik Port dan Jaringan ikon untuk memunculkan formulir yang ditunjukkan pada Gambar 44-2.
  2. Di Alamat dan port proxy tabel, pilih opsi *Tercantum di bawah*. Pada tabel di bawah, setiap baris mendefinisikan port mendengarkan dan secara opsional alamat untuk diikat. Semua port dan alamat yang ada akan dicantumkan, diikuti oleh satu baris kosong untuk menambahkan yang baru. Di bidang kosong pertama di Port kolom, masukkan nomor port seperti 8000 atau 8080 . Di kolom *Nama host/alamat IP*, pilih Semua untuk menerima koneksi pada salah satu antarmuka sistem Anda, atau opsi kedua untuk memasukkan alamat IP di kotak teks yang berdekatan. Menggunakan tabel ini, Squid dapat dikonfigurasi untuk mendengarkan sebanyak mungkin port yang Anda inginkan. Namun, karena hanya satu baris kosong yang muncul dalam satu waktu, Anda perlu menyimpan dan membuka kembali formulir untuk menambahkan lebih dari satu port baru.
  3. ICP adalah protokol yang digunakan oleh Squid untuk berkomunikasi dengan proxy lain dalam sebuah cluster. Untuk mendengarkan pada port selain default 3130 untuk ICP, isi port ICP bidang. Ini umumnya tidak diperlukan, karena hanya proxy lain yang pernah menggunakan protokol ini.
  4. Squid biasanya akan menerima koneksi ICP pada alamat IP manapun. Untuk mengubahnya, pilih tombol radio kedua di bidang *Alamat UDP masuk* dan masukkan salah satu IP antarmuka sistem Anda ke bidang teksnya. Ini dapat berguna jika semua proxy lain yang mungkin ingin berkomunikasi dengan server Anda berada di satu LAN internal.
  5. Klik tombol Simpan tombol di bagian bawah halaman untuk memperbarui file konfigurasi dengan pengaturan baru Anda, lalu klik tautan *Terapkan Perubahan* kembali di halaman utama untuk mengaktifkannya.


Port dan bentuk jaringan

Menambahkan direktori cache

Dalam konfigurasi default yang biasa, Squid menggunakan satu direktori untuk menyimpan halaman cache. Paling banyak 100 MB data akan disimpan dalam direktori ini, yang sepertinya tidak akan cukup jika melayani sejumlah besar klien aktif. Jika sistem Anda memiliki lebih dari satu hard drive, masuk akal untuk menyebarkan cache di beberapa disk untuk meningkatkan kinerja. Ini dapat dilakukan dengan menentukan beberapa direktori, masing-masing dengan ukuran maksimumnya sendiri.

Pada sistem yang didedikasikan untuk menjalankan server proxy, jumlah maksimum cache di setiap direktori harus sekitar 90% dari ruang yang tersedia. Tidak bijaksana untuk mengonfigurasi atau mengizinkan Squid menggunakan semua ruang disk kosong, karena banyak sistem file mengalami penurunan kinerja saat hampir penuh. Selanjutnya, ruang disk dapat digunakan oleh file log dan data pengguna juga. Jika Squid memenuhi seluruh hard drive Anda, masalah dapat terjadi karena program lain tidak dapat membuat file sementara atau menulis ke log.

Untuk menambahkan direktori cache baru dan menentukan ukuran maksimum untuk direktori yang sudah ada, ikuti langkah-langkah berikut :

  1. Klik Opsi Cache ikon di halaman utama modul untuk memunculkan formulir yang ditunjukkan pada tangkapan layar di bawah.
  2. Di direktori Cache bidang, pilih Terdaftar pilihan. Jika Default dipilih sebelumnya, Squid akan menggunakan direktori cache default terkompilasi tunggal yang ditampilkan dalam tanda kurung. Jika Anda ingin terus menggunakan direktori ini, itu harus dimasukkan secara eksplisit ke dalam tabel. Ukuran default adalah 100 MB, dan menggunakan 16 direktori level 1 dan 256 level 2. Setiap baris dalam tabel menentukan direktori cache tunggal. Semua direktori yang ada (selain default) akan dicantumkan sehingga Anda dapat mengeditnya, diikuti oleh satu baris kosong. Setiap baris memiliki bidang di bawah kolom berikut :
    • Direktori Jalur lengkap ke direktori cache tingkat atas, seperti /var/spool/squid atau /disk2/cache . Direktori ini harus sudah ada dan dimiliki oleh penggunaan yang menjalankan Squid (biasanya disebut squid) - modul tidak akan membuatnya untuk Anda.
    • Jenis Jenis penyimpanan yang digunakan dalam direktori. Anda harus selalu memilih UFS di sini.
    • Ukuran (MB) Jumlah maksimum data yang akan ditampungnya, dalam megabita. Setelah batas ini tercapai, file lama yang tidak diminta akan diganti dengan yang baru.
    • direktori tingkat 1 Jumlah subdirektori yang akan dibuat di bawah direktori cache. Standar 16 biasanya baik-baik saja, tetapi Anda mungkin ingin meningkatkan ini untuk cache yang sangat besar.
    • direktori tingkat 2 Jumlah subdirektori yang akan dibuat di bawah setiap direktori tingkat pertama. Anda hanya harus memasukkan 256 kecuali cache Anda akan menjadi sangat besar.
    • Opsi Biarkan bidang ini kosong - hanya digunakan untuk jenis direktori lain. Jika Anda bertanya-tanya mengapa Squid perlu membuat dua tingkat subdirektori di bawah setiap direktori cache, alasannya adalah kinerja yang buruk dari banyak sistem file ketika direktori berisi banyak file. Karena setiap halaman atau gambar HTML yang di-cache disimpan dalam file terpisah, jumlah file pada sistem proxy yang sibuk bisa sangat banyak. Menyebarkannya ke beberapa direktori memecahkan masalah ini.
  1. Setelah menambahkan direktori, klik tombol Simpan tombol di bagian bawah halaman. Jika Anda ingin menambahkan lebih dari satu, Anda perlu mengklik Opsi Cache ikon lagi untuk menampilkan kembali tabel dengan baris kosong baru.
  2. Setelah Anda selesai mendefinisikan direktori, kembali ke halaman utama modul. Jika yang baru telah ditambahkan, pesan kesalahan seperti Direktori cache Squid Anda belum diinisialisasi akan ditampilkan. Klik tombol Inisialisasi Cache tombol agar Squid membuat semua sub-direktori di direktori cache baru. Server akan dimatikan selama proses, dan

dimulai kembali setelah selesai.

  1. Setelah inisialisasi selesai, klik tombol Terapkan Perubahan link di halaman mana pun untuk mulai menggunakan direktori baru Anda.


Bentuk opsi cache

Mengedit opsi caching dan proxy

Squid memiliki banyak pengaturan yang membatasi ukuran objek yang di-cache, ukuran permintaan klien dan jenis halaman untuk di-cache. Mereka dapat digunakan untuk menghentikan server yang menyimpan file besar (seperti gambar ISO yang diunduh), untuk membatasi ukuran file yang dapat diunggah atau diunduh oleh klien, dan untuk mencegah cache halaman yang sering berubah (seperti yang dihasilkan oleh skrip CGI ). Defaultnya umumnya akan berfungsi dengan baik, dengan kemungkinan pengecualian ukuran unggahan maksimum yang hanya 1 MB.

Untuk mengedit opsi cache, ikuti langkah-langkah berikut :

  1. Klik Opsi Cache ikon di halaman utama untuk ditampilkan untuk tampilan formulir di atas lagi.
  2. Untuk menyetel ukuran maksimum # file yang diunggah, pilih opsi kedua di Ukuran badan permintaan maksimum bidang, masukkan nomor ke dalam kotak teks dan pilih beberapa unit dari menu. 10 atau 100 MB seharusnya lebih dari cukup untuk semua orang.
  3. Untuk menghentikan klien mengunduh file besar, isi bidang *Ukuran badan balasan maksimum* dengan cara yang sama. Ini dapat digunakan untuk mencegah penyalahgunaan jaringan Anda oleh klien yang mengunduh film besar atau file ISO, tetapi sering kali dapat ditumbangkan dengan mengunduh file besar berkeping-keping.
  4. Jika Anda ingin menetapkan batas atas pada file bahwa halaman dapat disimpan dalam cache, isi Waktu cache maksimum bidang alih-alih membiarkannya disetel ke Default . Jika tidak, data akan di-cache hingga satu tahun, atau sampai tanggal kedaluwarsa yang ditetapkan oleh server asal.
  5. Selain menyimpan file yang diunduh, Squid akan mengingat pesan kesalahan dari server dan mengembalikannya ke klien yang meminta halaman yang sama. Anda dapat mengubah jumlah waktu untuk cache kesalahan dengan memasukkan nomor dan memilih unit di Waktu cache permintaan yang gagal bidang. Jika Default dipilih, kesalahan akan di-cache selama 5 menit. Bahkan ini bisa lama mengganggu jika Anda baru saja memperbaiki kesalahan pada situs web sekalipun.
  6. Squid akan men-cache respons ke pencarian nama host untuk mengurangi jumlah aktivitas DNS, terlepas dari TTL yang disediakan oleh server DNS. Jika Default dipilih di bidang *waktu cache pencarian DNS*, tanggapan akan diingat selama 6 jam. Jika ini tampaknya lama untuk Anda, pilih tombol radio kedua dan masukkan waktu cache Anda sendiri.
  7. Jangan cache URL untuk ACL bidang dapat digunakan untuk sepenuhnya mencegah caching untuk URL, server web, atau klien tertentu. Setiap permintaan yang cocok dengan salah satu ACL yang dicentang di bidang ini tidak akan pernah di-cache, dan karenanya akan selalu diambil secara langsung. Anda dapat menggunakan fitur ini untuk memblokir caching halaman yang dibuat secara dinamis dengan membuat URL Path Regexp ACL untuk .cgi atau cgi-bin dan memilihnya di sini. Lihat bagian *Menggunakan daftar kontrol akses* untuk detail selengkapnya tentang cara kerja ACL dan dapat ditentukan.
  8. Tekan tombol Simpan tombol di bagian bawah halaman untuk kembali ke menu utama. Karena beberapa opsi caching tambahan ada di formulir penggunaan memori dan disk, klik Penggunaan Memori ikon untuk menampilkannya.
  9. Untuk membatasi jumlah memori yang akan digunakan Squid, isikan Batas penggunaan memori bidang. Perhatikan bahwa batas ini hanya memengaruhi memori maksimum yang digunakan untuk menyimpan file yang sedang transit dan sering diakses, serta respons negatif. Karena Squid menggunakan memori untuk keperluan lain, tentu akan mengkonsumsi lebih dari apa pun yang Anda masukkan di sini. Jika Default dipilih, batas 8 MB akan diberlakukan, yang mungkin terlalu rendah untuk server yang sibuk.
  10. Untuk mencegah caching file besar, isi bidang *Maximum cached object size*. Standarnya hanya 4 MB, jadi jika Anda memiliki banyak ruang disk pasti harus ditingkatkan.
  11. Tekan tombol Simpan di bagian bawah formulir, lalu Terapkan Perubahan tautan di halaman utama untuk mengaktifkan semua pengaturan baru Anda.

Pengantar daftar kontrol akses

ACL (daftar kontrol akses) mungkin adalah fitur yang paling kuat dari Squid. ACL hanyalah sebuah tes yang diterapkan pada permintaan klien untuk melihat apakah itu cocok atau tidak. Kemudian, berdasarkan ACL yang cocok dengan setiap permintaan, Anda dapat memilih untuk memblokirnya, mencegah caching, memaksanya ke dalam kumpulan penundaan, atau menyerahkannya ke server proxy lain. Ada banyak jenis ACL yang berbeda - misalnya, satu jenis memeriksa alamat IP klien, yang lain cocok dengan URL yang diminta, sementara yang lain memeriksa port tujuan, nama host server web, pengguna yang diautentikasi, dan sebagainya.

Penggunaan ACL yang paling umum adalah memblokir koneksi dari klien di luar jaringan Anda. Jika Anda menjalankan server proxy yang terhubung dan dapat diakses dari Internet, host di luar jaringan lokal Anda tidak boleh menggunakannya. Orang jahat sering menggunakan proxy lain untuk mencuci koneksi yang digunakan untuk meretas, mengirim spam, atau mengakses situs web yang seharusnya tidak diizinkan.

Karena permintaan proxy CONNECT khusus dapat digunakan untuk menyambung ke port mana pun, ACL sering digunakan untuk memblokir penggunaannya untuk port apa pun selain 443 (default SSL). Ini menghentikan pengguna menggunakan proxy Anda untuk terhubung ke server selain server web, seperti AIM, ICQ, atau MSN. Demikian pula, ACL dapat diatur untuk memblokir permintaan HTTP normal ke port seperti 22, 23 dan 25 yang biasanya digunakan untuk SSH, telnet, dan SMTP.

Hanya mendefinisikan ACL dalam konfigurasi Squid sebenarnya tidak melakukan apa-apa - itu harus diterapkan dalam beberapa cara untuk memiliki efek apa pun. Bagian ini menjelaskan cara menggunakannya untuk mengontrol permintaan ke server Anda yang diizinkan atau ditolak. Bagian lain menjelaskan bagaimana mereka berhubungan dengan caching dan mengakses server lain.

Ketika menerima permintaan, Squid pertama-tama menentukan ACL mana yang cocok. Kemudian membandingkan daftar kecocokan ini dengan daftar pembatasan proxy, yang masing-masing berisi satu atau lebih ACL dan tindakan yang harus dilakukan (Izinkan atau Tolak). Segera setelah pembatasan ditemukan yang cocok dengan ACL untuk permintaan, tindakannya menentukan apakah permintaan tersebut diizinkan atau ditolak. Jika tidak ada batasan yang cocok, kebalikan dari tindakan terakhir dalam daftar akan diterapkan. Untuk alasan ini, tindakan terakhir di sebagian besar konfigurasi Squid adalah Izinkan semua atau Tolak semua .

Permintaan ICP dari proxy lain juga diperiksa untuk melihat ACL mana yang cocok, dan dibandingkan dengan daftar pembatasan ICP yang serupa tetapi berbeda untuk melihat apakah mereka akan diizinkan atau tidak. Lihat Menghubungkan ke proxy lain bagian selanjutnya untuk penjelasan yang lebih kompleks tentang apa itu ICP dan kapan digunakan.

Konfigurasi Squid default yang khas mencakup beberapa ACL dan batasan proxy. Untuk alasan keamanan, semua permintaan dari mana saja ditolak secara default. Ini berarti Anda perlu mengubah daftar batasan sebelum siapa pun dapat menggunakan proxy Anda. Baca terus untuk mengetahui caranya.

Untuk melihat daftar ACL yang ditentukan, batasan proxy, dan batasan ICP, klik Kontrol Akses ikon di halaman utama modul. Seperti yang ditunjukkan gambar di bawah ini, tabel ACL yang menunjukkan nama, jenis, dan kecocokannya ditampilkan di sebelah kiri. Di sebelah kanan adalah tabel batasan proxy dan ICP yang menunjukkan tindakan mereka dan ACL yang cocok. Tabel pembatasan memiliki panah atas dan bawah di samping setiap entri untuk memindahkannya dalam daftar, karena urutannya penting.


Halaman daftar kontrol akses

Sebelum klien dapat menggunakan proxy Anda, Anda harus mengonfigurasinya untuk mengizinkan akses dari beberapa alamat. Langkah-langkah untuk melakukannya adalah :

  1. Pada halaman kontrol akses, pilih Alamat Klien dari menu di bawah daftar ACL yang ada. Saat Anda mengklik Buat ACL baru tombol, formulir untuk memasukkan alamat yang cocok akan muncul.
  2. Dalam nama ACL bidang masukkan nama pendek seperti jaringan Anda .
  3. Di bidang kosong di bawah Dari IP masukkan alamat IP awal dalam rentang yang diizinkan, seperti 192.168.1.1.
  4. Jika bidang di bawah Ke IP masukkan alamat akhir dalam rentang, seperti 192.168.1.100 . Hanya klien yang termasuk dalam rentang ini yang akan cocok dengan ACL. JANGAN masukkan apa pun di Netmask bidang.
  5. Sebagai alternatif, Anda dapat menentukan jaringan IP dengan memasukkan alamat jaringan di Dari IP bidang, dan netmask (seperti 255.255.255.0 ) ke dalam Netmask bidang. Untuk memasukkan lebih dari satu, Anda harus menyimpan dan mengedit ulang ACL ini sehingga bidang kosong baru muncul.
  6. Klik tombol Simpan untuk menambahkan ACL dan kembali ke halaman kontrol akses tempat ACL baru Anda akan dicantumkan.
  7. Klik Tambahkan pembatasan proxy di bawah Pembatasan proxy meja.
  8. Pada form yang muncul, pilih Izinkan dari Aksi bidang.
  9. Di ACL Pertandingan daftar, pilih jaringan Anda baru Anda ACL.
  10. Klik tombol Simpan tombol pada formulir ini untuk kembali ke halaman kontrol akses lagi. Pembatasan baru akan ditampilkan di bagian bawah tabel, kemungkinan besar di bawah Tolak semua masuk.
  11. Klik panah atas di samping batasan baru Anda untuk memindahkannya ke atas Tolak semua . Ini memberitahu Squid untuk mengizinkan koneksi dari jaringan Anda, dan menolak orang lain.
  12. Terakhir, klik tombol Terapkan Perubahan tautan di bagian atas halaman. Proxy sekarang dapat digunakan oleh klien di jaringan internal Anda, tetapi tidak ada orang lain!

Instruksi ini mengasumsikan bahwa Anda memulai dengan konfigurasi Squid default. Jika proxy telah dikonfigurasi untuk mengizinkan akses dari mana saja (dengan mengubah Tolak semua pembatasan untuk Izinkan semua ), Anda harus mengubahnya kembali untuk memblokir klien dari luar jaringan Anda. Untuk mempelajari lebih lanjut tentang jenis ACL yang tersedia dan cara menggunakannya, baca dua bagian berikutnya.

Membuat dan mengedit ACL

Sebelum Anda dapat memblokir atau mengizinkan permintaan dari beberapa alamat, ke beberapa server atau untuk beberapa halaman, Anda perlu membuat ACL yang sesuai. Langkah dasar untuk melakukannya adalah :

  1. Pilih jenis ACL yang akan dibuat dari menu tarik-turun di bawah tabel *Daftar kontrol akses* dan klik tombol* Buat ACL baru*.
  2. Pada formulir yang muncul, masukkan nama untuk ACL baru Anda di nama ACL bidang. Jika lebih dari satu memiliki nama yang sama, itu akan dianggap cocok jika ada ACL dengan nama tersebut yang cocok. Nama hanya boleh terdiri dari huruf dan angka, tanpa spasi atau karakter khusus.
  3. Isi formulir lainnya seperti yang dijelaskan pada tabel di bawah ini.
  4. Di URL Gagal bidang, masukkan URL lengkap tempat klien yang ditolak oleh ACL ini akan diarahkan. Ini memungkinkan Anda untuk menentukan halaman kesalahan khusus yang akan ditampilkan, bukan tanggapan Squid default.
  5. Klik tombol Simpan tombol di bagian bawah formulir.

Setelah ACL dibuat, Anda dapat mengeditnya dengan mengklik namanya dalam daftar, mengubah bidang dan mengklik Simpan . Atau Anda dapat menghapusnya (jika tidak digunakan oleh beberapa proxy atau pembatasan ICP) dengan Hapus tombol. Seperti biasa, Terapkan Perubahan tautan harus digunakan untuk mengaktifkan setiap perubahan yang Anda buat.

Squid memiliki jumlah tipe ACL yang luar biasa, meskipun tidak semua tersedia di semua versi server. Tabel di bawah ini mencantumkan yang dapat Anda buat untuk Squid 2.4, dan menjelaskan apa yang mereka lakukan dan apa arti kolom pada formulir pembuatan untuk ACL dari setiap jenis :

Banyak jenis ACL yang tidak sesuai untuk situasi tertentu. Misalnya, jika klien mengirim permintaan CONNECT, jalur URL tidak tersedia, dan dengan demikian Regexp Jalur URL ACL tidak akan bekerja. Dalam kasus seperti ini, ACL secara otomatis dianggap tidak cocok.

Membuat dan mengedit batasan proxy

Setelah Anda membuat beberapa ACL, mereka dapat digunakan dengan membuat, mengedit, dan bergerak di sekitar batasan proxy. Squid akan membandingkan setiap permintaan dengan semua batasan yang ditentukan secara berurutan, berhenti ketika menemukan satu yang cocok. Tindakan yang ditetapkan untuk pembatasan itu kemudian menentukan apakah permintaan tersebut diizinkan atau ditolak. Sistem pemrosesan ini dikombinasikan dengan kekuatan ACL memungkinkan Anda untuk mengatur beberapa aturan kontrol akses yang sangat kompleks - misalnya, Anda dapat menolak semua akses ke situs dengan gempa di URL antara pukul 09.00 dan 17.00 Senin sampai Jumat, kecuali untuk alamat klien tertentu.

Untuk membuat pembatasan proxy, ikuti langkah berikut :

  1. Klik Kontrol Akses ikon pada halaman utama modul untuk membuka halaman yang ditunjukkan pada tangkapan layar di atas.
  2. Klik Tambahkan pembatasan proxy di bawah daftar batasan yang ada untuk masuk ke formulir pembuatan.
  3. Dari Tindakan bidang pilih salah satu Izinkan atau Tolak tergantung pada apakah Anda ingin permintaan yang cocok diproses atau tidak.
  4. ACL yang Cocok list dapat digunakan untuk memilih beberapa ACL yang jika semuanya cocok akan memicu tindakan. Demikian pula, Tidak cocok dengan ACL bidang dapat digunakan untuk memilih ACL yang tidak boleh cocok untuk tindakan yang akan dipicu. Sangat sah untuk membuat pilihan dari kedua daftar untuk menunjukkan bahwa tindakan harus dipicu hanya jika semua ACL di kiri cocok dan jika yang di kanan tidak. Dalam konfigurasi defaultnya Squid memiliki ACL yang disebut all yang cocok dengan semua permintaan. Ini dapat berguna untuk membuat batasan yang mengizinkan atau menolak semua orang, salah satunya biasanya ada secara default.
  5. Klik tombol Simpan untuk membuat batasan baru dan kembali ke halaman kontrol akses.
  6. Gunakan panah di sebelahnya di Batasan proxy tabel untuk memindahkannya ke lokasi yang benar. Jika daftar Anda diakhiri dengan Tolak semua entri, Anda harus memindahkannya dari bawah agar memiliki efek apa pun. Jika daftar memiliki entri yang mengizinkan semua klien dari jaringan Anda dan Anda baru saja menambahkan batasan untuk menolak akses ke beberapa situs, Anda harus memindahkannya ke atas Izinkan entri juga untuk digunakan.
  7. Setelah Anda selesai membuat dan memposisikan batasan, tekan tombol Terapkan Perubahan tautan di bagian atas

halaman untuk membuatnya aktif.

Setelah pembatasan proxy dibuat, Anda dapat mengeditnya dengan mengeklik tautan di Tindakan kolom untuk barisnya dalam tabel. Ini akan memunculkan formulir pengeditan yang identik dengan yang digunakan untuk membuat batasan, tetapi dengan Simpan dan Hapus tombol di bagian bawah. Yang pertama akan menyimpan perubahan apa pun yang Anda buat pada tindakan atau ACL yang cocok, sedangkan yang terakhir akan menghapus pembatasan sama sekali. Sekali lagi, Terapkan Perubahan tautan harus digunakan setelah memperbarui atau menghapus batasan untuk mengaktifkan perubahan. Jika karena alasan tertentu Anda menghapus semua batasan proxy, Squid akan mengizinkan semua permintaan dari semua klien, yang mungkin bukan ide yang baik.

Juga pada halaman kontrol akses adalah tabel untuk mengedit dan membuat batasan yang berlaku untuk permintaan ICP. As the *Connecting to other proxies* section explains, ICP is a protocol used by Squid proxies in a cluster or hierarchy to determine what URLs other servers have cached. You can add to and edit entries in the ICP restrictions table in exactly the same way as you would for proxy restrictions. If you really are running a cluster of proxies, it may make sense to block ICP requests from sources other than your own network. If not, the default setup that allows all ICP packets is fine.

Setting up proxy authentication

Even though it is possible to configure Squid to allow access only from certain IP addresses, you may want to force clients to authenticate themselves to the proxy as well. This might make sense if you want to give only certain people access to the web, and cannot use IP address validation due to the use of dynamically assigned addresses on your network. It is also handy for keeping track of who has requested what through the proxy, as usernames are recorded in the Squid logs.

All browsers and programs that can make use of a proxy also support proxy authentication. Browsers will pop up a login window for entering a username and password to be sent to the proxy the first time it requests them, and automatically send the same information for all subsequent requests. Other programs (such as wget or rpm) require the username and password to be specified on the command line.

Each login and password received by Squid is passed to an external authentication program which either approves or denies it. Typically this program checks against a separate users file, but it is possible to write your own programs that use all sorts of methods of validating users - for example, they might be looked up in a database, or an LDAP server, or the Unix user list. Webmin comes with a simple program that reads users from a text file in the same format as is used by Apache, and this module allows you to edit users in such a file.

The steps to turn on authentication for your Squid proxy are :

  1. On the module's main page, click on the Access Control icon to bring up the form shown in Figure 44-4.
  2. Select External Auth from the menu below the ACL table and hit the Create new ACL tombol.
  3. In the form that appears, enter auth for the ACL name and select All users in the External auth users bidang. Then, hit the Save button.
  4. Click on Add proxy restriction below proxy restrictions table.
  5. Select Deny in the Action field and choose your new auth ACL from the Don’t match ACLs daftar. This will block any proxy requests that are not authenticated, thus forcing clients to log in.
    Selecting Allow and then choosing auth from the Match ACLs field can be used for a slightly different purpose. This creates a proxy restriction that allows access to all authenticated clients, which can be positioned to force clients outside your network to log in while not requiring it for those inside the network.
  6. Klik tombol Simpan button to return to the access control page again.
  7. Use the up arrow next to the new restriction to move it above any entry in the table that allows all access from your own network. If it is below this entry, clients from the network will be able to use the proxy without needing to log in at all. Of course, this may be what you want in some cases.
  8. Click on the Authentication Programs icon back on the main page.
  9. From the Authentication program field, select Webmin default . This tells the module to use the simple text-file authenticator that comes with the module so that you don’t have to write your own. Of course, you can specify your own custom program by selecting the last radio button and entering the full path to a script with some parameters in the adjacent text box. This program must continually read lines containing a username and password (separated by a space) as input, and for each output either the line OK or ERR for success or failure, respectively. Squid will run several instances of the program as permanent daemon processes when it is started.
  10. The login window that appears in browsers includes a description of the proxy server that the user is logging into. By default, this is Squid proxy-caching web server, but you can enter your own (such as Example Corporation Proxy) by filling in the Proxy authentication realm field.
  11. Normally, Squid will cache valid logins for one hour to avoid calling on the authentication program for every single request. This means that password changes may take up to an hour to take effect, which can be confusing. To lower this limit, at the cost of increased system load and slightly slower request processing, edit the Time to cache passwords for field.
  12. Hit the Save button and then click on Apply Changes on the main page.

Now that authentication is enabled, any attempts to use your proxy from a web browser will cause a login window to appear. Because no valid users have been defined yet, no logins will be accepted, which is not particularly useful! To create some users for authentication, follow these steps:

  1. Click on the Proxy Authentication icon on the module’s main page to bring up a table listing proxy users. At first, this will be empty.
  2. Click on the Add a new proxy user link above or below the table to display the user creation form. Configuring Logging 595
  3. Enter a login name into the Username field and a password for the user in the Password field.
  4. To temporarily disable this user without deleting him, change the Enabled? field to No.
  5. Hit the Create button to add the user and then click the Apply Changes link. This last step is necessary after creating a user for the changes to take effect, as Webmin’s Squid authentication program only reads the user file when first started.

A user can be edited by clicking on its name in the proxy users list, changing the username, password, or enabled status, and hitting the Save tombol. You can also completely remove a user with the Delete button on its editing form. Again, Apply Changes must be clicked to make anymodifications or deletions active. Squid will also cache valid passwords (as explained above) to reduce the load on theauthentication program, so a password change may take some time to take effect.

The module’s user management feature will only work if you choose Webmin default in the Authentication program field or if your own custom program takes the full path to an Apache-style users file as a parameter. If your program validates users against some other database or server, or if the module cannot figure out which file contains users from the command, the Proxy Authentication icon will not appear. Sometimes you may want to allow normal UNIX users to log in to your program with the same passwords that they use for telnet and FTP. Even though it is possible to write a program that does proxy authentication against the UNIX user database, there is another solution—configuring the module to add, delete, and update proxy users whenever a UNIX user is created, removed, or renamed. This is most useful for keeping usernames and passwords in sync without needing to grant access to every single UNIX user. Once you have normal authentication set up as explained above, synchronization can be turned on by following these steps:

  1. On the module’s main page, click on the Module Config link in the top-left corner.
  2. As their names suggest, the Create proxy users when creating system users, Update proxy users when updating system users, and Delete proxy users when deleting system users fields control the automatic creation, modification, and deletion of proxy users when the same thing happens to a UNIX user. For each one, you can either select Yes or No. You should probably turn on synchronization for updates and deletions, but leave it off for creations so that you can explicitly control who gets access to the proxy.
  3. Hit the Save button at the bottom of the form to activate the new settings. From now on, actions performed in Webmin’s Users and Groups module will also affect the Squid user list in the ways you have chosen. Adding a user at the command line with useradd or changing a password with the passwd command, however, will not.

Webmin
  1. Bagaimana menginstal dan mengkonfigurasi Proxy Squid di Debian 11

  2. Cara menginstal dan mengkonfigurasi Squid Proxy di Rocky Linux/Alma Linux 8

  3. Cara Instal Squid Proxy Server di Ubuntu 18.04 LTS

  1. Cara menginstal dan mengkonfigurasi Proxy Squid di Ubuntu 20.04

  2. Cara Install Squid Proxy di AlmaLinux 8

  3. Squid Proxy - Menyembunyikan proxy

  1. Cara Instal Squid Proxy Server di CentOS 7

  2. Instal server proxy Squid di Ubuntu 14.04

  3. Cara Setup server proxy squid di CentOS/RHEL 7