การโฆษณา

บ้าน - บริการ
คำอธิบายของ squid conf. การติดตั้ง Squid - สารานุกรมโฮสติ้ง

การแนะนำ

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

ด้วยความช่วยเหลือของบทความนี้ ฉันจะพยายามอธิบายการตั้งค่าของพร็อกซีเซิร์ฟเวอร์ที่พบบ่อยที่สุด - Squid อย่างชัดเจนและชัดเจน

การตั้งค่า Squid เริ่มต้นสำหรับการเข้าถึงของผู้ใช้

เราจะไม่เข้าสู่กระบวนการติดตั้งพร็อกซีเซิร์ฟเวอร์ Squid แต่จะตรงไปที่การตั้งค่า

สิ่งพื้นฐานที่สุดที่เราควรทำหลังการติดตั้งคือการอนุญาตให้ผู้ใช้เครือข่ายท้องถิ่นของเราเข้าถึงได้ พารามิเตอร์ http_port และ http_access ใช้สำหรับสิ่งนี้ นอกจากนี้ เราจะสร้าง ACL (รายการควบคุมการเข้าถึง) สำหรับเครือข่ายท้องถิ่นของเรา

ดังนั้นเราจึงต้องการ http_port เนื่องจากพร็อกซีเซิร์ฟเวอร์ Squid ของเราควรให้บริการเฉพาะคอมพิวเตอร์ในเครือข่ายท้องถิ่นของเราและจะไม่ปรากฏแก่โลกภายนอก เพื่อที่จะแยกความเป็นไปได้ของ "คนไม่ดี" เครือข่ายภายนอกใช้ช่องทางหรือการรับส่งข้อมูลของเรา และหากพบ “ช่องโหว่” ในโค้ดของพร็อกซีเซิร์ฟเวอร์ Squid ให้ใช้ช่องเหล่านั้น

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

ตาราง N 1. บางซับเน็ต

ช่วงที่อยู่

ฟอร์มเต็ม

แบบสั้น

192.168.0.1-192.168.0.254

192.168.0.0/255.255.255.0

192.168.0.0/24

192.168.20.1-192.168.20.254

192.168.20.0/255.255.255.0

192.168.20.0/24

192.168.0.1-192.168.254.254

192.168.20.0/255.255.0.0

192.168.20.0/16

10.0.0.1-10.254.254.254

10.0.0.0/255.0.0.0

10.0.0.0/8


สมมติว่าคุณมีเครือข่ายที่มีที่อยู่ตั้งแต่ 192.168.0.1 ถึง 192.168.0.254 จากนั้นเพิ่ม Acl ใหม่ (ดูตาราง N1):

Acl LocalNet src 192.168.0.0/24

สมมติว่าพร็อกซีเซิร์ฟเวอร์ Squid ของคุณอยู่ที่ 192.168.0.200 บนพอร์ต 3128 จากนั้นเขียนในไฟล์การกำหนดค่า:

Http_port 192.168.0.200:3128

การดำเนินการต่อไปของเราคือการห้ามการใช้พร็อกซีเซิร์ฟเวอร์ของเรา ยกเว้นโดยผู้ใช้เครือข่ายท้องถิ่นของเรา:

Http_access อนุญาต LocalNet
http_access ปฏิเสธทั้งหมด

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

โปรดใช้ความระมัดระวังเมื่อระบุ http_access เนื่องจาก Squid จะใช้สิ่งเหล่านี้ตามลำดับที่คุณระบุ

ACL การเรียนรู้ (รายการควบคุมการเข้าถึง)

ระบบควบคุมการเข้าถึงในพร็อกซีเซิร์ฟเวอร์ Squid มีความยืดหยุ่นและกว้างขวางมาก ประกอบด้วยองค์ประกอบที่มีค่าและรายการเข้าถึงที่ระบุอนุญาต (อนุญาต) หรือปฏิเสธ (ปฏิเสธ)

รูปแบบ Acl เป็นดังนี้:

รายการองค์ประกอบชื่อ Acl

รูปแบบรายการเข้าถึง:

ตัวบ่งชี้ Http_access acl_name

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

* รายการ src ชื่อ acl

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

ในตัวอย่างต่อไปนี้ เราจะอนุญาตให้ Vasya Pupkin (Pupkin) และแผนกการเขียนโปรแกรม (Progs) เข้าถึงพร็อกซีเซิร์ฟเวอร์ของเรา และปฏิเสธคนอื่นๆ ทั้งหมด:

Acl Progs src 192.168.0.1-192.168.0.9
acl Pupkin src 192.168.0.10
http_access อนุญาต Progs
http_access อนุญาต Pupkin
http_access ปฏิเสธทั้งหมด

* รายการชื่อ acl dst

องค์ประกอบนี้ (dst) ระบุที่อยู่ IP ปลายทาง นั่นคือที่อยู่ IP ของเซิร์ฟเวอร์ที่ไคลเอ็นต์พร็อกซีเซิร์ฟเวอร์ต้องการเข้าถึง

ในตัวอย่างต่อไปนี้ เราจะปฏิเสธการเข้าถึง Vasya ไปยังซับเน็ต 194.67.0.0/16 (ตัวอย่างเช่น มี aport.ru เดียวกัน):

Acl Net194 วันที่ 194.67.0.0/16
http_access ปฏิเสธ Pupkin Net194

* ชื่อ acl dstdomain รายการ

การใช้องค์ประกอบนี้ (dstdomain) เราจะระบุโดเมนที่ไคลเอ็นต์พร็อกซีเซิร์ฟเวอร์ต้องการเข้าถึง

ในตัวอย่างต่อไปนี้ เราจะปฏิเสธไม่ให้ Vasya เข้าถึงไซต์ warez nnm.ru และ kpnemo.ru:

Acl SitesWarez dstdomain .nnm.ru .kpnemo.ru
http_access ปฏิเสธ Pupkin SitesWarez

หากคุณต้องการระบุโดเมนต้นทาง ให้ใช้ srcdomain

* ชื่อ acl [-i] รายการ srcdom_regex
* ชื่อ acl [-i] รายการ dstdom_regex

องค์ประกอบเหล่านี้แตกต่างจาก srcdomain และ dstdomain เพียงตรงที่พวกเขาใช้นิพจน์ทั่วไป ซึ่งเราไม่ได้พิจารณาในบทความนี้ แต่เราจะยังคงยกตัวอย่าง:

