Bạn có thể chọn đánh dấu các gói được chấp nhận là hành vi an toàn trong các chuỗi sau của cùng một hook.
mỗi quy tắc chấp nhận nên đánh dấu gói
Các quy tắc thực hiện chấp nhận rõ ràng nên đánh dấu gói ngay trước khi chấp nhận nó. Bất kỳ sự xuất hiện nào của:
... Chấp nhận
nên được thay thế bằng:
... dấu meta được đặt 0xf00 chấp nhận
Giá trị không quan trọng miễn là nó không phải là 0 nếu không có vai trò nào khác đối với nhãn hiệu.
mỗi chuỗi phải chấp nhận một gói được đánh dấu vì đó là hành vi an toàn
bằng cách sử dụng quy tắc này sớm trong chuỗi:
dấu meta != 0 chấp nhận
Đó là ý tưởng chung. Các điều chỉnh và ngoại lệ vẫn có thể được thực hiện nếu nó hợp lý hơn.
Đây là bộ quy tắc được xem lại theo cách tiếp cận này. Nhãn hiệu được chấp nhận sau khi ct ... thả không hợp lệ
quy tắc là quy tắc quan trọng không nên bỏ qua (và thực tế có thể đã được thực hiện trong chuỗi trước đó một lần và mãi mãi vì đó là quy tắc loại bỏ). Nếu bên dưới, đầu vào là chuỗi cuối cùng trong hook bộ lọc/đầu vào thì không thực sự cần thiết để đánh dấu các gói được chấp nhận, nhưng làm như vậy không hại gì.
/etc/nftables.conf:
:
tuôn ra quy tắc
bộ lọc inet bảng {
bộ đếm input_ssh {}
đặt my_admin_ipv4 {
gõ ipv4_addr
khoảng thời gian cờ
phản đối
phần tử = {
10.0.0.0/8,
172.16.0.0/12,
192.168.0.0/16
}
}
chuỗi đầu vào {
loại móc bộ lọc đầu vào bộ lọc ưu tiên; giảm chính sách;
iifname lo meta mark set 0x1 accept comment "Allow loopback traffic";
trạng thái ct đã được thiết lập, dấu meta liên quan được đặt 0x1 chấp nhận nhận xét "Cho phép các kết nối được thiết lập/có liên quan";
trạng thái ct bỏ bình luận không hợp lệ "Từ chối kết nối không hợp lệ";
dấu meta != 0 chấp nhận
# SSH
tcp dport ssh ip saddr @my_admin_ipv4 tên bộ đếm input_ssh dấu meta được đặt 0x1 chấp nhận nhận xét "Cho phép SSH IPv4 từ Quản trị viên";
}
chuỗi về phía trước {
loại bộ lọc hook ưu tiên về phía trước 0; giảm chính sách;
}
đầu ra chuỗi {
đầu ra móc lọc loại ưu tiên 0; chính sách chấp nhận;
}
bao gồm "/etc/nft/*.conf"
}
/etc/nft/http.conf
(đã thay thế counter_nginx
với truy cập_http
). Các dấu meta != 0 chấp nhận
quy tắc có lẽ không cần thiết ở đây vì dù sao thì có thể không có bất kỳ chuỗi nào khác trước đó, nhưng cũng không hại gì khi có nó.
truy cập đầu vào_http {}
chuỗi http {
loại bộ lọc hook bộ lọc ưu tiên đầu vào - 1; chính sách chấp nhận;
dấu meta != 0 chấp nhận
#HTT#
tcp dport {80,443} tên bộ đếm dấu meta input_http được đặt 0x2 chấp nhận nhận xét "Cho phép HTTP";
}
Phương pháp này sử dụng các dấu nên sẽ khó tích hợp hơn với các quy tắc tường lửa khác đã sử dụng các dấu cho các mục đích khác. Vẫn có thể thực hiện được bằng cách đặt trước một vài bit của nhãn hiệu bằng các thao tác theo bit.