แนวโน้มปัจจุบันในการกรองเนื้อหา การควบคุมการรับส่งข้อมูลที่เข้ารหัส

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

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

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

เซิร์ฟเวอร์ ICAP

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

    Traffic Spicer (C++)

    โปเอเซีย (ชวา)

    (จาวาและจาวาสคริปต์)

    การใช้งานอ้างอิงดั้งเดิมโดย Network Appliance

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

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

รายละเอียดปลาหมึก

Squid-3.0 และใหม่กว่ามาพร้อมกับการรองรับ ICAP ในตัว รองรับจุดเวคเตอร์ REQMOD และ RESPMOD ล่วงหน้าแคช รวมถึงความพึงพอใจของคำขอ Squid-2 มีการสนับสนุน ICAP ที่จำกัดผ่านชุดแพตช์ที่ได้รับการดูแลไม่ดีและมีข้อบกพร่องมาก เป็นที่น่าสังเกตว่านักพัฒนา Squid ไม่สนับสนุนงาน Squid-2 ICAP อย่างเป็นทางการอีกต่อไป

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

  • ขนาดของเพย์โหลดมากกว่า 64kb
  • ไม่สามารถรับประกันขนาดของเพย์โหลดได้ (อย่างง่ายดาย)

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

การกำหนดค่าปลาหมึก

ปลาหมึก 3.1

ปลาหมึก-3.1

icap_enable บน icap_service service_req reqmod_precache bypass=1 icap://127.0.0.1:1344/request allowance_access service_req อนุญาตทั้งหมด icap_service service_resp respmod_precache bypass=0 icap://127.0.0.1:1344/response allowance_access service_resp อนุญาตทั้งหมด

    การปรับตัว_การเข้าถึง

    ปรับ_บริการ_ชุด

    icap_client_username_encode

    icap_client_username_header

    icap_connect_timeout

    icap_default_options_ttl

    icap_enable

    icap_io_timeout

    icap_persistent_connections

    icap_preview_enable

    icap_preview_size

    icap_send_client_ip

    icap_send_client_username

    icap_service

    icap_service_failure_limit

    icap_service_revival_delay

ปลาหมึก 3.0

ตัวอย่างต่อไปนี้สั่งให้ Squid-3.0 พูดคุยกับบริการ ICAP สองบริการ บริการหนึ่งสำหรับการร้องขอ และอีกบริการหนึ่งสำหรับการปรับการตอบสนอง:

icap_enable บน icap_service service_req reqmod_precache 1 icap://127.0.0.1:1344/request icap_class class_req service_req icap_access class_req อนุญาต icap_service service_resp respmod_precache 0 icap://127.0.0.1:1344/response icap_class class_resp service_resp icap_access class_re sp อนุญาตทั้งหมด

มีตัวเลือกอื่นๆ ที่สามารถควบคุมแง่มุมต่างๆ ของ ICAP ได้:

คำจำกัดความ - หมายความว่าอย่างไร?

Internet Content Adaptation Protocol (ICAP) เป็นโปรโตคอลขนาดเล็กที่ให้เวกเตอร์เนื้อหาตามอ็อบเจ็กต์อย่างง่ายสำหรับบริการ HTTP ICAP ใช้เพื่อขยายพร็อกซีเซิร์ฟเวอร์แบบโปร่งใส สิ่งนี้ทำให้ทรัพยากรว่างมากขึ้นและสร้างมาตรฐานการใช้งานคุณสมบัติใหม่ โดยจะใช้แคชเพื่อพร็อกซีธุรกรรมไคลเอนต์ทั้งหมด และประมวลผลธุรกรรมโดยใช้เว็บเซิร์ฟเวอร์ ICAP ซึ่งออกแบบมาสำหรับฟังก์ชันเฉพาะ เช่น การสแกนไวรัส การแปลเนื้อหา การกรองเนื้อหา หรือการแทรกโฆษณา

