sự thật và huyền thoại về proxy SSL


8

Tôi đã tìm kiếm nhiều giờ liền về cách thiết lập proxy minh bạch cho SSL (không phải Squid). Câu trả lời chung là tôi không thể, nhưng tôi biết có một số cách , mặc dù. Mục đích của tôi chỉ là như sau:

  1. Tên miền danh sách đen / danh sách trắng (không phải số IP). Nội dung sẽ không được lọc hoặc sửa đổi.
  2. Buộc người dùng thông qua các danh sách này. Nếu tôi sửa đổi các cài đặt như vậy trong trình duyệt web, họ có thể hoàn tác nó.

Trang sau cho biết tôi có thể vượt qua lưu lượng truy cập không được sửa đổi, nhưng nó không cho biết làm thế nào: iptables https minh bạch với privateoxy?

Trang sau đây hiển thị quy tắc iptables cho 443 mà bản thân tôi không thể làm việc: http://alien.slackbook.org/dokuwiki/doku.php?id=slackware:proxy

Trang sau đây cho biết cách để hoạt động này chỉ hoạt động với Squid: http://www.rahulpahade.com/content/squid-transparent-proxy-over-ssl-https

EDIT: Một người nói ở đây: Làm cách nào để tôi sử dụng IPTABLES để tạo một thông qua HTTPS (443) xung quanh Mực? "Điều tốt nhất để bạn làm là chặn truy cập trực tiếp vào cổng 443 và nói với người dùng của bạn rằng nếu họ muốn sử dụng HTTPS, họ phải định cấu hình trình duyệt của họ để sử dụng proxy." Nhưng tôi chỉ biết cách chặn hoàn toàn 443 chứ không phải làm cho nó hoạt động theo proxy.

Câu trả lời:


7

Nếu bạn muốn lọc tên miền, bạn có hai cách có thể: bạn có thể lấy tên từ phương thức CONNECT do khách hàng cấp nếu họ biết rằng nó phải sử dụng proxy cho các kết hợp HTTPS và lọc trên đó (Squids hỗ trợ BTW). Hoặc, nếu bạn thực sự cần phải làm điều đó một cách minh bạch, bạn sẽ cần xem xét các tiêu đề yêu cầu (được mã hóa).

Nếu bạn muốn xem các tiêu đề yêu cầu được mã hóa, bạn cần phải có một khóa. Nếu bạn muốn có một khóa, bạn cần một chứng chỉ mà a) được khách hàng tin cậy để trở thành chứng chỉ "chính xác" và b) chứng nhận mọi máy chủ có thể (ký tự đại diện - mọi thứ).

Vì vậy, những gì bạn cần làm là

  1. thiết lập một chứng chỉ cho proxy của bạn. Nó phụ thuộc vào phần mềm của bạn làm thế nào để làm điều đó - bạn có thể sử dụng stunnel để chấm dứt kết nối SSL ở phía proxy, có một số proxy HTTP lọc phía sau nó và thiết lập lại SSL cho tất cả lưu lượng truy cập sử dụng mục tiêu DNAT và stunnel một lần nữa. Cũng có thể có các giải pháp "đóng hộp" cho ủy quyền MitM SSL.
  2. cài đặt chứng chỉ đã nói ở trên cho tất cả các khách hàng của bạn sẽ sử dụng proxy

Hầu hết, nếu bạn cần ủy quyền minh bạch, đó là vì bạn không muốn hoặc không thể cấu hình lại các máy khách để sử dụng proxy. Nếu đây cũng là trường hợp với yêu cầu của bạn, có lẽ bạn sẽ không có tùy chọn cài đặt chứng chỉ trên máy khách và đánh dấu chúng là "đáng tin cậy". Vì vậy, mặc dù có một cách kỹ thuật để ủy quyền SSL minh bạch, tôi nghi ngờ sẽ không có nhiều chiến thắng cho bạn.


Điều này là đủ để làm cho nó rất rõ ràng với tôi sự thật về các proxy minh bạch. Cảm ơn bạn!
Teresa e Junior

Làm thế nào để bạn "... lấy tên từ phương thức CONNECT do khách hàng cấp nếu họ biết rằng nó phải sử dụng proxy cho các kết hợp HTTPS và bộ lọc trên đó"?
Big McLUNDHuge

