เพิ่มการเข้าถึงชื่อ acl ถูกปฏิเสธ squid ปฏิเสธ Squid - ตั้งค่าการกรอง URL ตามรายการ การเพิ่มประสิทธิภาพทรัพยากรเครือข่ายผ่านการแคช

ต่อหน้าคนมากมาย ผู้ดูแลระบบคำถามเกิดจากการจำกัดการเข้าถึงทรัพยากรอินเทอร์เน็ตของผู้ใช้ ในกรณีส่วนใหญ่ การกรองเนื้อหาที่ใช้ทรัพยากรจำนวนมากและซับซ้อนนั้นไม่จำเป็น รายการ URL ก็เพียงพอแล้ว ค่อนข้างเป็นไปได้ที่จะใช้วิธีนี้โดยใช้พร็อกซีเซิร์ฟเวอร์ squid โดยไม่ต้องใช้ซอฟต์แวร์บุคคลที่สาม

วิธีการของรายการ "สีดำ" และ "สีขาว" เหมาะอย่างยิ่งสำหรับการจำกัดการเข้าถึงทรัพยากรที่ทราบที่อยู่ล่วงหน้า แต่ด้วยเหตุผลบางประการที่ไม่พึงประสงค์ เช่น โซเชียลมีเดีย- เมื่อเปรียบเทียบกับการกรองเนื้อหา วิธีนี้มีข้อเสียหลายประการ แต่ในทางกลับกัน จะนำไปใช้ได้ง่ายกว่ามากและใช้ทรัพยากรในการประมวลผลน้อยกว่ามาก

ประสิทธิภาพ วิธีนี้ควรพิจารณาจากมุมมองของงานที่ทำอยู่ ดังนั้นหากคุณต้องการบล็อกเครือข่ายโซเชียลและแหล่งข้อมูลความบันเทิงจำนวนหนึ่งสำหรับพนักงานที่พวกเขาใช้เวลามากที่สุด การกรองตามรายการ URL สามารถช่วยแก้ปัญหานี้ได้อย่างสมบูรณ์ ในขณะเดียวกัน การกรองดังกล่าวจะไม่ได้ผลหากคุณจำเป็นต้องจำกัดการเข้าถึงทรัพยากรใดๆ ของเนื้อหาบางอย่าง

ต่อไปนี้เราจะถือว่าผู้อ่านมีทักษะพื้นฐาน การดูแลระบบลินุกซ์- นอกจากนี้เรายังเตือนคุณด้วยว่าคำสั่งทั้งหมดด้านล่างควรดำเนินการในฐานะผู้ใช้ขั้นสูง

ก่อนอื่น เรามาสร้างไฟล์รายการกันก่อน สามารถอยู่ที่ใดก็ได้ แต่มันจะสมเหตุสมผลหากวางไว้ในไดเร็กทอรีการกำหนดค่า squid - /etc/squid(หรือ /etc/squid3ถ้าคุณใช้ squid3)

แตะ /etc/squid/blacklist

และมาเริ่มกรอกข้อมูลกัน เมื่อระบุ URL คุณควรใช้ไวยากรณ์ RegExp เราจะไม่พูดถึงปัญหานี้โดยละเอียด เนื่องจากอยู่นอกเหนือขอบเขตของบทความ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับกฎ RegExp ได้ ตัวอย่างเช่น เรามาบล็อกโซเชียลเน็ตเวิร์กยอดนิยมกัน:

วีเค\.com
odnoklassniki\.ru

โปรดทราบว่าจุดใน RegExp เป็นอักขระบริการ ดังนั้นจึงต้องหลีกด้วย \ (แบ็กสแลช)

ในไฟล์กำหนดค่าปลาหมึก ( /etc/squid/squid.conf) มาสร้างรายการ ACL ซึ่งจะรวมโฮสต์หรือผู้ใช้ที่จะดำเนินการกรอง

Acl url_filtred src 10.0.0.100-10.0.0.199

ในกรณีของเรา การกรองถูกเปิดใช้งานสำหรับโฮสต์ทั้งหมดในช่วงที่อยู่ 10.0.0.100-199 เช่น เราจะกรองอินเทอร์เน็ตเฉพาะผู้ใช้บางกลุ่มเท่านั้น

จากนั้นเราจะเชื่อมต่อรายการของเรา:

บัญชีดำ Acl url_regex -i "/etc/squid/blacklist"

สวิตช์ -i ระบุว่ารายการไม่คำนึงถึงขนาดตัวพิมพ์

ตอนนี้เรามาดูส่วนกฎและก่อนกฎกันดีกว่า

Http_access อนุญาต localnet

Http_access ปฏิเสธบัญชีดำ url_filtred

ให้เราดึงความสนใจของคุณอีกครั้งไปที่ความจริงที่ว่ากฎทั้งหมดในปลาหมึกได้รับการประมวลผลตามลำดับจนกระทั่งเกิดขึ้นครั้งแรกดังนั้นหากเราวางเพิ่มเติม กฎทั่วไปก่อนจะเป็นส่วนตัวกว่านี้ก็จะใช้งานไม่ได้ เช่นเดียวกับกฎที่ทับซ้อนกัน - กฎแรกจะใช้ได้

บันทึกการเปลี่ยนแปลงและรีสตาร์ท squid:

บริการปลาหมึกเริ่มต้นใหม่

ลองเยี่ยมชมไซต์จากรายการหากทุกอย่างถูกต้องคุณจะเห็นข้อความปลาหมึกเกี่ยวกับการปฏิเสธการเข้าถึงทรัพยากรนี้

