Mengkonfigurasi Squid Proxy Server dengan akses terbatas dan menyiapkan klien untuk menggunakan proxy - Bagian 5

Mengkonfigurasi Squid Proxy Server dengan akses terbatas dan menyiapkan klien untuk menggunakan proxy - Bagian 5

A Linux Foundation Certified Engineer adalah seorang profesional yang terampil yang memiliki keahlian untuk menginstal, mengelola, dan memecahkan masalah layanan jaringan dalam sistem Linux, dan bertanggung jawab atas desain, implementasi, dan pemeliharaan arsitektur seluruh sistem yang berkelanjutan.

Linux Foundation Certified Engineer - Bagian 5

Memperkenalkan Program Sertifikasi Linux Foundation.

Di dalam Bagian 1 Dari seri ini, kami menunjukkan cara menginstal cumi -cumi, server caching proxy untuk klien web. Silakan merujuk ke posting itu (tautan yang diberikan di bawah) sebelum melanjutkan jika Anda belum menginstal cumi -cumi di sistem Anda.

  1. Bagian 1 - Instal Layanan Jaringan dan Mengkonfigurasi Startup Otomatis saat Boot

Di artikel ini, kami akan menunjukkan kepada Anda cara mengkonfigurasi server proxy cumi untuk memberikan atau membatasi akses internet, dan cara mengkonfigurasi klien http, atau browser web, untuk menggunakan server proxy itu.

Pengaturan Lingkungan Pengujian Saya

Server Squid
Sistem Operasi: Debian Wheezy 7.5 Alamat IP: 192.168.0.15 nama host: dev2.Gabrielcanepa.com.ar 
Mesin Klien 1
Sistem Operasi: Ubuntu 12.04 Alamat IP: 192.168.0.104 nama host: ubuntuos.Gabrielcanepa.com.ar 
Mesin Klien 2
Sistem Operasi: CentOS-7.0-1406 Alamat IP: 192.168.0.17 nama host: dev1.Gabrielcanepa.com.ar 

Mari kita ingat bahwa, secara sederhana, server proxy web adalah perantara antara satu (atau lebih) komputer klien dan sumber daya jaringan tertentu, yang paling umum adalah akses ke internet. Dengan kata lain, server proxy terhubung di satu sisi langsung ke internet (atau ke router yang terhubung ke internet) dan di sisi lain ke jaringan komputer klien yang akan mengakses World Wide Web melalui itu.

Anda mungkin bertanya -tanya, mengapa saya ingin menambahkan perangkat lunak lain ke infrastruktur jaringan saya?

Berikut adalah 3 alasan teratas:

1. Squid menyimpan file dari permintaan sebelumnya untuk mempercepat transfer di masa mendatang. Misalnya, anggaplah klien1 unduhan Centos-7.0-1406-X86_64-DVD.iso dari internet. Kapan klien2 Meminta akses ke file yang sama, Squid dapat mentransfer file dari cache alih -alih mengunduhnya lagi dari internet. Seperti yang dapat Anda tebak, Anda dapat menggunakan fitur ini untuk mempercepat transfer data di jaringan komputer yang memerlukan pembaruan yang sering.

2. ACLS (Daftar Kontrol Akses) memungkinkan kami untuk membatasi akses ke situs web, dan / atau memantau akses berdasarkan per pengguna. Anda dapat membatasi akses berdasarkan hari minggu atau waktu, atau domain, misalnya.

3. Melewati filter web dimungkinkan melalui penggunaan proxy web yang permintaannya dibuat dan pengembalian mana yang diminta konten ke klien, alih -alih meminta klien memintanya langsung ke internet.

Misalnya, misalkan Anda masuk klien1 dan ingin mengakses www.Facebook.com melalui router perusahaan Anda. Karena situs dapat diblokir oleh kebijakan perusahaan Anda, Anda dapat terhubung ke server proxy web dan meminta meminta akses ke www.Facebook.com. Konten jarak jauh kemudian dikembalikan kepada Anda melalui server proxy web lagi, melewati kebijakan pemblokiran router perusahaan Anda.

Mengkonfigurasi Squid - Dasar -Dasar

Skema Kontrol Akses dari Server Proxy Web Squid terdiri dari dua komponen yang berbeda:

  1. Itu Elemen ACL adalah garis arahan yang dimulai dengan kata "ACL”Dan mewakili jenis tes yang dilakukan terhadap transaksi permintaan apa pun.
  2. Itu aturan daftar akses terdiri dari mengizinkan atau membantah Tindakan diikuti oleh sejumlah elemen ACL, dan digunakan untuk menunjukkan tindakan atau batasan apa yang harus ditegakkan untuk permintaan yang diberikan. Mereka diperiksa secara berurutan, dan daftar pencarian berakhir segera setelah salah satu aturan adalah kecocokan. Jika aturan memiliki beberapa elemen ACL, itu diimplementasikan sebagai boolean dan operasi (semua elemen ACL dari aturan harus cocok untuk aturan untuk menjadi kecocokan).