ICAP ดำเนินการจัดการเนื้อหาเป็นบริการเสริม สำหรับคำขอ HTTP ไคลเอ็นต์ที่เหมาะสมหรือการตอบกลับ HTTP จึงเป็นที่มาของชื่อ "การปรับเนื้อหา"

คำนี้เรียกอีกอย่างว่า Internet Content Adaption Protocol

Techopedia อธิบาย โปรโตคอลการปรับเนื้อหาอินเทอร์เน็ต (ICAP)

Internet Content Adaptation Protocol ถูกเสนอในปี 1999 โดย Danzig และ Schuster แห่ง Network Appliance Don Gillies ปรับปรุงโปรโตคอลในปี 2000 โดยอนุญาตให้มีเซิร์ฟเวอร์ ICAP แบบไปป์ไลน์ รองรับการห่อหุ้มทั้งสามแบบที่อนุญาตโดย HTTP 1.1 เขายังผลิตเอกสารการฝึกอบรมสำหรับผู้ขายประมาณปี 2548

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

แม้จะมีความคล้ายคลึงกัน แต่ ICAP ไม่ใช่ HTTP และไม่ใช่แอปพลิเคชันที่ทำงานบน HTTP

หน้าเริ่มต้นของโมดูล

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

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

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

เมื่อเข้าสู่โมดูลสถานะของการบริการปุ่ม "ปิดการใช้งาน" (หรือ "เปิดใช้งาน" หากโมดูลถูกปิดใช้งาน) และ ข้อความล่าสุดในนิตยสาร

การตั้งค่า

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

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

พอร์ตพร็อกซีเซิร์ฟเวอร์เริ่มต้นคือ 3128 ในการตั้งค่าโมดูลคุณสามารถเปลี่ยนเป็นพอร์ตที่ว่างใดก็ได้

ประเภทการอนุญาต

พร็อกซีเซิร์ฟเวอร์ ICS รองรับสองวิธีในการอนุญาต: ตามที่อยู่ IP ของผู้ใช้ และโดยรหัสผ่านเข้าสู่ระบบ

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

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

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

เข้าสู่ระบบเว็บ

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

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

เปิดใช้งานได้โดยทำเครื่องหมายในช่องในแท็บที่เกี่ยวข้อง คุณสามารถเลือกหนึ่งหรือหลายโปรโตคอลจากที่มีอยู่ (HTTP, HTTPS, FTP)

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

เผยแพร่สคริปต์การกำหนดค่าอัตโนมัติผ่าน DHCP- พารามิเตอร์นี้ส่งการตั้งค่าพร็อกซีไปยังไคลเอนต์ DHCP ทั้งหมดของเซิร์ฟเวอร์

พร็อกซีผู้ปกครอง

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

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

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

ที่อยู่ IP ที่ออก

แท็บนี้ประกอบด้วยรายการที่อยู่ IP และผู้ใช้ที่เข้าสู่ระบบพร็อกซีเซิร์ฟเวอร์โดยใช้การอนุญาตเว็บ

เนื้อหาแคช

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

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

ทางด้านขวา มุมบนโมดูลมีบรรทัดค้นหา ด้วยความช่วยเหลือนี้ คุณสามารถค้นหารายการวารสารที่คุณต้องการได้

บันทึกจะแสดงกิจกรรมสำหรับวันที่ปัจจุบันเสมอ หากต้องการดูกิจกรรมในวันอื่น ให้เลือกวันที่ที่ต้องการโดยใช้ปฏิทินที่มุมซ้ายบนของโมดูล

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

เหนือสิ่งอื่นใด SecureTower รองรับการทำงานร่วมกับพร็อกซีเซิร์ฟเวอร์ยอดนิยม SQUID และ MS Forefront

ปลาหมึก

