Xây dựng một Transparent Proxy để Filter HTTP và HTTPS với Squid trên Centos7

Tutorial này là những kinh nghiệm của bản thân mình trong lúc tìm hiểu về Squid proxy, do đó các config này nọ chỉ ở mức cơ bản vừa đủ dùng chứ cũng không tối ưu lắm. Nên kính mong các tiền bối nào có lỡ đi qua thì góp ý giúp mình để hoàn thiện hơn (bow)

Squid là một caching và forwarding HTTP web proxy ,phiên bản đầu tiên của Squid được ra đời tháng 7 năm 1996. Nó có nhiều cách sử dụng cho nhiều mục đích khác nhau. Trong khuông khổ bài viết này, mình sẽ chỉ đề cập đến chế độ hoạt động gọi là Interception mode của Squid. Để có thể tìm hiểu thêm về Squid, các bạn có thể google với từ khóa Squid proxy

Transparent Proxy (proxy trong suốt) , đối với Squid thì Transparent Proxy là tên gọi của một Squid proxy khi nó hoạt động ở chế độ Interception Mode. Sở dĩ nó có tên gọi là Proxy trong suốt vì khi ở chế độ này, thì các request từ client đến các web server sẽ phải "đi xuyên" qua thằng Proxy này mà client không hề hay biết . Nghe thì có vẻ rỗi hơi, vì tự dưng tốn công cài cắm, setup các thứ các thứ chỉ để client đi xuyên qua mà không làm gì cả thì vô dụng kinh ! Mục đích của các Transparent Proxy nói chung để đáp ứng các nguyện vọng sau của nhà quản trị :

  • Tăng tốc độ kết nối và giảm lưu lượng xử lý cho router bằng cách cache các nội dung tĩnh, ít thay đổi. Lúc này thay vì user phải lặn lội lên server load lại từ đầu thì chỉ cần request là Proxy trả về nội dung luôn.
  • Tracking, monitor các kết nối http, https của user. Tất nhiên là vì mục đích an ninh chứ ko phải ghét ông nào thì mò IP của ông đó và ... block :v

Mô hình logic :

Nhìn vào mô hình trên, ta sẽ liệt kê các bước cần phải làm để triển khai một transparent proxy :

  • Forward các request http, https từ user về Squid proxy server. ( trong các trường hợp squid proxy đồng thời cũng là một router mềm đóng vai trò routing traffic thì bỏ qua bước này luôn, vì traffic mặc định nó đi vào squid rồi 😄)
  • Nat traffic từ các port 80, 443 thành các port dịch vụ của squid để squid tiến hành xử lý. ( phần này đi vào config mình sẽ giải thích vì sao phải thực hiện)
  • Xử lý xong trả về router.

Ok, bây giờ chúng ta bắt tay vào thực hiện thôi, dựa trên mô hình logic như trên, mình sẽ triển khai lab như sau :

Config router forward traffic http và https từ user về squid

Trong bài này mình sử dụng router mikrotik, đối với các router khác thì cách làm có thể khác nhưng nguyên tắc chung thì vẫn thế nhé Truy cập vào router mikrotik bằng Winbox Trong bài lab này, các interface mình sử dụng trên mikrotik là :

  • ether3 : 172.18.18.1 kết nối với client test
  • ether5 - dmz : 10.10.1.1 kết nối với Squid proxy
  • pppoe client port : WAN-FPT

Đánh dấu packets :

  • Chọn mục IP/Firewall
  • Tab Mangle
  • Add a new mangle rule
  • chain : prerouting
  • protocol : TCP
  • DST port : 80,443
  • In interface : Chọn interface gắn với client Ở ví dụ này thì client của mình gắn vào ether3 của mikrotik nên mình sẽ chọn In interface=ether3 .Ngoài ra nếu các bạn không muốn chỉ định interface mà muốn chỉ định 1 segment mạng nào đó thì không khai ở đâu mà khai báo ở phần Src. Address . Một lưu ý khác ở phần này nữa là không được khai báo IP, segment mạng hoặc interface có chứa Squid proxy của các bạn nhé. Nếu không sẽ xảy ra loop vì traffic nó sẽ đẩy qua đẩy lại giữa router và Squid.

  • Sang tab Action

  • Trong list Action, chọn Mark routing

  • Đặt tên cho Routing mark ở phần New routing mark. Ở đây mình đặt là squid-https-centos7-new

  • Nhấn apple là xong. Ngoài ra cho nhanh thì các bạn cũng có thể dùng code bên dưới để chạy trong terminal của mikrotik.

