Hướng dẫn kỹ thuật CÔNG TY CỔ PHẦN DỊCH VỤ CÔNG NGHỆ DATECH
Danh sách nội dung [Ẩn]
Hướng dẫn cấu hình URL Filtering trên các thiết bị JunOS
Bạn có thể sử dụng chức năng lọc URL (URL filtering) để xác định nội dung web nào không được phép truy cập đối với người dùng.
Các thành phần của tính năng này bao gồm:
Tệp cơ sở dữ liệu lọc URL được lưu trữ trên Routing Engine và chứa tất cả các URL bị cấm. Các mẫu được cấu hình sẽ xác định lưu lượng nào cần giám sát, tiêu chí nào để so khớp, và hành động nào cần thực hiện. Bạn sẽ cấu hình các mẫu này cùng với vị trí của tệp cơ sở dữ liệu URL trong một hồ sơ (profile).
Bắt đầu từ Junos OS phiên bản 17.2R2 và 17.4R1, đối với Adaptive Services, bạn có thể tắt chức năng lọc các lưu lượng HTTP chứa địa chỉ IP nhúng (ví dụ: http://10.1.1.1) mà thuộc về tên miền đã bị cấm trong cơ sở dữ liệu lọc URL. Bắt đầu từ Junos OS phiên bản 19.3R2, chức năng tương tự cũng được hỗ trợ cho Next Gen Services trên các thiết bị MX240, MX480 và MX960.
Để kích hoạt tính năng lọc URL, bạn cần cấu hình jservices-urlf làm package-name tại cấp lệnh: typescript, [edit chassis fpc slot-number pic pic-number adaptive-services service-package extension-provider]. Sau khi kích hoạt, jservices-urlf sẽ duy trì hồ sơ lọc URL, nhận tất cả lưu lượng cần lọc, tiêu chí lọc và hành động cần thực hiện đối với lưu lượng đó.
**Lưu ý: Đối với MX-SPC3, không cần cấu hình jservices-urlf làm package-name theo cấp lệnh trên. Tính năng lọc URL đã được hỗ trợ mặc định.
Tiến trình lọc URL (url-filterd), cũng nằm trên Routing Engine, sẽ phân giải tên miền (domain name) của từng URL trong cơ sở dữ liệu lọc URL thành danh sách các địa chỉ IP (IPv4 và IPv6). Sau đó, danh sách địa chỉ IP này sẽ được tải xuống service PIC – nơi chạy jservices-urlf. Tiếp theo, url-filterd tương tác với tiến trình Dynamic Firewall (dfwd) để cài đặt các bộ lọc (filters) trên Packet Forwarding Engine (PFE) nhằm chuyển tiếp (punt) lưu lượng phù hợp từ PFE đến service PIC để xử lý.
Khi có lưu lượng HTTP hoặc HTTPS mới đến router, quyết định cho phép hay chặn sẽ được đưa ra dựa trên thông tin trong tệp cơ sở dữ liệu lọc URL. Các quy tắc lọc sẽ được kiểm tra, và router sẽ hoặc: Cho phép lưu lượng và chuyển tiếp hoặc chặn lưu lượng. Nếu lưu lượng bị chặn, một trong các hành động cấu hình sau sẽ được thực hiện:
Ngoài ra, Accept cũng là một tùy chọn – trong trường hợp này, lưu lượng sẽ không bị chặn.
Hình 1 minh họa luồng xử lý gói tin (packet flow) trong quá trình lọc URL cho các phiên HTTP.

Hình 1: Packet Flow-URL Filtering for HTTP Sessions
Hình 2 minh họa quy trình lọc URL cho các phiên HTTPS.

Hình 2: Luồng xử lý gói tin (Packet Flow) - Lọc URL cho các phiên HTTPS
Để biết thêm chi tiết về tính năng lọc URL, hãy xem các phần sau
Tệp cơ sở dữ liệu lọc URL
Tệp cơ sở dữ liệu lọc URL chứa các mục (entries) gồm URL và địa chỉ IP. Bạn cần tạo tệp cơ sở dữ liệu lọc URL theo định dạng được chỉ định trong bảng 1 và lưu tệp đó vào Routing Engine tại thư mục /var/db/url-filterd.
Bảng 1: Định dạng tệp cơ sở dữ liệu lọc URL (URL Filter Database File Format)
| Mục | Mô tả | Ví dụ |
| FQDN | Tên miền đầy đủ (Fully Qualified Domain Name). | www.badword.com/jjj/bad.jpg |
| URL | Chuỗi URL đầy đủ, không bao gồm giao thức tầng 7 (ví dụ: không có http:// hoặc https://). | www.srch.com/*badword*www.srch.comwww.srch.com/xyzwww.srch.com/xyz* |
| Địa chỉ IPv4 | Yêu cầu HTTP trên một địa chỉ IPv4 cụ thể. | 10.1.1.199 |
| Địa chỉ IPv6 | Yêu cầu HTTP trên một địa chỉ IPv6 cụ thể. | 1::1 |
Bạn phải chỉ định tệp cơ sở dữ liệu lọc URL tùy chỉnh trong hồ sơ (profile). Nếu cần, bạn cũng có thể gán một tệp cơ sở dữ liệu lọc URL tùy chỉnh cho bất kỳ mẫu (template) nào, và trong trường hợp đó, tệp cơ sở dữ liệu gán cho template sẽ ưu tiên hơn tệp được cấu hình ở cấp hồ sơ.
Nếu bạn thay đổi nội dung của tệp cơ sở dữ liệu lọc URL, hãy sử dụng lệnh: request services (url-filter | web-filter) update. Các lệnh khác hỗ trợ quản lý tệp cơ sở dữ liệu lọc URL gồm:
Các lưu ý về hồ sơ lọc URL (URL Filter Profile Caveats)
Một hồ sơ lọc URL bao gồm từ một đến tám mẫu (templates).
Mỗi mẫu bao gồm một tập hợp các giao diện logic (logical interfaces) được cấu hình để giám sát lưu lượng cho việc lọc URL và một hoặc nhiều điều kiện (terms).
Điều kiện (term) là tập hợp các tiêu chí so khớp (match criteria) và hành động sẽ thực hiện nếu tiêu chí đó được đáp ứng. Bạn phải cấu hình ít nhất một term để kích hoạt lọc URL. Mỗi term gồm hai phần from statement: xác định các prefix IP nguồn và các cổng đích (destination ports) sẽ được giám sát và then statement: chỉ định hành động sẽ thực hiện. Nếu bạn bỏ qua phần from, thì mọi IP nguồn và mọi cổng đích đều được xem là phù hợp (match). Tuy nhiên, bạn chỉ được phép bỏ qua một from duy nhất cho mỗi mẫu hoặc mỗi hồ sơ.
Phía sau tài liệu sẽ có ví dụ cấu hình nhiều term mà không có from statements.
template1 { client-interfaces [ xe-4/0/3.35 xe-4/0/3.36 ]; server-interfaces xe-4/0/0.31; dns-source-interface xe-4/0/0.1; dns-routing-instance data_vr; routing-instance data_vr2; dns-server 50.0.0.3; dns-retries 3; url-filter-database url_database.txt; term term1 { then { tcp-reset;}} term term2 { then { redirect-url www.google.com;}}} |
Nếu bạn bỏ qua nhiều hơn một câu lệnh from trong mỗi template, bạn sẽ gặp thông báo lỗi sau khi thực hiện lệnh commit:
URLFD_CONFIG_FAILURE: Configuration not valid: Cannot have two wild card terms in template template1 error: configuration check-out failed |
Để cấu hình tính năng lọc URL, trước tiên bạn phải cấu hình jservices-urlf làm tên gói (package-name) tại cấp cấu hình sau: [edit chassis fpc slot-number pic pic-number adaptive-services service-package extension-provider]. Để biết thêm thông tin về cách cấu hình gói extension-provider (package-name), hãy tham khảo phần tài liệu package (Loading on PIC).
**Lưu ý: Thiết bị MX-SPC3 không cần cấu hình jservices-urlf làm package-name tại cấp cấu hình trên — tính năng này đã được hỗ trợ mặc định.
Việc lọc URL được cấu hình trên một Service PIC. Các giao diện bạn sẽ làm việc là: Giao diện dịch vụ (bắt đầu bằng tiền tố ms) hoặc giao diện multiservices gộp nhóm (AMS interfaces, bắt đầu bằng tiền tố ams). Để biết thêm chi tiết về AMS interfaces, tham khảo tài liệu Adaptive Services Interfaces User Guide for Routing Devices, bắt đầu từ phần Understanding Aggregated Multiservices Interfaces.
Một hồ sơ lọc URL (URL filtering profile) là tập hợp các mẫu (templates). Mỗi template bao gồm một bộ tiêu chí xác định: URL nào sẽ bị cấm (disallowed) và cách thông báo cho người nhận (recipient) khi truy cập bị chặn.
Các bước để cấu hình một URL profile:
[edit] user@host# edit services (web-filter | url-filter) profile profile-name |
Bắt đầu từ Junos OS phiên bản 18.3R1, đối với Adaptive Services, bạn cấu hình hồ sơ (profile) tại cấp cấu hình: [edit services web-filter]. Trước phiên bản Junos OS 18.3R1, bạn phải cấu hình hồ sơ tại cấp cấu hình: [edit services url-filter]. Bắt đầu từ Junos OS phiên bản 19.3R2, chức năng tương tự cũng được hỗ trợ cho Next Gen Services trên các thiết bị MX240, MX480 và MX960.
[edit services (web-filter | url-filter) profile profile-name] user@host# set url-filter-database filename |
Để cấu hình từng mẫu:
+ Đặt tên cho mẫu
[edit services (web-filter | url-filter) profile profile-name] user@host# set (url-filter-template template-name | template template-name) |
**Lưu ý: Bắt đầu từ Junos OS phiên bản 18.3R1, bạn cấu hình template với câu lệnh url-filter-template. Trước phiên bản Junos OS 18.3R1, bạn cấu hình template với câu lệnh template.
+ Hãy chuyển đến cấp cấu hình mới cho template đó.
[edit services (web-filter | url-filter) profile profile-name] user@host# edit (url-filter-template template-name | template template-name) |
+ Chỉ định tên của tệp cơ sở dữ liệu lọc URL (URL filter database) mà bạn muốn sử dụng.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set url-filter-database filename |
+ Chỉ định giao diện loopback mà địa chỉ IP nguồn sẽ được chọn để gửi các truy vấn DNS.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set dns-source-interface loopback-interface-name |
+ Tắt tính năng lọc lưu lượng HTTP chứa địa chỉ IP nhúng (ví dụ: http:/10.1.1.1) thuộc tên miền không được phép trong cơ sở dữ liệu lọc URL.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set disable-url-filtering |
+ Cấu hình khoảng thời gian giải quyết DNS (DNS resolution) tính bằng phút.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set dns-resolution-interval minutes |
+ Cấu hình số lần thử lại cho một truy vấn DNS trong trường hợp truy vấn thất bại hoặc hết thời gian chờ.
[edit services (web-filter | url-filter) profile profile-name] user@host# set dns-retries number |
+ Chỉ định các địa chỉ IP (IPv4 hoặc IPv6) của các máy chủ DNS mà truy vấn DNS sẽ được gửi đến.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set dns-server [ip-address] |
+ Chỉ định các giao diện logic hướng khách hàng (client-facing logical interfaces) mà trên đó tính năng lọc URL được cấu hình.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set client-interfaces [ client-interface-name ] |
+ Chỉ định các giao diện logic hướng máy chủ (server-facing logical interfaces) mà trên đó tính năng lọc URL được cấu hình.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set server-interfaces [ server-interface-name ] |
+ Chỉ định phiên bản định tuyến (routing instance) mà trên đó tính năng lọc URL được cấu hình.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set routing-instance routing-instance-name |
+ Chỉ định phiên bản định tuyến (routing instance) mà trên đó máy chủ DNS có thể truy cập được.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# dns-routing-instance dns-routing-instance-name |
Các term được sử dụng trong các bộ lọc để phân chia chính sách hoặc bộ lọc thành các cặp điều kiện và hành động nhỏ.
+ Đặt tên cho term.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# set term term-name |
+ Chuyển đến cấp cấu hình mới cho term.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name)] user@host# edit term term-name |
+ Chỉ định các tiền tố địa chỉ IP nguồn cho lưu lượng mà bạn muốn lọc.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name) term term-name] user@host# set from src-ip-prefix [prefix] |
+ Chỉ định các cổng đích cho lưu lượng mà bạn muốn lọc.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name) term term-name] user@host# set from dest-port [port] |
+ Cấu hình hành động cần thực hiện.
[edit services (web-filter | url-filter) profile profile-name (url-filter-template template-name | template template-name) term term-name] user@host# set then action |
Hành động có thể là một trong các tùy chọn sau:
| custom-page custom-page | Gửi một chuỗi trang tùy chỉnh đến người dùng. |
| http-status-code http-status-code | Gửi mã trạng thái HTTP đến người dùng. |
| redirect-url redirect-url | Gửi một yêu cầu HTTP redirect đến người dùng. |
| tcp-reset | Gửi một yêu cầu TCP reset đến người dùng. |
**Lưu ý: Đối với lọc URL, bạn phải cấu hình tập dịch vụ như một tập dịch vụ next-hop.
[edit] user@host# set services service-set service-set-name (web-filter-profile profile-name | url-filter-profile profile-name) user@host# set services service-set service-set-name next-hop-service inside-service-interface interface-name.unit-number user@host# set services service-set service-set-name next-hop-service outside-service-interface interface-name.unit-number |
**Lưu ý: Giao diện dịch vụ cũng có thể có tiền tố là ams. Nếu bạn sử dụng các giao diện ams tại cấp cấu hình [edit services service-set service-set-name] cho lọc URL, bạn cũng phải cấu hình câu lệnh load-balancing-options hash-keys tại cấp cấu hình [edit interfaces ams-interface-name unit number].
**Lưu ý: Bắt đầu từ Junos OS phiên bản 18.3R1, cấu hình tập dịch vụ với câu lệnh web-filter-profile. Trước phiên bản Junos OS 18.3R1, cấu hình tập dịch vụ với câu lệnh url-filter-profile.
Tổng Quan về Lọc Yêu Cầu DNS
Bắt đầu từ Junos OS phiên bản 18.3R1, bạn có thể cấu hình lọc DNS để nhận diện các yêu cầu DNS đối với các tên miền website không được phép. Bắt đầu từ Junos OS phiên bản 19.3R2, bạn có thể cấu hình lọc DNS nếu bạn đang sử dụng Next Gen Services với thẻ dịch vụ MX-SPC3. Next Gen Services được hỗ trợ trên các router MX240, MX480 và MX960. Đối với các loại yêu cầu DNS như A, AAAA, MX, CNAME, TXT, SRV, và ANY, bạn cấu hình hành động cần thực hiện đối với yêu cầu DNS cho một tên miền không được phép. Bạn có thể chọn một trong các hành động sau:
Bắt đầu từ Junos OS phiên bản 21.1R1, bạn cũng có thể cấu hình các hành động sau cho yêu cầu DNS đối với một tên miền không được phép:
Đối với các loại yêu cầu DNS khác đối với một tên miền không được phép, yêu cầu sẽ được ghi lại và truy cập sẽ được cho phép.
Các hành động mà máy chủ sinkhole thực hiện không được kiểm soát bởi tính năng lọc yêu cầu DNS; bạn phải tự cấu hình các hành động của máy chủ sinkhole. Ví dụ, máy chủ sinkhole có thể gửi thông điệp đến người yêu cầu rằng tên miền không thể truy cập và ngăn chặn truy cập vào tên miền không được phép.