File konfigurasi utama Squid adalah /etc/cumi/cumi -cumi.conf, yang ~ 5000 Baris lama karena itu mencakup arahan konfigurasi dan dokumentasi. Untuk alasan itu, kami akan membuat yang baru cumi-cumi.conf file dengan hanya baris yang menyertakan arahan konfigurasi untuk kenyamanan kami, meninggalkan baris yang kosong atau berkomentar. Untuk melakukannya, kami akan menggunakan perintah berikut.

# mv/etc/cumi/cumi.conf/etc/cquid/cquid.conf.BKP 

Kemudian,

# grep -eiv '(^# |^$)'/etc/squid/cquid.conf.bkp atau # grep -ve ^ # -ve ^$/etc/squid/cquid.conf.bkp>/etc/cumi/cumi.conf 
File konfigurasi cadangan cadangan

Sekarang, buka yang baru dibuat cumi-cumi.conf file, dan cari (atau tambahkan) berikut ini ACL Elemen dan daftar akses.

ACL LocalHost SRC 127.0.0.1/32 ACL LOCALNET SRC 192.168.0.0/24 

Dua baris di atas mewakili contoh dasar penggunaan ACL elemen.

  1. Kata pertama, ACL, menunjukkan bahwa ini adalah garis arahan elemen ACL.
  2. Kata kedua, localhost atau Localnet, Tentukan nama untuk Petunjuk.
  3. Kata ketiga, SRC Dalam hal ini, adalah jenis elemen ACL yang digunakan untuk mewakili alamat IP klien atau rentang alamat, masing -masing. Anda dapat menentukan satu host dengan IP (atau nama host, jika Anda memiliki semacam resolusi DNS yang diimplementasikan) atau dengan alamat jaringan.
  4. Parameter keempat adalah argumen penyaringan yang “Fed”Ke Petunjuk.

Dua baris di bawah ini adalah Daftar akses aturan dan mewakili implementasi eksplisit dari ACL Arahan disebutkan sebelumnya. Dalam beberapa kata, mereka menunjukkan itu Akses HTTP harus diberikan jika permintaan berasal dari jaringan lokal (Localnet), atau dari localhost. Khususnya apa yang diizinkan oleh jaringan lokal atau alamat host lokal? Jawabannya adalah: yang ditentukan dalam arahan LocalHost dan LocalNet.

http_access mengizinkan localnet http_access mengizinkan localhost 
Squid ACL Izinkan Daftar Akses

Pada titik ini Anda dapat restart Cumi-cumi Untuk menerapkan perubahan yang tertunda.

# Service Squid Restart [distribusi berbasis UPSTART / SYSVINIT] # SystemCTL Restart Squid.Layanan [distribusi berbasis systemd] 

dan kemudian mengkonfigurasi browser klien di jaringan lokal (192.168.0.104 dalam kasus kami) untuk mengakses internet melalui proxy Anda sebagai berikut.

Di Firefox

1. Pergi ke Edit menu dan pilih Preferensi pilihan.

2. Klik Canggih, lalu di Jaringan tab, dan akhirnya aktif Pengaturan..

3. Memeriksa Konfigurasi proxy manual dan masukkan alamat IP dari server proxy dan pelabuhan dimana itu mendengarkan koneksi.

Konfigurasikan proxy di firefox

Catatan Itu secara default, Squid mendengarkan di port 3128, Tetapi Anda dapat mengesampingkan perilaku ini dengan mengedit Daftar akses aturan yang dimulai dengan http_port (secara default dibaca http_port 3128).

4. Klik OKE untuk menerapkan perubahan dan Anda siap melakukannya.

Memverifikasi bahwa klien mengakses internet

Anda sekarang dapat memverifikasi bahwa klien jaringan lokal Anda mengakses internet melalui proxy Anda sebagai berikut.

1. Di klien Anda, buka a terminal dan ketik,

# Alamat IP Tampilkan eth0 | grep -ei '(inet.*eth0) ' 

Perintah itu akan menampilkan arus alamat IP dari klien Anda (192.168.0.104 pada gambar berikut).

2. Di klien Anda, gunakan browser web untuk membuka situs web yang diberikan (www.tecmint.com pada kasus ini).