ip firewall mangle add chain=prerouting action=mark-routing new-routing-mark=squid-https-centos7-new passthrough=no protocol=tcp in-interface=ether3 dst-port=80,443 log=no log-prefix="" 

Ý nghĩa của mangle rule này là đánh dấu các packet http và https từ ether3 với protocol TCP và port là 80,443 . Các packet này sẽ có routing marksquid-https-centos7-new

Masquerade rule :

Mở chế độ NAT Masquerade

  • Chọn tab NAT
  • Add new rule
  • Tab General , mục Chain chọn srcnat / mục Out. Interface chọn interface PPPoE client của bạn ( ở đây của mình là WAN-FPT)
  • Tab Action , mục Action , chọn masquerade
  • Nhấn Apply

Code

ip firewall nat add chain=srcnat action=masquerade out-interface=WAN-FPT log=no log-prefix="" 

Forward packets

Tạo routing để đẩy các packets đã được đánh dấu đi về Squid proxy

  • Phần IP/routes
  • Create a new route
  • Dst Address : 0.0.0.0/0
  • Gateway : IP của Squid proxy trong bài này thì Squid proxy của mình có ip là 10.10.1.107
  • Routing Mark : chọn cái routing mark đã đặt tên ở bước đánh dấu packet ( ở đây của mình là squid-https-centos7-new)
  • Nhấp apply

Code

ip route add check-gateway=ping distance=1 dst-address=0.0.0.0/0 gateway=10.10.1.107 routing-mark=squid-https-centos7-new scope=30 target-scope=10 disabled=no

Vậy là xong các bước chuẩn bị trên router, bây giờ mỗi request đi ra từ client qua interface ether3 trên port 80 và 443 sẽ được đẩy về Squid proxy.

Cài đặt và config Squid proxy trên Centos7

Lưu ý các bạn là các phiên bản khác nhau của Squid thì sẽ có một số tính năng cũng như cú pháp các câu lệnh khác nhau nhé. Ở trong bài này thì mình sử dụng Squid version 3.5 trở lên. Các bạn xài các phiên bản khác thì nên check xem phần ssl_crtd có hỗ trợ không nhé

Update centos7 và disable SElinux

[[email protected] ~]#  yum update

Để disable SElinux bạn tiến hành edit file /etc/selinux/config sửa lại dòng SELINUX= gì gì đó thành SELINUX=disabled. Sau khi chỉnh sửa thì thoát ra và lưu lại, sau đó reboot nhé.

Enable ip forwarding

  • Cách 1 : Để enable ip forwarding, các bạn có thể tiến hành chỉnh sửa file /etc/sysctl.conf mở lên và thêm dòng này vào cuối file net.ipv4.ip_forward = 1 Sau khi thêm vào thì lưu lại và thoát ra. Chạy dòng lệnh sau để thực thi config mới thêm vào sysctl -p /etc/sysctl.conf
  • cách 2 : Hoặc bạn có thể chạy một lệnh như sau :
[[email protected] ~]# sysctl -w net.ipv4.ip_forward=1

Dù làm bằng cách nào thì cũng phải reboot máy nhé.

Install Squid

[[email protected] ~]#  yum install squid

Kiểm tra phiên bản đã cài

[[email protected] ~]# squid -v
Squid Cache: Version 3.5.20
Service Name: squid
configure options:  '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-strict-error-checking' '--exec_prefix=/usr' '--libexecdir=/usr/lib64/squid' '--localstatedir=/var' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--with-logdir=$(localstatedir)/log/squid' '--with-pidfile=$(localstatedir)/run/squid.pid' '--disable-dependency-tracking' '--enable-eui' '--enable-follow-x-forwarded-for' '--enable-auth' '--enable-auth-basic=DB,LDAP,MSNT-multi-domain,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB,SMB_LM,getpwnam' '--enable-auth-ntlm=smb_lm,fake' '--enable-auth-digest=file,LDAP,eDirectory' '--enable-auth-negotiate=kerberos' '--enable-external-acl-helpers=file_userip,LDAP_group,time_quota,session,unix_group,wbinfo_group' '--enable-cache-digests' '--enable-cachemgr-hostname=localhost' '--enable-delay-pools' '--enable-epoll' '--enable-ident-lookups' '--enable-linux-netfilter' '--enable-removal-policies=heap,lru' '--enable-snmp' '--enable-ssl-crtd' '--enable-storeio=aufs,diskd,ufs' '--enable-wccpv2' '--enable-esi' '--enable-ecap' '--with-aio' '--with-default-user=squid' '--with-dl' '--with-openssl' '--with-pthreads' '--disable-arch-native' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -fpie' 'LDFLAGS=-Wl,-z,relro  -pie -Wl,-z,relro -Wl,-z,now' 'CXXFLAGS=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -fpie' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