ไซต์ AclRegexSex dstdom_regex sex
Acl SitesRegexComNet dstdom_regex .com$ .net$
http_access ปฏิเสธไซต์ PupkinRegexSex
http_access ปฏิเสธไซต์ PupkinRegexComNet

ใน ในตัวอย่างนี้เราได้ปฏิเสธไม่ให้ Vasily Pupkin เข้าถึงโดเมนทั้งหมดที่มีคำว่า sex และโดเมนทั้งหมดในโซน .com และ .net

สวิตช์ -i ได้รับการออกแบบมาเพื่อละเว้นตัวพิมพ์ของอักขระในนิพจน์ทั่วไป

* ชื่อ acl [-i] รายการ url_regex

การใช้องค์ประกอบนี้ (url_regex) เราระบุเทมเพลต การแสดงออกปกติสำหรับ URL

ตัวอย่างการระบุไฟล์ที่มีนามสกุล avi ที่ขึ้นต้นด้วยคำว่า sex:

Acl NoAviFromSex url_regex -i sex.*.avi$

หากคุณต้องการระบุเทมเพลตสำหรับเส้นทาง URL เท่านั้น กล่าวคือ ไม่รวมโปรโตคอลและชื่อโฮสต์ (โดเมน) ให้ใช้ urlpath_regex

ตัวอย่างการระบุไฟล์เพลง:

* รายการพอร์ต acl name_acl

การระบุหมายเลขพอร์ตปลายทาง นั่นคือพอร์ตที่ไคลเอ็นต์ของพร็อกซีเซิร์ฟเวอร์ของเราต้องการเชื่อมต่อ

ตามตัวอย่าง เราจะห้ามไม่ให้ทุกคนใช้โปรแกรม Mirc ผ่านพร็อกซีเซิร์ฟเวอร์ของเรา:

พอร์ต Acl Mirc 6667-6669 7770-7776
http_access ปฏิเสธ Mirc ทั้งหมด

* acl name_acl รายการโปรโต

การระบุโปรโตคอลการถ่ายโอน

ตามตัวอย่าง เราจะห้ามไม่ให้ Vasya ที่กล่าวถึงข้างต้นใช้โปรโตคอล FTP ผ่านพร็อกซีเซิร์ฟเวอร์ของเรา:

Acl ftpโปรโต ftp ดั้งเดิม
http_access ปฏิเสธ Pupkin ftpproto

* รายการวิธี acl name_acl

การระบุวิธีการร้องขอ http โดยไคลเอนต์ (GET, POST)

ลองใช้สถานการณ์ที่ Vasya Pupkin ควรถูกห้ามไม่ให้ดูเมลของเขาบนเว็บไซต์ mail.ru แต่ในขณะเดียวกันก็อนุญาตให้เดินไปรอบ ๆ ไซต์โดยไม่มีข้อห้ามนั่นคือ Vasya ควรถูกห้ามไม่ให้เข้าไปในตัวเขา ตู้ไปรษณีย์ผ่านแบบฟอร์มเข้าสู่ระบบบนเว็บไซต์:

Acl SiteMailRu dstdomain .mail.ru
วิธี acl วิธีการโพสต์ POST
http_access ปฏิเสธวิธี Pupkin โพสต์ SiteMailRu

ข้อจำกัดของผู้ใช้

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

เครื่องมือพร็อกซีเซิร์ฟเวอร์ Squid ช่วยให้คุณบรรลุเป้าหมายนี้ได้หลายวิธี:

    วิธีแรกคือการเพิ่มประสิทธิภาพการแคชวัตถุ

    ประการที่สองคือการจำกัดเวลาสำหรับผู้ใช้บางราย ซึ่งไม่ถูกต้องทั้งหมด

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

จำกัดเวลา

คุณสามารถจำกัดผู้ใช้ตามเวลาได้ดังนี้:

ชื่อ ACL เวลา วัน hh:mm-HH:MM

วันไหน: M - วันจันทร์, T - วันอังคาร, W - วันพุธ, H - วันพฤหัสบดี, F - วันศุกร์, A - วันเสาร์, S - วันอาทิตย์

ในกรณีนี้ hh:mm ต้องน้อยกว่า HH:MM กล่าวคือ คุณสามารถระบุได้ตั้งแต่เวลา 00:00-23:59 น. แต่คุณไม่สามารถระบุ 20:00-09:00 น. ได้

เราห้ามไม่ให้ Vasya คนเดียวกันเข้าถึงอินเทอร์เน็ตตั้งแต่เวลา 10.00 น. ถึง 15.00 น. ทุกวัน:

เวลา Acl เวลา Pupkin 10:00-15:00 น
http_access ปฏิเสธ Pupkin TimePupkin

หากคุณต้องการอนุญาตให้ Vasya ใช้โปรแกรม Mirc ตั้งแต่ 13 ถึง 14 ชั่วโมง ให้เขียน:

เวลา ACL เวลาฟักทอง 13.00-14.00 น
http_access อนุญาต Pupkin TimePupkin Mirc
http_access ปฏิเสธ Pupkin Mirc

จะทำอย่างไรถ้าคุณต้องการห้ามหรืออนุญาตในบางวันของสัปดาห์? Squid ยังให้คุณทำสิ่งนี้ได้เช่นตั้งแต่ 13 ถึง 14 ในวันจันทร์และวันอาทิตย์:

เวลา Acl เวลา Pupkin MS 13:00-14:00 น

อย่างที่คุณเห็นไม่มีอะไรซับซ้อนเกี่ยวกับเรื่องนี้

จำกัดความเร็ว

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

พูลได้รับการควบคุมโดยใช้พารามิเตอร์สามตัว: Delay_class, Delay_parameters, Delay_access ระบุจำนวนพูลโดยใช้พารามิเตอร์ Delay_pools

พูลสามารถมีได้สามคลาส:

    การไหลของเบียร์ทั้งหมดถูกจำกัดไว้เพียงการแตะครั้งเดียว (สำหรับทั้งเครือข่าย)

    เบียร์ที่ไหลทั้งหมดถูกจำกัดไว้ที่การแตะเพียงครั้งเดียว แต่การแตะจะแบ่งออกเป็นก๊อก (สำหรับแต่ละ IP)

    การไหลของเบียร์ทั้งหมดถูกจำกัดไว้ที่การแตะเพียงครั้งเดียว แต่การแตะจะแบ่งออกเป็นการแตะย่อย (บนเครือข่ายย่อย) ซึ่งยังแบ่งออกเป็นการแตะขนาดเล็กด้วย (สำหรับแต่ละ IP)

