ວິທີການຄວບຄຸມການຈະລາຈອນເວັບໂດຍໃຊ້ Squid Cache ແລະ Cisco Router ໃນ Linux


ໜ້າ ທີ່ ສຳ ຄັນ ໜຶ່ງ ໃນເຄືອຂ່າຍແມ່ນການຄວບຄຸມແລະຄຸ້ມຄອງພະນັກງານການຄ້າມະນຸດເວັບໄຊຕ໌, ມີຫລາຍວິທີແກ້ໄຂທີ່ສາມາດຈັດການກັບບັນຫານີ້, ໜຶ່ງ ໃນວິທີແກ້ໄຂທີ່ດີທີ່ສຸດແມ່ນການໃຊ້ cache squid ໃນເຄື່ອງ Linux. Squid ສາມາດກວດກາ, ຈຳ ກັດແລະເກັບ ກຳ ຂໍ້ມູນການຄ້າຂາຍເວັບທີ່ມາຈາກເຄືອຂ່າຍ ໜຶ່ງ ໄປຫາເຄືອຂ່າຍອື່ນເຊັ່ນ: LAN ຈາກອິນເຕີເນັດ.

ມີສອງສາມວິທີໃນການປ່ຽນເສັ້ນທາງການຮ້ອງຂໍຂອງລູກຄ້າໄປທີ່ເຄື່ອງຈັກກະປູ, ໃນບົດຄວາມນີ້ພວກເຮົາຈະສະແດງວິທີການປ່ຽນເສັ້ນທາງການຈະລາຈອນເວັບຈາກ router CISCO ໄປຫາເຄື່ອງ Squid Cache ໂດຍໃຊ້ໂປແກຼມ WCCP.

ຮູບພາບຂ້າງລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງສະຖານະການພື້ນຖານ.

ດັ່ງທີ່ທ່ານເຫັນໃນຮູບຂ້າງເທິງທຸກການຄ້າຂາຍເວັບຂອງລູກຄ້າກ່ອນເຂົ້າສູ່ Cisco Router (ນັ້ນແມ່ນປະຕູຕອນຕົ້ນຂອງພວກເຂົາ), ຫຼັງຈາກນັ້ນ router ຈະໂອນແພັກເກັດໄປຫາເຄື່ອງຈັກ squid, ດຽວນີ້ squid ສາມາດຫລິ້ນບົດບາດຂອງມັນ, ພາລະບົດບາດຕົ້ນຕໍແມ່ນການ ກຳ ຈັດເນື້ອຫາຂອງເວັບ, ຈຳ ກັດການເຂົ້າເຖິງ ໃນໂດເມນ, ຊ່ວງເວລາ, ທີ່ຢູ່ ip, ຂະ ໜາດ ຂອງເອກະສານ, ແລະອື່ນໆ.

ພວກເຮົາທົບທວນຄືນການຕັ້ງຄ່າສະຖານະການນີ້ເປັນສອງບາດກ້າວໃຫຍ່, ທຳ ອິດພວກເຮົາຄວນຕິດຕັ້ງແລະ ກຳ ຫນົດຄ່າ squid ແລະ Linux, ຈາກນັ້ນຕັ້ງຄ່າ router ເພື່ອປ່ຽນເສັ້ນທາງການຈະລາຈອນເວັບເຂົ້າໄປໃນ squid ໂດຍໃຊ້ WCCP protocol.

ໃນສະຖານະການນີ້ຂ້ອຍໃຊ້ CENTOS 6.5 ເປັນເຊີຟເວີ LINUX ຂອງຂ້ອຍແລະ Cisco 2691 ເປັນລະບົບ Router ຂອງຂ້ອຍ.

Operating System: CENTOS 6.5
Application: Squid
Router: Cisco 2691

ຂັ້ນຕອນທີ 1: ຕິດຕັ້ງ Squid Cache