ระบบ SecureTower รองรับ SQUID เวอร์ชันเก่ากว่า 3.0 เมื่อติดตั้ง/คอมไพล์พร็อกซีเซิร์ฟเวอร์ คุณต้องเปิดใช้งานตัวเลือกเพื่อเปิดใช้งานการสนับสนุน ICAP และระบุตัวเลือกต่อไปนี้ในการตั้งค่า ICAP:

  • icap_enable บน
  • icap_send_client_ip บน - ที่อยู่ IP ไคลเอ็นต์
  • icap_service_req service_reqmod_precache 0 icap://192.168.45.1:1344/reqmod โดยที่ 192.168.45.1 เป็นที่อยู่ IP ของเซิร์ฟเวอร์ SecureTower ICAP
  • ปรับตัว_เข้าถึงบริการ_req อนุญาตทั้งหมด

เอ็มเอส แนวหน้า

หากต้องการทำงานในเครือข่ายที่จัดบนพื้นฐานของพร็อกซีเซิร์ฟเวอร์ TMG Forefront คุณต้องติดตั้งปลั๊กอิน ICAP เพิ่มเติมเนื่องจาก ตามค่าเริ่มต้น พร็อกซีเซิร์ฟเวอร์นี้ไม่รองรับ ICAP ปลั๊กอินมีอยู่ที่ http://www.collectivesoftware.com/solutions/content-filtering/icapclient

ในการตั้งค่าปลั๊กอิน ICAP คุณต้องระบุที่อยู่ของเซิร์ฟเวอร์ SecureTower ICAP ด้วยเหตุนี้ ข้อมูลทั้งหมดที่ถ่ายโอนไปยังโปรโตคอล HTTP(S) ผ่านพร็อกซีเซิร์ฟเวอร์ MS Forefront จะถูกบันทึกโดยเซิร์ฟเวอร์ SecureTower ICAP

ความต้องการระบบขั้นต่ำสำหรับเซิร์ฟเวอร์ ICAP

  • หน่วยประมวลผล: 2 GHz หรือสูงกว่า, 2 คอร์หรือมากกว่า
  • อะแดปเตอร์เครือข่าย: 100 Mbit/1 Gbit
  • แรม: อย่างน้อย 6 GB
  • ฮาร์ดดิสก์: พาร์ติชัน 100 GB สำหรับระบบปฏิบัติการและไฟล์ SecureTower ส่วนที่สองสำหรับการจัดเก็บข้อมูลที่ถูกดักข้อมูลในอัตรา 1.5 GB จากผู้ใช้ที่ได้รับการควบคุมแต่ละรายต่อเดือน บวก 3% ของปริมาณข้อมูลที่ถูกดักสำหรับไฟล์ดัชนีการค้นหา
  • หน้าต่าง กรอบงานสุทธิ: 4.7 ขึ้นไป
  • ระบบปฏิบัติการ: Microsoft Windows Server 2008R2/2012/2016 x64

การบริหาร

ฉันเข้าร่วมในการทดสอบเบต้าของ icap daemon จาก Dr.Web ฉันก็พอใจกับมัน (แม้จะมีปัญหาบางอย่างที่ยังไม่ได้รับการแก้ไขในขณะนี้) แต่ด้านการเงินของปัญหานั้นจำกัดฉันอย่างมาก ดังนั้นฉันจึง อีกครั้งตัวเลือกของฉันตกอยู่กับ ClamAV

การใช้ Squid กับ ClamAV และ c-icap เพื่อสแกนปริมาณการใช้เว็บเพื่อหาไวรัส

พื้นหลัง

คุณไม่จำเป็นต้องมี clamd daemon ที่ทำงานอยู่เพื่อให้ทำงาน ดังนั้นคุณจึงสามารถข้ามการกำหนดค่า (clamd.conf) ได้อย่างปลอดภัยหากคุณไม่ได้ใช้หรือจะไม่ใช้งาน

c-icap ทำงานร่วมกับโมดูลป้องกันไวรัสของตัวเองที่ใช้ ClamAV ดังนั้นเราจะต้องมี libclamav ในระบบ (ติดตั้ง ClamAV ตามปกติ) หากไม่มี libclamav อยู่ในระบบ c-icap ก็จะไม่สร้าง

