เว็บพร็อกซี่มีมาระยะหนึ่งแล้วและมีผู้ใช้หลายล้านคนทั่วโลกใช้ พวกเขามีจุดประสงค์ที่หลากหลาย ซึ่งเป็นที่นิยมมากที่สุดคือการไม่เปิดเผยตัวตนทางออนไลน์ แต่มีวิธีอื่นที่คุณสามารถใช้ประโยชน์จากเว็บพรอกซีได้ นี่คือแนวคิดบางประการ:
พร็อกซีเซิร์ฟเวอร์คือคอมพิวเตอร์ที่ใช้เป็นตัวกลางระหว่างไคลเอนต์และเซิร์ฟเวอร์อื่นที่ไคลเอนต์อาจร้องขอทรัพยากร ตัวอย่างง่ายๆ ของสิ่งนี้คือเมื่อลูกค้าส่งคำขอออนไลน์ (เช่น ต้องการเปิดหน้าเว็บ) เขาเชื่อมต่อกับพร็อกซีเซิร์ฟเวอร์ก่อน
จากนั้นพร็อกซีเซิร์ฟเวอร์จะตรวจสอบแคชของดิสก์ในเครื่อง และหากพบข้อมูลในนั้น ก็จะส่งคืนข้อมูลไปยังไคลเอ็นต์ หากไม่ได้แคช มันจะทำการร้องขอในนามของลูกค้าโดยใช้ที่อยู่ IP ของพร็อกซี่ (แตกต่างจากไคลเอนต์) แล้วส่งคืนข้อมูลไปยังไคลเอนต์ พร็อกซีเซิร์ฟเวอร์จะพยายามแคชข้อมูลใหม่และจะใช้สำหรับคำขอในอนาคตที่ส่งไปยังเซิร์ฟเวอร์เดียวกัน
ปลาหมึก เป็นเว็บพรอกซีที่ใช้หลากหลายองค์กรของฉัน มักใช้เป็นแคชพร็อกซีและปรับปรุงเวลาตอบสนองและลดการใช้แบนด์วิดท์
สำหรับวัตถุประสงค์ของบทความนี้ ฉันจะทำการติดตั้ง ปลาหมึก บน Linode CentOS 7 VPS และใช้เป็นพร็อกซีเซิร์ฟเวอร์ HTTP
ก่อนที่เราจะเริ่มต้น คุณควรรู้ว่า ปลาหมึกไม่มีข้อกำหนดขั้นต่ำ แต่ปริมาณการใช้ RAM อาจแตกต่างกันไปขึ้นอยู่กับไคลเอนต์ที่เรียกดูอินเทอร์เน็ตผ่านพร็อกซีเซิร์ฟเวอร์
ปลาหมึก รวมอยู่ในที่เก็บฐาน ดังนั้นการติดตั้งจึงง่ายและตรงไปตรงมา ก่อนทำการติดตั้ง ตรวจสอบให้แน่ใจว่าแพ็คเกจของคุณอัพเดทอยู่เสมอโดยการรัน
# yum -y อัปเดต
ดำเนินการติดตั้ง squid เริ่มต้นและเปิดใช้งานเมื่อเริ่มต้นระบบโดยใช้คำสั่งต่อไปนี้
# yum -y ติดตั้งปลาหมึก # systemctl เริ่มปลาหมึก # systemctl เปิดใช้งานปลาหมึก
ณ จุดนี้ Squid web proxy ของคุณควรทำงานอยู่แล้ว และคุณสามารถตรวจสอบสถานะของบริการได้ด้วย
# systemctl สถานะปลาหมึก
● squid.service - Squid caching proxy โหลดแล้ว: โหลดแล้ว (/usr/lib/systemd/system/squid.service; เปิดใช้งาน; ที่ตั้งไว้ล่วงหน้าของผู้ขาย: ปิดใช้งาน) ใช้งานอยู่: ใช้งานอยู่ (วิ่ง) ตั้งแต่ พฤ 2018-09-20 10:07:23 UTC; 5 นาทีที่แล้ว Main PID: 2005 (squid) CGroup: /system.slice/squid.service ├─2005 /usr/sbin/squid -f /etc/squid/squid.conf ├─2007 (squid-1) -f /etc/squid/squid.conf └─2008 (logfile-daemon) /var/log/squid/access.log 20 ก.ย. 10:07:23 tecmint systemd[1]: การเริ่มต้นการแคช Squid พร็อกซี่... 20 ก.ย. 10:07:23 น. tecmint squid[2005]: Squid Parent: จะเริ่มลูก 1 คน 20 ก.ย. 10:07:23 น. tecmint squid[2005]: Squid Parent: (squid-1) กระบวนการ 2007 เริ่มต้นขึ้น 20 ก.ย. 10:07:23 tecmint systemd [1]: เริ่มต้น Squid caching proxy
ต่อไปนี้คือตำแหน่งไฟล์สำคัญที่คุณควรทราบ:
ขั้นต่ำ squid.conf
ไฟล์การกำหนดค่า (ไม่มีความคิดเห็น) มีลักษณะดังนี้:
acl localnet src 10.0.0.0/8 # RFC1918 เครือข่ายภายในที่เป็นไปได้ acl localnet src 172.16.0.0/12 # RFC1918 เครือข่ายภายในที่เป็นไปได้ acl localnet src 192.168.0.0/16 # RFC1918 เครือข่ายภายในที่เป็นไปได้ acl localnet src fc00::/7 # RFC 4193 ช่วงเครือข่ายส่วนตัวในพื้นที่ acl localnet src fe80::/10 # RFC 4291 link-local (เสียบโดยตรง) เครื่อง acl SSL_ports พอร์ต 443 acl Safe_ports พอร์ต 80 # http acl Safe_ports พอร์ต 21 # ftp acl Safe_ports พอร์ต 443 # https acl Safe_ports พอร์ต 70 # gopher acl Safe_ports พอร์ต 210 # wais acl Safe_ports พอร์ต 1025-65535 # พอร์ตที่ไม่ได้ลงทะเบียน acl Safe_ports พอร์ต 280 # http-mgmt acl Safe_ports พอร์ต 488 # gss-http acl Safe_ports พอร์ต 591 # filemaker acl Safe_ports พอร์ต 777 # ทวีคูณ http acl CONNECT วิธี CONNECT http_access ปฏิเสธ !Safe_ports http_access ปฏิเสธ CONNECT !SSL_ports http_access อนุญาตผู้จัดการ localhost http_access ปฏิเสธตัวจัดการ http_access อนุญาต localnet http_access อนุญาต localhost http_access ปฏิเสธทั้งหมด http_port 3128. coredump_dir /var/spool/squid.c refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^โกเฟอร์: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 รีเฟรช_pattern 0 20% 4320.
ที่นี่เราจะแสดงวิธีกำหนดค่า squid เป็นพร็อกซี HTTP โดยใช้ที่อยู่ IP ของไคลเอ็นต์สำหรับการตรวจสอบสิทธิ์เท่านั้น
หากคุณต้องการอนุญาตให้ที่อยู่ IP เข้าถึงเว็บผ่านพร็อกซีเซิร์ฟเวอร์ใหม่ คุณจะต้องเพิ่มใหม่ ACL (รายการควบคุมการเข้าถึง) บรรทัดในไฟล์การกำหนดค่า
# กลุ่ม /etc/squid/squid.conf.
บรรทัดที่คุณควรเพิ่มคือ:
acl localnet src XX.XX.XX.XX.
ที่ไหน XX.XX.XX.XXX คือที่อยู่ IP ของไคลเอ็นต์จริงที่คุณต้องการเพิ่ม ควรเพิ่มบรรทัดที่จุดเริ่มต้นของไฟล์ที่มีการกำหนด ACL แนวทางปฏิบัติที่ดีในการเพิ่มความคิดเห็นข้าง ACL ซึ่งจะอธิบายว่าใครใช้ที่อยู่ IP นี้
โปรดทราบว่าหาก Squid อยู่นอกเครือข่ายท้องถิ่นของคุณ คุณควรเพิ่มที่อยู่ IP สาธารณะของไคลเอ็นต์
คุณจะต้องรีสตาร์ท Squid เพื่อให้การเปลี่ยนแปลงใหม่มีผล
# systemctl รีสตาร์ทปลาหมึก
ดังที่คุณอาจเคยเห็นในไฟล์การกำหนดค่า อนุญาตให้เชื่อมต่อเฉพาะบางพอร์ตเท่านั้น คุณสามารถเพิ่มได้อีกโดยแก้ไขไฟล์การกำหนดค่า
acl Safe_ports พอร์ต XXX
ที่ไหน XXX คือพอร์ตจริงที่คุณต้องการโหลด เป็นความคิดที่ดีที่จะแสดงความคิดเห็นข้างๆ เพื่ออธิบายว่าพอร์ตนี้จะใช้ทำอะไร
เพื่อให้การเปลี่ยนแปลงมีผล คุณจะต้องรีสตาร์ทปลาหมึกอีกครั้ง
# systemctl รีสตาร์ทปลาหมึก
คุณอาจต้องการให้ผู้ใช้ตรวจสอบสิทธิ์ก่อนใช้พร็อกซี เพื่อจุดประสงค์ดังกล่าว คุณสามารถเปิดใช้งานการพิสูจน์ตัวตน HTTP พื้นฐานได้ กำหนดค่าได้ง่ายและรวดเร็ว
ก่อนอื่นคุณจะต้อง httpd-tools ติดตั้ง
# yum -y ติดตั้ง httpd-tools
ตอนนี้ มาสร้างไฟล์ที่จะเก็บชื่อผู้ใช้สำหรับการตรวจสอบสิทธิ์ในภายหลัง Squid วิ่งกับผู้ใช้ "ปลาหมึก" ดังนั้นไฟล์ควรเป็นเจ้าของโดยผู้ใช้รายนั้น
# แตะ /etc/squid/passwd. # ปลาหมึกผัด: /etc/squid/passwd.
ตอนนี้เราจะสร้างผู้ใช้ใหม่ชื่อ “พร็อกซีไคลเอนต์” และตั้งรหัสผ่าน
# htpasswd /etc/squid/passwd proxyclient รหัสผ่านใหม่: พิมพ์รหัสผ่านใหม่อีกครั้ง: การเพิ่มรหัสผ่านสำหรับผู้ใช้ proxyclient
ตอนนี้เพื่อกำหนดค่าการรับรองความถูกต้องให้เปิดไฟล์การกำหนดค่า
# กลุ่ม /etc/squid/squid.conf.
หลังจากพอร์ต ACL ให้เพิ่มบรรทัดต่อไปนี้:
โปรแกรมพื้นฐาน auth_param /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd. auth_param ลูกพื้นฐาน 5. auth_param การรับรองความถูกต้องพื้นฐานของ realm Squid auth_param ข้อมูลรับรองพื้นฐานsttl 2 ชั่วโมง ต้องการ acl auth_users proxy_auth http_access อนุญาต auth_users
บันทึกไฟล์และรีสตาร์ท squid เพื่อให้การเปลี่ยนแปลงใหม่มีผล:
# systemctl รีสตาร์ทปลาหมึก
สุดท้ายเราจะสร้างสิ่งสุดท้าย ACL ที่จะช่วยเราบล็อกเว็บไซต์ที่ไม่ต้องการ ขั้นแรก ให้สร้างไฟล์ที่จะจัดเก็บไซต์ที่ถูกขึ้นบัญชีดำ
# แตะ /etc/squid/blacklisted_sites.acl.
คุณสามารถเพิ่มบางโดเมนที่คุณต้องการบล็อก ตัวอย่างเช่น:
.badsite1.com .badsite2.com.
จุดดำเนินการบอกให้ปลาหมึกปิดกั้นการอ้างอิงทั้งหมดไปยังไซต์นั้นรวมถึง www.badsite1, subsite.badsite1.com, เป็นต้น
ตอนนี้เปิดไฟล์กำหนดค่าของ Squid
# กลุ่ม /etc/squid/squid.conf.
หลังจากที่พอร์ต ACLs เพิ่มสองบรรทัดต่อไปนี้:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl" http_access ปฏิเสธ bad_urls
ตอนนี้บันทึกไฟล์และรีสตาร์ท squid:
# systemctl รีสตาร์ทปลาหมึก
เมื่อกำหนดค่าทุกอย่างถูกต้องแล้ว ตอนนี้คุณสามารถกำหนดค่าเบราว์เซอร์ไคลเอนต์ในพื้นที่หรือการตั้งค่าเครือข่ายของระบบปฏิบัติการเพื่อใช้พร็อกซี HTTP ปลาหมึกของคุณ
ในบทช่วยสอนนี้ คุณได้เรียนรู้วิธีติดตั้ง รักษาความปลอดภัย และกำหนดค่าเซิร์ฟเวอร์ Squid HTTP Proxy ด้วยตัวคุณเอง ด้วยข้อมูลที่คุณเพิ่งได้รับ คุณสามารถเพิ่มการกรองพื้นฐานสำหรับการรับส่งข้อมูลขาเข้าและขาออกผ่าน Squid
หากคุณต้องการก้าวไปอีกขั้น คุณสามารถกำหนดค่า squid เพื่อบล็อกบางเว็บไซต์ในช่วงเวลาทำงานเพื่อป้องกันการรบกวน หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดโพสต์ในส่วนความคิดเห็นด้านล่าง