รูปแบบ:

Delay_pools จำนวน_ประกาศ_พูล
การกระทำล่าช้า _access pool_number acl_name

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

Delay_class pool_number pool_class
พารามิเตอร์ล่าช้า_พารามิเตอร์pool_number

พารามิเตอร์จะแตกต่างกันไปขึ้นอยู่กับคลาสพูล:

สำหรับชั้นเฟิร์สคลาส:

Delay_parameters 1 ไบต์_สำหรับทั้งเครือข่าย

สำหรับชั้นประถมศึกษาปีที่ 2:

Delay_parameters 1 per_entire_network per_client

สำหรับชั้นประถมศึกษาปีที่ 3:

Delay_parameters 1 per_entire_network per_subnet per_client

ตัวอย่างเช่น เรามีช่องสัญญาณ 128 Kbit (โดยเฉลี่ย 15 Kbytes ต่อวินาที) และเราต้องการให้ Vasya (Pupkin) เพียง 4 Kbytes/วินาที (แก้วเล็ก ๆ หนึ่งแก้วสำหรับทุกอย่าง) และให้แผนกการเขียนโปรแกรม (Prog) เพียง 10 Kbytes /วินาที วินาที และสำหรับแต่ละไฟล์เพียง 5 Kb/วินาที (เพียงสองแก้ว) คนอื่นๆ จะถูกจำกัดไว้ที่ 2 KB/วินาที สำหรับแต่ละไฟล์ และ 10 KB/วินาที สำหรับทุกคน และไฟล์ mp3 (สื่อ) ถูกจำกัดไว้ที่ 3 KB/วินาที สำหรับทุกคน (สำหรับเบียร์ทั้งถังก็แค่ก๊อกเล็กๆ) จากนั้นเราก็เขียน:

Acl Prog src 192.168.0.1-192.168.0.9
acl Pupkin src 192.168.0.10
acl LocalNet src 192.168.0.0/255.255.255.0
สื่อ acl urlpath_regex -i .mp3$ .asf$ .wma$

ดีเลย์_พูล 4
# ก่อนอื่นมาจำกัด mp3 กันก่อน
ดีเลย์_คลาส 1 1
ล่าช้า_พารามิเตอร์ 1 3000/3000
Delay_access 1 อนุญาตสื่อ
Delay_access 1 ปฏิเสธทั้งหมด
# มาจำกัดวาสยาผู้น่าสงสารกันเถอะ
ดีเลย์_คลาส 2 1
ความล่าช้า_พารามิเตอร์ 2 4000/4000
Delay_access 2 อนุญาต Pupkin
Delay_access 2 ปฏิเสธทั้งหมด
#จำกัดแผนกโปรแกรมมิ่ง
ดีเลย์_คลาส 3 2
พารามิเตอร์ล่าช้า 3 10,000/10,000 5,000/5000
Delay_access 3 อนุญาต Prog
Delay_access 3 ปฏิเสธทั้งหมด
# ทีนี้มาจำกัดส่วนที่เหลือกันดีกว่า (คลาสพูลที่สอง)
ดีเลย์_คลาส 4 2
ความล่าช้า_พารามิเตอร์ 4 10,000/10,000 2000/2000
Delay_access 4 ปฏิเสธสื่อ
Delay_access 4 ปฏิเสธ Pupkin
Delay_access 4 ปฏิเสธ Prog
Delay_access 4 อนุญาต LocalNet
Delay_access 4 ปฏิเสธทั้งหมด

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

ดีเลย์_คลาส 1 2
พารามิเตอร์ล่าช้า 1 -1/-1 5,000/15000
Delay_access 1 อนุญาต LocalNet
Delay_access 1 ปฏิเสธทั้งหมด

ดังนั้นเราจึงจัดสรรช่องสัญญาณสูงสุดให้กับเครือข่ายและเครือข่ายย่อยทั้งหมดของเรา (-1 หมายถึงไม่จำกัด) และเราให้ความเร็วสูงสุดแก่ผู้ใช้แต่ละคนที่ 5 Kb/วินาที หลังจากที่เขาดาวน์โหลดไปที่ ความเร็วสูงสุด 15 KB แรกของเอกสาร

ด้วยวิธีนี้ลูกค้าจะไม่กินทั้งช่อง แต่จะได้รับ 15 KB แรกอย่างรวดเร็ว

การเพิ่มประสิทธิภาพการแคชวัตถุใน Squid

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

เพื่อแก้ไขสถานการณ์ดังกล่าว พารามิเตอร์รีเฟรช_รูปแบบในไฟล์การตั้งค่าพร็อกซีเซิร์ฟเวอร์ Squid นั้นมีจุดประสงค์ แต่มีสูตรครบถ้วน ฯลฯ เราจะไม่พิจารณามัน

Refresh_pattern [-i] สตริงพารามิเตอร์ MINV เปอร์เซ็นต์ MAXV

พารามิเตอร์นี้ใช้เพื่อกำหนดอายุของอ็อบเจ็กต์ (ไฟล์อ่าน) ในแคช ว่าควรอัพเดตหรือไม่

MINV (เวลาขั้นต่ำ) - เวลาเป็นนาทีเมื่อวัตถุในแคชถูกพิจารณาว่าใหม่

MAXV (เวลาสูงสุด) - เวลาสูงสุดเป็นนาทีเมื่อถือว่าวัตถุใหม่

พารามิเตอร์เป็นอย่างใดอย่างหนึ่งต่อไปนี้:

    override-expire - ละเว้นข้อมูลเกี่ยวกับการหมดอายุของวัตถุและใช้ MINV

    override-lastmod - ละเว้นข้อมูลเกี่ยวกับวันที่แก้ไขไฟล์ ใช้ MINV

    โหลดซ้ำเป็น ims - แทนที่จะส่งคำขอไคลเอนต์ "อย่าแคชเอกสาร" (ไม่มีแคช) ให้ส่งคำขอ "If-Modified-Since"

    ละเว้น-โหลดซ้ำ - ละเว้นคำขอไคลเอ็นต์ "อย่าแคชเอกสาร" (ไม่มีแคช) หรือ "โหลดเอกสารซ้ำ" (โหลดซ้ำ)


