Mengkonfigurasi Pelayan Proksi Squid dengan Akses Terhad dan Menyediakan Pelanggan untuk Menggunakan Proksi - Bahagian 5

Mengkonfigurasi Pelayan Proksi Squid dengan Akses Terhad dan Menyediakan Pelanggan untuk Menggunakan Proksi - Bahagian 5

A Jurutera Bersertifikat Yayasan Linux adalah seorang profesional yang mahir yang mempunyai kepakaran untuk memasang, mengurus, dan menyelesaikan masalah rangkaian dalam sistem Linux, dan bertanggungjawab terhadap reka bentuk, pelaksanaan dan penyelenggaraan seni bina yang berterusan.

Jurutera Bersertifikat Yayasan Linux - Bahagian 5

Memperkenalkan Program Persijilan Yayasan Linux.

Dalam Bahagian 1 Dari siri ini, kami menunjukkan cara memasang Squid, pelayan caching proksi untuk pelanggan web. Sila rujuk siaran tersebut (pautan yang diberikan di bawah) sebelum meneruskan jika anda belum memasang sotong pada sistem anda.

  1. Bahagian 1 - Pasang perkhidmatan rangkaian dan mengkonfigurasi permulaan auto di boot

Dalam artikel ini, kami akan menunjukkan kepada anda cara mengkonfigurasi pelayan proksi squid untuk memberikan atau menyekat akses internet, dan cara mengkonfigurasi klien HTTP, atau pelayar web, untuk menggunakan pelayan proksi itu.

Persediaan Persekitaran Ujian Saya

Pelayan sotong
Sistem Operasi: Debian Wheezy 7.5 Alamat IP: 192.168.0.15 Nama Host: Dev2.Gabrielcanepa.com.ar 
Mesin Pelanggan 1
Sistem Operasi: Ubuntu 12.04 Alamat IP: 192.168.0.104 Nama Host: Ubuntuos.Gabrielcanepa.com.ar 
Mesin Pelanggan 2
Sistem Operasi: Centos-7.0-1406 Alamat IP: 192.168.0.17 Nama Host: Dev1.Gabrielcanepa.com.ar 

Marilah kita ingat bahawa, secara ringkas, pelayan proksi web adalah perantara antara satu (atau lebih) komputer klien dan sumber rangkaian tertentu, yang paling biasa menjadi akses ke Internet. Dalam erti kata lain, pelayan proksi disambungkan di satu sisi terus ke internet (atau ke penghala yang disambungkan ke Internet) dan di sisi lain ke rangkaian komputer klien yang akan mengakses World Wide Web melaluinya melaluinya.

Anda mungkin tertanya -tanya, mengapa saya mahu menambah satu lagi perisian ke infrastruktur rangkaian saya?

Berikut adalah 3 sebab utama:

1. Squid menyimpan fail dari permintaan sebelumnya untuk mempercepat pemindahan masa depan. Contohnya, anggaplah klien1 muat turun Centos-7.0-1406-x86_64-DVD.ISO dari internet. Bila klien2 Permintaan akses ke fail yang sama, sotong boleh memindahkan fail dari cache dan bukannya memuat turunnya lagi dari internet. Seperti yang anda boleh meneka, anda boleh menggunakan ciri ini untuk mempercepat pemindahan data dalam rangkaian komputer yang memerlukan kemas kini yang kerap.

2. ACLS (Senarai Kawalan Akses) membolehkan kami menyekat akses ke laman web, dan / atau memantau akses pada setiap pengguna. Anda boleh menyekat akses berdasarkan hari minggu atau waktu hari, atau domain, sebagai contoh.

3. Memintas penapis web dimungkinkan melalui penggunaan proksi web yang mana permintaan dibuat dan yang mengembalikan kandungan yang diminta kepada pelanggan, dan bukannya meminta klien terus ke Internet.

Contohnya, andaikan anda log masuk klien1 dan mahu mengakses www.Facebook.com melalui penghala syarikat anda. Oleh kerana laman web ini mungkin disekat oleh dasar syarikat anda, anda boleh menyambung ke pelayan proksi web dan meminta akses ke www.Facebook.com. Kandungan Jauh kemudian dikembalikan kepada anda melalui pelayan Proksi Web sekali lagi, memintas dasar penghalang router syarikat anda.

Mengkonfigurasi cumi - asas