Squid เป็นโซลูชันทั่วไปสำหรับโปรแกรมเมอร์ ผู้ดูแลระบบ และผู้ที่ชื่นชอบเครือข่ายคอมพิวเตอร์สำหรับการสร้างและจัดการพร็อกซีเซิร์ฟเวอร์ที่มีประสิทธิภาพ โปรแกรมนี้มีความน่าสนใจเป็นพิเศษเนื่องจากเป็นแบบข้ามแพลตฟอร์ม นั่นคือคุณสามารถติดตั้งและรันได้ทั้งบน Linux และระบบปฏิบัติการอื่น ๆ ที่เกี่ยวข้องกับสถาปัตยกรรม Unix และบน Windows ความเป็นไปได้ ของเครื่องดนตรีชิ้นนี้-โดดเด่นที่สุด สามารถใช้ได้อย่างไร? มีฟีเจอร์อะไรบ้างในการตั้งค่าโปรแกรมตามระบบปฏิบัติการเฉพาะหรือไม่?

ข้อมูลทั่วไปเกี่ยวกับปลาหมึก

ปลาหมึกคืออะไร? พร็อกซีเซิร์ฟเวอร์ที่ทรงพลังเป็นพิเศษ ซึ่งส่วนใหญ่ใช้กับเว็บไคลเอ็นต์ เป็นที่รู้จักในชื่อนี้ ด้วยความช่วยเหลือนี้ คุณสามารถจัดระเบียบการเข้าถึงอินเทอร์เน็ตพร้อมกันสำหรับผู้ใช้หลายคนได้ คุณสมบัติที่ยอดเยี่ยมอีกประการหนึ่งของ Squid ก็คือสามารถแคชคำสั่งต่างๆ ได้ วิธีนี้ช่วยให้คุณรับไฟล์ได้เร็วขึ้น เนื่องจากคุณไม่จำเป็นต้องดาวน์โหลดซ้ำจากอินเทอร์เน็ต พร็อกซีเซิร์ฟเวอร์ Squid ยังสามารถปรับความเร็วของช่องอินเทอร์เน็ตตามโหลดจริงได้

Squid ได้รับการดัดแปลงเพื่อใช้งานบนแพลตฟอร์ม Unix อย่างไรก็ตาม มี Squid สำหรับ Windows และระบบปฏิบัติการยอดนิยมอื่นๆ อีกมากมาย โปรแกรมนี้ฟรีเหมือนกับระบบปฏิบัติการอื่นๆ ที่ใช้แนวคิด Unix รองรับ FTP, SSL และช่วยให้คุณสามารถกำหนดค่าการควบคุมการเข้าถึงไฟล์ได้อย่างยืดหยุ่น Squid ยังแคชการสืบค้น DNS ในเวลาเดียวกัน คุณยังสามารถกำหนดค่าพร็อกซี Squid แบบโปร่งใสได้ กล่าวคือ เซิร์ฟเวอร์ทำงานในรูปแบบที่ผู้ใช้ไม่รู้ว่าเขากำลังเข้าถึงเครือข่ายผ่านเครือข่ายนั้น ไม่ใช่โดยตรง ดังนั้น Squid จึงเป็นเครื่องมือที่ทรงพลังในมือของผู้ดูแลระบบหรือผู้ให้บริการการสื่อสาร

ประโยชน์เชิงปฏิบัติของปลาหมึก

ปลาหมึกจะมีประโยชน์มากที่สุดเมื่อใด? ตัวอย่างเช่น นี่อาจเป็นงานที่จำเป็นในการรวมคอมพิวเตอร์หลายเครื่องเข้ากับเครือข่ายอย่างมีประสิทธิภาพ และจัดให้มีการเข้าถึงอินเทอร์เน็ต ความเหมาะสมในการใช้พร็อกซีเซิร์ฟเวอร์ในกรณีนี้คือคำขอระหว่างพร็อกซีกับเบราว์เซอร์ของพีซีเฉพาะนั้นจะดำเนินการได้เร็วกว่าหากผู้ใช้โต้ตอบกับอินเทอร์เน็ตโดยตรง นอกจากนี้เมื่อใช้ Squid แคชในเบราว์เซอร์ก็สามารถปิดการใช้งานได้อย่างสมบูรณ์ คุณลักษณะนี้เป็นที่ต้องการอย่างมากในหมู่ผู้ใช้

องค์ประกอบของปลาหมึก

วิธีแก้ปัญหาดังกล่าวประกอบด้วยองค์ประกอบหลายประการ นี่คือแพ็คเกจจริงๆ ซอฟต์แวร์- โครงสร้างประกอบด้วยแอปพลิเคชันที่รันเซิร์ฟเวอร์ตลอดจนโปรแกรมเสริมสำหรับการทำงานกับ DNS ฟีเจอร์ที่น่าสนใจของมันคือการเปิดตัวกระบวนการต่าง ๆ ซึ่งแต่ละกระบวนการทำงานแยกจากกัน สิ่งนี้ช่วยให้คุณเพิ่มประสิทธิภาพการโต้ตอบของเซิร์ฟเวอร์กับ DNS

การติดตั้งโปรแกรม

การติดตั้ง Squid มักจะไม่ทำให้เกิดปัญหาใดๆ การติดตั้งโปรแกรมบน Linux ทำได้ง่ายมาก เพียงป้อนคำสั่ง $ sudo apt-get install squid

สำหรับ Squid สำหรับ Windows สิ่งต่าง ๆ มีความซับซ้อนกว่าเล็กน้อย ประเด็นก็คือว่า โปรแกรมนี้ไม่มีไฟล์ปฏิบัติการ - องค์ประกอบหลักของแอปพลิเคชันสำหรับ Microsoft OS

อย่างไรก็ตาม การติดตั้ง Squid บน Windows นั้นเป็นงานที่สามารถแก้ไขได้ค่อนข้างเร็ว จำเป็นต้องค้นหาหรือแหล่งข้อมูลที่เกี่ยวข้องกับชุดการแจกจ่ายที่มีไฟล์ประเภท .bat ซึ่งมีความใกล้เคียงกับไฟล์ปฏิบัติการ Windows แบบดั้งเดิมในทางใดทางหนึ่ง หลังจากนี้คุณควรคัดลอกไปยังโฟลเดอร์อื่นบนดิสก์ จากนั้นคุณต้องเริ่ม Squid เป็นบริการของระบบ หลังจากนี้โปรแกรมจะสามารถใช้เป็นพร็อกซีผ่านเบราว์เซอร์พีซีได้ เราสามารถพูดได้ว่าการติดตั้ง Squid เสร็จสิ้นแล้ว