การติดตั้งและการกำหนดค่า c-icap พร้อมรองรับ ClamAV

มาแตกไฟล์เก็บถาวร c_icap-220505.tar.gz ลงใน /usr/src (หรือที่ใดก็ตามที่คุณมีซอร์สโค้ด) สคริปต์กำหนดค่าในไดเร็กทอรีต้นทาง c-icap ควรรันด้วยพารามิเตอร์ต่อไปนี้:

$ ./configure --enable-static --with-clamav --prefix=/usr/local/c_icap

หรือตัวอย่างเช่น เช่นนี้ if --prefix=/opt/clamav สำหรับการกำหนดค่าจาก ClamAV:

$ ./configure --enable-static --with-clamav=/opt/clamav --prefix=/usr/local/c_icap

c_icap daemon ถูกสร้างขึ้นแบบคงที่ --คำนำหน้าสามารถระบุให้เหมาะกับรสนิยมของคุณได้ คุณสามารถรวบรวมปีศาจได้ด้วยตัวเอง:

คุณต้องตรวจสอบว่าทุกอย่างประกอบอย่างถูกต้องหรือไม่:

$ ทำการตรวจสอบ

และติดตั้ง c-icap บนระบบโดยตรง (ในไดเร็กทอรีที่ระบุผ่าน --prefix):

#ทำการติดตั้ง

ตอนนี้เราต้องแก้ไขการตั้งค่าบางอย่างใน c-icap.conf ในกรณีของ --prefix=/usr/local/c_icap ของเรา มันไม่ยากที่จะเดาว่าการกำหนดค่านั้นอยู่ใน /usr/local/c_icap/etc

  • ผู้ใช้ควรตั้งค่าเป็น none ดีกว่า เนื่องจาก wwwrun ที่ระบุโดยค่าเริ่มต้น มีแนวโน้มว่าจะไม่อยู่ในระบบ
  • TmpDir /tmp คือไดเร็กทอรีไฟล์ชั่วคราวของคุณ
  • ถัดไป คุณต้องกำหนดค่า ACL - รายการควบคุมการเข้าถึง - รายการที่อยู่ IP ที่สามารถใช้ ICAP daemon นี้: acl localsquid_respmod src 127.0.0.1 ประเภท respmod acl localsquid src 127.0.0.1 acl externalnet src 0.0.0.0/0.0.0.0 icap_access อนุญาต localsquid_respmod icap_access อนุญาตให้ localsquid icap_access ปฏิเสธ externalnet

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

    ฉันรวบรวม ACL สำหรับกรณีใช้งาน ICAP daemon และ Squid บนโฮสต์เดียวกัน

    • srv_clamav.ClamAvTmpDir /tmp - ไดเร็กทอรีชั่วคราวสำหรับโมดูล ClamAV
    • srv_clamav.VirSaveDir /var/infected/ - ไดเรกทอรีกักกัน แสดงความคิดเห็นเกี่ยวกับสิ่งที่คล้ายกันดีกว่า!
    • srv_clamav.VirHTTPเซิร์ฟเวอร์ "DUMMY"

    คุณยังสามารถลองสิ่งนี้:

    Srv_clamav.VirHTTPServer "http://proxy.your_srv_name.ru/cgi-bin/get_file.pl?usename=%f&remove=1&file="

    จำเป็นต้องมีการชี้แจง: ตัวเลือก srv_clamav.VirSaveDir สามารถระบุได้หลายครั้ง เพื่อให้ไฟล์ที่ติดไวรัสได้รับการบันทึกในหลายๆ ที่ หากคุณตั้งค่าไดเรกทอรีกักกันรายการใดรายการหนึ่งไว้ที่รูทของเว็บเซิร์ฟเวอร์ คุณสามารถให้โอกาสผู้ใช้ดาวน์โหลดไฟล์ที่ติดไวรัสโดยเจตนาได้ สิ่งที่เหลืออยู่คือใช้ไฟล์ contrib/get_file.pl ในซอร์สโค้ด c-icap

    ฉันไม่ต้องการสิ่งนี้

