ວິທີການຕັ້ງຄ່າ Server "Squid Proxy" ໃນ Ubuntu ແລະ Debian


Squid ແມ່ນຖານຂໍ້ມູນທີ່ໄດ້ຮັບຄວາມນິຍົມທີ່ສຸດແລະການສົ່ງຕໍ່ HTTP web proxy server ໃຊ້ບໍລິສັດຂອງຂ້ອຍທີ່ກວ້າງຂວາງໃນການເກັບ ໜ້າ ເວັບຈາກເວັບເຊີຟເວີເພື່ອປັບປຸງຄວາມໄວຂອງເວັບເຊີຟເວີ, ຫຼຸດເວລາຕອບສະ ໜອງ ແລະຫຼຸດຜ່ອນການ ນຳ ໃຊ້ແບນວິດຂອງເຄືອຂ່າຍ.

ໃນບົດຄວາມນີ້, ພວກເຮົາຈະອະທິບາຍວິທີການຕິດຕັ້ງ server squid proxy ໃນການແຈກຈ່າຍຂອງ Ubuntu ແລະ Debian ແລະໃຊ້ມັນເປັນ server server HTTP.

ວິທີການຕິດຕັ້ງ Squid ໃນ Ubuntu

ກ່ອນທີ່ພວກເຮົາຈະເລີ່ມຕົ້ນ, ທ່ານຄວນຮູ້ວ່າເຊີບເວີ Squid ບໍ່ມີຂໍ້ ກຳ ນົດໃດໆ, ແຕ່ວ່າປະລິມານການ ນຳ ໃຊ້ RAM ອາດຈະແຕກຕ່າງກັນໂດຍອີງໃສ່ລູກຄ້າທີ່ ກຳ ລັງຊອກຫາອິນເຕີເນັດຜ່ານເຊີຟເວີຕົວແທນ.

ຊຸດ Squid ມີໃຫ້ຕິດຕັ້ງຈາກຖານຂໍ້ມູນ Ubuntu ພື້ນຖານແຕ່ກ່ອນນັ້ນຕ້ອງແນ່ໃຈວ່າຈະປັບປຸງແພັກເກດຂອງທ່ານໂດຍການເຮັດວຽກ.

$ sudo apt update

ເມື່ອການຫຸ້ມຫໍ່ຂອງທ່ານມີຄວາມພ້ອມແລ້ວ, ທ່ານສາມາດ ດຳ ເນີນການຕໍ່ໄປເພື່ອຕິດຕັ້ງກຸ້ງແລະເລີ່ມຕົ້ນແລະເປີດໃຊ້ງານໃນລະບົບເລີ່ມຕົ້ນໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo apt -y install squid
$ sudo systemctl start squid
$ sudo systemctl enable 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 Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

ຕໍ່ໄປນີ້ແມ່ນບາງສະຖານທີ່ທີ່ ສຳ ຄັນທີ່ທ່ານຄວນຮັບຮູ້:

  • ເອກະສານການຕັ້ງຄ່າ Squid: /etc/squid/squid.conf
  • Squid Access log: /var/log/squid/access.log
  • ບັນຊີ Squid Cache: /var/log/squid/cache.log

ເອກະສານການຕັ້ງຄ່າເລີ່ມຕົ້ນມີ ຄຳ ແນະ ນຳ ກ່ຽວກັບການຕັ້ງຄ່າບາງຢ່າງທີ່ຕ້ອງໄດ້ ກຳ ຫນົດຄ່າເພື່ອສົ່ງຜົນກະທົບຕໍ່ການປະພຶດຂອງ Squid.

ຕອນນີ້ເປີດເອກະສານນີ້ ສຳ ລັບການດັດແກ້ໂດຍໃຊ້ບັນນາທິການ Vi ແລະເຮັດການປ່ຽນແປງດັ່ງຮູບຂ້າງລຸ່ມນີ້.

$ sudo vim /etc/squid/squid.conf