และแล้วเราก็มาถึงสิ่งที่สำคัญที่สุด ไฟล์ประเภทใดที่มีการอัพเดตบ่อยน้อยที่สุด? ตามกฎแล้วไฟล์เหล่านี้คือไฟล์เพลงและรูปภาพที่หลากหลาย

มาตั้งค่าความสดใหม่ของวัตถุ เพื่อจุดประสงค์นี้ เราจะระบุสำหรับรูปภาพและไฟล์เพลง เช่น มากถึง 30 วัน (43200 นาที):

Refresh_pattern -i .gif$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .png$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .jpg$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .jpeg$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .pdf$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .zip$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .tar$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .gz$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .tgz$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .exe$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .prz$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .ppt$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .inf$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .swf$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .mid$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .wav$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ
รีเฟรช_รูปแบบ -i .mp3$ 43200 100% 43200 แทนที่-lastmod แทนที่-หมดอายุ

การตั้งค่าที่แสดงข้างต้นเป็นเพียงตัวอย่างเท่านั้น เพื่อให้สาระสำคัญมีความชัดเจน

ตอนนี้คุณสามารถตรวจสอบประสิทธิภาพของพร็อกซีเซิร์ฟเวอร์ของคุณได้ มันจะเพิ่มขึ้นอย่างแน่นอน

บทสรุป

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

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

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

ในการติดตั้งพร็อกซีเซิร์ฟเวอร์ ฉันจะใช้บริการสำเร็จรูปและกำหนดค่าและ . เอาล่ะ มาเริ่มกันเลย

การเปิดการเข้าถึงอินเทอร์เน็ตสำหรับคอมพิวเตอร์บนเครือข่ายท้องถิ่น

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

มาสร้างไฟล์ด้วยการตั้งค่ากัน

sudo touch /etc/nat

มาเพิ่มสิ่งต่อไปนี้ในไฟล์นี้:

#!/bin/sh #Enable การส่งต่อแพ็กเก็ต echo 1 > /proc/sys/net/ipv4/ip_forward #อนุญาตการรับส่งข้อมูลไปยัง iptables -A INPUT -i lo -j ACCEPT #อนุญาตการเข้าถึงจากเครือข่ายภายในไปยัง iptables ภายนอก - ส่งต่อ - i eth1 -o eth0 -j ยอมรับ #Enable NAT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE #Allow replies from the external network iptables -A FORWARD -i eth0 -m state --state ก่อตั้งแล้ว เกี่ยวข้อง -j ยอมรับ #ปฏิเสธการเข้าถึงจากภายนอกสู่เครือข่ายภายใน iptables -A FORWARD -i eth0 -o eth1 -j ปฏิเสธ

มาบันทึกไฟล์และกำหนดสิทธิ์การดำเนินการให้กับมัน:

sudo chmod +x /etc/nat

มาเพิ่มการเปิดตัว NAT (line โพสต์อัพ /etc/nat) ไปยังไฟล์ที่มีการตั้งค่าเครือข่าย:

sudo nano /etc/network/interfaces

ไฟล์ของคุณควรมีลักษณะดังนี้:

อัตโนมัติจริง iface แท้จริง inet loopback auto eth0 iface eth0 ที่อยู่คงที่ inet 192.168.1.104 netmask 255.255.255.0 เกตเวย์ 192.168.1.1 auto eth1 iface eth1 ที่อยู่คงที่ inet 192.168.0.1 netmask 255.255.255.0 โพสต์อัพ /etc/nat

บันทึก ปิด และรีบูตเซิร์ฟเวอร์:

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

การติดตั้งและกำหนดค่า Squid3

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

ติดตั้งแพ็คเกจ squid3

sudo aptitude ติดตั้ง squid3

หลังการติดตั้ง ให้เปิดไฟล์ /etc/squid3/squid.conf

sudo นาโน /etc/squid3/squid.conf

ก่อนอื่น เรามาค้นหาเส้นกันก่อน http_พอร์ต 3128และเพิ่มมูลค่าให้กับมัน สกัดกั้นและที่อยู่ IP ของเซิร์ฟเวอร์เพื่อให้กลายเป็นดังนี้:

Http_port 192.168.0.1:3128 สกัดกั้น

สิ่งนี้ทำเพื่อที่ว่าในอนาคตเราไม่จำเป็นต้องกำหนดค่าพร็อกซีเซิร์ฟเวอร์บนเครื่องไคลเอนต์ทั้งหมด (พร็อกซีจะโปร่งใส)

ตอนนี้ เราต้องระบุเครือข่ายที่พร็อกซีเซิร์ฟเวอร์ของเราใช้งานได้ หากต้องการทำสิ่งนี้ ให้ยกเลิกการใส่เครื่องหมายข้อคิดเห็นในบรรทัด acl localnet src 192.168.0.0/16 # RFC1918 เครือข่ายภายในที่เป็นไปได้และระบุคำนำหน้าเน็ตเวิร์กมาสก์ 24 แทน 16 (เนื่องจากมาส์กของเราคือ 255.255.255.0) ผลลัพธ์ที่ได้ควรมีลักษณะดังนี้:

Acl localnet src 192.168.0.0/24 # RFC1918 เครือข่ายภายในที่เป็นไปได้

อนุญาตให้เข้าถึงพร็อกซีจากเครือข่ายภายในโดยไม่ใส่เครื่องหมายบรรทัด

Http_access อนุญาต localnet

ตอนนี้เรามากำหนดค่าแคชกันดีกว่า ต้องหาเส้น. cache_dir ufs /var/spool/squid3 100 16 256ยกเลิกการใส่เครื่องหมายข้อคิดเห็นและเปลี่ยนค่าเป็นดังนี้:

Cache_dir ufs /var/spool/squid3 2048 16 256

ยกเลิกการแสดงความคิดเห็นบรรทัด maximum_object_size_in_memory 512 กิโลไบต์จึงระบุขนาดสูงสุดของวัตถุแคชในหน่วยความจำ

ยกเลิกการแสดงความคิดเห็นบรรทัด cache_mem 256 เมกะไบต์และแทนที่ค่าด้วย 256 บน 1024 จึงระบุจำนวนหน่วยความจำที่อนุญาต