Skim Kawalan Akses Pelayan Proksi Web Squid terdiri daripada dua komponen yang berbeza:

  1. The Elemen ACL adalah garis arahan yang bermula dengan perkataan "ACL"Dan mewakili jenis ujian yang dilakukan terhadap sebarang urus niaga permintaan.
  2. The Peraturan Senarai Akses terdiri daripada Benarkan atau menafikan Tindakan diikuti oleh beberapa elemen ACL, dan digunakan untuk menunjukkan tindakan atau batasan yang harus dikuatkuasakan untuk permintaan tertentu. Mereka diperiksa dengan teratur, dan senarai carian menamatkan sebaik sahaja salah satu peraturan adalah perlawanan. Sekiranya peraturan mempunyai pelbagai elemen ACL, ia dilaksanakan sebagai boolean dan operasi (semua elemen ACL peraturan mestilah perlawanan agar peraturan itu menjadi perlawanan).

Fail konfigurasi utama sotong adalah /etc/sotong/sotong.Conf, iaitu ~ 5000 garis panjang kerana ia merangkumi arahan dan dokumentasi konfigurasi. Atas sebab itu, kami akan mencipta yang baru cumi.Conf fail dengan hanya baris yang merangkumi arahan konfigurasi untuk kemudahan kami, meninggalkan garis kosong atau berkomentar. Untuk berbuat demikian, kami akan menggunakan arahan berikut.

# mv/etc/sotong/sotong.conf/etc/squid/squid.Conf.BKP 

Dan kemudian,

# grep -eiv '(^# |^$)'/etc/squid/squid.Conf.bkp atau # grep -ve ^ # -ve ^$/etc/squid/squid.Conf.bkp>/etc/squid/sotong.Conf 
Fail Konfigurasi Squid Backup

Sekarang, buka yang baru dibuat cumi.Conf fail, dan cari (atau tambahkan) yang berikut ACL senarai elemen dan akses.

ACL Localhost SRC 127.0.0.1/32 ACL Localnet SRC 192.168.0.0/24 

Kedua -dua baris di atas mewakili contoh asas penggunaan ACL unsur -unsur.

  1. Perkataan pertama, ACL, menunjukkan bahawa ini adalah garis arahan elemen ACL.
  2. Perkataan kedua, localhost atau localnet, tentukan nama untuk arahan.
  3. Perkataan ketiga, SRC Dalam kes ini, adalah jenis elemen ACL yang digunakan untuk mewakili alamat IP klien atau julat alamat. Anda boleh menentukan hos tunggal oleh IP (atau nama hos, jika anda mempunyai resolusi DNS yang dilaksanakan) atau melalui alamat rangkaian.
  4. Parameter keempat adalah hujah penapisan yang "diberi makan"Kepada arahan.

Dua baris di bawah adalah Senarai Akses peraturan dan mewakili pelaksanaan eksplisit ACL arahan yang disebut tadi. Dalam beberapa perkataan, mereka menunjukkan bahawa Akses HTTP harus diberikan jika permintaan itu datang dari rangkaian tempatan (localnet), atau dari localhost. Khususnya apakah rangkaian tempatan atau alamat tuan rumah tempatan yang dibenarkan? Jawapannya ialah: yang dinyatakan dalam arahan localhost dan localnet.

http_access membenarkan localnet http_access membenarkan localhost 
Squid ACL Benarkan Senarai Akses

Pada ketika ini anda boleh memulakan semula Cumi Untuk memohon sebarang perubahan yang belum selesai.

# Perkhidmatan Squid Restart [Upstart / SYSVINIT berasaskan pengagihan] # SystemCtl Restart Squid.Perkhidmatan [Pengagihan berasaskan SystemD] 

dan kemudian mengkonfigurasi penyemak imbas klien di rangkaian tempatan (192.168.0.104 dalam kes kita) untuk mengakses Internet melalui proksi anda seperti berikut.

Di Firefox

1. Pergi ke Edit menu dan pilih Keutamaan pilihan.

2. Klik pada Lanjutan, Kemudian pada Rangkaian tab, dan akhirnya dihidupkan Tetapan

3. Periksa Konfigurasi Proksi Manual dan masukkan alamat IP pelayan proksi dan pelabuhan di mana ia mendengar sambungan.

Konfigurasikan Proksi di Firefox

Catatan Secara lalai, sotong mendengarkan port 3128, Tetapi anda boleh mengatasi tingkah laku ini dengan mengedit Senarai Akses memerintah yang bermula dengan http_port (Secara lalai ia dibaca http_port 3128).

4. Klik okey untuk menerapkan perubahan dan anda boleh pergi.

Mengesahkan bahawa pelanggan mengakses internet

Anda kini boleh mengesahkan bahawa pelanggan rangkaian tempatan anda mengakses internet melalui proksi anda seperti berikut.

1. Di pelanggan anda, buka a terminal dan jenis,