Squid ມີຢູ່ໃນສູນເກັບຮັກສາໄວ້ໃນຕອນຕົ້ນຂອງ CENTOS, ພວກເຮົາ ທຳ ອິດຕິດຕັ້ງມັນໂດຍໃຊ້ ຄຳ ສັ່ງ yum ທີ່ ໜ້າ ຮັກແລະຫຼັງຈາກນັ້ນກໍ່ເລີ່ມໃຫ້ບໍລິການຂອງພວກເຂົາແລະສຸດທ້າຍກໍ່ຕັ້ງການບໍລິການຂອງ squid ໂດຍອັດຕະໂນມັດ.

# yum -y install squid
# service squid start
# chkconfig squid on

ຂັ້ນຕອນທີ 2: ການກະກຽມ Squid Cache

ຕອນນີ້ພວກເຮົາຕ້ອງປ່ຽນແປງບາງພຶດຕິ ກຳ ທີ່ບໍ່ຖືກຕ້ອງຂອງລະບົບປະຕິບັດການ centos, ພວກເຮົາ ຈຳ ເປັນຕ້ອງເຮັດໃຫ້ packet forwarding ແລະປິດການ ນຳ ໃຊ້ filter Path (RPF), ພວກເຮົາສາມາດ ນຳ ໃຊ້ packet forwarding ເພື່ອໃຫ້ centos ເຮັດ ໜ້າ ທີ່ເປັນໂປແກຼມສົ່ງຕໍ່ໂປ່ງໃສ (ຄືກັບ router).

ຂ້າພະເຈົ້າຂໍອະທິບາຍລາຍລະອຽດເພີ່ມເຕີມ, ເມື່ອຜູ້ຄ້າຂາຍເຂົ້າເປັນຮ້ອຍເປີເຊັນມັນມີທີ່ຢູ່ແລະທີ່ຢູ່ປາຍທາງຂອງພວກເຂົາ, ຍົກຕົວຢ່າງເມື່ອລູກຄ້າເຂົ້າ www.example.com ໃນຕົວທ່ອງເວັບຂອງລາວຊຸດ http request packet ສ້າງແລະມັນມີທີ່ຢູ່ ip ຂອງແຫຼ່ງຂອງເຄື່ອງລູກຄ້າ. (ເຊັ່ນດຽວກັບ 192.168.1.20) ແລະທີ່ຢູ່ ip ຂອງປາຍທາງຂອງ server.com.com (ຄືກັບ 2.2.2.2).

ສະນັ້ນ, ເມື່ອ packet ທີ່ໄດ້ຮັບໂດຍ centos ມັນກວດພົບວ່າເປັນ packet ທີ່ບໍ່ຖືກຕ້ອງເພາະວ່າ address ipos ບໍ່ແມ່ນທີ່ຢູ່ປາຍທາງຂອງ packet, ເພາະເຫດຜົນດ້ານຄວາມປອດໄພ, centos ຫຼຸດລົງ packet, ແຕ່ພວກເຮົາຕ້ອງການຈາກ squid ປະຕິບັດໃນຮູບແບບໂປ່ງໃສ. ພວກເຮົາບອກສະຖານະການນີ້ເປັນເປີເຊັນໂດຍການເປີດໃຊ້ potion forwarding potion.

ຕໍ່ໄປພວກເຮົາຄວນປິດການ ນຳ ໃຊ້ Reverse path Filtering ເພື່ອໃຫ້ centos ຍອມຮັບເອົາແພັກເກັດທີ່ບໍ່ສາມາດເຂົ້າເຖິງໄດ້ໂດຍເຄື່ອງຈັກ squid ຫຼືມັນເປັນແພັກທີ່ບໍ່ມີ ip address ໃນ subnet ດຽວກັນຂອງ machine squid.

# nano /etc/sysctl.conf
net.ipv4.ip_forward = 1 #set to 1 for enable the packet forwarding feature
net.ipv4.conf.default.rp_filter = 0 # set to 0 for disable the reverse path filter behavior

ຕໍ່ໄປພວກເຮົາຕ້ອງສ້າງອິນເຕີເຟດ GRE ໃນເຄື່ອງ CENTOS, ເພື່ອຫຍັງ? ຂ້າພະເຈົ້າຂໍອະທິບາຍເພີ່ມເຕີມ, ໂປໂຕຄອນ WCCP ເຮັດວຽກຜ່ານອຸໂມງ GRE, ມັນ ໝາຍ ຄວາມວ່າພາສາລະຫວ່າງ router ແລະ Squid ແມ່ນ GRE, ສະນັ້ນເຊັນເຊີ້ ຈຳ ເປັນຕ້ອງມີອິນເຕີເຟດ GRE ສຳ ລັບ De-encapsulate packet GRE.