để ý version là 3.5.20 và đã kèm theo ghi chú là '--enable-ssl-crtd

Đã cài xong Squid, tạm thời để đó, chúng ta tiến hành chỉnh sửa firewall, enable các port dịch vụ của Squid và forward port 80,443.

Config Firewalld

Ở phiên bản CentOS7 thì IPtables đã được loại bỏ và thay vào đó là Firewalld , chức năng thì giống nhau cả, nhưng mà cấu hình hơi khác tý. Cũng chả hiểu sao CentOS lại bày ra trò này làm khó người dùng nữa. Nhưng mà thôi kệ vậy. Nếu không muốn dùng firewalld thì các bạn có thể disable nó đi và cài IPtables vào. Cách thức như thế nào thì google nhé. Còn không thì mình sẽ bổ sung sau vậy. Đầu tiên là enable firewalld để start service mỗi khi boot server. Xong nhớ start nó lên luôn nhá

[[email protected] ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
[[email protected] ~]# systemctl start firewalld

Xem config mặc định xem nó có gì

[[email protected] ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client ssh
  ports:
  protocols: 
  masquerade: no
  sourceports: 
  icmp-blocks: 
  rich rules: 

Ở firewalld thì nó làm việc dựa trên các zone, mình có thể add nhiều interface vào cùng 1 zone. Khi mình set rule trên zone thì nó sẽ ảnh hưởng đến interface thuộc zone đó. Nói chung cái này các bạn phải chịu khó tìm hiểu thêm, chứ nó cũng dài dòng rắc rối lắm @@ Trong status ở trên mình vừa show, thì dòng đầu tiên tức là tên zone , ở đây CentOS7 luôn mặc định có sẵn zone public và được set default là active . Mình cũng chẳng muốn đổi tên làm gì cho rắc rối, với cả chỉ dùng có mỗi 1 interface và 1 zone này thôi nên cứ kệ nó vậy. Tiếp theo chúng ta chú ý phần port hiện tại chưa khai gì nên nó trống trơn, cả masquerade vẫn chưa mở nên status là no. Việc bây giờ cần làm là nhìn lên cái mô hình logic ở trên đầu bài viết. Đầu tiên chúng ta sẽ nhận traffic được đẩy về từ router , các traffic là port 80443 ứng với 2 dịch vụ httphttps. Vì vậy chúng ta sẽ forward 2 port đó về 2 port khác để Squid có thể listen và xử lý. Ở đây cụ thể mình sẽ cho port 3128 ứng với http3129 cho https. Và mình sẽ mở 2 port này trên firewalld, tất nhiên phải là TCP nhé !

Lần lượt chạy các lệnh sau :

  • Enable nat masquerade :
[[email protected] ~]# firewall-cmd --zone=public --add-masquerade --permanent
  • Mở 2 port 3128 và 3129 dành cho squid trên firewalld
[[email protected] ~]#  firewall-cmd --permanent --zone=public --add-port=3128/tcp
success
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-port=3129/tcp
success
  • Config port forward
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=3128:toaddr=10.10.1.107
success
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=443:proto=tcp:toport=3129:toaddr=10.10.1.107
success

Sau khi xong thì reload lại firewalld để các thay đổi trên có tác dụng

[[email protected] ~]# firewall-cmd --reload

Ở các câu lệnh trên thì lệnh --permanent là để các config đó được lưu vào file config của firewalld Check lại status firewalld sau khi config

[[email protected] ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dhcpv6-client squid ssh
  ports: 3128/tcp 3129/tcp
  protocols: 
  masquerade: yes
  forward-ports: port=80:proto=tcp:toport=3128:toaddr=10.10.1.107
	port=443:proto=tcp:toport=3129:toaddr=10.10.1.107
  sourceports: 
  icmp-blocks: 
  rich rules: 

Ngoài ra các bạn có thể xem và edit trực tiếp vào file config của firewalld được lưu ở /etc/firewalld/zones/public.xml . Cái public.xml là tên zone mặc định. Mỗi file sẽ ứng với config của 1 zone nhé. Nhưng thao tác trong này nhớ là phải đúng cú pháp, không thì nó ko chạy đâu đấy. Xong config firewalld thì đến nhân vật chính Squid.

Config Squid proxy.

Trước khi bắt đầu config Squid, chúng ta phải chuẩn bị database và cert cho các truy cập SSL. Vì mặc nhiên các giao thức SSL sẽ từ chối các kết nối đến những chỗ không thân thiện với người dùng. Nên nếu không có bước này thì các request HTTPS của client sẽ báo lỗi. Vì vậy chúng ta cần tạo một cert SSL và gắn nó vào port dùng nhận các traffic https của Squid. Cụ thể ở đây theo bài lab của mình là port 3129. Mình sẽ tạo 1 cái cert SSL và gắn vào nó.

Tạo cert và ssl_db :
  • Đầu tiên là tạo chỗ chứa cert đã. Tạo folder ssl_cert và cấp quyền cho thằng squid đọc vào đây
[[email protected] ~]# mkdir /etc/squid/ssl_cert
[[email protected] ~]# chown -R squid.squid /etc/squid/ssl_cert
  • Mở thư mục đó ra và gen 1 cái cert trong đó :
[[email protected] ~]# cd /etc/squid/ssl_cert/
[[email protected] ssl_cert]#  openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout squid35.pem  -out squid35.pem
  • Tiếp tục tạo ssl_db cho squid và cấp quyền Read cho squid vào ssl_db này:
[[email protected] ~]# /usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db
[[email protected] ~]# chown -R squid.squid /var/lib/ssl_db

Các bước chuẩn bị cho kết nối SSL đã xong, giờ đến config Squid

Config Squid

Squid có sẵn file config mặc định. Nhưng mình sẽ không dùng và sẽ lưu lại để dành tham khảo, vì nó khá là dài dòng với nhiều comment nhìn rối mắt =)) Ai thích dùng thì dùng luôn cũng được, tùy cá nhân mỗi ng thôi =))