การกระจายพร็อกซีเซิร์ฟเวอร์มักจะประกอบด้วย ไฟล์การกำหนดค่า type.conf เป็นเครื่องมือหลักในการตั้งค่าการเข้าถึงอินเทอร์เน็ตจากคอมพิวเตอร์ของผู้ใช้และอุปกรณ์อื่นๆ รวมกัน เครือข่ายท้องถิ่นเมื่อใช้ปลาหมึก

การตั้งค่าความแตกต่าง

การตั้งค่า Squid อาจมีความแตกต่างอะไรบ้าง Windows เป็นระบบปฏิบัติการที่จะทำงานร่วมกับพร็อกซีเซิร์ฟเวอร์โดยการแก้ไขไฟล์การกำหนดค่า

ในกรณีของ Linux ก็สามารถนำไปใช้ในบางขั้นตอนได้ แต่โดยรวมแล้วในเรื่องนี้ ระบบปฏิบัติการเช่นเดียวกับหากระบบปฏิบัติการที่ Squid กำหนดค่าไว้คือ Windows ไฟล์ squid.conf มักจะถูกใช้ ระบุนิพจน์บางอย่าง (“คำสั่ง”) ตามที่เซิร์ฟเวอร์จัดการการเชื่อมต่อกับเครือข่าย

มาดูวิธีกำหนดค่า Squid กันดีกว่า ขั้นตอนแรกคือการอนุญาตให้ผู้ใช้เครือข่ายเข้าถึงเซิร์ฟเวอร์ หากต้องการทำสิ่งนี้ ให้ตั้งค่าในไฟล์ squid.conf ค่าที่สอดคล้องกันใน http_port และใน http_access ด้วย นอกจากนี้ยังเป็นประโยชน์ในการสร้างรายการควบคุมการเข้าถึงหรือ ACL การตั้งค่า http_port มีความสำคัญสำหรับเรา เนื่องจากงานของเราคือเตรียม Squid เพื่อให้บริการคอมพิวเตอร์บางกลุ่มเท่านั้น ในทางกลับกัน พารามิเตอร์ เช่น http_access มีความสำคัญ เนื่องจากด้วยความช่วยเหลือนี้ เราจึงสามารถควบคุมการเข้าถึงทรัพยากรเครือข่ายเฉพาะที่ร้องขอจากที่อยู่บางแห่งได้ (เกณฑ์อื่นๆ ก็เป็นไปได้เช่นกัน - โปรโตคอล พอร์ต และคุณสมบัติอื่นๆ ที่มีอยู่ใน ACL)

จะตั้งค่าที่จำเป็นได้อย่างไร? มันง่ายมากที่จะทำ

สมมติว่าเราสร้างเครือข่ายคอมพิวเตอร์โดยมีช่วงที่อยู่เริ่มต้นด้วย 192.168.0.1 และลงท้ายด้วย 192.168.0.254 ในกรณีนี้ คุณควรตั้งค่าในการตั้งค่า ACL พารามิเตอร์ถัดไป: src 192.168.0.0/24. หากเราต้องกำหนดค่าพอร์ตในไฟล์กำหนดค่าเราต้องสร้างรายการ http_port 192.168.0.1 (คุณเพียงแค่ต้องระบุที่อยู่ IP ที่ถูกต้อง) และป้อนหมายเลขพอร์ต

เพื่อจำกัดการเข้าถึงพร็อกซีที่สร้างโดยใช้ Squid (ไม่นับคอมพิวเตอร์ในเครือข่ายท้องถิ่น) คุณต้องทำการเปลี่ยนแปลง http_access สิ่งนี้ทำได้ง่ายๆ - โดยใช้นิพจน์ (“ คำสั่ง” - เราตกลงที่จะเรียกพวกเขาว่าแม้ว่าจะพูดอย่างเคร่งครัดพวกเขาไม่ได้เป็นเช่นนั้นในข้อความ แต่ในบรรทัดเทอร์มินัลพวกเขาจะค่อนข้างสอดคล้องกับพวกเขา) อนุญาต LocalNet และปฏิเสธทั้งหมด . สิ่งสำคัญมากคือต้องวางพารามิเตอร์แรกไว้เหนือพารามิเตอร์ที่สอง เนื่องจาก Squid จะจดจำพารามิเตอร์เหล่านี้ตามลำดับ

การทำงานกับ ACL: การปฏิเสธการเข้าถึงไซต์

จริงๆ แล้ว การตั้งค่าการเข้าถึงสามารถทำได้ใน Squid ในระดับที่กว้างมาก ลองดูตัวอย่างที่เป็นประโยชน์ในการจัดการเครือข่ายท้องถิ่น

องค์ประกอบ src ค่อนข้างได้รับความนิยม ด้วยความช่วยเหลือ คุณสามารถบันทึกที่อยู่ IP ของคอมพิวเตอร์ที่ส่งคำขอไปยังพร็อกซีเซิร์ฟเวอร์ได้ ด้วยการรวมองค์ประกอบ src เข้ากับ http_access คุณสามารถอนุญาตการเข้าถึงเครือข่ายให้กับผู้ใช้บางรายได้ แต่ห้ามการกระทำที่คล้ายกันสำหรับคนอื่นๆ ทำได้ง่ายมาก

เราเขียน ACL (ชื่อกลุ่มผู้ใช้) src (ช่วงเวลาของที่อยู่ IP ขึ้นอยู่กับกฎระเบียบ) บรรทัดด้านล่างคือ ACL (ชื่อของคอมพิวเตอร์เฉพาะ) src (ที่อยู่ IP ของพีซีที่เกี่ยวข้อง) หลังจากนั้นเราก็ทำงานกับ http_access เราตั้งค่าการอนุญาตให้เข้าสู่เครือข่ายสำหรับกลุ่มผู้ใช้และพีซีแต่ละเครื่องโดยใช้คำสั่งอนุญาต http_access ในบรรทัดด้านล่าง เราทราบว่าการเข้าถึงเครือข่ายสำหรับคอมพิวเตอร์เครื่องอื่นถูกปฏิเสธด้วยคำสั่งปฏิเสธทั้งหมด