ดังนั้นเราจึงกำหนดค่าแคช การแคชควรลดภาระในช่องและเพิ่มความเร็วในการเปิดเพจ แคชจะถูกล้างเมื่อรีบูตเซิร์ฟเวอร์

ตอนนี้เรามาเปิดใช้งานการบันทึก เพื่อดำเนินการนี้ ยกเลิกการใส่เครื่องหมายบรรทัด access_log daemon:/var/log/squid3/access.log ปลาหมึกและเพิ่มด้านล่าง logfile_rotate 31(ไฟล์บันทึกจะถูกเก็บไว้เป็นเวลา 31 วัน หลังจากนั้นไฟล์ที่เก่าที่สุดจะถูกเขียนทับ)

เกี่ยวกับเรื่องนี้ การตั้งค่าพื้นฐาน squid3 สามารถยุติได้ มารีสตาร์ท squid3 กัน

sudo service squid3 รีสตาร์ท

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

# เปลี่ยน http เป็นพร็อกซี iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80.8080 -j DNAT -- ถึง 192.168.0.1:3128

จริงๆแล้วตอนนี้ไฟล์ของฉัน /etc/natดูเหมือนว่านี้:

#!/bin/sh #Enable การส่งต่อแพ็กเก็ต echo 1 > /proc/sys/net/ipv4/ip_forward #อนุญาตการรับส่งข้อมูลไปยัง iptables -A INPUT -i lo -j ACCEPT #อนุญาตการเข้าถึงจากเครือข่ายภายในไปยัง iptables ภายนอก - ส่งต่อ - i eth1 -o eth0 -j ยอมรับ #Enable NAT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE #Allow replies from the external network iptables -A FORWARD -i eth0 -m state --state ก่อตั้งขึ้นที่เกี่ยวข้อง -j ยอมรับ # ปฏิเสธการเข้าถึงจากภายนอกไปยังเครือข่ายภายใน iptables -A FORWARD -i eth0 -o eth1 -j ปฏิเสธ # เปลี่ยน http เป็นพร็อกซี iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80.8080 -j DNAT -- ถึง 192.168.0.1:3128

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

หากคุณมีคำถามใด ๆ ยินดีต้อนรับสู่ความคิดเห็น

วันนี้เราจะพูดถึงพร็อกซีเซิร์ฟเวอร์

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

เพื่อแก้ไขปัญหานี้ คุณสามารถใช้โซลูชันที่เป็นกรรมสิทธิ์พร้อมอินเทอร์เฟซแบบภาพได้ เช่น UserGate แต่ฉันไม่สามารถทำให้มันทำงานได้อย่างถูกต้องบนพีซีที่ใช้ Windows 7 และต้องชำระเงิน :) ทางออกที่ดีที่สุดฉันคิดว่าเราได้รับสืบทอด Squid จาก *nix คุณสามารถดาวน์โหลดสิ่งสร้างนี้ได้ที่: Squid 2.7 (เวอร์ชันล่าสุด ณ เวลาที่เขียน)

ดาวน์โหลดและแตกไฟล์ โดยควรไปที่รูทของดิสก์ อย่าพยายามเรียกใช้สิ่งใดจากที่นั่น - ไม่มี GUI ในโปรแกรมนี้ - และอย่าปล่อยให้สิ่งนั้นทำให้คุณกลัว :)
จากนั้นเปิดคอนโซล - Win+R / сmd / ไปที่โฟลเดอร์ที่ติดตั้ง squid (ฉันจะเขียนเพิ่มเติมสำหรับเส้นทางการติดตั้ง c:\squid)

ค:\
ซีดี c:\squid\sbin

ตอนนี้คุณต้องติดตั้งปลาหมึกเป็น บริการวินโดวส์สั่งการ:

ปลาหมึก -i -f c:/squid/etc/squid.conf -n Squid27

โดยที่ Squid27 คือชื่อบริการ ซึ่งโดยหลักการแล้วสามารถเป็นชื่อที่ถูกต้องได้

ตอนนี้คุณต้องแก้ไขไฟล์การตั้งค่า squid.conf ซึ่งอยู่ในโฟลเดอร์ c:/squid/etc/ ฉันแนะนำให้สำรองข้อมูล ไฟล์ต้นฉบับ- จากนั้น ให้ลบข้อความทั้งหมดออกจากไฟล์นี้และเขียนข้อความต่อไปนี้:

http_พอร์ต 3128
acl localnet src 192.168.3.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl ทั้งหมด src 0.0.0.0/0.0.0.0
http_access อนุญาต localnet
http_access อนุญาต localhost
http_access ปฏิเสธทั้งหมด

cache_log ไม่มี
cache_store_log ไม่มี

ที่ไหน

  • http_port 3128 - หมายเลขพอร์ตบนเซิร์ฟเวอร์ที่ SQUI ทำงาน นั่นคือในการตั้งค่าไคลเอนต์เราจะระบุที่อยู่เซิร์ฟเวอร์และพอร์ตนี้
  • acl localnet src 192.168.0.0/255.255.0.0- บรรทัดนี้ระบุช่วงของที่อยู่ IP ที่สามารถเชื่อมต่อกับพร็อกซีของเราได้ มาสก์สามารถระบุเป็น /8, /16, /24 (สำหรับ 255.0.0.0, 255.255.0.0, 255.255.255.0 ตามลำดับ) และ localnet คือชื่อ โดยพื้นฐานแล้ว ด้วยบรรทัดนี้ เราจะประกาศตัวแปรที่เราจะทำงานต่อไป บรรทัดถัดไปประกาศตัวแปร all ในทำนองเดียวกัน โดยระบุ ips ที่มีอยู่ทั้งหมด
  • http_access อนุญาต localnet - ด้วยบรรทัดนี้เราอนุญาตให้เข้าถึงจาก ip ที่ระบุในตัวแปร localnet ไปยังพร็อกซีของเรา
  • http_access ปฏิเสธทั้งหมด - เราปฏิเสธไม่ให้ผู้อื่นเข้าถึงพรอกซี การอนุญาตเหล่านี้ทำงานจากบนลงล่าง ดังนั้นจึงต้องป้อนบรรทัดนี้เป็นอันดับสุดท้าย! มิฉะนั้นจะไม่มีใครเข้าถึงผู้รับมอบฉันทะ :)
  • cache_log ไม่มี - จำเป็น เช่นบรรทัดถัดไปเพื่อให้บันทึกไม่ขยายเป็นกิกะไบต์)
