Đặt quy tắc cho phép sai vị trí và nó hành xử như thể không có quy tắc nào. Trong nftables, lựa chọn giữa insert và add quyết định quy tắc mới nằm ở phía nào của quy tắc được tham chiếu, và handle định danh quy tắc trong bộ quy tắc đang chạy chứ không phải số dòng của nó. Nếu đặt sai, gói tin đến drop trước.

Phép so sánh dưới đây dùng một peer cố định và một lần trao đổi listener bên ngoài. Nó hẹp có chủ đích; thay cả một chuỗi là một thay đổi khác với biên rủi ro khác.

Hai cách đặt, hai kết quả khác nhau

insert đặt quy tắc trước quy tắc được tham chiếu. add đặt nó sau. Nếu quy tắc được tham chiếu là drop cuối cùng cho luồng, hai lệnh này cho kết quả ngược nhau dù nội dung quy tắc giống hệt.

Bỏ qua vị trí có hành vi mặc định riêng, thêm một lý do để không sao chép lệnh từ diễn đàn mà không đọc nó neo vào đâu. Điểm neo chính là toàn bộ quyết định. Ghi phía định đặt trước khi gõ lệnh. Trong tệp, insert và add chỉ khác nhau một từ.

Vị trí là tương đối so với một quy tắc trong một chuỗi cụ thể. Chuyển cùng một câu lệnh sang chuỗi khác hoặc mức ưu tiên hook khác sẽ thay đổi gói tin mà nó nhìn thấy, kể cả khi cú pháp quy tắc trông đúng.

Handle định danh một quy tắc, không phải số dòng

Một handle như 42 là định danh trong trạng thái hiện tại của bộ quy tắc. Nó không phải quy tắc thứ bốn mươi hai, và nó không ổn định giữa các máy chủ, lần dựng lại hay trình quản lý nạp lại cấu hình.

Xác định chuỗi và drop cuối cùng thực sự trước khi chọn điểm neo. Sau đó xác nhận handle trên quy tắc đó trong cùng danh sách hiển thị drop, để số và quy tắc được đọc cùng nhau. Một handle đọc từ danh sách cũ có thể đã thuộc quy tắc khác. Đọc lại trong phiên sẽ áp dụng thay đổi.

iptables --version
nft -a list ruleset

Phiên bản iptables cho biết backend nào đang được dùng. Một bộ quy tắc iptables-nft và một bảng gốc được quản lý độc lập có thể cùng tồn tại, nên danh sách từ một frontend không tự động là bức tranh lọc đầy đủ. Kiểm tra cả hai góc nhìn trước khi chọn chuỗi.

Tìm chuỗi và quy tắc thực sự drop

Đọc hook đầu vào, mức ưu tiên chuỗi và quy tắc từ chối luồng listener này. Bảng inet có thể mang cả hai họ địa chỉ, nhưng một quy tắc riêng lẻ vẫn có thể chỉ khớp với IPv4.

Lấy một peer đã được phê duyệt, dùng 198.51.100.25 từ dải tài liệu làm ví dụ. Một tệp gốc đã rà soát có thể đặt cho phép bên ngoài trước handle 42:

insert rule inet filter input handle 42 iifname "eth0" ip saddr 198.51.100.25 udp dport { 500, 4500 } counter accept

Sau khi kiểm tra, thay họ, bảng, chuỗi, handle, giao diện vào và peer. Ví dụ dùng dạng vị trí-handle được ghi cho nft 1.0.9, và nó thuộc về một tệp đầu vào; việc trích dẫn ngoặc nhọn là vấn đề riêng khi lệnh được gõ tương tác.

Giữ rõ chủ sở hữu cấu hình. Trình quản lý dựng lại quy tắc có thể ghi đè chỉnh sửa lúc chạy, và script khởi động mã hóa cứng handle cũ sẽ thất bại hoặc gắn vào quy tắc sai.

Cho phép có phạm vi, drop là cuối cùng

Phán quyết cho phép kết thúc đánh giá trên đường đi hiện tại, nhưng một chuỗi cơ sở áp dụng sau đó vẫn có thể drop gói. Phán quyết drop là cuối cùng. Vì thế bộ đếm cho phép tăng không phải bằng chứng luồng đã thành công.

Kiểm tra mọi mức ưu tiên hook liên quan thay vì một chuỗi riêng lẻ. Gói tin có thể qua bộ lọc đầu vào và vẫn bị hook của bảng khác từ chối ở mức ưu tiên khác. Liệt kê mọi chuỗi cơ sở có thể thấy luồng.

Quy tắc đó chỉ bao phủ trao đổi listener bên ngoài. ESP đóng gói trong vận chuyển, ESP gốc, peer IPv6 và lưu lượng đã giải mã bên trong tunnel đều cần chính sách riêng. Đây không phải tường lửa VPN trang đầy đủ.

Kiểm tra tệp, rồi xác minh kết quả đang chạy

Chạy kiểm tra cú pháp và giao dịch trên tệp đã rà soát trước khi áp dụng. Chế độ kiểm tra cho biết nft có thể phân tích và chuẩn bị thay đổi hay không; nó không áp dụng thay đổi và không chứng minh hook khác sẽ cho gói đi qua. Tệp vẫn là đề xuất cho đến khi chủ sở hữu áp dụng:

nft -c -f reviewed-vpn-rule.nft

Áp dụng qua quy trình có kiểm soát của chủ sở hữu và giữ quyền truy cập khôi phục. Nếu quy tắc sai, drop mà bạn định đi trước cũng có thể cắt đường bạn dùng để sửa nó.

Sau thay đổi, quan sát một lần thử peer được cho phép mới và kiểm tra rằng nguồn ngoài peer đã phê duyệt vẫn bị từ chối. Chuyển quy tắc lâu dài sang trình quản lý sở hữu bộ quy tắc, vì handle lúc chạy định vị đối tượng hiện tại chứ không định danh chúng qua các lần khởi động.

Bài viết liên quan