สร้างไดเร็กทอรี /var/infected และกำหนดให้เป็นของผู้ใช้ที่ไม่มีใคร (chown none /var/infected)

มาทำการทดสอบการทำงานของ c-icap:

# cd /usr/local/c_icap/bin # ./c-icap

หากไม่มีข้อความแสดงข้อผิดพลาด คุณควรตรวจสอบให้แน่ใจว่า c-icap กำลังฟังบนซ็อกเก็ตที่ต้องการ:

# netstat -apn | เกรป 1344

หากเราเห็นบรรทัดต่อไปนี้ ทุกอย่างเรียบร้อยดี:

Tcp 0 0 *:1344 *:* ฟัง 24302/c-icap

ปล่อยให้ c-icap daemon ทำงานต่อไปและไปยังการตั้งค่าเพิ่มเติม

การติดตั้งและกำหนดค่าพร็อกซีเซิร์ฟเวอร์ Squid

มาแกะ Squid ที่เราได้รับก่อนหน้านี้ลงใน /usr/src:

# tar zxvf ปลาหมึก-icap-2.5.STABLE11-20050927.tgz

ไปที่ไดเร็กทอรีที่มีแหล่งที่มาของ Squid และรันการกำหนดค่าดังนี้:

$ ./configure --enable-icap-support

ก่อนที่จะเรียกใช้การกำหนดค่าใน Squid จาก Dr.Web คุณจะต้องเรียกใช้ bootstrap.sh ซึ่งอยู่ในไดเร็กทอรีรากของซอร์สโค้ด Squid หากคุณใช้ Squid จาก Dr.Web อย่าลืมอ่านเอกสารประกอบจากแพ็คเกจ drweb-icapd!

การสร้างปลาหมึก:

ติดตั้ง:

#ทำการติดตั้ง

เราได้ติดตั้ง Squid ใน /usr/local/squid ตอนนี้เรามาเปลี่ยนการตั้งค่าใน squid.conf

คุณต้องค้นหาสองสามบรรทัด:

#acl our_networks src 192.168.1.0/24 192.168.2.0/24 #http_access อนุญาต our_networks

ไม่ใส่เครื่องหมายข้อคิดเห็นและตั้งค่าของคุณเอง แทนที่จะเป็น 192.168.1.0/24 192.168.2.0/24 (ในกรณีของฉัน ผู้ใช้พร็อกซีเซิร์ฟเวอร์อยู่ในเครือข่าย 172.16.194.0/24):

Acl our_networks src 172.16.194.0/24 http_access อนุญาต our_networks

ไปที่ /usr/local/squid/var สร้างไดเรกทอรีแคช ตอนนี้รันคำสั่งที่นั่น:

# chown ไม่มีใครแคช / บันทึก /

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

สิ่งที่เหลืออยู่คือการสร้างโครงสร้างไดเร็กทอรีสำหรับการแคช ไปที่ /usr/local/squid/sbin และเรียกใช้:

# ./ปลาหมึก -z

ตามค่าเริ่มต้น พารามิเตอร์ cache_dir ใน squid.conf จะถูกตั้งค่าดังนี้:

Cache_dir ufs /usr/local/squid/var/แคช 100 16 256

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

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

มาเพิ่มการรองรับ ICAP กัน...

การเพิ่มการรองรับ ICAP ให้กับ squid.conf

ค้นหาคำว่า icap_enable และตั้งค่า icap_enable on ค้นหาคำว่า icap_preview_enable และตั้งค่า icap_preview_enable on ค้นหาคำว่า icap_preview_size และตั้งค่า icap_preview_size เป็น 128 ค้นหาคำว่า icap_send_client_ip และตั้งค่า icap_send_client_ip เป็นเปิด ค้นหาคำว่า icap_service และเพิ่มบริการ icap เหล่านี้:

Icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/srv_clamav icap_service service_avi respmod_precache 1 icap://localhost:1344/srv_clamav

