Quy tắc tường lửa chỉ NEW không đóng mọi đường WAN
Từ chối các kết nối NEW để nguyên những luồng đã thiết lập và các phản hồi. Hãy đọc trạng thái conntrack, thứ tự quy tắc và các ngoại lệ trước khi gọi một chính sách là đã đóng.
Từ chối các kết nối đi ra mới trên WAN trông giống một chính sách đóng khi lỗi, nhưng đó là một lời hứa hẹp hơn vẻ ngoài của nó. Các gói thuộc những luồng đã tồn tại không khớp với quy tắc đó, và nhiều phản hồi cũng vậy. Khoảng trống này dễ bị bỏ sót vì quy tắc được đọc như thể nó bao trùm giao diện chứ không phải một trạng thái kết nối trên đó. Và việc đọc sự khớp trạng thái như một phán quyết chính là thứ tạo ra cảm giác đóng sai lệch.
Trạng thái là một điều kiện khớp, không phải phán quyết
Theo dõi kết nối phân loại gói dựa trên những gì tường lửa đã thấy, không dựa trên những gì ứng dụng tin. Một luồng được quan sát theo cả hai chiều là đã thiết lập, và các gói sau đó của nó vẫn ở trạng thái đã thiết lập ngay cả khi tuyến bên dưới chuyển từ đường hầm sang tuyến lên thông thường. Phản hồi cho một kết nối đến cũng có thể là lưu lượng đã thiết lập. Những gói đó không bao giờ trở lại mới.
Vì thế một quy tắc chỉ giới hạn ở kết nối mới không thể chứng minh rằng mọi gói được bảo vệ đều bị chặn. Nó để các trạng thái khác cho phần còn lại của bộ quy tắc xử lý, và đó có thể là một sự cho phép được đặt trước đó trong chuỗi.
Đọc quy tắc trong bối cảnh của nó
Một sự cho phép rộng cho lưu lượng đã thiết lập và liên quan đặt trước chặn sẽ cho gói đi qua trước khi chặn được đánh giá. Việc gỡ điều kiện trạng thái khỏi một quy tắc phía sau sẽ không thay đổi điều đó, vì quá trình đánh giá không bao giờ chạm tới nó. Thứ tự quyết định kết quả, và sự khớp trạng thái quyết định gói nào chạm tới thứ tự đó.
Hãy kiểm tra bộ quy tắc hiệu lực chứ không phải tệp bạn đã sửa, bao gồm các bước nhảy sang chuỗi khác và mọi thứ nền tảng sinh ra. Trên router được quản lý bằng iptables, việc liệt kê chuỗi hiển thị định nghĩa quy tắc, và các chuỗi mà nó tham chiếu cũng phải được theo dõi. Một hệ thống nftables gốc cần được xem xét bộ quy tắc và mức ưu tiên hook của chính nó, vì phần sụn hiếm khi sinh ra các chuỗi giống hệt nhau.
Bộ đếm cho biết quy tắc nào thực sự khớp, và chúng thường có nhiều thông tin hơn một bản bắt gói được thực hiện sau quyết định. Một quy tắc có bộ đếm bằng không là chưa được chạm tới, bất kể vị trí của nó gợi ý điều gì.
Diễn đạt điều cấm độc lập với trạng thái
Nếu một nhóm máy khách không bao giờ được ra internet ngoài đường hầm, hãy nói thẳng điều đó thay vì xấp xỉ bằng một trạng thái. Quy tắc phải chọn theo nguồn, lối ra và đích mà không phụ thuộc trạng thái kết nối, và phải nằm ở nơi không sự cho phép nào trước đó có thể vòng qua. Khi đó quyền truy cập quản trị và các ngoại lệ của mạng cục bộ có quy tắc rõ ràng riêng, nhờ vậy ý định hiện rõ trong chính sách.
Chọn reject thay vì drop thay đổi cách lưu lượng khớp bị lỗi, và không mở rộng tập gói mà quy tắc chọn. Một kết nối bị từ chối và một thời gian chờ im lặng là những triệu chứng khác nhau cùng chỉ về một lựa chọn.
Một chính sách cố ý cho phép phản hồi với truy cập do bên ngoài khởi tạo qua WAN là điều có thể bảo vệ được. Chỉ cần mô tả nó như vậy thay vì trình bày nó như sự cô lập hoàn toàn chỉ qua đường hầm.
Kiểm tra ai thực sự nằm trong nhóm
Ví dụ bao gồm lưu lượng IPv4 được chuyển tiếp từ một tiền tố ra một giao diện. Nó không nói gì về IPv6, tuyến lên thứ hai, hay lưu lượng do chính router tạo ra. Một router đóng vai trò trình phân giải DNS sẽ gửi các truy vấn thượng nguồn của chính nó, và những truy vấn đó không đi qua chuỗi forward chút nào.
Xác nhận rằng các máy khách được bảo vệ vẫn có địa chỉ trong tiền tố đã chọn, vì một thiết bị đã ra ngoài tiền tố đó là kết nối trực tiếp do tình cờ chứ không theo chính sách. Việc mở rộng chặn ra toàn bộ LAN mà không xem lại thiết kế ngoại lệ cũng thường xóa mất đường quản trị của chính bạn.
iptables -S FORWARD
iptables -L FORWARD -v -n
cat /proc/net/nf_conntrack | grep -c ESTABLISHED
Sau đó thử một luồng cũ bên cạnh một luồng mới. Một lần thử kết nối mới và một truyền hai chiều đang hoạt động hành xử khác nhau dưới quy tắc này, và chỉ khi thử cả hai mới thấy chính sách bạn thực sự có.