การตั้งค่าพร็อกซี Squid ยังเกี่ยวข้องกับการใช้องค์ประกอบที่มีประโยชน์อื่นที่ได้รับจากระบบควบคุมการเข้าถึง - dst ช่วยให้คุณสามารถแก้ไขที่อยู่ IP ของเซิร์ฟเวอร์ที่ผู้ใช้พร็อกซีต้องการเชื่อมต่อ

การใช้องค์ประกอบดังกล่าวทำให้เราสามารถจำกัดการเข้าถึงเครือข่ายย่อยเฉพาะได้ เป็นต้น ในการดำเนินการนี้คุณสามารถใช้คำสั่ง ACL (การกำหนดเครือข่าย) dst (ที่อยู่ IP ของเครือข่ายย่อย) บรรทัดด้านล่าง - http_access ปฏิเสธ (ชื่อของคอมพิวเตอร์เฉพาะบนเครือข่าย)

องค์ประกอบที่มีประโยชน์อีกอย่างหนึ่งคือ dstdomain มันจะช่วยให้เราจับโดเมนที่ผู้ใช้ต้องการเชื่อมต่อได้ ด้วยการใช้องค์ประกอบดังกล่าว เราสามารถจำกัดการเข้าถึงของผู้ใช้รายใดรายหนึ่งได้ เช่น ทรัพยากรอินเทอร์เน็ตภายนอก ในการดำเนินการนี้คุณสามารถใช้คำสั่ง: ACL (กลุ่มของไซต์) dstdomain (ที่อยู่ไซต์) บรรทัดด้านล่าง - http_access ปฏิเสธ (ชื่อคอมพิวเตอร์บนเครือข่าย)

มีองค์ประกอบที่โดดเด่นอื่น ๆ ในโครงสร้างของระบบควบคุมการเข้าออก หนึ่งในนั้นคือ SitesRegex โดยการใช้ ได้รับการแสดงออกคุณสามารถจำกัดการเข้าถึงของผู้ใช้ในโดเมนอินเทอร์เน็ตที่มีคำบางคำ เช่น เมล (หากเป้าหมายคือการห้ามไม่ให้พนักงานของบริษัทเข้าถึงเมลเซิร์ฟเวอร์ของบุคคลที่สาม) ในการดำเนินการนี้ คุณสามารถใช้คำสั่งเมล ACL SitesRegexMail dstdom_regex จากนั้น ACL SitesRegexComNet dstdom_regex \.com$ (ซึ่งหมายความว่าการเข้าถึงจะถูกปฏิเสธสำหรับประเภทโดเมนที่เกี่ยวข้อง) บรรทัดด้านล่างคือ http_accesss ปฏิเสธ ซึ่งระบุคอมพิวเตอร์ที่เข้าถึงภายนอก เมลเซิร์ฟเวอร์ไม่พึงปรารถนา

สำนวนบางอย่างอาจใช้สวิตช์ -i การใช้มัน เช่นเดียวกับองค์ประกอบ เช่น url_regex ที่ออกแบบมาเพื่อสร้างเทมเพลตสำหรับที่อยู่เว็บ เราสามารถปฏิเสธการเข้าถึงไฟล์ที่มีนามสกุลที่กำหนดได้

ตัวอย่างเช่น การใช้คำสั่ง ACL NoSwfFromMail url_regex -i mail.*\.swf$ เราควบคุมความสามารถในการเข้าถึงไซต์อีเมลที่มีวิดีโอ Flash หากไม่จำเป็นต้องรวมไว้ในอัลกอริธึมการเข้าถึง ชื่อโดเมนเว็บไซต์ จากนั้นคุณสามารถใช้นิพจน์ urlpath_regex ได้ ตัวอย่างเช่น ในรูปแบบของคำสั่ง ACL media urlpath_regex -i \.wma$ \.mp3$

การปฏิเสธการเข้าถึงโปรแกรม

การตั้งค่า Squid ช่วยให้คุณสามารถปฏิเสธการเข้าถึงของผู้ใช้ไปยังบางโปรแกรมเมื่อใช้ทรัพยากรพร็อกซีเซิร์ฟเวอร์ เพื่อจุดประสงค์นี้ สามารถใช้คำสั่ง ACL (ชื่อโปรแกรม) พอร์ต (ช่วงพอร์ต) ได้ บรรทัดด้านล่างคือ http_access ปฏิเสธทั้งหมด (ชื่อโปรแกรม)

การใช้ประโยชน์จากมาตรฐานและโปรโตคอล

การตั้งค่า Squid ยังช่วยให้ผู้ดูแลระบบสามารถตั้งค่าโปรโตคอลที่ต้องการสำหรับการใช้ช่องทางอินเทอร์เน็ตได้ ตัวอย่างเช่น หากบุคคลจากพีซีเฉพาะจำเป็นต้องเข้าถึงเครือข่ายผ่านโปรโตคอล FTP คุณสามารถใช้คำสั่งต่อไปนี้: ACL ftpproto proto ftp บรรทัดด้านล่าง - http_access deny (ชื่อคอมพิวเตอร์) ftpproto

การใช้องค์ประกอบ method ทำให้เราสามารถระบุวิธีการร้องขอ HTTP ได้ มี 2 ​​รายการ - GET และ POST แต่ในบางกรณีอันแรกจะดีกว่าอันที่สองและในทางกลับกัน ตัวอย่างเช่น สถานการณ์เป็นไปได้ที่พนักงานคนใดคนหนึ่งไม่ควรดูเมลผ่าน mail.ru แต่นายจ้างของเขาจะไม่คัดค้านหากบุคคลนั้นต้องการอ่านข่าวบนเว็บไซต์ที่ระบุ ในการดำเนินการนี้ผู้ดูแลระบบสามารถใช้คำสั่งต่อไปนี้: ACL sitemailru dstdomain .mail.ru บรรทัดด้านล่าง - วิธีโพสต์เมธอด ACL POST จากนั้น http_access ปฏิเสธ (ชื่อคอมพิวเตอร์) วิธีการโพสต์ไซต์เมลรู