[[email protected] ~]# mv /etc/squid/squid.conf /etc/squid/squid.conf-backup

Sau khi lưu xong thì tạo file mới, điền nội dung vào như sau :

[[email protected] ~]# vi /etc/squid/squid.conf

#Allow LAN Network
acl our_network src 172.18.18.0/24

acl CONNECT method CONNECT

http_access allow all

# Transparent Proxy Parameters
http_port 3130                                    #port dịch vụ của Squid, bắt buộc phải khai cái này, nếu không sẽ bị báo lỗi
http_port 3128 intercept                    # khai báo port 3128 , port 80 sẽ được firewalld forward về port này của squid và squid sẽ mở mode intercept trên port này.
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/squid35.pem     # tương tự ở trên nhưng kèm theo cert cho các kết nối SSL

sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 8MB                #các tập lệnh sslcrtd dùng để tạo ssl_db
sslcrtd_children 16 startup=5 idle=1

ssl_bump peek all                             # tập lệnh ssl_bump của Squid, phần này khá rắc rối, có thể có các khai báo riêng giống như access list ở đây, nhưng để đơn giản thì cứ peek all và splice all thôi.
ssl_bump splice all                           #

Sau khi làm xong thì các bạn save lại và nhớ systemctl restart squid nhé. Sau khi restart thì các bạn có thể vào máy client để test connect.

Test

Trước khi thực hiện test trên client, để chắc chắn có traffic http và https từ client đi xuyên qua squid, các bạn check log access.log của squid trước và sau khi client thực hiện các request để so sánh nhé. Trước khi client request, access.log sẽ trống trơn vì mới config đã có thằng nào connect đâu mà =))

[[email protected] ~]# cat /var/log/squid/access.log

Sau khi client vào 2 trang https://facebook.comhttp://dantri.com.vn

