1. Sửa lỗi Failed to establish a secure connection.
Một số website dùng Let’s Encrypt khi dùng bộ lọc web filter có thể sẽ gặp lỗi như sau:
Thông báo lỗi này cho biết rằng không thể thiết lập kết nối an toàn (secure connection) giữa proxy và máy chủ từ xa. Lỗi này có thể xảy ra vì các vấn đề sau:
- Máy chủ từ xa không hỗ trợ kết nối an toàn: Có thể máy chủ từ xa không hỗ trợ kết nối qua HTTPS hoặc có vấn đề về chứng chỉ SSL/TLS của máy chủ.
- Proxy không chấp nhận các thông tin xác thực bảo mật từ máy chủ: Có thể proxy không chấp nhận chứng chỉ SSL/TLS của máy chủ hoặc không thể xác thực chính xác thông tin bảo mật từ máy chủ.
Để khắc phục vấn đề này, bạn có thể thử các giải pháp sau:
- Kiểm tra tính đúng đắn của URL: Đảm bảo rằng URL được nhập đúng và không có lỗi chính tả. Kiểm tra lại URL của trang web và chắc chắn rằng nó là chính xác.
- Kiểm tra chứng chỉ SSL/TLS: Đảm bảo rằng chứng chỉ SSL/TLS của máy chủ từ xa là hợp lệ và không hết hạn. Nếu có vấn đề với chứng chỉ, hãy xem xét cấu hình lại hoặc cập nhật chứng chỉ mới.
- Xác minh cấu hình proxy: Kiểm tra lại cấu hình proxy để đảm bảo rằng nó được cấu hình đúng và chấp nhận các thông tin xác thực bảo mật từ máy chủ từ xa.
- Thử kết nối trực tiếp: Để xác định xem vấn đề có phát sinh từ proxy hay không, hãy thử kết nối trực tiếp đến máy chủ từ xa từ một thiết bị khác để xem liệu kết nối có thành công hay không.
Nếu sau khi thực hiện các biện pháp trên vẫn gặp phải lỗi, bạn có thể làm theo các bước tiếp theo đây của mình để bỏ qua web filter cho domain này.
Đầu tiên bạn hãy tạo một Alias với type là Host(s) và phần Content hãy điền IP Address của domain đang bị lỗi vào.
Lưu ý: Mình không sử dụng domain vì lý do Port Forward không cho phép sử dụng domain.
Tiếp theo bạn vào Firewall NAT Port Forward và lần lượt config như sau:
- Phần interface lựa chọn interface Local đang đi qua Proxy truy cập bị lỗi.
- Protocol mình chọn TCP vì mình đang muốn Forward port HTTPS 443.
- Tại Sourece bạn hãy lựa chọn subnet của interface Local đang đi qua Proxy truy cập bị lỗi (IP này của mình là 172.16.101.0/24 có tên là Sysadmin net)
- Mình chấp nhận mọi loại port nên mình để Source port range là any.
- Tới phần Destination mình lựa chọn Alias chứa IP Address của domain bị lỗi mà mình đã tạo ở bước trên.
- Destination port range đương nhiên là mình sẽ chọn HTTPS (443) rồi, lý do là website đang bị lỗi nó sử dụng port 443.
- Redirect target IP mình lựa chọn Alias chứa IP Address của domain bị lỗi mà mình đã tạo ở bước trên.
- Các thành phần còn lại ở hình dưới mình để mặc định.
– Tại tuỳ chọn NAT reflection, đây là một tính năng trong cấu hình NAT (Network Address Translation) được sử dụng để cho phép các thiết bị trong mạng nội bộ truy cập vào các dịch vụ trên các địa chỉ IP nội bộ thông qua địa chỉ IP công cộng của cùng một mạng nội bộ. Tùy thuộc vào cấu hình của NAT reflection, có ba tùy chọn tác dụng như sau:
- Use system default: Đây là tùy chọn để sử dụng cấu hình mặc định của hệ thống về NAT reflection. Hệ thống sẽ áp dụng một cấu hình chuẩn cho NAT reflection.
- Enable: Khi tùy chọn này được chọn, NAT reflection sẽ được kích hoạt. Điều này cho phép các thiết bị trong mạng nội bộ truy cập vào dịch vụ trên các địa chỉ IP nội bộ thông qua địa chỉ IP công cộng của cùng một mạng nội bộ.
- Disable: Khi tùy chọn này được chọn, NAT reflection sẽ bị vô hiệu hóa. Điều này có nghĩa là các thiết bị trong mạng nội bộ sẽ không thể truy cập vào dịch vụ trên các địa chỉ IP nội bộ thông qua địa chỉ IP công cộng của cùng một mạng nội bộ.
Tùy chọn NAT reflection thường được sử dụng trong các mạng nội bộ có cấu hình NAT để đảm bảo tính khả dụng và tiện lợi cho việc truy cập vào các dịch vụ trong mạng từ bên trong mạng nội bộ. Ở trường hợp này lựa chọn Use system default hoặc Enable đều được nhé.
– Tiếp theo tại tuỳ chọn Filter rule association, đây là một tùy chọn trong cấu hình của một quy tắc lọc (filter rule) trong OPNsense. Có các tùy chọn sau đây cho Filter rule association:
- None: Tùy chọn này chỉ định rằng không có quy tắc lọc nào được liên kết với quy tắc hiện tại. Quy tắc này sẽ không ảnh hưởng đến các quy tắc lọc khác và sẽ không có sự tương tác nào xảy ra.
- Pass: Tùy chọn này cho phép liên kết quy tắc hiện tại với một quy tắc lọc Pass khác. Khi quy tắc này được áp dụng, các luồng dữ liệu sẽ được chuyển tiếp theo quy tắc Pass đã liên kết.
- Rule: Tùy chọn này cho phép liên kết quy tắc hiện tại với một quy tắc lọc khác. Khi quy tắc này được áp dụng, quy tắc được liên kết sẽ xác định cách xử lý các luồng dữ liệu tiếp theo.
- Rule redirect traffic to proxy: Tùy chọn này cho phép liên kết quy tắc hiện tại với một quy tắc lọc Redirect Traffic to Proxy. Khi quy tắc này được áp dụng, các luồng dữ liệu sẽ được chuyển tiếp đến proxy đã được cấu hình.
Tùy chọn Filter rule association được sử dụng để xác định cách quy tắc lọc được áp dụng và tương tác với các quy tắc lọc khác trong hệ thống. Tùy chọn này giúp kiểm soát việc xử lý luồng dữ liệu và định hướng chúng theo các quy tắc cụ thể.
Mình sẽ lựa chọn Filter rule association là Rule để cho OPNSense tự động tạo ra một rule áp dụng cho Nat Forward này của mình luôn.
Sau khi bấm Save để lưu lại bạn sẽ thấy một rule mới mình đánh dấu màu xanh ở dưới. Bạn nhớ kéo rule này lên trên rule màu đỏ, nó có thể nằm ở bất kỳ vị trí nào miễn là trên rule màu đỏ để tránh cho hệ thống áp dụng Rule màu đỏ trước rule màu xanh.
Tại phần Firewall Rules do Filter rule association mình lựa chọn là Rule nên hệ thống tự động tạo cho mình một rule như dưới, tương tự như trên thì rule này tại phần Firewall rules này bạn cũng phải để nó trên rule block HTTPS.
Mình sẽ cho bạn view qua phần cài đặt Access Control List của mình. Tại Whitelist và Blacklist mình không nhập domain nào tên là wiki.hoanghd.com cả.
Và đây là kết quả test của mình.
2. Lưu ý về cách khai báo Access Control List.
Bây giờ mình sẽ ví dụ cho các bạn một số quy luật khai báo Access Control List nhé.
2.1. Chặn từ khoá.
Nếu bạn khai báo theo từ khoá như dưới, bạn sẽ bị chặn ngay khi bạn gõ từ khoá đó vào trình duyệt.
Kết quả khi mình gõ chữ zingnews
trên trình duyệt, mặc dù https://www.google.com/
không nằm trong Blacklist nhưng nó vẫn bị chặn vì có liên quan đến từ khoá zingnews.
Nhưng nếu mình gõ một từ khoá khác ví dụ hoang linux
bạn sẽ thấy trang https://www.google.com/
truy cập thành công và không bị chặn với từ khoá hoang linux
.
2.2. Chặn toàn bộ nội dung một website và cho phép một url cụ thể.
Cách khai báo như sau. Khai báo url cụ thể vào Whitelist (ví dụ https://zingnews.vn/viet-nam-chua-co-trong-ke-hoach-mo-cua-hang-apple-post1436435.html), còn Blacklist bạn hãy khai báo làm sao đó để nó có thể chặn được hết các nội dung liên quan đến zingnews ví dụ mình sẽ khai báo từ khoá zingnews
vào Blacklist.
- Nếu bạn vào đúng url khai báo trong Whitelist
https://zingnews.vn/viet-nam-chua-co-trong-ke-hoach-mo-cua-hang-apple-post1436435.html
bạn sẽ không bị chặn. - Ngược lại nếu bạn vào trang https://zingnews.vn/ hoặc https://zingnews.vn/xuat-ban.html,…. bạn sẽ bị chặn theo Blacklist.
2.3. Chặn tất cả các domain có đuôi cụ thể nào đó.
Ví dụ này sẽ chặn tất cả các domain có đuôi wikipedia.org
.
Kết quả tất cả những gì liên quan đến wikipedia.org
sẽ bị chặn, hệ thống sẽ không quan tâm ở phía trước domain wikipedia.org
nó là gì.
Ví dụ của mình ở dưới mình mở https://vi.wikipedia.org/ với 2 ngôn ngữ:
- https://vi.wikipedia.org/ là wikipedia bản tiếng việt.
- https://vi.wikipedia.org/ là wikipedia bản tiếng anh.
Và tất cả chúng đều bị chặn theo Blacklist.
Giả sử mình sẽ chặn tất cả các nội dung liên quan đến trang wikipedia.org nhưng loại trừ các nội dung là tiếng Việt, bạn chỉ cần thêm Whitelist là domain https://vi.wikipedia.org/*
.
Kết quả.