Với sự phát triển mạnh mẽ của của các website sử dụng giao thức HTTPS thay cho HTTP để tăng tính bảo mật bằng cách mã hóa dữ liệu giữa web server và trình duyệt web. Để đáp ứng nhu cầu cache và lọc các thông tin web trong HTTPS, Squid đã cung cấp gói giải pháp mới và nó được tích hợp trên Pfsense.
Ở bài này, mặc định bạn đã thiết lập được web proxy cho giao thức HTTP, chúng ta có mô hình triển khai như sau:
Đầu tiên, trên Pfsense chúng ta sẽ tạo một CA, trong System > Cert. Manager > CAs nhấn nút Add
Tiếp theo, bạn đặt tên cho CA trong Descriptive name, trong Method chọn Create an internal Certificate Authority và điền đầy đủ các thông tin bên dưới, nhấn Save tạo CA.
Sau khi Save, chúng ta sẽ được CA .
Như đã nói ở trên, khi triển khai proxy cho HPPTS thì mặc định bạn đã cấu hình được Proxy cho HTTP, bạn vào Status > Services để kiểm tra là Squid Proxy Server Service đang hoạt động.
Tiếp theo, bạn vào Service > Squid Proxy Server, kéo xuống phần SSL Man In the Middle Filtering, chọn check vào ô Enable SSL filtering. Ở mục SSL/MITM Mode sẽ có 3 tùy chọn:
- Splice Whitelist, Bump Otherwise: Tùy chọn này được chọn mặc định, tất cả các nội dung được khai báo trong Whitelist của ACLs sẽ được cho qua, các nội dung khác sẽ được xử lý. Ở tùy chọn này các nội dung sẽ được loc (như Antivirus), trừ Whitelist. Người dùng phải cài đặt CA certificate được tạo ra cho việc lọc.
- Splice All: Tùy chọn này phù hợp cho việc bạn dử dụng SquidGuard lọc web, nó cho phép SquidGuard xử lý tất cả các địch đến thông qua rule của SquidGuard như đối với HTTP. Người dùng không cần cài đặt CA certificate, nhưng nó sẽ không lọc nội dung (như Antivirus)
- Custom: Người quản trị sẽ phải khai báo ở Advanced Features dưới cùng của Web Proxy Service.
Ở đây, chúng ta giữ chọn mặc định Splice Whitelist, Bump Otherwise
Tiếp tục, vẫn trong SSL Man In the Middle Filtering, chúng ta kéo xuống và chọn CA cho dịch vụ. Sau cùng nhần Save để lưu cấu hình.
Sau khi cấu hình xong SSL Man In the Middle Filtering, bạn sẽ import CA certificate cho máy tính client. Trong System > Cert. Manager > CAs, bạn nhấn vào nút Export CA trên CA certificate cấp cho dịch vụ này
Sau khi export CA xong, chúng ta tiến hành cài đặt CA cho client. Có hai cách, một là bạn cài đặt bằng tay cho từng máy và cách thứ hai là sẽ dùng Group Policy để cài đặt tự động cho client nếu các máy tính này thuộc thành viên của một Domain Controller.
Cài đặt CA bằng tay cho client:
Bạn mở CA cần cài, chọn Install Certificate… tiếp theo bạn làm theo Wizard của hê thống, bạn chọn nơi lưu trữ Certificate là Trusted Root Certtification Authorities.
Vì đây là Certificate cho chúng ta tự tạo, nên hệ thống cảnh báo về an toàn, bạn chọn Yes để tiếp tục cài đặt.
Triển khai bằng Group Policy tren Domain Controller:
Bạn chọn OU chứa các máy tính cần cài đặt, tạo một GPO mới, hoặc edit một GPO có sẵn có thể triển khai được. Trong mục Computer Configuration > Policy > Windows Settings > Public Key Policies > Trusted Root Certification Authorities > click phải chọn Import để import certificate cần triển khai vào. Bạn lưu ý, certificate phải được đặt trong một thư mục chia sẻ.
Kiểm tra kết quả:
Nếu chưa cài đặt CA, thì trình duyệt web sẽ báo lỗi kết nối không an toàn, có thể bạn đang bị tấn công và không cho bạn tiếp tục truy cập vào website.
Sau khi cài đặt xong CA, bạn có thể truy cập web với https bình thường.
Lúc này, khi đi kiểm tra certificate, bạn sẽ thấy certificate của các trang web là một nhánh của certificate của chúng ta.
Một số trường hợp bạn có thể gặp khó khăn khi import certificate vào hệ điều hành, hoặc trình duyệt có thể không nhận certificate import vào từ hệ điều hành, trong những trường hợp này bạn có thể import trực tiếp certificate vào trình duyệt. Bạn có thể tham khảo bài viết Import certificate vào trình duyệt Chrome và Firefox.
Để đảm bảo dịch vụ chạy ổn định và không cần phải import certificate một cách phức tạp, bạn có thể mua các certificate của các tổ chức được phép cấp phát CA và sử dụng cho dịch vụ.