ດຽວນີ້, ທ່ານອາດຈະຄົ້ນຫາກ່ຽວກັບສາຍຕໍ່ໄປນີ້ແລະປ່ຽນພວກມັນຕາມທີ່ໄດ້ຮຽກຮ້ອງ, ໃນບັນນາທິການ Vi, ທ່ານອາດຈະຄົ້ນຫາເສັ້ນເຫຼົ່ານັ້ນໂດຍການກົດປຸ່ມ 'ESC' ແລະພິມປຸ່ມ "/" ເພື່ອຂຽນສາຍສະເພາະ ຊອກຫາ.

  • http_port : ນີ້ແມ່ນພອດເລີ່ມຕົ້ນ ສຳ ລັບເຊີຟເວີ HTTP proxy, ໂດຍຄ່າເລີ່ມຕົ້ນແມ່ນ 3128, ທ່ານອາດຈະປ່ຽນມັນໄປທີ່ port ອື່ນທີ່ທ່ານຕ້ອງການ, ທ່ານກໍ່ອາດຈະເພີ່ມແທັກ "ໂປ່ງໃສ" ເຖິງຈຸດສຸດທ້າຍເຊັ່ນ http_port 8888 ໂປ່ງໃສເພື່ອເຮັດໃຫ້ Squid proxy ປະຕິບັດຄືກັບຕົວແທນໂປ່ງໃສຖ້າທ່ານຕ້ອງການ.
  • http_access ປະຕິເສດທັງ ໝົດ : ສາຍນີ້ຈະບໍ່ປ່ອຍໃຫ້ຜູ້ໃດຜູ້ ໜຶ່ງ ເຂົ້າເຖິງເຄື່ອງແມ່ຂ່າຍ HTTP proxy, ນັ້ນແມ່ນເຫດຜົນທີ່ທ່ານ ຈຳ ເປັນຕ້ອງປ່ຽນມັນເປັນ http_access ອະນຸຍາດໃຫ້ທຸກຄົນເລີ່ມໃຊ້ server Squid proxy ຂອງທ່ານ. >
  • ສັງເກດເຫັນ/ຊື່ໃຊ້ : ຄຳ ສັ່ງແນະ ນຳ ນີ້ແມ່ນໃຊ້ເພື່ອ ກຳ ນົດຊື່ໂຮດສະເພາະໃຫ້ກັບ server squid. ທ່ານສາມາດໃຫ້ຊື່ເຈົ້າພາບໃດໆແກ່ squid.

ຫຼັງຈາກເຮັດການປ່ຽນແປງຂ້າງເທິງ, ທ່ານອາດຈະເລີ່ມຕົ້ນ server Squid proxy ໂດຍໃຊ້ ຄຳ ສັ່ງ.

$ sudo systemctl restart squid

ການຕັ້ງຄ່າ Squid ເປັນ HTTP Proxy ໃນ Ubuntu

ໃນສ່ວນການຕັ້ງຄ່າ squid ນີ້, ພວກເຮົາຈະອະທິບາຍໃຫ້ທ່ານຮູ້ວິທີການຕັ້ງຄ່າ squid ເປັນ HTTP proxy ໂດຍໃຊ້ພຽງແຕ່ IP address ຂອງລູກຄ້າ ສຳ ລັບການກວດສອບຄວາມຖືກຕ້ອງ.

ຖ້າທ່ານຕ້ອງການທີ່ຈະອະນຸຍາດໃຫ້ມີທີ່ຢູ່ IP ດຽວໃຫ້ເຂົ້າເຖິງອິນເຕີເນັດຜ່ານເຊີຟເວີຕົວແທນ ໃໝ່ ຂອງທ່ານ, ທ່ານຈະຕ້ອງ ກຳ ນົດ acl ໃໝ່ (ລາຍການຄວບຄຸມການເຂົ້າເຖິງ) ໃນເອກະສານການຕັ້ງຄ່າ.

$ sudo vim /etc/squid/squid.conf

ກົດລະບຽບ acl ທີ່ທ່ານຄວນເພີ່ມແມ່ນ:

acl localnet src XX.XX.XX.XX

ບ່ອນ XX.XX.XX.XX ແມ່ນທີ່ຢູ່ IP ຂອງເຄື່ອງລູກຄ້າ. acl ນີ້ຄວນຖືກເພີ່ມເຂົ້າໃນຕອນຕົ້ນຂອງພາກ ACL ດັ່ງທີ່ສະແດງຢູ່ໃນ ໜ້າ ຈໍຕໍ່ໄປນີ້.

ຕົວຢ່າງມັນເປັນການປະຕິບັດທີ່ດີທີ່ຈະ ກຳ ນົດ ຄຳ ເຫັນຕໍ່ກັບ ACL ເຊິ່ງຈະອະທິບາຍວ່າໃຜໃຊ້ທີ່ຢູ່ IP ນີ້, ຕົວຢ່າງ.

acl localnet src 192.168.0.102  # Boss IP address

ທ່ານຈະຕ້ອງໄດ້ເລີ່ມການບໍລິການ Squid ຄືນ ໃໝ່ ເພື່ອໃຫ້ການປ່ຽນແປງ ໃໝ່ ມີຜົນບັງຄັບໃຊ້.

$ sudo systemctl restart squid

