Điểm:1

Đường hầm HTTPS trong suốt sử dụng mực với bộ lọc SNI

lá cờ cn

Yêu cầu của tôi là:

  1. Proxy phải minh bạch.
  2. Tôi có thể lọc các trang web theo tên miền.
  3. tôi làm không phải muốn giải mã lưu lượng. Tôi đang tìm kiếm một giải pháp dựa trên đánh hơi SNI - không cài đặt chứng chỉ trên máy khách.

Có rất nhiều câu trả lời trôi nổi xung quanh nhưng chúng không chính xác (tuyên bố rằng bạn cần giải mã lưu lượng truy cập để thực hiện việc này) hoặc không đầy đủ.

Điểm:2
lá cờ cn

Cách để làm điều này là sử dụng tính năng ssl peek được giới thiệu trong Squid 3.5. Nhìn thấy đây để được giải thích chi tiết. Xin lưu ý rằng bạn sẽ cần phải biên dịch bằng một trong hai --with-gnutls hoặc --with-openssl (kiểm tra mực -v). Một số bản phân phối bỏ chúng ra.

Nói tóm lại, cấu hình mực có liên quan trông như thế này.

acl denylist_ssl ssl::server_name google.com # KHÔNG phải tên miền dst
acl step1 at_step SslBump1
ssl_bump nhìn trộm bước 1
mối nối ssl_bump !denylist_ssl # cho phép mọi thứ không có trong danh sách từ chối
ssl_bump chấm dứt tất cả # chặn mọi thứ khác
https_port 3129 chặn ssl-bump cert=/etc/squid/dummy.pem

(Ngoài ra: Tôi không chắc tại sao chúng ta chỉ cần xem qua bước 1 chứ không phải bước 2 vì bước 2 chỉ liên quan đến việc nhận chứng chỉ máy chủ. Các tài liệu hoàn toàn không làm rõ điều này. Sử dụng ssl_bump xem tất cả như họ khuyến nghị làm cho điều này ngừng hoạt động hoàn toàn).

Và sau đó thực hiện nhảy chuyển hướng cổng 443 đến 3129 thông thường bằng cách sử dụng iptables (hoặc nghe mực trực tiếp trên 443 nếu bạn thích).

-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129

Bạn có thể sử dụng bất kỳ chứng chỉ nào cho hình nộm, chúng tôi thực sự không bao giờ sử dụng nó (vì chúng tôi không giải mã lưu lượng truy cập).

Một cái gì đó như thế này hoạt động.

openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout dummy.pem -out dummy.pem

Nguồn:

[1] https://unix.stackexchange.com/questions/613359/setting-up-squid-transparent-proxy-with-ssl-bumping-on-debian-10

[2] https://web.archive.org/web/20210128152111/https://www.cammckenzie.com/blog/index.php/2018/07/19/squid-https-interception-and-filtering-without-client- giấy chứng nhận/

[3] https://wiki.squid-cache.org/Features/SslPeekAndSplice

Ginnungagap avatar
lá cờ gu
"một số bản phân phối" thực sự gần với "hầu hết các bản phân phối", tất cả những bản dựa trên Debian đều loại bỏ chúng và IIRC, RHEL và các dẫn xuất cũng vậy. Điều đó khiến hầu hết các bản phân phối thích hợp cung cấp chúng, Alpine có lẽ là bản phân phối phổ biến nhất cung cấp nó khi xem xét việc sử dụng nó trong các thùng chứa.
xrisk avatar
lá cờ cn
@Ginnungagap Tôi đang chạy CentOS 7.9 và mực của tôi đi kèm với openssl.
Ginnungagap avatar
lá cờ gu
Ah, vì vậy tôi đã không nhớ chính xác, cảm ơn vì thông tin :)
Rafael avatar
lá cờ cn
Cũng có thể có một số trợ giúp https://docs.diladele.com/tutorials/transparent_proxy_debian/index.html

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.