นี่คือความแตกต่างที่การกำหนดค่า Squid รวมอยู่ด้วย ใช้ Ubuntu, Windows หรือระบบปฏิบัติการอื่นที่เข้ากันได้กับพร็อกซีเซิร์ฟเวอร์ - คุณสมบัติของงานที่เราพิจารณา พารามิเตอร์ที่จำเป็นลักษณะโดยทั่วไปของสิ่งใดสิ่งหนึ่ง สภาพแวดล้อมซอฟต์แวร์การทำงานของปลาหมึก การทำงานกับซอฟต์แวร์นี้เป็นกระบวนการที่น่าตื่นเต้นอย่างไม่น่าเชื่อและในขณะเดียวกันก็ไม่ซับซ้อนเนื่องจากตรรกะและความโปร่งใสของอัลกอริธึมหลักในการตั้งค่าโปรแกรม

เรามาสังเกตกันหน่อย ประเด็นสำคัญโดยทั่วไปสำหรับการตั้งค่า Squid

สิ่งที่ต้องใส่ใจเมื่อตั้งค่า?

หากคุณพบปัญหาในการค้นหาไฟล์ squid.conf ซึ่งเป็นเครื่องมือกำหนดค่าเซิร์ฟเวอร์หลัก คุณสามารถลองตรวจสอบไดเร็กทอรี etc/squid

จะเป็นการดีที่สุดหากคุณใช้วิธีที่ง่ายที่สุดเมื่อทำงานกับไฟล์ที่เป็นปัญหา โปรแกรมแก้ไขข้อความ: ไม่จำเป็นต้องมีองค์ประกอบการจัดรูปแบบใด ๆ ที่จะรวมอยู่ในบรรทัดที่รับผิดชอบในการกำหนดค่าพร็อกซีเซิร์ฟเวอร์

ในบางกรณี อาจจำเป็นต้องระบุพร็อกซีเซิร์ฟเวอร์ของผู้ให้บริการเมื่อทำงาน มีคำสั่ง cache_peer สำหรับสิ่งนี้ คุณต้องป้อนดังนี้: cache_peer (ที่อยู่ของพร็อกซีเซิร์ฟเวอร์ของผู้ให้บริการ)

ในบางกรณี จะมีประโยชน์ในการบันทึกค่า แรมซึ่งปลาหมึกจะใช้ ซึ่งสามารถทำได้โดยใช้คำสั่ง cache_mem นอกจากนี้ยังมีประโยชน์ในการระบุไดเร็กทอรีที่จะจัดเก็บข้อมูลแคชซึ่งทำได้โดยใช้นิพจน์ cache_dir ในกรณีแรกคำสั่งทั้งหมดจะมีลักษณะเป็น cache_mem (จำนวน RAM เป็นไบต์) ในส่วนที่สอง - เหมือน cache_dir (ที่อยู่ไดเร็กทอรี, จำนวนเมกะไบต์ของพื้นที่ดิสก์) ขอแนะนำให้วางแคชไว้บนดิสก์ที่มีประสิทธิภาพสูงสุดหากคุณมีตัวเลือก

คุณอาจต้องระบุคอมพิวเตอร์ที่สามารถเข้าถึงพร็อกซีเซิร์ฟเวอร์ได้ ซึ่งสามารถทำได้โดยใช้คำสั่ง ACL อนุญาตโฮสต์ src (ช่วงเวลาของที่อยู่ IP ของคอมพิวเตอร์) เช่นเดียวกับ ACL localhost src (ที่อยู่ในเครื่อง)

หากการเชื่อมต่อใช้พอร์ต SSL ก็สามารถแก้ไขได้โดยใช้คำสั่ง ACL ของพอร์ต ssl_ports ในเวลาเดียวกัน คุณสามารถห้ามการใช้วิธี CONNECT สำหรับพอร์ตอื่นๆ ได้ ยกเว้นพอร์ตที่ระบุในการเชื่อมต่อที่ปลอดภัย SSL นิพจน์ http_access deny CONNECT จะช่วยให้คุณทำสิ่งนี้ได้! SSL_พอร์ต

ปลาหมึกและ pfSense

ในบางกรณี อินเทอร์เฟซ pfSense จะใช้ร่วมกับพร็อกซีเซิร์ฟเวอร์ที่ต้องการ ซึ่งใช้เป็นอินเทอร์เฟซที่มีประสิทธิภาพ จะจัดระเบียบการทำงานร่วมกันได้อย่างไร อัลกอริธึมในการแก้ปัญหานี้ไม่ซับซ้อนเกินไป

ขั้นแรก เราต้องทำงานในอินเทอร์เฟซ pfSense Squid ซึ่งเราได้กำหนดค่าไว้แล้วจะต้องติดตั้งโดยใช้คำสั่ง SSH นี่เป็นหนึ่งในวิธีที่สะดวกที่สุดและ วิธีที่ปลอดภัยทำงานกับพร็อกซีเซิร์ฟเวอร์ ในการดำเนินการนี้ คุณต้องเปิดใช้งานรายการเปิดใช้งานในอินเทอร์เฟซ หากต้องการค้นหา คุณต้องเลือกรายการเมนูระบบ จากนั้นเลือกขั้นสูง จากนั้นเลือกการเข้าถึงของผู้ดูแลระบบ