คุณยังสามารถป้อนพารามิเตอร์ต่อไปนี้ได้:
  • cache_mem 32 MB - กำหนดขนาดของแคชปลาหมึกเพิ่มเติม แรม;
  • cache_dir ufs c:/squid/var/แคช 100 16 256- กำหนดเส้นทางไปยังโฟลเดอร์แคชขนาดเป็น MB (100) และจำนวนโฟลเดอร์ย่อย (ทำไมอย่างหลัง - ฉันยังไม่เข้าใจ :))
ตอนนี้คุณต้องลบ ".default" ออกจากชื่อไฟล์ mime.conf ในโฟลเดอร์เดียวกันหรือเพียงแค่สร้างไฟล์ข้อความว่างที่มีชื่อเดียวกัน นี่เป็นสิ่งจำเป็นในการสร้างแคช ในคอนโซลเราพิมพ์คำสั่ง (ขณะอยู่ในโฟลเดอร์ sbin):

ปลาหมึก -z -f c:\squid\etc\squid.conf

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

เริ่มต้นสุทธิ Squid27

หยุด:

ปลาหมึกหยุดสุทธิ27

การกำหนดค่าใหม่:

squid -n Squid27 -f c:/squid/etc/squid.conf -k กำหนดค่าใหม่

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

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

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

คุณสมบัติของการบูรณาการกับ Active Directory

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

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

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

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

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

เนื่องจาก Active Directory มีโครงสร้างที่ซับซ้อนกว่าและมี “ผู้ดำเนินการ” จำนวนมาก เพื่อที่คุณจะได้ไม่สับสนในที่อยู่และชื่อโฮสต์ที่เราใช้ เราจึงได้เตรียมไดอะแกรมขนาดเล็ก:


ตัวอย่างของเราจะใช้โดเมน Active Directory ที่มีชื่อ FQDN interface31.labซึ่งตัวควบคุมโดเมนสองตัวรับผิดชอบ SRV-DC01และ SRV-DC02โดยมีที่อยู่ 192.168.31.101 และ 102 ตามลำดับ คอนโทรลเลอร์ทั้งสองใช้ Windows Server 2012 R2

เราเตอร์จะขึ้นอยู่กับ เซิร์ฟเวอร์อูบุนตู 14.04 (Debian 7/8) และมีชื่อ SRV-GW01โดยมีที่อยู่ 192.168.31.100 นอกจากนี้ยังมีกลุ่มเซิร์ฟเวอร์บนเครือข่ายที่มีที่อยู่คงที่ 192.168.31.103-105 และพีซีไคลเอนต์ที่มีที่อยู่ออกโดยเซิร์ฟเวอร์ DHCP ในช่วง 192.168.31.111-199

การตั้งค่าเครือข่าย

เครือข่ายได้รับการกำหนดค่าด้วยวิธีดั้งเดิมโดยการแก้ไขไฟล์การกำหนดค่า /etc/เครือข่าย/อินเทอร์เฟซ- สมมติว่าเครือข่ายภายนอกสอดคล้องกับอินเทอร์เฟซ eth0และภายใน eth1- จากการตั้งค่า เราควรจะได้สิ่งนี้:

อัตโนมัติแท้จริง
iface หรือ inet loopback

อัตโนมัติ eth0
iface eth0 inet คงที่
ที่อยู่ 172.18.0.106
เน็ตมาสก์ 255.255.240.0
เกตเวย์ 172.18.0.1
ส่วนต่อประสานการค้นหา DNS31.lab
DNS-เนมเซิร์ฟเวอร์ 192.168.31.101 192.168.31.102

อัตโนมัติ eth1
iface eth1 inet แบบคงที่
ที่อยู่ 192.168.31.100
เน็ตมาสก์ 255.255.255.0

โพสต์อัพ /etc/nat

โปรดทราบว่าแม้ว่าจะอยู่ในการตั้งค่า อินเทอร์เฟซภายนอกมีการใช้ที่อยู่ภายนอกและเกตเวย์ ที่อยู่เซิร์ฟเวอร์ DNS จะถูกระบุภายใน นอกจากนี้ยังมีตัวเลือก ค้นหา DNSซึ่งกำหนดโดเมนสำหรับการจำแนกชื่อที่ไม่ใช่ FQDN ซึ่งหมายความว่าชื่อย่อแต่ละชื่อจะมีการต่อท้ายโดเมนที่ระบุโดยอัตโนมัติ เช่น srv-dc01จะถูกเพิ่มเข้าไป srv-dc01.interface31.lab.

หากคุณสับสนโดยระบุ DNS ภายในในการตั้งค่าภายนอก การ์ดเครือข่ายจากนั้นคุณสามารถย้ายบรรทัดเหล่านี้ไปที่ส่วน eth1 ได้ ซึ่งจะไม่ส่งผลกระทบต่อการทำงานของเซิร์ฟเวอร์

เซิร์ฟเวอร์ DNS ของ ISP หรือ DNS สาธารณะควรระบุไว้ในส่วน ผู้ส่งต่อเซิร์ฟเวอร์ DNS ภายในบนตัวควบคุมโดเมนใดๆ

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

ออโต้ eth0
iface eth0 inet dhcp
ส่วนต่อประสานการค้นหา DNS31.lab
DNS-เนมเซิร์ฟเวอร์ 192.168.31.101 192.168.31.102

ชัดเจนมาก การตั้งค่าที่ระบุจะบล็อกสิ่งที่ได้รับจากผู้ให้บริการโดยอัตโนมัติ

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

Nslookup srv-dc02

เนมเซิร์ฟเวอร์โดเมนที่ระบุตัวแรก ในกรณีของเรา 192.168.33.101 ควรตอบคุณและให้ชื่อ FQDN แบบเต็มของโฮสต์และที่อยู่ IP แก่คุณ

จากนั้นตรวจสอบความละเอียดของชื่อภายนอก:

Nslookup ya.ru

คุณควรได้รับการตอบกลับจากเซิร์ฟเวอร์ภายในด้วย ณ จุดนี้ ถือว่าการตั้งค่าเครือข่ายเสร็จสมบูรณ์แล้ว

การกำหนดค่า NAT และไฟร์วอลล์

