Logo

Personal Ops Runbook

Personal runbook covering infrastructure operations for Cloud, Kubernetes, OpenStack, and Ceph environments. Includes deployment and teardown procedures, node management, cluster monitoring setup, and incident response workflows compiled from day-to-day operational work. Intended strictly for personal reference — configurations and scripts are environment-specific and not guaranteed to work as-is elsewhere.

[OPNSense] – Lesson 14 – Web filter trong OPNsense – Phần 1


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é.

image

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.

image
  • 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.
image

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ó.

image

Bây giờ hãy bấm vào chỉnh sửa danh sách blacklist này.

image

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.

image

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.

image

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.

image

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.

image

Phần Source hãy chọn subnet của Sysadmin như dưới.

image

Phần Redirect target IP hãy giữ nguyên IP 127.0.0.1 nhé.

image
  • Tại Category bạn bỏ trống nhé.
  • Phần NAT reflection hãy chuyển qua Enable và sau đó bấm Save.
image

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

image

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.

image

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.

image
  • Phần Category của Port Forwarding chúng ta bỏ trống.
  • NAT reflection hãy chọn Enable.
image

Sau khi bấm Save bạn sẽ thấy 2 rule mới như dưới.

image

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.

image
  • 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.
image

Sau khi thiết lập xong rule bạn hãy bấm Save để lưu lại.

image

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.

image

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.

image

– 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é.

image

Cuối cùng chúng ta lưu lại.

image

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.

image

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.

image

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.

image

Đây là hình ảnh xác nhận Clear All Item tiếp theo ở bước trên.

image

Tiếp theo bạn hãy Enable proxy lên.

image

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.

image

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.

image

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.

image

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é.

image

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.

image

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.

image

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.

image

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.

image

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.

image

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.

image

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.
image

Bây giờ nếu mình tắt Blacklist mẫu xem kết quả sao nhé.

image

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.

image

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.

image

Giờ mình thiết lập lại bảng whitelist và blacklist với thông tin tự define như dưới.

image

Và đây là kết quả.

image

Chúc các bạn thành công.