หลังจากนี้คุณจะต้องดาวน์โหลด PuTTY - แอปพลิเคชั่นที่สะดวกสำหรับการทำงานร่วมกับ SSH จากนั้นคุณต้องติดตั้ง Squid โดยใช้คอนโซล ทำได้ง่ายๆ โดยใช้คำสั่ง -pkg install squid หลังจากนี้ คุณจะต้องติดตั้งพร็อกซีผ่านเว็บอินเทอร์เฟซ pfSense ด้วย Squid (ไม่ได้กำหนดค่าพารามิเตอร์ในขั้นตอนนี้) สามารถติดตั้งได้โดยเลือกรายการเมนูระบบ จากนั้นเลือกแพ็คเกจ จากนั้นเลือกแพ็คเกจที่มีอยู่ แพ็คเกจ Squid Stable ควรมีอยู่ในหน้าต่างที่เกี่ยวข้อง มาเลือกกันเลย จำเป็นต้องตั้งค่าต่อไปนี้: Proxy Interface: LAN คุณสามารถทำเครื่องหมายที่ช่องถัดจากบรรทัดพร็อกซีแบบโปร่งใส เลือกที่อยู่สำหรับบันทึกและทำเครื่องหมายภาษารัสเซียเป็นภาษาที่ต้องการ คลิกบันทึก

เครื่องมือเพิ่มประสิทธิภาพทรัพยากร

การกำหนดค่า Squid ช่วยให้ผู้ดูแลระบบสามารถจัดสรรทรัพยากรเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพ นั่นคือในกรณีนี้ เราไม่ได้กำลังพูดถึงการห้ามการเข้าถึงไซต์ใดๆ อย่างไรก็ตาม ความรุนแรงของการใช้ช่องทางโดยผู้ใช้รายหนึ่งหรือรายอื่นหรือกลุ่มของพวกเขาอาจจำเป็นต้องมีการควบคุม โปรแกรมดังกล่าวช่วยให้คุณสามารถแก้ไขได้ งานนี้ในหลายวิธี ประการแรกนี่คือการใช้กลไกแคช: ด้วยเหตุนี้จึงไม่จำเป็นต้องดาวน์โหลดไฟล์ซ้ำจากอินเทอร์เน็ตเนื่องจากปริมาณการรับส่งข้อมูลจะลดลง ประการที่สอง เป็นการจำกัดเวลาในการเข้าถึงเครือข่าย ประการที่สาม นี่คือการตั้งค่าขีดจำกัดสำหรับความเร็วของการแลกเปลี่ยนข้อมูลบนเครือข่ายที่เกี่ยวข้องกับการกระทำของผู้ใช้บางรายหรือไฟล์ที่ดาวน์โหลดบางประเภท ให้เราพิจารณากลไกเหล่านี้โดยละเอียด

การเพิ่มประสิทธิภาพทรัพยากรเครือข่ายผ่านการแคช

ในโครงสร้าง การรับส่งข้อมูลเครือข่ายมีไฟล์หลายประเภทที่ใช้ไม่เปลี่ยนแปลง นั่นคือเมื่อดาวน์โหลดลงคอมพิวเตอร์แล้ว ผู้ใช้ไม่จำเป็นต้องดำเนินการซ้ำอีก โปรแกรม Squid ช่วยให้กำหนดค่ากลไกได้อย่างยืดหยุ่นสำหรับการรับรู้ไฟล์ดังกล่าวโดยเซิร์ฟเวอร์

เพียงพอ ตัวเลือกที่มีประโยชน์พร็อกซีเซิร์ฟเวอร์ที่เรากำลังค้นคว้ากำลังตรวจสอบอายุของไฟล์ในแคช วัตถุที่อยู่ในพื้นที่หน่วยความจำที่เกี่ยวข้องนานเกินไปควรได้รับการอัปเดต ตัวเลือกนี้สามารถเปิดใช้งานได้โดยใช้คำสั่งรีเฟรช_รูปแบบ ดังนั้น นิพจน์แบบเต็มอาจมีลักษณะเหมือนรีเฟรช_รูปแบบ (ระยะเวลาขั้นต่ำ - เป็นนาที, ส่วนแบ่งสูงสุดของไฟล์ "สด" - เป็น %, ระยะเวลาสูงสุด) ดังนั้น หากไฟล์อยู่ในแคชนานกว่าเกณฑ์ที่กำหนด ก็อาจจำเป็นต้องดาวน์โหลดไฟล์เวอร์ชันใหม่

การเพิ่มประสิทธิภาพทรัพยากรผ่านการจำกัดการเข้าถึงตามเวลา

อีกทางเลือกหนึ่งที่สามารถใช้งานได้ด้วยความสามารถของ Squid-Proxy คือการจำกัดการเข้าถึงทรัพยากรเครือข่ายของผู้ใช้เมื่อเวลาผ่านไป ติดตั้งโดยใช้คำสั่งง่ายๆ: ACL (ชื่อคอมพิวเตอร์) เวลา (วัน ชั่วโมง นาที) คุณสามารถจำกัดการเข้าถึงวันใดก็ได้ในสัปดาห์โดยแทนที่ "วัน" ด้วยตัวอักษรตัวแรกของคำที่ตรงกับชื่อในตัวอักษรภาษาอังกฤษ ตัวอย่างเช่น หากเป็นวันจันทร์ ให้เลือก M หากเป็นวันอังคาร ให้เลือก T หากคำสั่งไม่มีคำว่า "วัน" การแบนที่เกี่ยวข้องจะถูกตั้งค่าตลอดทั้งสัปดาห์ สิ่งที่น่าสนใจคือยังสามารถควบคุมกำหนดการเข้าถึงเครือข่ายที่ดำเนินการโดยผู้ใช้โดยใช้บางโปรแกรมได้

การเพิ่มประสิทธิภาพทรัพยากรผ่านการจำกัดอัตรา

ตัวเลือกที่พบบ่อยคือการเพิ่มประสิทธิภาพทรัพยากรโดยการควบคุมอัตราการแลกเปลี่ยนข้อมูลที่อนุญาตภายใน เครือข่ายคอมพิวเตอร์- พร็อกซีเซิร์ฟเวอร์ที่เรากำลังศึกษาเป็นเครื่องมือที่สะดวกที่สุดในการแก้ปัญหานี้ การควบคุมความเร็วของการแลกเปลี่ยนข้อมูลในเครือข่ายดำเนินการโดยใช้พารามิเตอร์เช่น Delay_class, Delay_parameters, Delay_access รวมถึงผ่านองค์ประกอบ Delay_pools องค์ประกอบทั้งสี่มีความสำคัญอย่างยิ่งในการแก้ปัญหาที่ผู้ดูแลระบบเผชิญในแง่ของการเพิ่มประสิทธิภาพทรัพยากรเครือข่ายท้องถิ่น