ค้นหา icap_class และเพิ่มคลาส icap ต่อไปนี้:

Icap_class class_antivirus service_avi service_avi_req

ค้นหา icap_access และเพิ่มสิทธิ์การเข้าถึงต่อไปนี้:

Icap_access class_antivirus อนุญาตทั้งหมด

โดยรวมแล้วเพื่อรองรับ ICAP จะต้องเพิ่มบรรทัดต่อไปนี้ใน squid.conf:

Icap_enable บน icap_preview_enable บน icap_preview_size 128 icap_send_client_ip บน
icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/srv_clamav icap_service service_avi respmod_precache 1 icap://localhost:1344/srv_clamav
icap_class class_antivirus service_avi service_avi_req icap_access class_antivirus อนุญาตทั้งหมด

นี่เป็นการเสร็จสิ้นการกำหนดค่าขั้นต่ำของพร็อกซีเซิร์ฟเวอร์

มาเริ่มกันเลย:

# cd /usr/local/squid/sbin # ./squid

หากทุกอย่างถูกต้องก็ไม่ควรมีข้อความในคอนโซล

การตรวจสอบการทำงาน

เพิ่มพร็อกซีเซิร์ฟเวอร์ในเบราว์เซอร์ของคุณ (หากการพร็อกซีไม่โปร่งใส) และเปิดหน้า http://www.eicar.com/anti_virus_test_file.htm

ลองดาวน์โหลดไฟล์ eicar.com หากคุณเห็นข้อความลักษณะนี้: “A VIRUS FOUND...” - แสดงว่าทุกอย่างทำงานได้อย่างถูกต้อง

โปรดทราบว่าแคชพร็อกซีเซิร์ฟเวอร์ไม่ควรมีวัตถุที่ติดไวรัส! ดังนั้นก่อนที่คุณจะเริ่มใช้ Squid ร่วมกับ c-icap ควรล้างแคชจะดีกว่า โปรดทราบว่าเบราว์เซอร์มีแคชของตัวเอง

การอัพเดตฐานข้อมูลต่อต้านไวรัส ClamAV

เพิ่ม freshclam ลงใน crontab ฐานข้อมูล c-icap ได้รับการเตรียมใช้งานใหม่ทุกๆ srv_clamav.VirUpdateTime นาที - พารามิเตอร์นี้สามารถระบุได้ใน c-icap.conf (โดยค่าเริ่มต้นคือ 15 นาที)

ไฟล์ c-icap.magic และประเภทของวัตถุที่สแกน

ไฟล์นี้สามารถพบได้ในไดเร็กทอรีเดียวกับ c-icap.conf มันเป็นคำอธิบายของรูปแบบ กลุ่มต่างๆประเภทไฟล์ (ข้อความ, ข้อมูล, ปฏิบัติการ, เก็บถาวร, กราฟิก, สตรีม, เอกสาร - บางกลุ่มใน c-icap.magic เป็นค่าเริ่มต้น) การสแกนป้องกันไวรัสขึ้นอยู่กับประเภทของไฟล์ที่ส่งผ่านพร็อกซีเซิร์ฟเวอร์ ตัวอย่างเช่น บางชนิดสามารถยกเว้นได้หรือสามารถเพิ่มประเภทของคุณเองได้

รูปแบบการบันทึกบรรทัดเพื่อระบุไฟล์ด้วยหมายเลขเวทย์มนตร์ (ลำดับ):

ออฟเซ็ต:เวทมนตร์:ประเภท:กลุ่ม:รายละเอียด

ออฟเซ็ต - ออฟเซ็ตที่ลำดับ Magic เริ่มต้นขึ้น ประเภทและกลุ่ม - ประเภทและกลุ่มที่ควรกำหนดไฟล์ที่มีลำดับเวทย์มนตร์นี้ อธิบาย- คำอธิบายสั้น ๆ, ไม่รับภาระทางเทคนิค