ໂດຍຄ່າເລີ່ມຕົ້ນ, ມີພຽງແຕ່ບາງພອດທີ່ຖືກອະນຸຍາດໃນການຕັ້ງຄ່າ squid, ຖ້າທ່ານຕ້ອງການເພີ່ມຫຼາຍພຽງແຕ່ ກຳ ນົດພວກມັນຢູ່ໃນເອກະສານການຕັ້ງຄ່າດັ່ງທີ່ສະແດງໄວ້.

acl Safe_ports port XXX

ບ່ອນທີ່ XXX ແມ່ນ ໝາຍ ເລກທ່າເຮືອທີ່ທ່ານຕ້ອງການຢາກອະນຸຍາດ. ອີກເທື່ອ ໜຶ່ງ ມັນເປັນການປະຕິບັດທີ່ດີໃນການ ກຳ ນົດ ຄຳ ຄິດ ຄຳ ເຫັນຕໍ່ກັບ acl ເຊິ່ງຈະອະທິບາຍວ່າທ່າເຮືອຈະໃຊ້ຫຍັງ.

ສຳ ລັບການປ່ຽນແປງທີ່ຈະມີຜົນ, ທ່ານ ຈຳ ເປັນຕ້ອງໄດ້ກັບຄືນສູ່ປາຫມຶກອີກຄັ້ງ.

$ sudo systemctl restart squid

ເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດກວດສອບຄວາມຖືກຕ້ອງກ່ອນການ ນຳ ໃຊ້ໂປແກຼມຕົວແທນ, ທ່ານ ຈຳ ເປັນຕ້ອງເປີດໃຊ້ການກວດສອບ http ຂັ້ນພື້ນຖານໃນເອກະສານການຕັ້ງຄ່າ, ແຕ່ກ່ອນທ່ານ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງຊຸດ apache2-utils ໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ sudo apt install apache2-utils

ຕອນນີ້ສ້າງແຟ້ມທີ່ມີຊື່ວ່າ“ passwd” ເຊິ່ງຕໍ່ມາຈະເກັບຮັກສາຊື່ຜູ້ໃຊ້ເພື່ອການກວດສອບ. Squid ເຮັດວຽກກັບຜູ້ໃຊ້ "proxy" ເພື່ອວ່າເອກະສານຄວນຈະເປັນເຈົ້າຂອງໂດຍຜູ້ໃຊ້ນັ້ນ.

$ sudo touch /etc/squid/passwd
$ sudo chown proxy: /etc/squid/passwd
$ ls -l /etc/squid/passwd

ຕອນນີ້ພວກເຮົາຈະສ້າງຜູ້ໃຊ້ ໃໝ່ ທີ່ມີຊື່ວ່າ“ tecmint” ແລະຕັ້ງລະຫັດລັບຂອງມັນ.

$ sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

ຕອນນີ້ເພື່ອໃຫ້ການກວດສອບ http ຂັ້ນພື້ນຖານເປີດເອກະສານການຕັ້ງຄ່າ.

$ sudo vim /etc/squid/squid.conf

ຫຼັງຈາກທີ່ Port ACLs ເພີ່ມສາຍຕໍ່ໄປນີ້:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

ຊ່ວຍປະຢັດເອກະສານແລະເລີ່ມຕົ້ນກະປູເພື່ອໃຫ້ການປ່ຽນແປງ ໃໝ່ ມີຜົນ:

$ sudo systemctl restart squid

ເພື່ອສະກັດກັ້ນການເຂົ້າເຖິງເວັບໄຊທ໌ທີ່ບໍ່ຕ້ອງການ, ທຳ ອິດສ້າງແຟ້ມເອກະສານທີ່ມີຊື່ວ່າ“ blacklisted_sites.acl” ເຊິ່ງຈະເກັບຮັກສາສະຖານທີ່ທີ່ຖືກບັນຊີ ດຳ ຢູ່ໃນນັ້ນ.

$ sudo touch /etc/squid/blacklisted_sites.acl

ໃນປັດຈຸບັນເພີ່ມເວັບໄຊທ໌ທີ່ທ່ານຕ້ອງການທີ່ຈະສະກັດການເຂົ້າເຖິງ, ຍົກຕົວຢ່າງ.

.badsite1.com
.badsite2.com

ຂັ້ນຕອນ ດຳ ເນີນການແຈ້ງໃຫ້ກຸ້ງເພື່ອກີດຂວາງການອ້າງອິງທັງ ໝົດ ຕໍ່ເວັບໄຊທ໌ນັ້ນລວມທັງ www.badsite1, subsite.badsite1.com ແລະອື່ນໆ.