ปัญหามีดังต่อไปนี้ ที่องค์กร AD การเข้าถึงอินเทอร์เน็ตผ่านพร็อกซีมี DMZ พร็อกซีและพอร์ตได้รับการลงทะเบียนในการตั้งค่าเบราว์เซอร์ในส่วน _connections_ ในการเข้าถึง DMZ จะใช้ ISA 2006 (ฉันมี Isa client 2004) เราเข้าถึงอินเทอร์เน็ตผ่านปลาหมึก

หลังจาก การติดตั้งวินโดวส์เวอร์ชัน 7 (บนเครื่องที่สะอาด) ฉันกำหนดค่า IExplorer ตามปกติ ลงทะเบียนพร็อกซีและพอร์ต แต่ IExplorer ปฏิเสธที่จะเข้าถึงอินเทอร์เน็ต (ดังนั้น ความสามารถในการเปิดใช้งานและรับการอัปเดตจึงลดลง) เมื่อเริ่มต้นระบบจะขอข้อมูลเข้าสู่ระบบและรหัสผ่าน แต่สุดท้ายฉันก็ได้รับหน้าเว็บพร้อมข้อความต่อไปนี้:
==============================
ข้อผิดพลาด: การเข้าถึงแคชถูกปฏิเสธ

ข้อผิดพลาด

การเข้าถึงแคชถูกปฏิเสธ

เกิดข้อผิดพลาดต่อไปนี้:

  • การเข้าถึงแคชถูกปฏิเสธ

ขออภัย คุณไม่สามารถร้องขอ:

https://go.microsoft.com/fwlink/? จากแคชนี้จนกว่าคุณจะผ่านการรับรองความถูกต้อง

ในการดำเนินการนี้ คุณต้องมี Netscape เวอร์ชัน 2.0 ขึ้นไป หรือ Microsoft อินเทอร์เน็ตเอ็กซ์พลอเรอร์เบราว์เซอร์ที่รองรับ 3.0 หรือ HTTP/1.1 โปรดติดต่อผู้ดูแลระบบแคชหากคุณมีปัญหาในการตรวจสอบสิทธิ์ หรือเปลี่ยนรหัสผ่านเริ่มต้นของคุณ


สร้างเมื่อวันพฤหัสบดีที่ 18 มิถุนายน 2552 เวลา 04:11:33 น. GMT โดย apk-proxy2.apk.gov (squid/2.6.STABLE18) ======================= =======

ไม่มีปัญหาดังกล่าวใน FireFox- ฉันระบุพรอกซีในการตั้งค่า ป้อนชื่อผู้ใช้และรหัสผ่านของฉัน และที่นี่ฉันนั่งเขียนจดหมายฉบับนี้
บน XP และ Vista ทุกอย่างก็โอเคเช่นกัน .

ฉันติดตั้งแอสเซมบลีต่อไปนี้ 7100(rus), 7201 ตอนนี้เป็น 7231(rus) - สถานการณ์ไม่เปลี่ยนแปลง

คำถามคือจะกระชับอะไรและที่ไหน?

เหตุผลในการโพสต์บทความนี้มีดังนี้ บ่อยครั้งในฟอรัมฉันเห็น TC ยกตัวอย่างการกำหนดค่าของพวกเขาอย่างสับสนวุ่นวาย คำสั่ง acl และ http_accessโดยเฉพาะในหัวข้อที่เกี่ยวข้องกับปัญหาการเข้าถึง ปลาหมึก- เมื่อตั้งค่าระบบใด ๆ ฉันพยายามปฏิบัติตามลำดับเชิงตรรกะบางประการ วันนี้ฉันจะพยายามถ่ายทอดให้คุณฟังว่าอะไร สั่งซื้อ http_accessฉันยึดติดกับมัน

แนวคิดหลักอยู่ในวลีที่นำมาจากคู่มือ Squid สำหรับ http_access:

หากไม่มีบรรทัด "เข้าถึง" ใดที่ทำให้เกิดการจับคู่ ค่าเริ่มต้นจะอยู่ตรงข้ามกับบรรทัดสุดท้ายในรายการ หากบรรทัดสุดท้ายถูกปฏิเสธ ค่าเริ่มต้นคืออนุญาต ในทางกลับกัน หากอนุญาตบรรทัดสุดท้าย ค่าเริ่มต้นจะถูกปฏิเสธ ด้วยเหตุผลเหล่านี้ จึงเป็นความคิดที่ดีที่จะมีรายการ "ปฏิเสธทั้งหมด" ที่ท้ายรายการเข้าถึงของคุณเพื่อหลีกเลี่ยงความสับสนที่อาจเกิดขึ้น

แท้จริงต่อไปนี้:

หากไม่พบกฎ "การเข้าถึง" ตามค่าเริ่มต้น กฎที่อยู่ตรงข้ามกับกฎสุดท้ายในรายการจะถูกนำไปใช้ หากกฎข้อสุดท้ายถูกปฏิเสธ การอนุญาตจะถูกนำไปใช้ตามค่าเริ่มต้น ในทางตรงกันข้าม หากอนุญาตบรรทัดสุดท้าย ค่าเริ่มต้นจะถูกปฏิเสธ ดังนั้นจึงเป็นความคิดที่ดีที่จะมีกฎ "ปฏิเสธทั้งหมด" ไว้ท้ายรายการกฎของคุณเพื่อหลีกเลี่ยงความเข้าใจผิดที่อาจเกิดขึ้น

