[Mikrotik] Setup web proxy với Mikrotik và Squid
1 Proxy là gì 2 Cấu hình web proxy trên Mikrotik 3 Thiết lập transparent web proxy 4 Block website hoặc download với web proxy. 5 Squid là gì? 6 Cài đặt và cấu hình Squid trên ubuntu ...
1 Proxy là gì 2 Cấu hình web proxy trên Mikrotik 3 Thiết lập transparent web proxy 4 Block website hoặc download với web proxy. 5 Squid là gì? 6 Cài đặt và cấu hình Squid trên ubuntu 7 Thiết lập Squid làm web proxy trên Mikrotik 8 Test
1. Proxy là gì Proxy, Server Proxy hay Proxy Server (cũng là 1), chúng ta có thể hiểu nôm na là 1 chiếc máy tính khác có nhiệm vụ xử lý dữ liệu, giống như 1 bộ chuyển đổi thông tin của tín hiệu Internet. Bằng việc kết nối qua 1 hoặc nhiều những chiếc server như trên, ban đầu máy tính của người dùng - bạn sẽ gửi đi những tín hiệu yêu cầu - request qua proxy server, tại đây những thông tin đó sẽ được xử lý và trả lại những gì bạn thấy mỗi khi truy cập vào Internet. Phân biệt Proxy theo chức năng, thì có rất nhiều kiểu chức năng (caching proxy server, web proxy, Content Filtering Web Proxy, Anonymizing proxy server, Intercepting proxy server..) . Ở ví dụ trong phần đầu, sau khi tìm kiếm được danh sách một loạt các Proxy server, tại mục Proxy type, có những loại sau: Anonymous, Transparent, High Anonymity, phân biệt các kiểu Proxy này nhự thế nào
Anonymous Đôi khi còn được gọi là web proxy, giúp người dùng ẩn danh (giấu IP), khi lướt Web. HTTP Proxy server không gửi thông số cụ thể của biến HTTP_X_FORWARDED_FOR tới Host đang truy cập, do vậy có thể che dấu IP của bạn. tuy nhiên, điều đó không có nghĩa giúp bạn ẩn dấu hoàn toàn, vì các website có thể sử dụng các site script để thu thập thông tin về việc bạn đang truy cập Host của họ thông qua một Proxy nào đó đang..phục vụ cho bạn
High Anonymity: Mức độ che dấu tung tích cao hơn anonymous. Http Proxy hoàn toàn không gửi đi bất kì thông số nào của các biến HTTP_X_FORWARDED_FOR, HTTP_VIA và HTTP_PROXY_CONNECTION. Do vậy Internet Host không thể biết bạn đang dùng Proxy server, cũng như không detect được real IP của bạn
Transparent Proxy xuyên suốt, Đôi khi còn được gọi là Intercepting proxy, khác với 2 loại trên, transparent là sự kết hợp 1 proxy server và 1 gateway. Đây là phương thức thường được các Network Admin “ép” User trong mạng Lan, User không nhận thức được mình đang truy cập internet qua một “cổng giám sát” Yêu cầu truy cập của Client đước chuyển đến gateway sau đó gateway chuyển sang Proxy server xử lý. Khi user dùng loại proxy này, thì họ không biết được rằng họ đang dùng 1 proxy và bị..kiểm soát. User chỉ cần thiết lập địa chỉ IP của gateway do Admin cung cấp, mà không phải xác lập các thông số Proxy trong trình duyệt cũng như Internet applications khác.. Thường được các Admin trong công ty triển khai, họ muốn các chính sách của Policy được áp đặt lên user, nhưng user hầu như không biết mình đang qua 1..proxy
2. Cấu hình web proxy trên mikrotik Để cấu hình web proxy trên mikrotik ta vào IP - Web Proxy để enable tính năng proxy trên con mikrotik
Vì hiện tại mikrotik này RAM free 80% nên mình cho nó lưu vào ram và chỉnh Max Cache Object Size lên 500000KB. Nếu muốn lưu vào HDD thì tích vào tùy chọn Cache on DIsk.
Muốn sử dụng proxy thì ta cần vào chỉnh lại mục proxy của trình duyệt web
3. Thiết lập transparent web proxy
Như đã nói ở mục 1 về các loại proxy thì thông thường các công ty hay sử dụng Transparent web proxy để các user không biết đang dùng 1 proxy và bị kiểm soát, và không cần phải thiết lập các thông số proxy trong các trình duyệt web. Ta config thêm vào Firewall - Nat
ip firewall nat /add chain=dstnat action=redirect to-ports=8080 protocol=tcp dst-port=80
Sau khi thiết lập transparent web proxy xong ta có thể bỏ thiết lập proxy trên các trình duyệt web, đồng thời các user không biết được rằng họ đang dùng proxy và bị kiểm soát.
Cache content 4. Block website or download với web proxy
Ta vào IP - Web proxy Chọn access Kết quả
Ngoài ra ta còn có thể chặn các download từ các trang chuyên download như fshare, mediafire v.vv hoặc các đuôi về phim như AVI, MP4, MKV để ngăn chặn việc các user download phim hoặc file lớn ảnh hưởng đến mạng công ty
5. Squid là gì
Squid là một phần mềm Proxy Server dùng cho việc lưu trữ cache và lọc nội dung web. Squid hỗ trợ các giao thức HTTP, HTTPS, FTP,… giúp bạn tiết kiệm băng thông và tăng tốc độ truy cập web cho nhóm người dùng trong công ty. Nguyên tắc hoạt động của Squid là khi người dùng truy vấn đến 1 website thông qua Squid thì Squid sẽ kiểm tra xem nội dung trang web đó có được lưu trữ và có thay đổi không? Nếu đã có lưu trữ và không thay đổi thì Squid sẽ trả luôn nội dung đó cho người dùng mà không cần phải truy vấn đến địa chỉ website kia nữa. Điều này giúp quá trình duyệt web nhanh hơn rất nhiều.
6. Cài đặt và cấu hình Squid trên ubuntu
Để cài đặt Squid trên ubuntu rất là đơn giản, ta xài lệnh sudo apt install squid
Cấu hình đơn giản file squid.conf trong thư mục /etc/squid
#cổng sử dụng squid là 3128 http_port 3128 #dãy ip đc sử dụng squid acl mynetwork src 172.16.0.0/16 #tạo 1 acl là chandomain để thử chặn web dantri và tuoitre acl chandomain dstdomain dantri.com.vn tuoitre.vn
#thực thi chặn acl chandomain http_access deny chandomain #thực thi mynetwork http_access allow mynetwork #ngoài chandomain ra thì chặn tất cả http_access deny all #thư mục lưu cache cache_dir ufs /var/spool/squid 10000 16 256
Sau khi cấu hình xong file domain thì ta tiến hành bấm câu lệnh sau để tạo thư mục chứa cache sudo service squid stop sudo squid -z mặc định thì nó sẽ được lưu trong thư mục /var/log/squid
7. Thiết lập Squid làm web proxy trên Mikrotik
Mô hình kết nối
Để thiết lập Squid làm transparent proxy trên Mikrotik ta làm như sau Vào IP - Web proxy
Enable: On Src Add: :: Port: 8000 Max Cache size: None Parent Proxy: ip của proxy server Parent Proxy port: port Proxy server Còn lại là mặc định và bấm Ok
Sau đó ta tiếp tục cấu hình redirect để chuyển tất cả kết nối 80 về port 8080 của ip proxy server / ip firewall nat add chain=dstnat action=redirect to-ports=8000 protocol=tcp src-address=172.16.4.0/24 dst-port=80 add chain=dstnat action=redirect to-ports=8000 protocol=tcp src-address=172.16.3.0/24 dst-port=80 add chain=dstnat action=redirect to-ports=8000 protocol=tcp src-address=172.16.2.0/24 dst-port=80 add chain=dstnat action=redirect to-ports=8000 protocol=tcp src-address=172.16.20.0/24 dst-port=80 add chain=dstnat action=redirect to-ports=8000 protocol=tcp src-address=172.16.10.0/24 dst-port=80 add chain=srcnat action=masquerade log=no log-prefix=""
8. Test
Như file squid.confd ở trên thì mình đã tiến hành chặn dantri.com.vn và tuoitre.vn giờ vào thử 2 trang web đó xem thế nào
Để kiểm tra log ta dùng câu lệnh sau sudo tail /var/log/squid/access.log -n 100
1488542041.123 0 172.16.100.1 TCP_DENIED/403 4183 GET http://tuoitre.vn/ - HIER_NONE/- text/html 1488542041.194 0 172.16.100.1 TCP_DENIED/403 4133 GET http://tuoitre.vn/favicon.ico - HIER_NONE/- text/html 1488542042.241 113 172.16.100.1 TCP_MISS/200 584 POST http://zabbix.framgia.vn/zabbix/jsrpc.php? - HIER_DIRECT/113.190.240.135 application/json-rpc 1488542043.027 0 172.16.100.1 TCP_DENIED/403 4192 GET http://dantri.com.vn/ - HIER_NONE/- text/html 1488542043.104 0 172.16.100.1 TCP_DENIED/403 4145 GET http://dantri.com.vn/favicon.ico - HIER_NONE/- text/html
check log ta thấy được dòng DENIED tuoitre.vn và dantri.com.vn