การตั้งค่าไฟร์วอลล์พื้นฐานโดยพื้นฐานแล้วไม่แตกต่างจากตัวเลือกเราเตอร์เวิร์กกรุ๊ป โดยมีข้อยกเว้นหนึ่งประการ เนื่องจากพร็อกซีของเราไม่ชัดเจน จึงเป็นไปได้ที่จะออกโดยตรงผ่าน NAT หากเบราว์เซอร์ไม่ได้รับการกำหนดค่าให้ทำงานกับพร็อกซีเซิร์ฟเวอร์ด้วยเหตุผลบางประการ ดังนั้น เราจะจำกัดการเข้าถึงผ่าน HTTP (พอร์ต 80) สำหรับไคลเอ็นต์ทั้งหมดบนเครือข่ายท้องถิ่น ยกเว้นเซิร์ฟเวอร์และแต่ละโฮสต์ที่อาจต้องมีการเข้าถึงโดยตรง

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

มาสร้างและเปิดไฟล์กัน /etc/nat

แตะ /etc/nat

เพิ่มเนื้อหาต่อไปนี้ลงไป:

# เปิดใช้งานการส่งต่อแพ็กเก็ต
เสียงสะท้อน 1 > /proc/sys/net/ipv4/ip_forward

# รีเซ็ตการตั้งค่าไฟร์วอลล์
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# อนุญาตการเข้าถึงจากเครือข่ายท้องถิ่น
iptables -A อินพุต -i eth1 -j ยอมรับ

# อนุญาตการเชื่อมต่อที่เราเริ่มต้นจากภายนอก
iptables -A INPUT -i eth0 -m state - สถานะที่จัดตั้งขึ้นที่เกี่ยวข้อง -j ยอมรับ

# อนุญาตการเชื่อมต่อผ่าน SSH
iptables -A อินพุต -i eth0 -p tcp --dport 22 -j ยอมรับ

#เราห้ามคนเข้าจากภายนอก
iptables -A อินพุต -i eth0 -j DROP

# อนุญาตการเชื่อมต่อระบบขนส่งมวลชนที่เราริเริ่มจากภายนอก
iptables -A FORWARD -i eth0 -o eth1 -m state - สถานะที่จัดตั้งขึ้น, เกี่ยวข้อง -j ยอมรับ

#อนุญาตเซิร์ฟเวอร์ HTTP
iptables -A FORWARD -i eth1 -s 192.168.31.101 -p tcp --dport 80 -j ยอมรับ
...
iptables -A FORWARD -i eth1 -s 192.168.31.105 -p tcp --dport 80 -j ยอมรับ

#ห้ามใช้ HTTP
iptables -A ส่งต่อ -i eth1 -p tcp --dport 80 -j DROP

# เราห้ามการจราจรจากภายนอก
iptables -A ส่งต่อ -i eth0 -o eth1 -j DROP

# เปิดใช้งาน NAT
iptables -t nat -A การโพสต์ -o eth0 -s 192.168.31.0/24 -j MASQUERADE

ส่วน #อนุญาตเซิร์ฟเวอร์ HTTPหมายถึงชุดของกฎที่เหมือนกันสำหรับแต่ละโฮสต์ที่เราอนุญาตให้เข้าถึงอินเทอร์เน็ต โดยข้ามพร็อกซี ในกรณีของเรา ที่อยู่เหล่านี้คือตั้งแต่ 192.168.31.101 ถึง 192.168.31.105 เพื่อไม่ให้ตัวอย่างเกะกะ เราจึงเขียนที่อยู่แรกและที่อยู่สุดท้าย โดยคั่นด้วยจุดไข่ปลา (ซึ่งไม่ควรอยู่ในการกำหนดค่าจริง)

มาบันทึกไฟล์และให้สิทธิ์ดำเนินการ:

Chmod +x /etc/nat

มารีบูตกันเถอะ:

หลังจากนั้นคุณสามารถตรวจสอบอินเทอร์เน็ตบนไคลเอนต์ได้ซึ่งรวมอยู่ในรายการข้อยกเว้น - มันจะอยู่ที่นั่น ส่วนไคลเอนต์อื่น ๆ ก็จะไม่เป็นเช่นนั้น โปรโตคอลอื่นๆ: เมล (SMTP, POP3, IMAP), FTP, HTTPS ฯลฯ ควรทำงานกับลูกค้าทุกคน

การตั้งค่าการซิงโครไนซ์เวลา

เพื่อให้ทำงานกับโดเมน Active Directory ได้สำเร็จและผ่านการรับรองความถูกต้องของ Kerberos สิ่งสำคัญคือนาฬิกาของเราเตอร์จะต้องซิงโครไนซ์กับนาฬิกาของตัวควบคุมโดเมน

มาติดตั้งไคลเอนต์ NTP:

ฉลาดรับการติดตั้ง ntp

จากนั้นเปิดไฟล์กำหนดค่า /etc/ntp.confและแสดงความคิดเห็นทุกบรรทัดที่ขึ้นต้นด้วย เซิร์ฟเวอร์- จากนั้นเราจะเพิ่มสองรายการของเรา:

เซิร์ฟเวอร์ srv-dc01.interface31.lab
เซิร์ฟเวอร์ srv-dc02.interface31.lab

ดังที่คุณอาจเดาได้แล้ว เราได้ใส่ความคิดเห็นเกี่ยวกับรายการเซิร์ฟเวอร์เวลาของบุคคลที่สามและเพิ่มตัวควบคุมโดเมนในฐานะนี้

จากนั้นเพิ่มสองบรรทัดต่อท้ายไฟล์ที่จำกัดการทำงานของไคลเอ็นต์ NTP ไปยังอินเทอร์เฟซภายใน:

อินเทอร์เฟซละเว้นไวด์การ์ด
อินเทอร์เฟซฟัง eth1

บันทึกไฟล์และเริ่มบริการใหม่:

บริการ ntp รีสตาร์ท

เพื่อให้แน่ใจว่า NTP ทำงานบนอินเทอร์เฟซภายในเท่านั้น ให้รัน:

เอสเอส -ล | เกรป 123

เอาต์พุตคำสั่งควรมีเฉพาะที่อยู่ภายในและที่อยู่ลูปแบ็คในเครื่อง (localhost):

คุณสามารถตรวจสอบการซิงโครไนซ์ด้วยคำสั่ง:

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

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

