ວິທີການສ້າງ HTTP Proxy ໂດຍໃຊ້ Squid ໃນ CentOS 7/8
ໂປແກຼມໂປແກຼມໂປແກຼມເວັບໄດ້ມີມາເປັນເວລາຂ້ອນຂ້າງແລ້ວແລະຖືກ ນຳ ໃຊ້ໂດຍຜູ້ໃຊ້ຫລາຍລ້ານຄົນທົ່ວໂລກ. ພວກເຂົາມີຈຸດປະສົງທີ່ຫລາກຫລາຍ, ທີ່ເປັນທີ່ນິຍົມທີ່ສຸດແມ່ນການປິດບັງຊື່ທາງອິນເຕີເນັດ, ແຕ່ມີອີກວິທີອື່ນທີ່ທ່ານສາມາດໃຊ້ປະໂຫຍດຈາກໂປແກຼມໂປຼແກຼມໂປຼແກຼມຕ່າງໆ. ນີ້ແມ່ນຄວາມຄິດບາງຢ່າງ:
- ການປິດບັງຊື່ທາງອິນເຕີເນັດ
- ປັບປຸງຄວາມປອດໄພທາງອິນເຕີເນັດ
- ປັບປຸງເວລາໃນການໂຫຼດ
- ຂັດຂວາງການຈະລາຈອນທີ່ເປັນອັນຕະລາຍ
- ເຂົ້າສູ່ລະບົບ online ຂອງທ່ານ
- ເພື່ອຫລີກລ້ຽງຂໍ້ ຈຳ ກັດໃນພາກພື້ນ
- ໃນບາງກໍລະນີສາມາດຫຼຸດຜ່ອນການ ນຳ ໃຊ້ແບນວິດ
ເຊີຟເວີຕົວແທນແມ່ນຄອມພິວເຕີ້ທີ່ໃຊ້ເປັນຕົວກາງລະຫວ່າງລູກຄ້າແລະເຄື່ອງແມ່ຂ່າຍອື່ນໆທີ່ລູກຄ້າອາດຈະຂໍຊັບພະຍາກອນ. ຕົວຢ່າງທີ່ງ່າຍໆຂອງສິ່ງນີ້ແມ່ນເມື່ອລູກຄ້າເຮັດການຮ້ອງຂໍທາງອິນເຕີເນັດ (ຕົວຢ່າງຕ້ອງການເປີດ ໜ້າ ເວບໄຊທ໌), ລາວເຊື່ອມຕໍ່ກັບ server server ກ່ອນ.
ເຄື່ອງແມ່ຂ່າຍຕົວແທນຫຼັງຈາກນັ້ນກວດເບິ່ງ cache ຂອງແຜ່ນທ້ອງຖິ່ນຂອງມັນແລະຖ້າຂໍ້ມູນສາມາດພົບເຫັນຢູ່ບ່ອນນັ້ນ, ມັນຈະສົ່ງຂໍ້ມູນຄືນໃຫ້ກັບລູກຄ້າ, ຖ້າບໍ່ມີຖານຄວາມ ຈຳ, ມັນຈະເຮັດໃຫ້ການຮ້ອງຂໍໃນນາມຂອງລູກຄ້າໂດຍໃຊ້ທີ່ຢູ່ IP ຂອງຕົວແທນ (ແຕກຕ່າງຈາກ ລູກຄ້າ) ແລະຫຼັງຈາກນັ້ນສົ່ງຄືນຂໍ້ມູນໃຫ້ກັບລູກຄ້າ. ເຊີຟເວີຕົວແທນຈະພະຍາຍາມທີ່ຈະເກັບຂໍ້ມູນ ໃໝ່ ແລະຈະໃຊ້ມັນເພື່ອການຮ້ອງຂໍໃນອະນາຄົດທີ່ເຮັດກັບເຄື່ອງແມ່ຂ່າຍດຽວກັນ.
Squid ແມ່ນຕົວແທນເວັບທີ່ໃຊ້ອົງກອນຕ່າງໆຂອງຂ້ອຍ. ມັນມັກຖືກໃຊ້ເປັນຕົວແທນແຄດແລະປັບປຸງເວລາຕອບສະ ໜອງ ແລະຫຼຸດຜ່ອນການ ນຳ ໃຊ້ແບນວິດ.
ສຳ ລັບຈຸດປະສົງຂອງບົດຄວາມນີ້, ຂ້ອຍຈະຕິດຕັ້ງ Squid ຢູ່ໃນ Linode CentOS 7 VPS ແລະໃຊ້ມັນເປັນເຊີຟເວີ HTTP proxy.
ວິທີການຕິດຕັ້ງ Squid ໃນ CentOS 7/8
ກ່ອນທີ່ພວກເຮົາຈະເລີ່ມຕົ້ນ, ທ່ານຄວນຮູ້ວ່າ Squid, ບໍ່ມີຂໍ້ ກຳ ນົດຂັ້ນຕ່ ຳ, ແຕ່ປະລິມານການ ນຳ ໃຊ້ RAM ອາດຈະແຕກຕ່າງກັນໄປຕາມລູກຄ້າທີ່ທ່ອງອິນເຕີເນັດຜ່ານ server server.
Squid ແມ່ນລວມຢູ່ໃນຖານຂໍ້ມູນພື້ນຖານແລະດັ່ງນັ້ນການຕິດຕັ້ງແມ່ນງ່າຍດາຍແລະກົງໄປກົງມາ. ຢ່າງໃດກໍ່ຕາມກ່ອນທີ່ຈະຕິດຕັ້ງມັນ, ໃຫ້ແນ່ໃຈວ່າແພັກເກດຂອງທ່ານລ້າສຸດໂດຍການເຮັດວຽກ.
# yum -y update
ດໍາເນີນການໂດຍການຕິດຕັ້ງກຸ້ງ, ເລີ່ມຕົ້ນແລະເປີດໃຊ້ງານມັນໃນລະບົບເລີ່ມຕົ້ນໂດຍໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
# yum -y install squid # systemctl start squid # systemctl enable squid
ໃນຈຸດນີ້, ຕົວແທນເວັບໄຊຕ໌ Squid ຂອງທ່ານຄວນຈະເຮັດວຽກຢູ່ແລ້ວແລະທ່ານສາມາດກວດສອບສະຖານະຂອງການບໍລິການກັບ.
# systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-09-20 10:07:23 UTC; 5min ago 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 Sep 20 10:07:23 tecmint systemd[1]: Starting Squid caching proxy... Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: will start 1 kids Sep 20 10:07:23 tecmint squid[2005]: Squid Parent: (squid-1) process 2007 started Sep 20 10:07:23 tecmint systemd[1]: Started Squid caching proxy.
ນີ້ແມ່ນບາງສະຖານທີ່ເອກະສານທີ່ ສຳ ຄັນທີ່ທ່ານຄວນຮັບຮູ້:
- ເອກະສານການຕັ້ງຄ່າ Squid: /etc/squid/squid.conf
- Squid Access log: /var/log/squid/access.log
- ບັນຊີ Squid Cache: /var/log/squid/cache.log
ຕ່ ຳ ສຸດຂອງເອກະສານການຕັ້ງຄ່າ squid.conf (ໂດຍບໍ່ມີ ຄຳ ເຫັນໃນມັນ) ເບິ່ງຄືວ່າ:
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access allow localnet http_access allow localhost http_access deny all http_port 3128 coredump_dir /var/spool/squid refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320
ການຕັ້ງຄ່າ Squid ເປັນ HTTP Proxy
ນີ້, ພວກເຮົາຈະສະແດງວິທີການຕັ້ງຄ່າ squid ເປັນຕົວແທນ HTTP ໂດຍໃຊ້ພຽງແຕ່ IP address ຂອງລູກຄ້າ ສຳ ລັບການກວດສອບຄວາມຖືກຕ້ອງ.
ຖ້າທ່ານຕ້ອງການທີ່ຈະອະນຸຍາດໃຫ້ທີ່ຢູ່ IP ເຂົ້າເຖິງເວັບຜ່ານເຊີຟເວີຕົວແທນ ໃໝ່ ຂອງທ່ານ, ທ່ານຈະຕ້ອງເພີ່ມສາຍ ACL (ເຂົ້າເຖິງບັນຊີຄວບຄຸມ) ໃນເອກະສານການຕັ້ງຄ່າ.
# vim /etc/squid/squid.conf
ສາຍທີ່ທ່ານຄວນເພີ່ມແມ່ນ:
acl localnet src XX.XX.XX.XX
ບ່ອນທີ່ XX.XX.XX.XX ແມ່ນທີ່ຢູ່ IP ຂອງລູກຄ້າທີ່ທ່ານຕ້ອງການເພີ່ມ. ສາຍຄວນຈະຖືກເພີ່ມເຂົ້າໃນຕອນຕົ້ນຂອງເອກະສານບ່ອນທີ່ ACLs ຖືກ ກຳ ນົດ. ມັນເປັນການປະຕິບັດທີ່ດີທີ່ຈະເພີ່ມ ຄຳ ເຫັນຕໍ່ ACL ເຊິ່ງຈະອະທິບາຍວ່າໃຜໃຊ້ທີ່ຢູ່ IP ນີ້.
ມັນເປັນສິ່ງສໍາຄັນທີ່ຄວນສັງເກດວ່າຖ້າ Squid ຕັ້ງຢູ່ນອກເຄືອຂ່າຍທ້ອງຖິ່ນຂອງທ່ານ, ທ່ານຄວນເພີ່ມທີ່ຢູ່ IP ຂອງລູກຄ້າ.
ທ່ານຈະຕ້ອງເລີ່ມ Squid ຄືນ ໃໝ່ ເພື່ອໃຫ້ການປ່ຽນແປງ ໃໝ່ ມີຜົນບັງຄັບໃຊ້.
# systemctl restart squid
ດັ່ງທີ່ທ່ານອາດຈະໄດ້ເຫັນໃນເອກະສານການຕັ້ງຄ່າ, ມີພຽງແຕ່ພອດໃດ ໜຶ່ງ ທີ່ຖືກອະນຸຍາດ ສຳ ລັບເຊື່ອມຕໍ່. ທ່ານສາມາດເພີ່ມເຕີມໄດ້ໂດຍການແກ້ໄຂເອກະສານການຕັ້ງຄ່າ.
acl Safe_ports port XXX
ບ່ອນທີ່ XXX ແມ່ນພອດຈິງທີ່ທ່ານຕ້ອງການໂຫລດ. ອີກເທື່ອ ໜຶ່ງ ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະອອກ ຄຳ ເຫັນຕໍ່ໄປເຊິ່ງຈະອະທິບາຍວ່າທ່າເຮືອຈະໃຊ້ຫຍັງ.
ສຳ ລັບການປ່ຽນແປງທີ່ຈະມີຜົນ, ທ່ານ ຈຳ ເປັນຕ້ອງໄດ້ກັບຄືນສູ່ປາຫມຶກອີກຄັ້ງ.
# systemctl restart squid
ທ່ານອາດຈະຕ້ອງການໃຫ້ຜູ້ໃຊ້ຂອງທ່ານກວດສອບຄວາມຖືກຕ້ອງກ່ອນທີ່ຈະໃຊ້ຕົວແທນ. ເພື່ອຈຸດປະສົງນັ້ນ, ທ່ານສາມາດເປີດໃຊ້ການກວດສອບ HTTP ຂັ້ນພື້ນຖານ. ມັນງ່າຍແລະໄວໃນການຕັ້ງຄ່າ.
ກ່ອນອື່ນ ໝົດ, ທ່ານ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງເຄື່ອງມື httpd-install.
# yum -y install httpd-tools
ບັດນີ້ໃຫ້ສ້າງເອກະສານທີ່ຈະເກັບຮັກສາຊື່ຜູ້ໃຊ້ຕໍ່ມາ. Squid ເຮັດວຽກກັບຜູ້ໃຊ້“ squid” ສະນັ້ນເອກະສານຄວນຈະເປັນເຈົ້າຂອງໂດຍຜູ້ໃຊ້ນັ້ນ.
# touch /etc/squid/passwd # chown squid: /etc/squid/passwd
ຕອນນີ້ພວກເຮົາຈະສ້າງຜູ້ໃຊ້ ໃໝ່ ທີ່ມີຊື່ວ່າ "proxyclient" ແລະຕັ້ງລະຫັດຜ່ານຂອງມັນ.
# htpasswd /etc/squid/passwd proxyclient New password: Re-type new password: Adding password for user proxyclient
ຕອນນີ້ເພື່ອ ກຳ ນົດການກວດສອບຄວາມຖືກຕ້ອງເປີດເອກະສານການຕັ້ງຄ່າ.
# 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
ຊ່ວຍປະຢັດເອກະສານແລະເລີ່ມຕົ້ນກະປູເພື່ອໃຫ້ການປ່ຽນແປງ ໃໝ່ ມີຜົນ:
# systemctl restart squid
ສຸດທ້າຍ, ພວກເຮົາຈະສ້າງ ACL ສຸດທ້າຍ ໜຶ່ງ ທີ່ຈະຊ່ວຍພວກເຮົາກີດຂວາງເວັບໄຊທ໌ທີ່ບໍ່ຕ້ອງການ. ກ່ອນອື່ນ ໝົດ, ສ້າງເອກະສານທີ່ຈະເກັບສະຖານທີ່ທີ່ຖືກບັນຊີ ດຳ.
# touch /etc/squid/blacklisted_sites.acl
ທ່ານສາມາດເພີ່ມບາງໂດເມນທີ່ທ່ານຕ້ອງການບລັອກ. ຍົກຕົວຢ່າງ:
.badsite1.com .badsite2.com
ຈຸດ ດຳ ເນີນຄະດີບອກ squid ເພື່ອສະກັດເອກະສານອ້າງອີງທັງ ໝົດ ໃນເວັບໄຊດັ່ງກ່າວລວມທັງ www.badsite1, subsite.badsite1.com, ແລະອື່ນໆ.
ຕອນນີ້ເປີດເອກະສານການຕັ້ງຄ່າຂອງ Squid.
# vim /etc/squid/squid.conf
ພຽງແຕ່ຫລັງຈາກທີ່ Port ACLs ເພີ່ມສອງສາຍຕໍ່ໄປນີ້:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl" http_access deny bad_urls
ດຽວນີ້ບັນທຶກເອກະສານແລະເລີ່ມຕົ້ນກະປອງ:
# systemctl restart squid
ເມື່ອທຸກຢ່າງໄດ້ຕັ້ງຄ່າຢ່າງຖືກຕ້ອງ, ດຽວນີ້ທ່ານສາມາດ ກຳ ນົດ browser browser ໃນທ້ອງຖິ່ນຂອງທ່ານຫລືລະບົບເຄືອຂ່າຍປະຕິບັດການຂອງລະບົບປະຕິບັດການເພື່ອໃຊ້ proxy squid ຂອງທ່ານ.
ໃນບົດແນະ ນຳ ນີ້, ທ່ານໄດ້ຮຽນຮູ້ວິທີຕິດຕັ້ງ, ຮັບປະກັນແລະຕັ້ງຄ່າເຊີຟເວີ Squid HTTP Proxy ດ້ວຍຕົວເອງ. ດ້ວຍຂໍ້ມູນທີ່ທ່ານຫາກໍ່ໄດ້ຮັບ, ຕອນນີ້ທ່ານສາມາດເພີ່ມການກັ່ນຕອງຂັ້ນພື້ນຖານບາງຢ່າງ ສຳ ລັບການຈະລາຈອນທີ່ເຂົ້າມາແລະທາງຜ່ານ Squid.
ຖ້າທ່ານຕ້ອງການທີ່ຈະເຂົ້າໄປໃນໄມພິເສດ, ທ່ານຍັງສາມາດຕັ້ງຄ່າກຸ້ງເພື່ອກີດຂວາງບາງເວັບໄຊທ໌ໃນເວລາເຮັດວຽກເພື່ອປ້ອງກັນການລົບກວນ. ຖ້າທ່ານມີ ຄຳ ຖາມຫຼື ຄຳ ເຫັນ, ກະລຸນາຂຽນລົງໃນສ່ວນ ຄຳ ເຫັນຂ້າງລຸ່ມ.