3. Di server, jalankan.

# tail -f/var/log/cumi/akses.catatan 

Dan Anda akan mendapatkan pandangan langsung dari permintaan yang dilayani Cumi-cumi.

Periksa penjelajahan proxy

Membatasi akses oleh klien

Sekarang misalkan Anda ingin secara eksplisit menolak akses ke alamat IP klien tertentu, sambil tetap mempertahankan akses untuk sisa jaringan lokal.

1. Tentukan yang baru ACL Petunjuk sebagai berikut (saya telah menamainya ubuntuos Tapi Anda bisa menamakannya apapun yang Anda inginkan).

ACL Ubuntuos SRC 192.168.0.104 

2. Tambahkan ACL arahan ke Akses LocalNet Daftar yang sudah ada, tetapi mengukuhkannya dengan tanda seru. Ini berarti, "Izinkan akses internet ke klien yang cocok dengan Petunjuk ACL LocalNet kecuali yang cocok dengan Petunjuk Ubuntuos".

http_access mengizinkan LocalNet !ubuntuos 

3. Sekarang kita perlu memulai kembali cumi untuk menerapkan perubahan. Maka jika kami mencoba menjelajah ke situs mana pun, kami akan menemukan bahwa akses ditolak sekarang.

Memblokir akses internet

Mengkonfigurasi Squid - Fine Tuning

Membatasi akses dengan domain dan / atau pada waktu / hari dalam seminggu

Untuk membatasi akses ke cumi dengan domain, kami akan menggunakan dstdomain kata kunci dalam a ACL Petunjuk, sebagai berikut.

ACL Forbidden DStDomain "/etc/squid/forbidden_domains" 

Di mana Forbidden_Domains adalah file teks biasa yang berisi domain yang kami inginkan untuk menolak akses.

Memblokir akses ke domain

Akhirnya, kita harus memberikan akses ke cumi untuk permintaan yang tidak sesuai dengan arahan di atas.

http_access mengizinkan LocalNet !terlarang 

Atau mungkin kita hanya ingin mengizinkan akses ke situs -situs itu selama waktu tertentu (10:00 hingga 11:00) hanya aktif Senin (M), Rabu (W), Dan Jumat (f).

ACL Somedays Time MWF 10: 00-11: 00 http_access memungkinkan terlarang di suatu hari http_access disangkal terlarang 

Jika tidak, akses ke domain tersebut akan diblokir.

Membatasi akses dengan otentikasi pengguna

Dukungan Squid Beberapa mekanisme otentikasi (Basic, NTLM, Digest, Spnego, dan OAuth) dan Pembantu (SQL Database, LDAP, NIS, NCSA, untuk beberapa nama) untuk beberapa nama). Dalam tutorial ini kami akan menggunakan otentikasi dasar NCSA.

Tambahkan baris berikut ke Anda /etc/cumi/cumi -cumi.conf mengajukan.

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd auth_param basic credentialsttl 30 minutes auth_param basic casesensitive on auth_param basic realm Squid proxy-caching web server for Tecmint's LFCE series acl ncsa proxy_auth REQUIRED http_access allow ncsa 

Catatan: Di dalam Centos 7, Plugin NCSA untuk Squid dapat ditemukan di /usr/lib64/cquid/basic_nsca_auth, Jadi ubahlah sesuai di atas baris di atas.

Aktifkan otentikasi NCSA

Beberapa klarifikasi:

  1. Kita perlu memberi tahu Squid program penolong otentikasi mana yang akan digunakan dengan AUTH_PARAM Petunjuk dengan menentukan nama program (kemungkinan besar, /usr/lib/cquid/ncsa_auth atau /usr/lib64/cquid/basic_nsca_auth), ditambah opsi baris perintah apa pun (/etc/cumi/passwd dalam hal ini) jika perlu.
  2. Itu /etc/cumi/passwd File dibuat melalui htpasswd, alat untuk mengelola otentikasi dasar melalui file. Ini akan memungkinkan kami untuk menambahkan daftar nama pengguna (dan kata sandi yang sesuai) yang akan diizinkan untuk menggunakan cumi.
  3. Kredensialsttl 30 menit akan membutuhkan memasukkan nama pengguna dan kata sandi Anda setiap 30 menit (Anda dapat menentukan interval waktu ini dengan jam juga).
  4. hal - hal sensitif On menunjukkan bahwa nama pengguna dan kata sandi sensitif.
  5. dunia mewakili teks dari dialog otentikasi yang akan digunakan untuk mengotentikasi cumi -cumi.
  6. Akhirnya, akses hanya diberikan saat otentikasi proxy (Proxy_Auth diperlukan) berhasil.