การตั้งค่าพร็อกซีเซิร์ฟเวอร์แคช Squid3

ความสนใจ!หากคุณกำลังย้ายเซิร์ฟเวอร์สำหรับเวิร์กกรุ๊ป อย่าลืมลบถุงพลาสติก DNSMAQหรือเซิร์ฟเวอร์ DNS และ DHCP อื่น ๆ!

สำคัญ!เริ่มตั้งแต่ เดเบียน 9และ อูบุนตู 16.04แทนที่จะเป็นแพ็คเกจ ปลาหมึก3ใช้อีกครั้ง ปลาหมึกและควรเปลี่ยนเส้นทางทั้งหมดในลักษณะเดียวกันนั่นคือ แทน /etc/squid3ใช้ /etc/squid.

ติดตั้งพร็อกซีเซิร์ฟเวอร์ squid3 ด้วยคำสั่ง:

Apt-get ติดตั้ง squid3

มาเปิดไฟล์คอนฟิกูเรชันกัน /etc/squid3/squid.confและตั้งค่าการกำหนดค่าขั้นต่ำโดยเพิ่มหรือยกเลิกการใส่เครื่องหมายบรรทัดที่ระบุในส่วนที่เหมาะสม

มาระบุองค์ประกอบ acl สำหรับเครือข่ายท้องถิ่น:

Acl โลคัลเน็ต src 192.168.31.0/24

ชุดรายการเข้าถึงขั้นต่ำ:

Http_access อนุญาต localnet
http_access อนุญาต localhost
http_access ปฏิเสธทั้งหมด

อินเทอร์เฟซ พอร์ต และโหมดการทำงานของพร็อกซี:

Http_port 192.168.31.100:3128
http_พอร์ต 127.0.0.1:3128

การตั้งค่าแคช:

แคช_mem 1024 MB
maximum_object_size_in_memory 512 กิโลไบต์

cache_dir ufs / var /spool/squid3 2048 16 256

maximum_object_size 4 MB

การตั้งค่าบันทึก:

Access_log daemon:/var/log/squid3/access.log ปลาหมึก
logfile_rotate 31

สำหรับ squid 3.1 และต่ำกว่า บรรทัดแรกควรมีลักษณะดังนี้:

Access_log /var/log/squid3/access.log ปลาหมึก

บันทึกและตรวจสอบการกำหนดค่า:

ตรวจสอบ Squid3 -k

หากไม่มีข้อผิดพลาด ให้รีสตาร์ท squid:

บริการ squid3 รีสตาร์ท

สร้างแคชใหม่:

บริการปลาหมึก3หยุด
ปลาหมึก3 -z
บริการ squid3 เริ่มต้น

บนเซิร์ฟเวอร์ DNS ของโดเมน ให้เพิ่มระเบียน A สำหรับเราเตอร์ของเรา:

ในการตั้งค่าเบราว์เซอร์ ให้ระบุชื่อเซิร์ฟเวอร์ FQDN แบบเต็มและพอร์ต 3128:

เนื่องจากยังไม่มีการกำหนดข้อจำกัด คุณจึงควรสามารถเข้าถึงอินเทอร์เน็ตได้

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

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

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

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

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

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

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

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

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

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

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

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

การกระจายพร็อกซีเซิร์ฟเวอร์มักจะมีไฟล์การกำหนดค่าเช่น .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

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

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

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

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

ในบางกรณี จะมีประโยชน์ในการบันทึกจำนวน RAM ที่ Squid จะใช้ ซึ่งสามารถทำได้โดยใช้คำสั่ง 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 (ตั้งค่าพารามิเตอร์เป็น ในขั้นตอนนี้ไม่ได้ผลิต) สามารถติดตั้งได้โดยเลือกรายการเมนู System จากนั้นเลือก Package จากนั้นเลือก Available Package แพ็คเกจ Squid Stable ควรมีอยู่ในหน้าต่างที่เหมาะสม มาเลือกกันเลย จำเป็นต้องตั้งค่าต่อไปนี้: Proxy Interface: LAN คุณสามารถทำเครื่องหมายที่ช่องถัดจากบรรทัด Transparent Proxy เลือกที่อยู่สำหรับบันทึกและทำเครื่องหมายภาษารัสเซียเป็นภาษาที่ต้องการ คลิกบันทึก

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

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

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

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

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

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

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

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

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



 


อ่าน:



รูปแบบแป้นพิมพ์ QWERTY และ AZERTY แป้นพิมพ์ Dvorak เวอร์ชันพิเศษ

รูปแบบแป้นพิมพ์ QWERTY และ AZERTY แป้นพิมพ์ Dvorak เวอร์ชันพิเศษ

เป้าหมายของรูปแบบแป้นพิมพ์ที่มีอยู่ทั้งหมดคือการเพิ่มความเร็วและความสะดวกในการพิมพ์ข้อความของเครื่อง เลย์เอาต์ถูกสร้างขึ้นด้วยจิตวิญญาณนี้...

เกาะเซาวิเซนเต เกาะเซาวิเซนเต

เกาะเซาวิเซนเต เกาะเซาวิเซนเต

แหลมซานวินเซนเต (Cabo de São Vicente) เป็นจุดตะวันตกเฉียงใต้สุดของยุโรปและเป็นสถานที่ที่น่าสนใจมาก หน้าผาสูงชัน...

กฎที่เราฝ่าฝืน สามารถวางข้อศอกบนโต๊ะได้หรือไม่?

กฎที่เราฝ่าฝืน สามารถวางข้อศอกบนโต๊ะได้หรือไม่?

อย่าวางข้อศอกบนโต๊ะ อย่าพูดคุยขณะเคี้ยวอาหาร พ่อแม่ของเราบอกเราเกี่ยวกับกฎเหล่านี้ทั้งหมดในวัยเด็ก และกฎหลายข้อเหล่านี้เรา...

แฟลชไดรฟ์ USB ตัวใดที่น่าเชื่อถือและเร็วที่สุด?

แฟลชไดรฟ์ USB ตัวใดที่น่าเชื่อถือและเร็วที่สุด?

บ่อยครั้งในฟอรัมหลายคนถามเกี่ยวกับวิธีการเลือกแฟลชไดรฟ์และพารามิเตอร์ใดที่คุณควรใส่ใจเพื่อที่จะซื้อ...

ฟีดรูปภาพ อาร์เอสเอส