Hình 3: Yêu cầu DNS cho tên miền không được phép
Lợi ích
Lọc DNS chuyển hướng các yêu cầu DNS đối với các tên miền website không được phép đến các máy chủ sinkhole, đồng thời ngăn chặn bất kỳ ai vận hành hệ thống nhìn thấy danh sách các tên miền không được phép. Điều này vì các tên miền không được phép được lưu trữ ở định dạng mã hóa.
Tệp cơ sở dữ liệu bộ lọc tên miền không được phép
Lọc yêu cầu DNS yêu cầu một tệp cơ sở dữ liệu bộ lọc tên miền không được phép có định dạng .txt, trong đó xác định từng tên miền không được phép, hành động cần thực hiện đối với yêu cầu DNS cho tên miền không được phép, và địa chỉ IP hoặc tên miền đầy đủ (FQDN) của máy chủ DNS sinkhole.
Hồ sơ bộ lọc DNS
Bạn cấu hình một hồ sơ bộ lọc DNS để chỉ định tệp cơ sở dữ liệu bộ lọc tên miền không được phép cần sử dụng. Bạn cũng có thể chỉ định các giao diện mà lọc yêu cầu DNS được thực hiện, giới hạn lọc cho các yêu cầu từ các máy chủ DNS cụ thể, và giới hạn lọc cho các yêu cầu từ các tiền tố địa chỉ IP nguồn cụ thể.
Cách cấu hình lọc yêu cầu DNS
Để lọc các yêu cầu DNS đối với các tên miền website không được phép, thực hiện các bước sau:
Cách cấu hình tệp cơ sở dữ liệu bộ lọc tên miền.
Tạo một hoặc nhiều tệp cơ sở dữ liệu bộ lọc tên miền bao gồm một mục cho mỗi tên miền không được phép. Mỗi mục chỉ định hành động cần thực hiện với yêu cầu DNS đối với một tên miền website không được phép.
Để cấu hình tệp cơ sở dữ liệu bộ lọc tên miền:
user@host> request services web-filter validate dns-filter-file-name filename hash-key key-string hash-method hash-method-name |
user@host> request services web-filter update dns-filter-database filename |
Cách cấu hình hồ sơ bộ lọc DNS
Một hồ sơ bộ lọc DNS bao gồm các cài đặt chung để lọc các yêu cầu DNS cho các tên miền trang web không được phép, và bao gồm tối đa 32 mẫu. Cài đặt mẫu áp dụng cho các yêu cầu DNS trên các giao diện logic uplink và downlink cụ thể hoặc các thể hiện định tuyến, hoặc cho các yêu cầu DNS từ các tiền tố địa chỉ IP nguồn cụ thể, và sẽ ghi đè các cài đặt tương ứng ở cấp độ hồ sơ DNS. Bạn có thể cấu hình tối đa tám hồ sơ bộ lọc DNS.
Để cấu hình một hồ sơ bộ lọc DNS:
[edit] user@host# edit services web-filter profile profile-name |
Số lượng hồ sơ tối đa là 8.
[edit services web-filter profile profile-name] user@host# set global-dns-stats-log-timer minutes |
+ Xác định tên của cơ sở dữ liệu bộ lọc tên miền sẽ sử dụng khi lọc các yêu cầu DNS.
[edit services web-filter profile profile-name dns-filter] user@host# set database-file filename |
+ (Tùy chọn) Để giới hạn việc lọc DNS chỉ đối với các yêu cầu DNS hướng tới các máy chủ DNS cụ thể, xác định tối đa ba địa chỉ IP (IPv4 hoặc IPv6).
[edit services web-filter profile profile-name dns-filter] user@host# set dns-server [ ip-address ] |
+ Xác định định dạng cho khóa băm.
[edit services web-filter profile profile-name dns-filter] user@host# set hash-key ascii-text |
+ Xác định khóa băm mà bạn đã sử dụng để tạo tên miền đã băm trong tệp cơ sở dữ liệu bộ lọc tên miền.
[edit services web-filter profile profile-name dns-filter] user@host# set hash-key key-string |
+ Xác định phương pháp băm đã được sử dụng để tạo tên miền đã băm trong tệp cơ sở dữ liệu bộ lọc tên miền.
[edit services web-filter profile profile-name dns-filter] user@host# set hash-method hash-method-name |
Phương pháp băm duy nhất được hỗ trợ là hmac-sha2-256.
+ Cấu hình khoảng thời gian để ghi log thống kê cho các yêu cầu DNS và các hành động sinkhole thực hiện cho mỗi địa chỉ IP khách hàng. Khoảng thời gian này có thể từ 1 đến 60 phút và mặc định là 5 phút.
[edit services web-filter profile profile-name dns-filter] user@host# set statistics-log-timer minutes |
+ Cấu hình thời gian sống (TTL) khi gửi phản hồi DNS sau khi thực hiện hành động DNS sinkhole. Khoảng thời gian có thể từ 0 đến 86,400 giây và mặc định là 1800 giây.
[edit services web-filter profile profile-name dns-filter] user@host# set dns-resp-ttl seconds |
+ Cấu hình mức độ các tên miền con sẽ được tìm kiếm để khớp. Khoảng giá trị từ 0 đến 10. Giá trị 0 chỉ ra rằng các tên miền con sẽ không được tìm kiếm.
[edit services web-filter profile profile-name dns-filter] user@host# set wildcarding-level level |
Ví dụ, nếu bạn thiết lập wildcarding-level là 4 và tệp cơ sở dữ liệu bao gồm một mục cho example.com, các phép so sánh sẽ được thực hiện đối với yêu cầu DNS đến với miền 198.51.100.0.example.com như sau:
- 198.51.100.0.example.com: không khớp
- 51.100.0.example.com: không khớp với một cấp con
- 100.0.example.com: không khớp với hai cấp con
- 0.example.com: không khớp với ba cấp con
- example.com: khớp với bốn cấp con
+ Cấu hình tên cho mẫu.
[edit services web-filter profile profile-name] user@host# set dns-filter-template template-name |
+ (Bạn có thể chọn) Chỉ định các giao diện logic hướng khách (uplink) mà bộ lọc DNS được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set client-interfaces client-interface-name |
+ (Bạn có thể chọn) Chỉ định các giao diện logic hướng máy chủ (downlink) mà bộ lọc DNS được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set server-interfaces server-interface-name |
+ (Bạn có thể chọn) Chỉ định instance định tuyến cho giao diện logic hướng máy khách (client-facing) mà bộ lọc DNS được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set client-routing-instance client-routing-instance-name |
+ (Bạn có thể chọn) Chỉ định instance định tuyến cho giao diện logic hướng máy chủ (server-facing) mà bộ lọc DNS được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set server-routing-instance server-routing-instance-name |
**Lưu ý: Nếu bạn cấu hình cả giao diện client và server hoặc cả instance định tuyến client và server, các bộ lọc ngầm định sẽ được cài đặt trên các giao diện hoặc instance định tuyến để chuyển hướng lưu lượng DNS đến PIC dịch vụ để lọc DNS. Nếu bạn không cấu hình cả giao diện client và server hoặc các instance định tuyến, bạn phải cung cấp cách để chuyển hướng lưu lượng DNS đến PIC dịch vụ (ví dụ, thông qua các tuyến đường).
+ Chỉ định tên của cơ sở dữ liệu bộ lọc miền để sử dụng khi lọc các yêu cầu DNS.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set database-file filename |
+ (Tùy chọn) Để giới hạn việc lọc DNS chỉ đối với các yêu cầu DNS dành cho các máy chủ DNS cụ thể, hãy chỉ định tối đa ba địa chỉ IP (IPv4 hoặc IPv6).
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set dns-server ip-address |
+ Chỉ định phương pháp băm (hash method) đã được sử dụng để tạo ra tên miền đã băm (hashed domain name) trong tệp cơ sở dữ liệu lọc tên miền (domain filter database file).
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set hash-method hash-method-name |
Phương pháp băm duy nhất được hỗ trợ là hmac-sha2-256.
+ Chỉ định khóa băm (hash key) đã được sử dụng để tạo ra tên miền đã băm (hashed domain name) trong tệp cơ sở dữ liệu lọc tên miền (domain filter database file).
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set hash-key key-string |
+ Cấu hình khoảng thời gian ghi lại thống kê cho các yêu cầu DNS và các hành động sinkhole thực hiện cho mỗi địa chỉ IP khách hàng. Phạm vi là từ 1 đến 60 phút và giá trị mặc định là 5 phút.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set statistics-log-timer minutes |
+ Cấu hình thời gian sống (TTL) khi gửi phản hồi DNS sau khi thực hiện hành động DNS sinkhole. Phạm vi là từ 0 đến 86,400 giây và giá trị mặc định là 1800 giây.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set dns-resp-ttl seconds |
+ Cấu hình mức độ các subdomain sẽ được tìm kiếm để so khớp. Phạm vi là từ 0 đến 10. Giá trị 0 chỉ ra rằng các subdomain sẽ không được tìm kiếm.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set wildcarding-level level |
Ví dụ, nếu bạn đặt mức độ wildcarding-level là 4 và tệp cơ sở dữ liệu bao gồm một mục cho example.com, các so sánh sau sẽ được thực hiện đối với yêu cầu DNS có domain là 198.51.100.0.example.com:
- 198.51.100.0.example.com: không có sự khớp
- 51.100.0.example.com: không có sự khớp khi xuống một cấp
- 100.0.example.com: không có sự khớp khi xuống hai cấp
- 0.example.com: không có sự khớp khi xuống ba cấp
- example.com: khớp khi xuống bốn cấp
+ (Tùy chọn) Cấu hình mã lỗi phản hồi cho các loại truy vấn SRV và TXT.
(Tùy chọn) Cấu hình mã lỗi phản hồi cho các loại truy vấn SRV và TXT.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set txt-resp-err-code (Noerror | Refused) user@host# set srv-resp-err-code (Noerror | Refused) |
+ Cấu hình một điều kiện (term) cho mẫu (template). Bạn có thể cấu hình tối đa 64 điều kiện trong một mẫu.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set term term-name |
+ (Bạn có thể) Cấu hình các tiền tố địa chỉ IP nguồn của các yêu cầu DNS mà bạn muốn lọc. Bạn có thể cấu hình tối đa 64 tiền tố trong một điều kiện.
[edit services web-filter profile profile-name dns-filter-template template-name term term-name] user@host# set from src-ip-prefix source-prefix |
+ Chỉ định rằng hành động sinkhole được xác định trong cơ sở dữ liệu bộ lọc miền sẽ được thực hiện đối với các yêu cầu DNS bị cấm.
[edit services web-filter profile profile-name dns-filter-template template-name term term-name] user@host# set then dns-sinkhole |
Cách cấu hình bộ dịch vụ cho lọc DNS
Kết hợp hồ sơ lọc DNS với bộ dịch vụ next-hop và bật logging cho lọc DNS. Giao diện dịch vụ có thể là giao diện ms- hoặc vms- (Dịch vụ Next Gen với thẻ dịch vụ MX-SPC3), hoặc có thể là giao diện aggregated multiservices (AMS).
[edit services service-set service-set-name] user@host# set web-filter-profile profile-name user@host# set syslog host hostname class urlf-logs user@host# set next-hop-service inside-service-interface interface-name.unit-number user@host# set next-hop-service outside-service-interface interface-name.unit-number |
Hỗ trợ đa khách hàng cho lọc DNS
Tổng quan
Bắt đầu từ Junos OS Release 21.1R1, bạn có thể cấu hình các nguồn cấp dữ liệu tên miền tùy chỉnh cho từng khách hàng hoặc nhóm IP. Bạn có thể:
Cấu hình tên miền và hành động cho nhiều khách hàng sao cho các nguồn cấp dữ liệu tên miền có thể được quản lý theo từng khách hàng.
Cấu hình quản lý nguồn cấp dữ liệu tên miền phân cấp theo hồ sơ, theo mẫu dns-filter hoặc theo điều khoản dns-filter.
Miễn trừ các nguồn cấp dữ liệu tên miền ở mức IP, subnet hoặc CIDR.
Để triển khai hỗ trợ đa khách hàng cho lọc DNS, việc tạo tệp cơ sở dữ liệu lọc tên miền ở mức mẫu hoặc hồ sơ bị vô hiệu hóa. Bạn không cần chỉ định tệp ở mức mẫu hoặc hồ sơ. Bắt đầu từ Junos OS 21.1R1, mặc định sẽ có một tệp toàn cầu với tên cố định, nsf_multi_tenant_dn_custom_file.txt (định dạng văn bản thuần túy) hoặc dnsf_multi_tenant_dn_custom_file_hashed.txt (tệp mã hóa).
Mỗi mục trong tệp cơ sở dữ liệu có các mục sau:
hashed-domain-name, địa chỉ sinkhole IPv4, địa chỉ sinkhole IPv6, FQDN sinkhole, ID, hành động, feed-name.
Mã hash của tệp được tính toán và thêm vào danh sách các mục tên miền trong tệp. Mã hash của tệp được tính toán bằng cách sử dụng một khóa và phương thức toàn cầu, được xác thực với mã hash tệp được tính toán bằng khóa hash đã cấu hình tại cấp [edit services web-filter]. Việc xác thực tệp thành công chỉ khi mã hash tính toán khớp với mã hash tệp có sẵn trong tệp.
Mỗi mục trong tệp nsf_multi_tenant_dn_custom_file.txt bao gồm một trường bổ sung gọi là feed-name. Trường feed-name này được sử dụng như một chỉ báo để nhóm các tên miền và ánh xạ chúng đến một khách hàng (hồ sơ, mẫu, điều khoản hoặc địa chỉ IP).
Khi các gói DNS được nhận từ một địa chỉ IP nguồn cụ thể, feed-name tương ứng sẽ được lấy và tra cứu sẽ được thực hiện với các tên miền được ánh xạ với feed-name liên kết với điều khoản đó. Nếu feed-name không được cung cấp cho địa chỉ IP đó, thì sẽ quay lại feed-name được cấu hình ở cấp mẫu và tra cứu sẽ được thực hiện với các tên miền được ánh xạ với feed-name liên kết với mẫu đó. Nếu feed-name không được cấu hình ở cấp mẫu, thì tra cứu sẽ được thực hiện với các tên miền được ánh xạ với feed-name liên kết với hồ sơ.
Cấu hình hỗ trợ đa khách hàng cho lọc DNS
[edit] user@host# edit services web-filter |
[edit services web-filter] user@host# set multi-tenant-support |
[edit services web-filter] user@host# set multi-tenant-hash user@host# set multi-tenant-hash file-hash-key (ascii-text | hexadecimal) user@host# set multi-tenant-hash hash-method (ascii-text | hexadecimal) |
**Lưu ý: Khi multi-tenant-hash được cấu hình, điều này chỉ ra rằng tệp DNS feed toàn cầu chỉ chứa các feed đã được mã hóa. Khi multi-tenant-hash không được cấu hình, điều này có nghĩa là tệp DNS feed toàn cầu chứa các feed ở định dạng văn bản thuần túy.
[edit] user@host# [edit services web-filter profile profile-name] user@host# [edit services web-filter profile profile-name feed-name feed-name] |
+ (Tùy chọn) Để giới hạn DNS filtering cho các yêu cầu DNS nhắm đến các DNS server cụ thể, hãy chỉ định tối đa ba địa chỉ IP (IPv4 hoặc IPv6).
[edit services web-filter profile profile-name dns-filter] user@host# set dns-server [ip-address] |
+ Cấu hình khoảng thời gian để ghi lại thống kê cho các yêu cầu DNS và các hành động sinkhole được thực hiện cho mỗi địa chỉ IP khách hàng. Khoảng thời gian có thể từ 1 đến 60 phút và mặc định là 5 phút.
[edit services web-filter profile profile-name dns-filter] user@host# set statistics-log-timer minutes |
+ Cấu hình thời gian sống (TTL) để gửi phản hồi DNS sau khi thực hiện hành động DNS sinkhole. Khoảng thời gian có thể từ 0 đến 86.400 giây và mặc định là 1800 giây.
[edit services web-filter profile profile-name dns-filter] user@host# set dns-resp-ttlseconds |
+ Cấu hình mức độ các subdomain sẽ được tìm kiếm để so khớp. Phạm vi từ 0 đến 10. Giá trị 0 có nghĩa là không tìm kiếm các subdomain.
[edit services web-filter profile profile-name dns-filter] user@host# set wildcarding-levellevel |
+ (Tùy chọn) Chỉ định mã lỗi phản hồi cho loại truy vấn TXT.
[edit services web-filter profile profile-name dns-filter] user@host# set txt-resp-err-code (Noerror | Refused) level |
+ Cấu hình tên cho mẫu.
[edit services web-filter profile profile-name] user@host# set dns-filter-template template-name |
+ Cấu hình tên nguồn cấp dữ liệu (feed name). Với định dạng đa thuê bao, bạn không còn có thể thêm tên tệp dưới hồ sơ hoặc mẫu. Tên nguồn cấp dữ liệu được cấu hình dưới hồ sơ có độ ưu tiên thấp hơn so với tên được cấu hình dưới mẫu.
[edit services web-filter profile profile-namedns-filter-template template-name ] user@host# set feed-name feed-name |
+ (Tùy chọn) Chỉ định các giao diện logic phía khách hàng (uplink) mà lọc DNS sẽ được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set client-interfaces client-interface-name |
+ (Tùy chọn) Chỉ định các giao diện logic phía máy chủ (downlink) mà lọc DNS sẽ được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set server-interfaces server-interface-name |
+ (Tùy chọn) Chỉ định phiên định tuyến (routing instance) cho giao diện logic phía khách (client-facing) mà lọc DNS sẽ được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set client-routing-instance client-routing-instance-name |
+ (Tùy chọn) Chỉ định phiên định tuyến (routing instance) cho giao diện logic phía máy chủ (server-facing) mà lọc DNS sẽ được áp dụng.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set server-routing-instance server-routing-instance-name |
**Lưu ý: Nếu bạn cấu hình cả giao diện khách hàng và máy chủ hoặc cả phiên định tuyến khách hàng và máy chủ, bộ lọc ngầm định sẽ được cài đặt trên các giao diện hoặc phiên định tuyến để chuyển hướng lưu lượng DNS đến dịch vụ PIC cho việc lọc DNS. Nếu bạn không cấu hình giao diện khách hàng và máy chủ hoặc các phiên định tuyến, bạn phải cung cấp một cách để chuyển hướng lưu lượng DNS đến dịch vụ PIC (ví dụ: thông qua các tuyến đường).
+ Cấu hình khoảng thời gian để ghi lại thống kê cho các yêu cầu DNS và các hành động sinkhole được thực hiện cho mỗi địa chỉ IP của khách hàng. Khoảng giá trị là từ 1 đến 60 phút, mặc định là 5 phút.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set statistics-log-timer minutes |
+ Cấu hình thời gian sống (TTL) khi gửi phản hồi DNS sau khi thực hiện hành động DNS sinkhole. Khoảng giá trị là từ 0 đến 86,400 giây và mặc định là 1800 giây.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set dns-resp-ttl seconds |
+ Cấu hình mức độ các subdomain được tìm kiếm để so khớp. Khoảng giá trị là từ 0 đến 10. Giá trị 0 có nghĩa là không tìm kiếm các subdomain.
[edit services web-filter profile profile-name dns-filter-template template-name dns-filter] user@host# set wildcarding-level level |
+ Cấu hình một điều khoản cho mẫu. Bạn có thể cấu hình tối đa 64 điều khoản trong một mẫu.
[edit services web-filter profile profile-name dns-filter-template template-name] user@host# set term term-name |
+ Cấu hình tên nguồn cấp dữ liệu. Tên nguồn cấp dữ liệu được cấu hình tại điều khoản có độ ưu tiên cao hơn so với tên nguồn cấp dữ liệu được cấu hình dưới mẫu. Tuy nhiên, nếu tên miền sinkhole khớp với tên miền duy nhất được đề cập trong tên nguồn cấp dữ liệu dưới mẫu, hành động được chỉ định cho mục đó sẽ được thực thi.
[edit services web-filter profile profile-name dns-filter-template template-name term term-name] user@host# set feed-name feed-name |
+ (Optional) Cấu hình các tiền tố địa chỉ IP nguồn của các yêu cầu DNS mà bạn muốn lọc. Bạn có thể cấu hình tối đa 64 tiền tố trong một điều khoản.
[edit services web-filter profile profile-name dns-filter-template template-name term term-name] user@host# set from src-ip-prefix source-prefix |
+ Cấu hình hành động sinkhole được xác định trong cơ sở dữ liệu bộ lọc tên miền sẽ được thực hiện đối với các yêu cầu DNS bị cấm.
[edit services web-filter profile profile-name dns-filter-template template-name term term-name] user@host# set then dns-sinkhole |
[edit services service-set service-set-name] user@host# set syslog mode event user@host# set syslog syslog event-rate vent-rate user@host# set syslog local-category urlf user@host# set web-filter-profile profile-name user@host# set set next-hop-service inside-service-interface interface-name.unit-number user@host# set set next-hop-service outside-service-interface interface-name.unit-number |
[edit interfaces interface-name] user@host# set vms 0/0/0 user@host# set services-options |
[edit interfaces interface-name user@host# fpc-pic-information |
Ví dụ: Cấu hình hỗ trợ đa thuê bao cho lọc DNS
Cấu hình nhanh qua CLI
Để cấu hình nhanh ví dụ này, sao chép các lệnh dưới đây, dán vào một tệp văn bản, loại bỏ bất kỳ ngắt dòng nào, thay đổi các chi tiết cần thiết để phù hợp với cấu hình mạng của bạn, sau đó sao chép và dán các lệnh vào CLI tại cấp độ [edit].
set services service-set Test Zone3 syslog mode stream set services service-set Test Zone3 syslog source-address 10.1.1.1 set services service-set Test Zone3 syslog stream t1 category urlf set services service-set Test Zone3 syslog stream t1 host 10.10.1.1 set services service-set Test Zone3 syslog stream t1 routing-instance client_vr4 set services service-set Test Zone3 web-filter-profile Test-Profile-3-Zone3 set services service-set Test Zone3 next-hop-service inside-service-interface ams3.24 set services service-set Test Zone3 next-hop-service outside-service-interface ams3.25 set services web-filter multi-tenant-support set services web-filter multi-tenant-hash file-hash-key ascii-text "$9$VjsgJikP36AGD6Ap0hcbs2" set services web-filter multi-tenant-hash hash-method hmac-sha2-256 set services web-filter profile Test-Profile-3-Zone3 feed-name abc set services web-filter profile Test-Profile-3-Zone3 global-dns-filter-stats-log-timer 20 set services web-filter profile Test-Profile-3-Zone3 dns-filter statistics-log-timer 5 set services web-filter profile Test-Profile-3-Zone3 dns-filter dns-resp-ttl 100 set services web-filter profile Test-Profile-3-Zone3 dns-filter wildcarding-level 10 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 inactive: client-interfaces xe-7/0/2.32 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 inactive: server-interfaces xe-7/2/0.36 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 inactive: client-routing-instance client_vr4 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 inactive: server-routing-instance server_vr4 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer1 feed-name customer2 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer1 from src-ip-prefix 10.12.1.1 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer1 then dns-sinkhole set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer2 feed-name customer2 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer2 from src-ip-prefix 2001:db8::0/96 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer2 then dns-sinkhole set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer3 from src-ip-prefix 2001:db8:bbbb::/96 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area1 term Test-Profile-3-Zone3-Area1-Customer3 then dns-sinkhole set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area2 inactive: client-interfaces xe-7/0/2.32 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area2 inactive: server-interfaces xe-7/2/0.36 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area2 inactive: client-routing-instance client_vr4 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area2 inactive: server-routing-instance server_vr4 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area2 term Test-Profile-3-Zone3-Area2-Customer1 from src-ip-prefix 22.21.128.0/17 set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone3-Area2 term Test-Profile-3-Zone3-Area2-Customer1 then dns-sinkhole set services web-filter profile Test-Profile-3-Zone3 dns-filter-template Test-Profile-3-Zone4-Area2 feed-name customer2 set services web-filter pr |