Android

วิธีการติดตั้งและกำหนดค่า squid proxy บน debian 10 linux

Установка и конфигурирование прокси-сервера SQUID

Установка и конфигурирование прокси-сервера SQUID

สารบัญ:

Anonim

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

ในบทช่วยสอนนี้เราจะอธิบายวิธีตั้งค่า Squid Proxy บน Debian Buster นอกจากนี้เราจะแสดงวิธีกำหนดค่า Firefox และ Google Chrome เว็บเบราว์เซอร์ให้ใช้

การติดตั้ง Squid บน Debian

แพ็คเกจ Squid รวมอยู่ในมาตรฐานของคลังเก็บ Debian 10 รันคำสั่งต่อไปนี้ในฐานะผู้ใช้ sudo เพื่อติดตั้ง Squid:

sudo apt update sudo apt install squid

เมื่อการติดตั้งเสร็จสิ้นบริการ Squid จะเริ่มต้นโดยอัตโนมัติ

ตรวจสอบว่าการติดตั้งสำเร็จและบริการ Squid กำลังทำงานอยู่โดยตรวจสอบสถานะของบริการ Squid:

sudo systemctl status squid

● squid.service - LSB: Squid HTTP Proxy version 3.x Loaded: loaded (/etc/init.d/squid; generated) Active: active (running) since Sat 2019-08-03 08:52:47 PDT; 3s ago…

การกำหนดค่า Squid

Squid สามารถกำหนดค่าได้โดยแก้ไข /etc/squid/squid.conf กำหนดค่า /etc/squid/squid.conf สามารถรวมไฟล์การกำหนดค่าแยกกันได้โดยใช้คำสั่ง“ include”

squid.conf การกำหนดค่า squid.conf มีความคิดเห็นที่อธิบายถึงสิ่งที่แต่ละตัวเลือกการกำหนดค่าทำ

ก่อนทำการเปลี่ยนแปลงใด ๆ คุณควรสำรองไฟล์ต้นฉบับอยู่เสมอ:

sudo cp /etc/squid/squid.conf{,.orginal}

หากต้องการแก้ไขการกำหนดค่าให้เปิดไฟล์ในโปรแกรมแก้ไขข้อความของคุณ:

sudo nano /etc/squid/squid.conf

โดยค่าเริ่มต้น Squid จะฟังพอร์ต 3128 ในทุกอินเตอร์เฟสเครือข่าย

/etc/squid/squid.conf

# Squid normally listens to port 3128 http_port IP_ADDR:PORT

การรัน Squid บนทุกอินเตอร์เฟสและบนพอร์ตเริ่มต้นควรจะใช้ได้สำหรับผู้ใช้ส่วนใหญ่

Access Control Lists (ACLs) ช่วยให้คุณควบคุมวิธีที่ไคลเอ็นต์สามารถเข้าถึงแหล่งข้อมูลบนเว็บ โดยค่าเริ่มต้น Squid อนุญาตให้เข้าถึงได้จาก localhost เท่านั้น

หากไคลเอนต์ทั้งหมดที่จะใช้พร็อกซีมีที่อยู่ IP แบบคงที่ตัวเลือกที่ง่ายที่สุดคือการสร้าง ACL ที่จะรวม IP ที่ได้รับอนุญาต

แทนที่จะเพิ่มที่อยู่ IP ในไฟล์กำหนดค่าหลักเราจะสร้างไฟล์ include ใหม่ที่จะเก็บที่อยู่ IP:

/etc/squid/allowed_ips.txt

192.168.33.1 # All other allowed IPs

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

/etc/squid/squid.conf

#… acl allowed_ips src "/etc/squid/allowed_ips.txt" #… #http_access allow localnet http_access allow localhost http_access allow allowed_ips # And finally deny all other access to this proxy http_access deny all

ลำดับของกฎ http_access มีความสำคัญ ตรวจสอบให้แน่ใจว่าคุณเพิ่มบรรทัดก่อนที่ http_access deny all

http_access directive นั้นทำงานในลักษณะเดียวกันกับกฎไฟร์วอลล์ Squid อ่านกฎจากบนลงล่างและเมื่อกฎตรงกับกฎด้านล่างจะไม่ถูกประมวลผล

เมื่อใดก็ตามที่คุณทำการเปลี่ยนแปลงไฟล์การกำหนดค่าคุณจะต้องเริ่มบริการ Squid ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart squid

การตรวจสอบสิทธิ์ปลาหมึก

Squid สามารถใช้แบ็คเอนด์ต่าง ๆ รวมถึง Samba, LDAP และ HTTP การตรวจสอบสิทธิ์ขั้นพื้นฐานสำหรับผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์

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