ຕອນນີ້ເປີດເອກະສານການຕັ້ງຄ່າຂອງ Squid.

$ sudo vim /etc/squid/squid.conf

ພຽງແຕ່ຫລັງຈາກ ACLs ຂ້າງເທິງເພີ່ມສອງສາຍຕໍ່ໄປນີ້:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

ດຽວນີ້ບັນທຶກເອກະສານແລະເລີ່ມຕົ້ນກະປອງ:

$ sudo systemctl restart squid

ເພື່ອສະກັດລາຍຊື່ຂອງ ຄຳ ສຳ ຄັນ, ທຳ ອິດສ້າງແຟ້ມເອກະສານທີ່ມີຊື່ວ່າ“ blockkeywords.lst” ເຊິ່ງຈະເກັບຮັກສາ ຄຳ ທີ່ຖືກບັນຊີ ດຳ ລົງໄວ້ໃນນັ້ນ.

$ sudo touch /etc/squid/blockkeywords.lst

ໃນປັດຈຸບັນຕື່ມ ຄຳ ທີ່ທ່ານຕ້ອງການສະກັດການເຂົ້າເຖິງ, ຍົກຕົວຢ່າງ.

facebook
instagram
gmail

ຕອນນີ້ເປີດເອກະສານການຕັ້ງຄ່າຂອງ Squid ແລະເພີ່ມກົດລະບຽບຕໍ່ໄປນີ້.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

ດຽວນີ້ບັນທຶກເອກະສານແລະເລີ່ມຕົ້ນກະປອງ:

$ sudo systemctl restart squid

ເມື່ອທຸກຢ່າງໄດ້ຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ, ດຽວນີ້ທ່ານສາມາດ ກຳ ນົດໂປແກຼມທ່ອງເວັບຂອງລູກຄ້າໃນທ້ອງຖິ່ນຂອງທ່ານຫຼືລະບົບເຄືອຂ່າຍປະຕິບັດການຂອງລະບົບປະຕິບັດການເພື່ອໃຊ້ຕົວແທນ HTTP squid ທີ່ຖືກປັບແຕ່ງ ໃໝ່ ຂອງທ່ານ.

ຕັ້ງຄ່າລູກຄ້າໃຫ້ໃຊ້ Squid Proxy

ຕອນນີ້ເພື່ອທົດສອບວ່າ server server ຂອງທ່ານ ກຳ ລັງເຮັດວຽກຫລືບໍ່, ທ່ານອາດຈະເປີດ Firefox ແລະເຂົ້າໄປທີ່ Edit -> Preferences -> Advanced -> Network -> ການຕັ້ງຄ່າແລະເລືອກ“ ການຕັ້ງຄ່າຕົວແທນຄູ່ມື” ແລະໃສ່ທີ່ຢູ່ IP ຂອງ server ຂອງທ່ານແລະ Port ທີ່ຢູ່ ການນໍາໃຊ້ສໍາລັບການເຊື່ອມຕໍ່ທັງຫມົດເປັນມັນດັ່ງຕໍ່ໄປນີ້.

ເມື່ອທ່ານຕື່ມທຸກລາຍລະອຽດຂອງຕົວແທນທີ່ຕ້ອງການ, ທ່ານຈະສາມາດທ່ອງເວັບໂດຍໃຊ້ເຊີຟເວີຕົວແທນ Squid ຂອງທ່ານ, ທ່ານອາດຈະເຮັດແບບດຽວກັນນີ້ຢູ່ໃນໂປແກຼມທ່ອງເວັບອື່ນຫຼືໂປແກຼມທີ່ທ່ານຕ້ອງການ.

ເພື່ອໃຫ້ແນ່ໃຈວ່າທ່ານ ກຳ ລັງທ່ອງເວັບໂດຍໃຊ້ server proxy ຂອງທ່ານ, ທ່ານອາດຈະເຂົ້າເວັບໄຊທ໌ http://www.ipaddresslocation.org/, ຢູ່ແຈເບື້ອງຂວາທ່ານຕ້ອງເຫັນທີ່ຢູ່ IP ດຽວກັບທີ່ຢູ່ IP ຂອງເຊີບເວີຂອງທ່ານ.

ສຳ ລັບການຕັ້ງຄ່າການຕັ້ງຄ່າເພີ່ມເຕີມ, ທ່ານອາດຈະກວດເບິ່ງເອກະສານ squid ຢ່າງເປັນທາງການ. ຖ້າທ່ານມີ ຄຳ ຖາມຫຼື ຄຳ ເຫັນ, ກະລຸນາຕື່ມພວກມັນໃນສ່ວນ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.