ພວກເຮົາຄວນສ້າງແຟ້ມການຕັ້ງຄ່າ ສຳ ລັບ GRE interface ໃນເສັ້ນທາງ“/etc/sysconfig/network-script/ifcfg-gre0”.

ໃສ່ລະຫັດຂ້າງລຸ່ມນີ້ໃນເອກະສານການຕັ້ງຄ່າ ifcfg-gre0.

DEVICE=gre0
BOOTPROTO=static
IPADDR=10.0.0.2         #unused ip address in your network
NETMASK=255.255.255.252
ONBOOT=yes
IPV6INIT=no

ຫຼັງຈາກສ້າງອິນເຕີເຟດ GRE ພວກເຮົາ ຈຳ ເປັນຕ້ອງເລີ່ມການບໍລິການເຄືອຂ່າຍຄືນ ໃໝ່.

# service network restart

ຂັ້ນຕອນທີ 3: ການຕັ້ງຄ່າຖານຄວາມ ຈຳ Squid

ພວກເຮົາ ຈຳ ເປັນຕ້ອງບອກໃຫ້ກຸ້ງຮັບເອົາຊອງ WCCP ຈາກ router. ໃສ່ລະຫັດຂ້າງລຸ່ມນີ້ໃສ່ໃນແຟ້ມ /etc/squid/squid.conf.

http_port 3128 intercept                 # Define SQUID listening port
wccp2_router 192.168.1.254          #ip address of the router
wccp2_forwarding_method gre
wccp2_return_method gre
wccp2_service standard 0

ບັນທຶກເອກະສານການຕັ້ງຄ່າແລະເລີ່ມການບໍລິການ squid.

# service squid restart

Squid ຟັງ ສຳ ລັບແພັກເກັດໃນພອດ 3128, ແຕ່ ໝາຍ ເລກພອດປາຍທາງຂອງແພັກເກັດຂອງພວກເຮົາແມ່ນ 80, ສະນັ້ນ ສຳ ລັບການປ່ຽນທີ່ Port ປາຍທາງ 80 ເຖິງ 3128, ພວກເຮົາ ຈຳ ເປັນຕ້ອງສ້າງກົດລະບຽບ NAT ໃນ CENTOS ປະສົມປະສານໄຟວໍ (ທີ່ຕັ້ງຊື່ວ່າ iptable).

# iptables -t nat -A PREROUTING -i gre0 -p tcp --dport 80 -j REDIRECT --to-port 3128
# iptables -t nat -A POSTROUTING -j MASQUERADE

ຂັ້ນຕອນທີ 4: ການຕັ້ງຄ່າ Router Router

ທຳ ອິດພວກເຮົາຄວນເປີດໃຊ້ WCCP ໃນ router cisco.

R1(config)# ip wccp version 2
Then we must use an ACL for introducing SQUID cache machine to router
R1(config)# ip access-list standard SQUID-MACHINE
R1(config-std-nacl)# permit host 192.168.1.10

ຕໍ່ໄປພວກເຮົາ ກຳ ນົດບັນຊີລາຍຊື່ການເຂົ້າເຖິງອື່ນ ສຳ ລັບສອງຈຸດປະສົງທີ່ແຕກຕ່າງກັນກ່ອນອື່ນ ໝົດ ພວກເຮົາຄວນຍົກເວັ້ນການຄ້າມະນຸດ SQUID ຈາກການປ່ຽນເສັ້ນທາງໂດຍໂປແກຼມ WCCP (ຖ້າບໍ່ແມ່ນພວກເຮົາບໍ່ມີຂອບເຂດ !!) ອັນທີສອງພວກເຮົາ ກຳ ນົດວ່າການຄ້າ LAN ທີ່ພວກເຮົາຕ້ອງການຜ່ານ WCCP ແລະ SQUID ແມ່ນຫຍັງ.

