1. Khái niệm.
Web filter trong OPNsense là một tính năng cung cấp khả năng kiểm soát và lọc nội dung web trên mạng. Nó cho phép bạn áp dụng các quy tắc và chính sách để kiểm soát truy cập vào các trang web và nội dung web từ các thiết bị trong mạng của bạn.
Dùng web filter trong OPNsense có thể hữu ích trong nhiều trường hợp, bao gồm:
- Kiểm soát truy cập web: Web filter cho phép bạn quản lý và kiểm soát truy cập vào các trang web từ các máy tính hoặc thiết bị trong mạng. Bằng cách thiết lập quy tắc và chính sách, bạn có thể hạn chế hoặc chặn truy cập vào các trang web không phù hợp hoặc có nội dung đáng ngại.
- Bảo vệ khỏi malware và đe dọa: Web filter có thể quét và chặn các trang web chứa mã độc, phần mềm độc hại hoặc các nguồn tải xuống không an toàn. Điều này giúp bảo vệ mạng của bạn khỏi các loại tấn công từ web và giảm nguy cơ bị nhiễm malware.
- Tăng năng suất và hiệu suất mạng: Bằng cách hạn chế truy cập vào các trang web không liên quan đến công việc hoặc giảm băng thông tiêu thụ bởi các ứng dụng web không cần thiết, web filter giúp tăng năng suất và hiệu suất mạng. Bạn có thể chặn hoặc giới hạn truy cập vào các trang web mạng xã hội, video trực tuyến hoặc các ứng dụng web không liên quan đến công việc.
- Tuân thủ chính sách an ninh: Web filter giúp bạn áp dụng chính sách an ninh mạng bằng cách kiểm soát truy cập vào các trang web và nội dung có thể gây nguy hiểm hoặc tiềm ẩn rủi ro cho mạng. Bạn có thể chặn truy cập vào các trang web độc hại, trang web đánh cắp thông tin cá nhân, trang web có khả năng tấn công hoặc trang web chứa nội dung không phù hợp.
Lợi ích của việc sử dụng web filter trong OPNsense bao gồm:
- Kiểm soát và quản lý truy cập web theo yêu cầu và chính sách của tổ chức.
- Bảo vệ mạng khỏi các nguy cơ an ninh từ các trang web độc hại hoặc không an toàn.
- Tăng năng suất và hiệu suất mạng bằng cách giới hạn truy cập vào các trang web không cần thiết.
- Tuân thủ các quy định an ninh và chính sách mạng.
- Giám sát và báo cáo về hoạt động truy cập web trong mạng.
Tuy nhiên, cần lưu ý rằng việc sử dụng web filter cần được cân nhắc kỹ lưỡng để không ảnh hưởng đến tự do truy cập và hoạt động công việc của người dùng trong mạng.
2. Thực hành.
Bây giờ mình sẽ demo chặn truy cập các website cho Server 01 – 172.16.101.1/24, nhưng trước tiên bạn nên tham khảo sơ đồ đấu nối của mình đã nhé.
Bước 1: Cấu hình Blacklist theo danh sách có sẵn (bước này là bước tuỳ chọn nên bạn có thể thực hiện nếu muốn thực hiện blacklist theo danh sách có sẵn hoặc nếu bạn muốn tự định nghĩa danh sách này).
Hãy vào Services (1) -> Web Proxy -> Administration (2). Chọn thẻ Remote Access Control Lists, đây là một tính năng cho phép bạn kiểm soát quyền truy cập từ xa vào các dịch vụ và tài nguyên trong mạng của bạn. Nó cho phép bạn xác định các quy tắc và điều khoản để giới hạn truy cập từ xa từ các địa chỉ IP cụ thể hoặc mạng cụ thể.
Bấm vào dấu cộng (4) để thêm một Remote Blacklist mới.
- Mình sẽ đặt tên cho Blacklist name này là
UT1
. - Sử dụng url
http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
để download danh sách này về. - Phần Description mình sẽ note là UT1 webfilter.
Sau khi bấm Save bạn sẽ nhìn thấy một Remote Blacklist đầu tiên (1) như hình dưới. Hãy bấm vào Download ACLs & Apply
(2) để OPNsense tiến hành download danh sách blacklist này về và tự động áp dụng nó.
Bây giờ hãy bấm vào chỉnh sửa danh sách blacklist này.
Bạn bấm vào tuỳ chọn categories (if available) và tại đây bạn sẽ nhìn thấy danh sách các blacklist đã xuất hiện tại đây. Bước này chỉ cho bạn xem danh sách đã được tải thành công mà thôi, bạn có thể Cancel hoặc bấm Save để thoát khỏi bảng này.
Bước 2: Cài đặt Transparent HTTP Proxy và Firewall Rule.
Vào Services (1) -> WebProxy – > Administration (2).
- Tại Proxy interfaces (3) hãy lựa chọn card mạng đang chứa network 172.16.101.0/24.
- Tích vào Enable Transparent HTTP proxy (4).
Tiếp theo hãy bấm Apply để áp dụng thay đổi này trước đã và sau khi Apply chạy xong bạn hãy bấm vào full help để mở rộng nhiều tuỳ chọn cài đặt.
Khi tuỳ chọn mở rộng cài đặt được mở ra bạn sẽ nhìn thấy rất nhiều chức năng mới. Tại Enable Transparent HTTP proxy bạn hãy bấm vao Add a new firewall rule để tạo mới một rule.
Tại phần nãy mình chỉ lưu ý đến một số tuỳ chọn như interface thì bạn hãy lựa chọn card mạng chứa network cần sử dụng web filter 172.16.101.0/24.
Phần Source hãy chọn subnet của Sysadmin như dưới.
Phần Redirect target IP hãy giữ nguyên IP 127.0.0.1 nhé.
- Tại Category bạn bỏ trống nhé.
- Phần NAT reflection hãy chuyển qua Enable và sau đó bấm Save.
Sau khi bạn bấm Save bạn sẽ nhìn thấy trong phần Firewall -> Port Forward xuất hiện rule mới như dưới
Tiếp theo bạn hãy vào lại Services -> Web Proxy -> Administration (1). Tích vào Enable SSL inspection (3) và bấm Add a new firewall rule (3) để thêm rule cho HTTPS.
Phần này tất cả đều giữ nguyên như phần trên và chỉ thay đổi các phần mình đánh dấu.
- Phần Category của Port Forwarding chúng ta bỏ trống.
- NAT reflection hãy chọn Enable.
Sau khi bấm Save bạn sẽ thấy 2 rule mới như dưới.
Bước 3: Tạo rule chặn các gói tin HTTP và HTTPS đi ra ngoài internet.
Đầu tiên mình sẽ tạo rule chặn các gói tin HTTP đi ra ngoài internet trước bằng cách mình chọn Action là Block, lựa chọn interface là card mạng Sysadmin chứa subnet bị ảnh hưởng 172.16.101.0/24 và lựa chọn chiều in để gói tin đi từ trong Local vào OPNSense để xử lý.
Tại phần Protocol mình đang làm cho loại giao thức là HTTP nên mình sẽ lựa chọn TCP.
- Tại phần source mình lựa chọn Sysadmin với ý đồ là tất cả các IP nằm trong dải này sẽ bị ảnh hưởng.
- Phần Dest mình lựa chọn tới tất cả các dest và lựa chọn protocol là HTTP.
- Tai phần Category hãy lựa chọn Block HTTP Bypass để các rule có gắn Category này có thể liên kết được với nhau.
- Cuối cùng mình sẽ mô tả cho rule này tại tuỳ chọn Description.
Sau khi thiết lập xong rule bạn hãy bấm Save để lưu lại.
Mình làm tương tự để chặn giao thức HTTPS, và dưới đây là kết quả khi mình tạo xong 2 rule block HTTP và HTTPS.
Bước 4: Tạo rule cho phép traffic DNS UDP/53 trong mạng local đi ra internet.
– Ở phần đầu mình lựa chọn Action là pass và interface là Sysadmin theo chiều In đi vào OPNSense.
– Tiếp theo mình chọn Source là Sysdadmin net với ý muốn tất cả các IP trong Subnet này sẽ bị ảnh hưởng. Phần Dest thì mình cho local có thể tới mọi dest.
– Tại Category bạn nhớ lựa chọn Block Proxy Bypass để nó khớp với các rule firewall đã được gắn Category này nhé.
Cuối cùng chúng ta lưu lại.
Bạn sẽ có rule mới như vậy, hãy di chuyển nó lên đầu và bấm Apply changes để áp dụng thay đổi.
Bước 5: Disable Authentication
Do mình demo nên mình sẽ bỏ qua phần xác thực, tuỳ nhu cầu của bạn mà bạn có thể sử dụng nó hay không nhé. Hãy vào Administration (1) tại phần này bạn hãy bấm vào thẻ (2) và chọn Authentication Settings (3) như hình dưới.
Bạn hãy bấm vào Clear All ở phần Authentication method và Enforce local group và sau đó bấm Save để lưu lại.
Đây là hình ảnh xác nhận Clear All Item tiếp theo ở bước trên.
Tiếp theo bạn hãy Enable proxy lên.
Bước 6: Tạo một Certificate Authority.
Bạn phải thực hiện bước này để có thể truy cập được các trang web giao thức HTTPS (ví dụ https://www.google.com, https://wiki.hoanghd.com,…), nếu không làm bước này thì các trang web đang chạy HTTPS sẽ không truy cập được.
Ví dụ cho việc không thể truy cập được các trang chạy HTTPS khi không thực hiện bước này
Để thực hiện bước này bạn hãy vào Administration (1) -> chọn thẻ Forward Proxy và hãy bấm vào CA Manager (2) để tạo một CA Manager mới.
OPNSense sẽ đưa bạn về phần System -> Trust -> Authorities (1) và tiếp theo bấm dấu cộng (2) để thêm một CA mới.
Hãy điền thông tin của bạn vào, đưới đây là mẫu của mình, các bạn tham khảo. Lưu ý là phần Method mình sẽ sử dụng tuỳ chọn 1 Create an internal Certificate Authority để tạo một CA mới nhé.
Sau khi bấm Save xong bạn sẽ nhìn thấy thông tin trụcc quan như dưới (1), hãy bấm vào Export CA để download CA này về máy tính.
Lưu lại ở một chỗ nào đó mà bạn nhớ (mình đang sử dụng máy MacOS nên giao diện lạ xíu nha.
Sau khi tải CA về xong, bạn hãy copy nó vào Server 172.16.101.1/24 và bạn hãy import CA này vào máy tính theo quy trình dưới.
Bạn có thể xác nhận chứng chỉ đã cài thành công bằng cách vào Run gõ certmgr.msc để vào xem Certificate Store.
Hãy quay lại phần Services -> Web Proxy -> Administration (1), hãy bấm vào 2 và chọn OPNsense-SSL mà lúc nãy bạn đã tạo, lưu ý nhớ bấm Apply để áp dụng thay đổi.
Bước 7: Bạn vẫn phải tạo Nat Outbound cho các subnet muốn ra internet nhé. Dưới đây là hình chụp Nat Outbound của mình, các bạn có thể xem lại bài Nat Outbound để biết nó dùng để làm gì và cách triển khai.
Dưới đây là hình chụp các Rules Nat Outbound của mình.
Bước 8. Kiểm tra kết quả.
Giờ bạn có thể test được tính năng web filter trên OPNSense rồi. Như bạn thấy tại Server 01 – 172.16.101.1/24 mình đã test với thông tin sau:
- Truy cập Google và Zing thành công.
- Tuy cập Facebookbị chặn.
Bây giờ nếu mình tắt Blacklist mẫu xem kết quả sao nhé.
Và dưới đây là kết quả mình nhận được, hiện tại tất cả các trang web đều có thể truy cập bình thường vì không có sự can thiệp của danh sách blacklist mẫu.
Tiếp theo bạn hãy vào web filter (1), tại thẻ số (2) bạn bấm vào mũi tên và chọn Access Control List.
Giờ mình thiết lập lại bảng whitelist và blacklist với thông tin tự define như dưới.
Và đây là kết quả.
Chúc các bạn thành công.