Jalankan perintah berikut untuk membuat file dan untuk menambahkan kredensial untuk pengguna Gacanepa (hilangkan -C Bendera jika file sudah ada).

# htpasswd -c/etc/squid/passwd gacanepa 
Batasi akses cumi ke pengguna

Buka browser web di mesin klien dan cobalah untuk menelusuri situs apa pun.

Aktifkan otentikasi cumi

Jika otentikasi berhasil, akses diberikan ke sumber daya yang diminta. Jika tidak, akses akan ditolak.

Menggunakan cache untuk mempercepat transfer data

Salah satu fitur pembeda Squid adalah kemungkinan caching sumber daya yang diminta dari web ke disk untuk mempercepat permintaan objek -objek tersebut di masa depan baik oleh klien yang sama atau orang lain.

Tambahkan arahan berikut di cumi-cumi.conf mengajukan.

cache_dir ufs/var/cache/cumi 1000 16 256 maximum_object_size 100 mb refresh_pattern .*\.(MP4 | ISO) 2880 

Beberapa klarifikasi dari arahan di atas.

  1. UFS adalah format penyimpanan cumi.
  2. /var/cache/cumi adalah direktori tingkat atas di mana file cache akan disimpan. Direktori ini harus ada dan dapat ditulis oleh Squid (Squid tidak akan membuat direktori ini untuk Anda).
  3. 1000 adalah jumlah (dalam MB) untuk digunakan di bawah direktori ini.
  4. 16 adalah jumlah subdirektori tingkat pertama, sedangkan 256 adalah jumlah subdirektori tingkat ke-2 /var/spool/cumi.
  5. Itu Maximum_object_size Petunjuk Menentukan ukuran maksimum objek yang diizinkan dalam cache.
  6. Refresh_pattern memberi tahu Squid cara menangani jenis file tertentu (.MP4 Dan .iso Dalam hal ini) dan untuk berapa lama harus menyimpan objek yang diminta dalam cache (2880 menit = 2 hari).

Yang pertama dan kedua 2880 adalah batas bawah dan atas, masing -masing, pada berapa lama objek tanpa waktu kedaluwarsa eksplisit akan dipertimbangkan baru -baru ini, dan dengan demikian akan dilayani oleh cache, sedangkan 0% adalah persentase usia objek (waktu sejak modifikasi terakhir) bahwa setiap objek tanpa waktu kedaluwarsa eksplisit akan dipertimbangkan baru -baru ini.

Studi Kasus: Mengunduh a .File MP4 dari 2 klien yang berbeda dan menguji cache

Klien pertama (IP 192.168.0.104) Unduh a 71 MB .MP4 file dalam 2 menit dan 52 detik.

Aktifkan caching di cumi -cumi

Klien kedua (IP 192.168.0.17) mengunduh file yang sama di 1.4 detik!

Verifikasi caching cumi

Itu karena file tersebut disajikan dari Cache cumi (ditunjukkan oleh TCP_HIT/200) dalam kasus kedua, sebagai lawan dari contoh pertama, ketika diunduh langsung dari internet (diwakili oleh TCP_MISS/200).

Itu MEMUKUL Dan MERINDUKAN kata kunci, bersama dengan 200 http kode respons, menunjukkan bahwa file tersebut disajikan dengan sukses kedua kali, tetapi cache masing -masing dipukul dan dilewatkan. Ketika permintaan tidak dapat dilayani oleh cache karena suatu alasan, maka Squid berupaya melayani dari internet.

Kode HTTP Squid

Kesimpulan

Dalam artikel ini kita telah membahas cara mengatur a Proxy Caching Web Squid. Anda dapat menggunakan server proxy untuk memfilter konten menggunakan kriteria yang dipilih, dan juga untuk mengurangi latensi (karena permintaan masuk yang identik dilayani dari cache, yang lebih dekat ke klien daripada server web yang sebenarnya melayani konten, menghasilkan lebih cepat transfer data) dan lalu lintas jaringan juga (mengurangi jumlah bandwidth yang digunakan, yang menghemat uang Anda jika Anda membayar lalu lintas).

Anda mungkin ingin merujuk ke situs web Squid untuk dokumentasi lebih lanjut (pastikan untuk juga memeriksa wiki), tetapi jangan ragu untuk menghubungi kami jika Anda memiliki pertanyaan atau komentar. Kami akan lebih dari senang mendengar dari Anda!

Menjadi Insinyur Bersertifikat Linux