R1(config)#ip access-list LAN-TRAFFICS
R1(config-ext-nacl)#deny ip host 192.168.1.10 any                            #Prevent SQUID to get in loop
R1(config-ext-nacl)#permit tcp 192.168.1.0 0.0.0.255 any equal www           #define LAN Traffics

ຫຼັງຈາກສ້າງລາຍການເຂົ້າເຖິງຂອງພວກເຮົາແລ້ວພວກເຮົາຕ້ອງໄດ້ ກຳ ນົດຄ່າໂປໂຕຄອນ WCCP ໃນ router.

R1(config)# ip wccp web-cache redirect-list LAN-TRAFFIC group-list SQUID-MACHINE

ທຸກໆສິ່ງແມ່ນກຽມພ້ອມ ສຳ ລັບຂັ້ນຕອນສຸດທ້າຍ, ພວກເຮົາຕ້ອງບອກເລົາເຕີວ່າໃນການໂຕ້ຕອບ/ອິນເຕີເນັດໃດ ໜຶ່ງ ມັນຕ້ອງປ່ຽນເສັ້ນທາງການຄ້າຂາຍໂດຍໃຊ້ການຕັ້ງຄ່າ WCCP ຂອງພວກເຂົາ.

R1(config)#interface fastEthernet 0/0
R1((config-if)# ip wccp web-cache redirect in

ບົດສະຫຼຸບ

ມັນເຖິງເວລາທີ່ຈະສະຫຼຸບທຸກ ຄຳ ສັ່ງແລະບົດເລື່ອງຕ່າງໆໃນສອງສາມເສັ້ນເພື່ອໃຫ້ມີຄວາມເຂົ້າໃຈດີຂື້ນ, ອີງຕາມສະຖານະການທີ່ພວກເຮົາປ່ຽນເສັ້ນທາງການທ່ອງເວັບຂອງພະນັກງານ (ນັ້ນແມ່ນຢູ່ TCP port 80) ຈາກ ROUTER (ນັ້ນແມ່ນປະຕູເລີ່ມຕົ້ນຂອງລູກຄ້າ) ໄປຫາບ່ອນເກັບຂໍ້ມູນ squid ເຄື່ອງໂດຍໃຊ້ໂປແກຼມ WCCP.

ຂະບວນການທັງ ໝົດ ນີ້ເກີດຂື້ນຢ່າງງຽບໆແລະບໍ່ມີການຕັ້ງຄ່າເພີ່ມເຕີມຢູ່ຂ້າງລູກຄ້າ. ສະນັ້ນພວກເຮົາສາມາດຄວບຄຸມແລະ ກຳ ນົດນະໂຍບາຍຕ່າງໆກ່ຽວກັບການຄ້າຂາຍເວັບໃນ LAN. ຍົກຕົວຢ່າງ, ພວກເຮົາສາມາດເຂົ້າເບິ່ງການທ່ອງເວັບໄດ້ພຽງແຕ່ໃນເວລາທີ່ ຈຳ ກັດ, ຈຳ ກັດຂະ ໜາດ ດາວໂຫລດສູງສຸດ, ກຳ ນົດບັນຊີ ດຳ ແລະບັນຊີຂາວຂອງພວກເຮົາ, ສ້າງລາຍງານເຕັມຂອງການ ນຳ ໃຊ້ກິດຈະ ກຳ ທາງອິນເຕີເນັດແລະອື່ນໆ.

ໜຶ່ງ ໃນຂໍ້ເທັດຈິງທີ່ ໜ້າ ສົນໃຈໃນສະຖານະການນີ້ແມ່ນເວລາທີ່ເຄື່ອງຈັກ squid ລົງ router router ກວດພົບບັນຫານີ້ແລະຢຸດການໂອນຍ້າຍ packets ໄປສູ່ມັນ, ດັ່ງນັ້ນທ່ານສາມາດເພີດເພີນຈາກເວລາສູນກາງໃນເຄືອຂ່າຍຂອງທ່ານ.

ຖ້າທ່ານມີ ຄຳ ຖາມໃດໆທີ່ກ່ຽວຂ້ອງກັບບົດຄວາມນີ້ກະລຸນາຝາກ ຄຳ ຕອບຜ່ານຊ່ອງທາງ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.