# Alamat IP menunjukkan ETH0 | grep -ei '(inet.*et0) ' 

Perintah itu akan memaparkan semasa alamat IP pelanggan anda (192.168.0.104 dalam gambar berikut).

2. Di pelanggan anda, gunakan penyemak imbas web untuk membuka laman web tertentu (www.Tecmint.com Dalam kes ini).

3. Di pelayan, lari.

# ekor -f/var/log/sotong/akses.log 

Dan anda akan mendapat pandangan langsung permintaan yang disampaikan melalui Cumi.

Semak pelayaran proksi

Mengehadkan akses oleh pelanggan

Sekarang anggap anda ingin secara jelas menafikan akses ke alamat IP klien tertentu, sementara mengekalkan akses untuk seluruh rangkaian tempatan.

1. Tentukan yang baru ACL arahan seperti berikut (saya menamakannya Ubuntuos Tetapi anda boleh menamakannya apa sahaja yang anda mahukan).

ACL Ubuntuos SRC 192.168.0.104 

2. Tambah ACL arahan kepada Akses LocalNet Senarai yang sudah ada, tetapi prefacing dengan tanda seru. Ini bermaksud, "Benarkan akses Internet kepada pelanggan yang sepadan dengan arahan ACL LocalNet kecuali kepada yang sesuai dengan Arahan Ubuntuos".

http_access membenarkan localnet !Ubuntuos 

3. Sekarang kita perlu memulakan semula Squid untuk menggunakan perubahan. Kemudian jika kami cuba melayari ke mana -mana laman web, kami akan mendapati bahawa akses ditolak sekarang.

Menyekat akses internet

Mengkonfigurasi cumi - penalaan halus

Mengehadkan akses oleh domain dan / atau pada waktu hari / hari dalam seminggu

Untuk menyekat akses ke sotong oleh domain kami akan menggunakan dstdomain Kata kunci dalam a ACL arahan, seperti berikut.

acl dstdomain terlarang "/etc/squid/dilarang_domain" 

Di mana Larangan_domains adalah fail teks biasa yang mengandungi domain yang kita ingin menafikan akses ke.

Blok akses ke domain

Akhirnya, kita mesti memberikan akses kepada sotong untuk permintaan yang tidak sepadan dengan arahan di atas.

http_access membenarkan localnet !dilarang 

Atau mungkin kita hanya mahu membenarkan akses ke laman web tersebut pada waktu tertentu (10:00 hingga 11:00 pagi) hanya pada Isnin (m), Rabu (w), dan Jumaat (f).

ACL Someday Time MWF 10: 00-11: 00 HTTP_ACCESS Benarkan dilarang Suatu hari 

Jika tidak, akses ke domain tersebut akan disekat.

Mengehadkan akses oleh Pengesahan Pengguna

Sotong menyokong beberapa mekanisme pengesahan (Asas, NTLM, Digest, Spnego, dan OAuth) dan pembantu (SQL Database, LDAP, NIS, NCSA, untuk menamakan beberapa). Dalam tutorial ini, kami akan menggunakan pengesahan asas dengan NCSA.

Tambahkan baris berikut ke anda /etc/sotong/sotong.Conf fail.

Auth_param Program Asas/usr/lib/squid/ncsa_auth/etc/squid/passwd auth_param asas credentialsttl 30 minit auth_param asas kesensatan pada auth_param asas squid proxy-caching server untuk tecmint siri ncsa proxy_auth 

Catatan: Dalam Centos 7, Plugin NCSA untuk sotong boleh didapati di /usr/lib64/squid/basic_nsca_auth, Oleh itu, ubah sewajarnya di atas.

Dayakan pengesahan NCSA

Beberapa penjelasan:

  1. Kita perlu memberitahu sotong program penolong pengesahan yang digunakan dengan auth_param Arahan dengan menyatakan nama program (kemungkinan besar, /usr/lib/squid/ncsa_auth atau /usr/lib64/squid/basic_nsca_auth), ditambah dengan pilihan baris arahan (/etc/squid/passwd dalam kes ini) jika perlu.
  2. The /etc/squid/passwd Fail dibuat melalui htpasswd, alat untuk menguruskan pengesahan asas melalui fail. Ia akan membolehkan kami menambah senarai nama pengguna (dan kata laluan yang sepadan) yang akan dibenarkan menggunakan sotong.
  3. CredentialSttl 30 minit akan memerlukan memasukkan nama pengguna dan kata laluan anda setiap 30 minit (anda boleh menentukan selang masa ini dengan jam juga).
  4. kesensatan pada menunjukkan bahawa nama pengguna dan kata laluan adalah sensitif kes.
  5. alam mewakili teks dialog pengesahan yang akan digunakan untuk mengesahkan sotong.
  6. Akhirnya, akses diberikan hanya apabila pengesahan proksi (Proxy_Auth diperlukan) berjaya.