[[email protected] ~]# cat /var/log/squid/access.log
1501772419.045 213235 172.18.18.20 TCP_TUNNEL/200 304483 CONNECT 111.65.248.206:443 - ORIGINAL_DST/111.65.248.206 -
1501772423.394 217707 172.18.18.20 TCP_TUNNEL/200 4682 CONNECT 172.217.24.106:443 - ORIGINAL_DST/172.217.24.106 -
1501772423.396 223273 172.18.18.20 TCP_TUNNEL/200 142995 CONNECT 172.217.27.3:443 - ORIGINAL_DST/172.217.27.3 -
1501772423.431 217733 172.18.18.20 TCP_TUNNEL/200 1128 CONNECT 104.244.42.200:443 - ORIGINAL_DST/104.244.42.200 -
1501772423.434 212161 172.18.18.20 TCP_TUNNEL/200 464 CONNECT 74.125.130.155:443 - ORIGINAL_DST/74.125.130.155 -
1501772423.434 233053 172.18.18.20 TCP_TUNNEL/200 58208 CONNECT 74.125.200.94:443 - ORIGINAL_DST/74.125.200.94 -
1501772423.434 232938 172.18.18.20 TCP_TUNNEL/200 887 CONNECT 172.217.26.68:443 - ORIGINAL_DST/172.217.26.68 -
1501772423.434 218606 172.18.18.20 TCP_TUNNEL/200 424 CONNECT 172.217.27.110:443 - ORIGINAL_DST/172.217.27.110 -
1501772423.456 232073 172.18.18.20 TCP_TUNNEL/200 662 CONNECT 172.217.24.99:443 - ORIGINAL_DST/172.217.24.99 -
1501772423.457 232063 172.18.18.20 TCP_TUNNEL/200 2076 CONNECT 74.125.200.95:443 - ORIGINAL_DST/74.125.200.95 -
1501772426.998    760 172.18.18.20 TCP_TUNNEL/200 420 CONNECT 74.125.200.94:443 - ORIGINAL_DST/74.125.200.94 -
1501772446.112  20391 172.18.18.20 TCP_TUNNEL/200 418 CONNECT 172.217.27.110:443 - ORIGINAL_DST/172.217.27.110 -
1501772446.114  19791 172.18.18.20 TCP_TUNNEL/200 418 CONNECT 172.217.24.99:443 - ORIGINAL_DST/172.217.24.99 -
1501772446.114  19804 172.18.18.20 TCP_TUNNEL/200 418 CONNECT 172.217.24.99:443 - ORIGINAL_DST/172.217.24.99 -
1501772446.114  19852 172.18.18.20 TCP_TUNNEL/200 420 CONNECT 74.125.200.94:443 - ORIGINAL_DST/74.125.200.94 -
1501772446.114  19865 172.18.18.20 TCP_TUNNEL/200 420 CONNECT 74.125.200.94:443 - ORIGINAL_DST/74.125.200.94 -
1501772446.122  14873 172.18.18.20 TAG_NONE/200 0 CONNECT 74.125.130.113:443 - HIER_NONE/- -
1501772446.122  19849 172.18.18.20 TCP_TUNNEL/200 420 CONNECT 74.125.200.94:443 - ORIGINAL_DST/74.125.200.94 -
1501772446.122  19899 172.18.18.20 TCP_TUNNEL/200 418 CONNECT 216.58.203.227:443 - ORIGINAL_DST/216.58.203.227 -
1501772452.756  26470 172.18.18.20 TCP_TUNNEL/200 9 CONNECT 74.125.200.94:443 - ORIGINAL_DST/74.125.200.94 -
1501772453.007     90 172.18.18.20 TCP_MISS/302 303 GET http://www.dantri.com.vn/ - ORIGINAL_DST/222.255.27.51 -
1501772453.667    155 172.18.18.20 TCP_MISS/200 37002 GET http://dantri.com.vn/ - ORIGINAL_DST/123.30.215.27 text/html
1501772453.901    133 172.18.18.20 TCP_MISS/200 6626 GET http://media1.admicro.vn/core/adm_tracking.js? - ORIGINAL_DST/222.255.27.87 application/x-javascript
1501772454.305     98 172.18.18.20 TCP_MISS/200 51055 GET http://media1.admicro.vn/core/admcore.js - ORIGINAL_DST/222.255.27.87 application/x-javascript
1501772454.585    267 172.18.18.20 TCP_MISS/200 4888 GET http://video-thumbs.mediacdn.vn/zoom/100_70/dantri/85b8ad95ea/2017/08/03/op-lung-iphone-chua-dung-dich-la-gay-bong-4-1501748414395.jpg - ORIGINAL_DST/42.112.37.34 image/jpeg
1501772454.585    268 172.18.18.20 TCP_MISS/200 4300 GET http://video-thumbs.mediacdn.vn/zoom/100_70/dantri/c05a76d21c/2017/08/03/man-mauled-by-bear-in-front-of-screaming-pals-after-teasing-it-by-dangling-food-in-its-jaws-1501754875151.jpg - ORIGINAL_DST/42.112.37.34 image/jpeg
1501772454.586    270 172.18.18.20 TCP_MISS/200 4358 GET http://video-thumbs.mediacdn.vn/zoom/100_70/dantri/q9iw9pbngtbxmccfwx7pjac6ktof3w/2017/08/03/video-1501744644-1501744822098-8ee71.jpg - ORIGINAL_DST/42.112.37.34 image/jpeg
1501772455.131    840 172.18.18.20 TCP_MISS/200 2874 GET http://dantricdn.com/web_images/khcn.jpg - ORIGINAL_DST/42.112.37.34 image/jpeg
1501772455.137    196 172.18.18.20 TCP_MISS/200 1934 GET http://cafebiz.cafebizcdn.vn/web_images/icon_fica_new2.png - ORIGINAL_DST/42.112.37.34 image/png
1501772455.196   1334 172.18.18.20 TCP_MISS/200 98990 GET http://dantricdn.com/web_js/js-default-new.1.3.js - ORIGINAL_DST/42.112.37.34 text/javascript
1501772455.208     86 172.18.18.20 TCP_MISS/200 700 GET http://lg1.logging.admicro.vn/_tracking1.gif? - ORIGINAL_DST/222.255.27.120 image/gif
1501772455.249    102 172.18.18.20 TCP_MISS/204 391 GET http://b.scorecardresearch.com/b? - ORIGINAL_DST/96.7.54.128 -
1501772455.361     51 172.18.18.20 TCP_MISS/200 10211 GET http://media1.admicro.vn/cpc/ssvzone_default.js - ORIGINAL_DST/222.255.27.87 application/x-javascript
1501772455.373     24 172.18.18.20 TCP_MISS/200 319 GET http://lg1.logging.admicro.vn/_cpm4k.js? - ORIGINAL_DST/222.255.27.120 text/plain
1501772455.411     49 172.18.18.20 TCP_MISS/200 3102 GET http://media1.admicro.vn/core/admcoreext.js - ORIGINAL_DST/222.255.27.87 application/x-javascript
1501772455.413     50 172.18.18.20 TCP_MISS/200 8527 GET http://media1.admicro.vn/ads_codes/ads_code_221.ads - ORIGINAL_DST/222.255.27.87 application/x-javascript
1501772455.433     85 172.18.18.20 TCP_MISS/200 326 GET http://pson.logging.admicro.vn/comscore? - ORIGINAL_DST/222.255.27.85 text/plain
1501772455.440     80 172.18.18.20 TCP_MISS/200 507 GET http://pson.logging.admicro.vn/dmtb? - ORIGINAL_DST/222.255.27.85 text/javascript
1501772455.499     49 172.18.18.20 TCP_MISS/200 6626 GET http://media1.admicro.vn/core/adm_tracking.js? - ORIGINAL_DST/222.255.27.87 application/x-javascript

Ok, vậy là đã filter thành công. Sau khi đã filter thành công traffic qua Squid thì các bạn có thể tha hồ làm gì với traffic đó cũng được. Ví dụ như block hay gì gì đấy 😄 Ở trên đây chỉ là config cơ bản nhất của Squid, do đó việc moniter có thể không đảm bảo vì các connect đến https chỉ hiện destination IP chứ ko hiện rõ domain name như http. Con Squid proxy này mình cũng chỉ mới tìm hiểu thôi nên cũng chưa rành lắm, mình sẽ ráng mò thêm các tính năng của nó và giới thiệu thêm cho các bạn ở các bài viết sau nhé 😄

Giờ thì chuẩn bị đồ đạc đón SumUP ở Đà Nẵng thôi nào =))