ฉันได้กล่าวถึงเคล็ดลับและกฎเกณฑ์บางประการในบทความแล้ว ตอนนี้ฉันจะพยายามถ่ายทอดวิสัยทัศน์ของฉัน สั่งซื้อ acl และ http_access- จริงๆ แล้ว, ลำดับของคำสั่ง aclทำให้ไม่มีความแตกต่างอย่างแน่นอน สิ่งสำคัญก็คือว่า acl ถูกกำหนดก่อนกฎ http_access(ฉันไม่พบการยืนยันสิ่งนี้ในคู่มือ แต่ฉันมีปัญหากับการเข้าถึงเมื่อวาง acl หลัง http_access) ฉันพยายามจัดกลุ่ม acls ให้เป็นประเภทที่คล้ายกัน

การตั้งค่า http_access ใน squid

อย่างแน่นอน ลำดับการวางคำสั่ง http_accessกำหนดว่าไคลเอ็นต์จะเข้าถึงแคชหรือไม่ อัลกอริทึมสำหรับการประมวลผลคำขอแคชมีดังนี้:

  1. แต่ละคำขอจะถูกเปรียบเทียบตามลำดับกับกฎ http_access แต่ละบรรทัด
  2. จนกว่าคำขอจะตรงกับกฎการเข้าถึงหรือปฏิเสธข้อใดข้อหนึ่ง คำขอจะติดตามจากกฎหนึ่งไปอีกกฎหนึ่งและตรวจสอบพลังของมัน
    ทุกอย่างเรียบง่ายที่นี่ ลองดูกฎต่อไปนี้:
  3. หากมีการระบุ acl มากกว่าหนึ่งรายการใน http_access ระบบจะใช้ตรรกะ AND ตัวอย่าง: http_access อนุญาต|ปฏิเสธ acl AND acl AND... หรือ http_access อนุญาต|ปฏิเสธ acl AND acl AND... หรือ
  4. หากคำขอไม่อยู่ภายใต้กฎใด ๆ ตามค่าเริ่มต้น squid จะใช้กฎตรงข้ามกับกฎสุดท้าย

# เรามีกฎการอนุญาตเพียงกฎเดียวสำหรับ acl ของผู้ใช้บางราย: http_access อนุญาตให้ผู้ใช้ # หากเมื่อเข้าถึง squid คำขอไม่ตกอยู่ใน acl นี้ การดำเนินการปฏิเสธจะถูกนำไปใช้กับมัน # และหากเรามีกฎสองข้อ http_access อนุญาตให้ผู้ใช้ http_access ปฏิเสธผู้ใช้2 # และคำขอไม่รวมอยู่ในผู้ใช้ acl หรือผู้ใช้ acl2 ดังนั้นการอนุญาตจะถูกนำไปใช้กับมัน # นั่นคือการกระทำที่ตรงกันข้ามกับอันสุดท้าย http_access ปฏิเสธผู้ใช้2

เหล่านี้คือพื้นฐาน แต่มีความแตกต่างบางประการที่เปิดเผยระหว่างการดำเนินการ

การปรับ http_access) เรารู้ว่ามี acls ที่ใช้ไฟล์. หรือโมดูลอื่นๆ (เช่น srcdomain.com และ srcdom_regex

ที่ต้องการความละเอียด) สามารถสรุปข้อสรุปทางทฤษฎีเชิงตรรกะได้ว่าข้อมูล acl อาจทำงานช้ากว่า acl src หรือ dst หรือคล้ายกันเล็กน้อย ตามวิกิ นักพัฒนาแบ่ง acl เร็ว/ช้าออกเป็นกลุ่มต่อไปนี้ (ตั้งแต่ squid เวอร์ชัน 3.1.0.7):

ดังนั้น หากเราระบุกฎข้อห้ามก่อน โดยเฉพาะอย่างยิ่งหากกฎนั้น "เร็ว" (เช่น เช่น

Http_access ปฏิเสธผู้จัดการ http_access ปฏิเสธ !Safe_ports http_access ปฏิเสธ เชื่อมต่อ !SSL_ports

) จากนั้นจะประมวลผลอย่างรวดเร็ว ลดภาระเนื่องจากมีคำขอเข้าถึงกฎที่ใช้การรับรองความถูกต้องน้อยลงซึ่งเป็นคำขอที่จำเป็นจริงๆ ดังนั้น ให้ลองวางกฎการปฏิเสธ http_access โดยใช้ acl โดยไม่มีโมดูลภายนอกให้สูงที่สุดเท่าที่จะเป็นไปได้ จากนั้นจึงวางกฎการอนุญาต อย่าลืมระบุปฏิเสธทั้งหมด (เพื่อหลีกเลี่ยงความสับสน)

การแก้ไขปัญหา acl และ http_access

หากคุณยังคงมีปัญหาในการกำหนดค่าคำสั่ง http_access และผู้ใช้ที่ต้องการไม่สามารถเข้าถึงได้คุณสามารถลองใช้ตัวเลือกนี้ได้ ตัวอย่าง:

Debug_options ทั้งหมด,1 33,2

หลังจากกำหนดค่า squid ใหม่ ข้อความเกี่ยวกับการอนุญาต/ปฏิเสธการเข้าถึงสำหรับแต่ละเซสชันและชื่อ acl ตามที่ได้รับอนุมัติหรือไม่จะเริ่มปรากฏใน cache.log หากข้อมูลนี้ไม่เพียงพอ คุณสามารถระบุรายละเอียดเพิ่มเติมได้:

Debug_options ทั้งหมด,1 33.2 28.9

ประวัติย่อ

นั่นคือทั้งหมดสำหรับวันนี้ วันนี้เรามาดูปัญหาของการตั้งค่า acl และ http_access ตรรกะสำหรับการประมวลผลคำสั่ง http_access และทำความคุ้นเคยกับคำแนะนำบางประการ บางทีผู้อ่านคนใดคนหนึ่งจะแก้ไขฉันซึ่งฉันจะขอบคุณมาก นอกจากบทความนี้แล้ว ฉันขอแนะนำให้คุณอ่านhttp://wiki.squid-cache.org/SquidFaq/SquidAcl