@ davidkennedy85 với Squid khá giống với cách bạn lọc cho các phương thức truy cập khác - chỉ cần sử dụng ACL. Ví dụ: servercomputing.blogspot.de/2012/01/ Cách
the-wợi

Giải thích của bạn chủ yếu là có thể thực hiện được; Tôi đã học được rất nhiều. Cảm ơn. Một suy nghĩ tôi nghi ngờ là tên máy chủ (tên miền) được biết đến bởi bất kỳ ai giám sát lưu lượng. security.stackexchange.com/questions/2914/
Mạnh

4

Tôi biết đây là một câu hỏi cũ, nhưng nếu OP chỉ muốn đưa vào danh sách đen / danh sách trắng một số tên miền nhất định, họ hoàn toàn không phải sử dụng proxy, họ chỉ có thể sử dụng danh sách đen dựa trên DNS.

  • thiết lập máy chủ DNS tại chỗ của bạn để trả về 127.0.0.1 cho bất kỳ tên miền nào bạn muốn đưa vào danh sách đen
  • tại cổng internet của bạn chặn tất cả các IP ngoại trừ máy chủ DNS của bạn truy cập các cổng TCP / UDP 53, do đó chỉ máy chủ DNS của bạn mới có thể thực hiện yêu cầu DNS từ máy chủ dựa trên internet.

Bất kỳ tên miền khác sẽ được cho phép. Tất cả SSL lưu lượng truy cập web hoặc nếu không sẽ đi qua cổng không thay đổi.

Chỉnh sửa: Xem như OP đã sẵn sàng để buộc người dùng thông qua danh sách của mình, anh ta có thể chặn các phương thức truy cập DNS khác. Theo cách này, nếu người dùng cố gắng sử dụng một trong những phương thức DNS khác bị chặn, các trang web sẽ không hoạt động. aka 'Con đường của tôi hay đường cao tốc'

Đối với DNS-over-HTTPS mà @wheeler đã đề cập, bạn chỉ có thể chặn tra cứu DNS thông thường vào các trang web như https://dns.google.comhttps://cloudflare-dns.com/dns-queryhttps: // doh.cleanbrowsing.org/doh/family-filter/ . Mặc dù điều này sẽ nhanh chóng trở nên khó lường khi ngày càng có nhiều dịch vụ trực tuyến.

Bạn cũng có thể cần một cách chặn các loại MIME như application / dns-udpwireformat cho các phương thức DNS khác đang được phát triển.


Không phải là một giải pháp rất hiệu quả nữa, xem như DNS-over-HTTPS là một điều bây giờ.
bánh xe

2

Đại biểu có thể hoạt động như proxy Man-In-The-Middle cho HTTPS.


Cảm ơn bạn, nó thực sự, nhưng tôi không thể làm cho nó hoạt động! Có vẻ như nó cần các quy tắc iptables khác với các quy tắc cho cổng 80 hoặc có một số tùy chọn mà tôi không thể tìm ra cho Đại biểu.
Teresa e Junior

1

Đối với chế độ trong suốt, hệ thống Inline IPS (Suricata, Snort) có thể giúp bạn chặn các trang web ssl.

https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Setting_up_IPSinline_for_Linux

Chặn quy tắc trang web SSL cho người dùng cụ thể:

drop ip any 443 -> 192.168.3.x any (content:".facebook.com"; msg:"Simplewall block facebook.com  ";sid:7;rev:1;)

drop ip any 443 -> 192.168.3.204 any (content:".youtube"; msg:"Simplewall block youtube.com" ;sid:4;rev:1;)

Chặn quy tắc tải xuống tệp dựa trên tiện ích mở rộng:

drop ip any any -> 192.168.3.63 any (msg:"File exe block"; fileext:"exe"; filestore ;sid:1;rev:1;)

drop ip any ssl -> 192.168.3.63 any (msg:"File mp3 block"; fileext:"mp3"; filestore ;sid:11;rev:1;)

drop ip any ssl -> 192.168.3.63 any (msg:"File pdf block"; fileext:"pdf"; filestore ;sid:21;rev:1;)

Hãy thử điều này với SimpleWall

Rất đơn giản để thêm quy tắc chặn với giao diện web Simplewall.

Bạn cũng có thể thêm các quy tắc theo Simplewall => Content Filtersử dụng cùng các quy tắc cho IPS cùng với bộ lọc nội dung http.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.