เราจะใช้ยูทิลิตี้ openssl เพื่อสร้างรหัสผ่านและผนวก username:password จับคู่ username:password กับไฟล์ /etc/squid/htpasswd ด้วยคำสั่ง tee ดังแสดงด้านล่าง:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

มาสร้างผู้ใช้ชื่อ“ บัสเตอร์” ด้วยรหัสผ่าน“ Sz$Zdg69 ”:

printf "buster:$(openssl passwd -crypt 'Sz$Zdg69')\n" | sudo tee -a /etc/squid/htpasswd

buster:RrvgO7NxY86VM

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

/etc/squid/squid.conf

#… auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd auth_param basic realm proxy acl authenticated proxy_auth REQUIRED #… #http_access allow localnet http_access allow localhost http_access allow authenticated # And finally deny all other access to this proxy http_access deny all

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

เริ่มบริการ Squid:

sudo systemctl restart squid

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

ผู้ใช้ UFW สามารถเปิดพอร์ต 3128 โดยเปิดใช้งานโปรไฟล์ 'Squid':

sudo ufw allow 'Squid'

sudo nft add rule inet filter input tcp dport 3128 ct state new, established counter accept หาก Squid ทำงานบนพอร์ตอื่นที่ไม่ใช่พอร์ตเริ่มต้นคุณจะต้องอนุญาตการรับส่งข้อมูลบนพอร์ตนั้น

การกำหนดค่าเบราว์เซอร์ของคุณเพื่อใช้พร็อกซี

ในส่วนนี้จะแสดงวิธีกำหนดค่าเบราว์เซอร์ของคุณให้ใช้ Squid proxy

Firefox

ขั้นตอนด้านล่างเหมือนกันสำหรับ Windows, macOS และ Linux

  1. ที่มุมบนขวาคลิกที่ไอคอนแฮมเบอร์เกอร์ เพื่อเปิดเมนูของ Firefox:

    คลิกที่ลิงค์ ⚙ Preferences

    เลื่อนลงไปที่ส่วน Network Settings และคลิกที่ปุ่มการ Settings…

    หน้าต่างใหม่จะเปิดขึ้น

    • เลือกปุ่มตัวเลือกการ Manual proxy configuration ป้อนที่อยู่ IP เซิร์ฟเวอร์ Squid ของคุณในฟิลด์ HTTP Host และ 3128 ในช่อง Port เลือกช่องทำเครื่องหมาย Use this proxy server for all protocols OK ปุ่ม OK เพื่อบันทึกการตั้งค่า

ณ จุดนี้ Firefox ของคุณได้รับการกำหนดค่าและคุณสามารถท่องอินเทอร์เน็ตผ่านทาง Squid proxy หากต้องการตรวจสอบให้เปิด google.com พิมพ์“ what is ip ของฉัน” และคุณควรเห็นที่อยู่ IP เซิร์ฟเวอร์ Squid ของคุณ

หากต้องการเปลี่ยนกลับเป็นการตั้งค่าเริ่มต้นให้ไปที่การ Network Settings เลือกปุ่มตัวเลือก Use system proxy settings และบันทึกการตั้งค่า

นอกจากนี้ยังมีปลั๊กอินหลายตัวที่สามารถช่วยให้คุณกำหนดการตั้งค่าพร็อกซีของ Firefox เช่น FoxyProxy

Google Chrome

Google Chrome ใช้การตั้งค่าพร็อกซีของระบบเริ่มต้น แทนที่จะเปลี่ยนการตั้งค่าพร็อกซีของระบบปฏิบัติการคุณสามารถใช้ addon เช่น SwitchyOmega หรือเริ่มเว็บเบราว์เซอร์ Chrome จากบรรทัดคำสั่ง

ในการเปิดใช้งาน Chrome โดยใช้โปรไฟล์ใหม่และเชื่อมต่อกับเซิร์ฟเวอร์ Squid ให้ใช้คำสั่งต่อไปนี้:

Linux:

/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

macOS:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

Windows:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"

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

หากต้องการยืนยันว่าพร็อกซีเซิร์ฟเวอร์ทำงานอย่างถูกต้องให้เปิด google.com แล้วพิมพ์“ what is ip ของฉัน” IP ที่แสดงในเบราว์เซอร์ของคุณควรเป็นที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ

ข้อสรุป

เราได้กล่าวถึงพื้นฐานของวิธีการติดตั้ง Squid บน Debian 10 และกำหนดค่าเบราว์เซอร์ของคุณเพื่อใช้งาน

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

พร็อกซีเดเบียน