Jalankan arahan berikut untuk membuat fail dan menambah kelayakan untuk pengguna Gacanepa (Hilangkan -c bendera jika fail sudah ada).

# htpasswd -c/etc/squid/passwd gacanepa 
Hadkan akses sotong kepada pengguna

Buka penyemak imbas web di mesin klien dan cuba menyemak imbas ke mana -mana laman web yang diberikan.

Dayakan pengesahan sotong

Sekiranya pengesahan berjaya, akses diberikan kepada sumber yang diminta. Jika tidak, akses akan ditolak.

Menggunakan cache untuk melancarkan pemindahan data

Salah satu ciri membezakan Squid adalah kemungkinan sumber caching yang diminta dari web ke cakera untuk mempercepat permintaan masa depan objek tersebut sama ada oleh klien yang sama atau orang lain.

Tambahkan arahan berikut dalam anda cumi.Conf fail.

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

Beberapa penjelasan arahan di atas.

  1. ufs Adakah format penyimpanan sotong.
  2. /var/cache/sotong adalah direktori peringkat tertinggi di mana fail cache akan disimpan. Direktori ini mesti wujud dan boleh ditulis oleh sotong (cumi tidak akan membuat direktori ini untuk anda).
  3. 1000 adalah jumlah (dalam mb) untuk digunakan di bawah direktori ini.
  4. 16 adalah bilangan subdirektori peringkat 1, sedangkan 256 adalah bilangan subdirektori peringkat ke-2 dalam /var/spool/sotong.
  5. The maksimum_object_size Arahan Menentukan saiz maksimum objek yang dibenarkan dalam cache.
  6. refresh_pattern memberitahu sotong bagaimana menangani jenis fail tertentu (.mp4 dan .ISO dalam kes ini) dan berapa lama ia perlu menyimpan objek yang diminta dalam cache (2880 minit = 2 hari).

Yang pertama dan kedua 2880 Had yang lebih rendah dan atas, masing -masing, berapa lama objek tanpa masa luput yang jelas akan dipertimbangkan baru -baru ini, dan dengan itu akan disampaikan oleh cache, sedangkan 0% adalah peratusan usia objek (masa sejak pengubahsuaian terakhir) bahawa setiap objek tanpa masa tamat eksplisit akan dipertimbangkan baru -baru ini.

Kajian kes: memuat turun a .fail mp4 dari 2 pelanggan yang berbeza dan menguji cache

Pelanggan Pertama (IP 192.168.0.104) Muat turun a 71 Mb .mp4 fail dalam 2 minit dan 52 saat.

Dayakan caching pada cumi -cumi

Pelanggan Kedua (IP 192.168.0.17) memuat turun fail yang sama dalam 1.4 saat!

Sahkan caching squid

Itu kerana fail itu disampaikan dari Cache sotong (ditunjukkan oleh TCP_HIT/200) dalam kes kedua, berbanding dengan contoh pertama, apabila ia dimuat turun terus dari internet (diwakili oleh TCP_MISS/200).

The Hit dan Rindu kata kunci, bersama dengan 200 http kod respons, tunjukkan bahawa fail itu dihidangkan dengan jayanya kedua -dua kali, tetapi cache dipukul dan terlepas masing -masing. Apabila permintaan tidak dapat disampaikan oleh cache atas sebab tertentu, maka sotong cuba untuk melayani dari internet.

Squid HTTP Codes

Kesimpulan

Dalam artikel ini kita telah membincangkan cara menubuhkan a Proksi caching web squid. Anda boleh menggunakan pelayan proksi untuk menapis kandungan menggunakan kriteria yang dipilih, dan juga untuk mengurangkan latensi (kerana permintaan masuk yang sama dihidangkan dari cache, yang lebih dekat dengan klien daripada pelayan web yang sebenarnya melayani kandungan, menghasilkan lebih cepat pemindahan data) dan trafik rangkaian juga (mengurangkan jumlah jalur lebar yang digunakan, yang menjimatkan wang anda jika anda membayar untuk lalu lintas).

Anda mungkin mahu merujuk kepada laman web sotong untuk dokumentasi selanjutnya (pastikan anda juga menyemak wiki), tetapi jangan ragu untuk menghubungi kami jika anda mempunyai pertanyaan atau komen. Kami akan lebih senang mendengar daripada anda!

Menjadi Jurutera Bersertifikat Linux