ตัวอย่างเช่น ลองดูที่ c-icap.magic

โปรดทราบว่าใน c-icap.conf พารามิเตอร์ srv_clamav.ScanFileTypes จะกำหนดกลุ่มและประเภทของไฟล์ (คุณสามารถระบุได้ทั้งกลุ่มและประเภท) ที่ควรสแกน ฉันไม่เข้าใจว่า srv_clamav.VirScanFileTypes กำหนดอะไร แต่ฉันสงสัยว่าเป็นกลุ่มไฟล์ที่ถูกบังคับสแกน (ปฏิบัติการและเก็บถาวรตามค่าเริ่มต้น)

ในการกำหนดค่า c-icap ของฉัน พารามิเตอร์ด้านบนมีลักษณะดังนี้:

Srv_clamav.ScanFileTypes ข้อมูลข้อความ สตรีมเอกสารที่ปฏิบัติการได้ กราฟิก srv_clamav.VirScanFileTypes แฟ้มที่ปฏิบัติการได้

ปัญหาที่เป็นไปได้

  • Squid รายงานข้อผิดพลาดของโปรโตคอล ICAP ไม่สามารถเปิดหน้าได้ ตรวจสอบว่าคุณระบุ ACL อย่างถูกต้องใน c-icap.conf หรือไม่ ACL นี้ควรอนุญาตการเข้าถึงไม่ใช่สำหรับผู้ใช้ แต่สำหรับพร็อกซีเซิร์ฟเวอร์

    ลองฆ่ากระบวนการ Squid และ c-icap จากนั้นเริ่มต้นตามลำดับต่อไปนี้: c-icap ก่อน จากนั้นจึง Squid

    ข้อผิดพลาดนี้อาจเกิดขึ้นได้หาก c-icap daemon ไม่มีสิทธิ์เพียงพอที่จะเขียนลงในไดเร็กทอรีกักกันหรือไฟล์บันทึก

    หากปัญหายังไม่ได้รับการแก้ไขให้ลองเริ่ม Squid ด้วยพารามิเตอร์ -d 10 -N -X:

    # ./squid -d 10 -N -X และ c-icap พร้อมพารามิเตอร์ -N -d 10 -D: # ./c-icap -N -d 10 -D คุณจะเห็น ข้อมูลรายละเอียดซึ่งคุณสามารถใช้เพื่อค้นหาว่ามีอะไรผิดปกติและอยู่ที่ไหน

  • Squid แสดงข้อความแสดงข้อผิดพลาดโปรโตคอล ICAP เฉพาะในบางหน้าเท่านั้น (ในหน้าเดียวกัน)

    ตรวจสอบว่า c-icap ได้รับอนุญาตให้เขียนไปยังไดเร็กทอรีกักกันหรือไม่ (หรือดีกว่านั้น ให้กำหนดให้เจ้าของไดเร็กทอรีกักกันทั้งหมดเป็นผู้ใช้ที่ c-icap กำลังทำงานอยู่)

    ลองใช้ c-icap และ Squid ในโหมดแก้ไขข้อบกพร่อง (วิธีดำเนินการดังกล่าวได้อธิบายไว้ข้างต้น)

    เป็นความคิดที่ดีที่จะดูบันทึก c-icap

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

ผลลัพธ์

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

และจำไว้ว่านักพัฒนาเขียนอะไรบนเว็บไซต์:

  • >บริการป้องกันไวรัส ClamAV
  • > บริการนี้อยู่ระหว่างการพัฒนา

คุณสามารถเรียนรู้เกี่ยวกับหลักการบางประการของโปรโตคอล ICAP ในภาษารัสเซียได้จากคู่มือ DrWeb-ICAP ซึ่งเป็นหนึ่งในการใช้งานโปรโตคอล ICAP ในเชิงพาณิชย์ที่ประสบความสำเร็จ คุณยังสามารถอ่าน RFC 3507 ได้

ทำงานสบายและปลอดภัย!

ขอบคุณสำหรับความสนใจของคุณ