Ping hoạt động, SSH hoạt động, một trang nhỏ tải được, rồi mọi phản hồi lớn đều treo cho đến khi hết thời gian. Mẫu kinh điển chỉ vào kích thước gói chứ không phải khả năng tiếp cận: đường truyền mang bắt tay và vài kilobyte đầu, sau đó một phân đoạn đầy đủ biến mất. Trên một cổng Linux IPsec, quy tắc TCP MSS thường là cách sửa, nhưng chỉ khi bạn hiểu nó thay đổi điều gì và gói mà nó chạm vào thực sự nằm ở đâu. Thứ tự dưới đây theo gói từ triệu chứng đến vị trí đặt quy tắc, để bạn có thể dừng ngay khi lời giải thích không còn khớp.

Triệu chứng gợi ý MSS

TCP thương lượng kích thước phân đoạn tối đa trong bắt tay. Nếu giá trị đó lớn hơn mức đường truyền có thể mang sau khi đóng gói, bên gửi tiếp tục tạo ra các phân đoạn không bao giờ đến, và kết nối treo sau vòng đầu tiên. Phản hồi nhỏ vừa; lớn thì không.

Phản hồi ICMP có thể cứu kết nối nhờ phát hiện MTU của đường truyền, và tường lửa loại bỏ những thông báo đó biến việc treo thành một hố đen im lặng. Đó là lý do cùng một đường hầm hoạt động với ứng dụng này nhưng thất bại với ứng dụng khác mà không có khác biệt rõ ràng trong cấu hình.

Quy tắc TCPMSS làm gì và không làm gì

Quy tắc ghi lại tùy chọn MSS trong các gói bắt tay TCP khi chúng đi qua. Nó không đặt MTU của giao diện đường hầm, không thay đổi chính sách IPsec, và trên các nhân hiện tại nó chỉ hạ giá trị được quảng bá thay vì nâng một giá trị đã nhỏ hơn. Nó cũng chỉ chạm vào TCP; tải trọng UDP, hành vi DNS và các bộ chọn lưu lượng đã thương lượng nằm ngoài tầm với của nó.

Vì thay đổi diễn ra trong lúc bắt tay, một kết nối đã có được thiết lập trước quy tắc vẫn giữ giá trị cũ. Hãy thử với kết nối mới, và mong đợi rằng lần thử đầu tiên sau thay đổi chính là lần cho bạn biết điều gì đó. Không có gì trong quy tắc chạm tới một kết nối đã mở. Đó là lý do một bản sửa được áp dụng giữa sự cố có thể trông như không làm gì cả.

Đặt quy tắc trên đường TCP bên trong

Trên một cổng Linux dựa trên chính sách, gói được chuyển tiếp vẫn trông như TCP thông thường khi tường lửa nhìn thấy nó. Chính sách IPsec quyết định rằng gói sẽ được bảo vệ; tường lửa không thấy tiêu đề ESP cho luồng bên trong, nên việc khớp với ESP ở đây mô tả một gói hoàn toàn khác. Chính sự không khớp đó là lý do một số quy tắc trông đúng mà không bao giờ khớp.

Theo thuật ngữ iptables, quy tắc thuộc bảng mangle trên đường chuyển tiếp, giới hạn ở các gói bắt tay: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Con số là ví dụ, không phải hằng số phổ quát; hãy suy ra nó từ chi phí đóng gói và MTU thực của đường truyền. Một tương đương nftables đặt kích thước phân đoạn tối đa trong chuỗi forward hoặc postrouting.

Giữ các quy tắc lắng nghe bên ngoài cho IKE và ESP tách biệt với các quy tắc chuyển tiếp bên trong. Một quy tắc duy nhất cố gắng cho phép cả luồng ứng dụng lẫn giao thức bên ngoài cuối cùng không khớp một cách đáng tin với cả hai.

Tôn trọng chủ sở hữu tường lửa và thứ tự NAT

Nếu UFW sở hữu tường lửa của máy chủ, hãy thêm các thay đổi mangle và chuyển tiếp thông qua cấu hình lâu dài được hỗ trợ của nó thay vì gõ một lệnh biến mất ở lần tải lại tiếp theo. Một quy tắc được chèn vào bảng sai hoặc sau một quy tắc cuối không có tác dụng, và bảng đang chạy che điều đó khỏi bạn.

Dịch nguồn là một quyết định riêng thường tương tác với quyết định này. Một ngoại lệ đặt trước quy tắc masquerade chung giữ cho lưu lượng được bảo vệ không mất nguồn mà chính sách của nó yêu cầu; nó không sửa một vấn đề kích thước, và một quy tắc kích thước không sửa một vấn đề dịch.

Xác minh hẹp, rồi dừng

Mở một kết nối mới đến dịch vụ đang lỗi và theo dõi cả ứng dụng lẫn bộ đếm của quy tắc. Nếu treo hết, bạn có bằng chứng về đường TCP đó với cách đóng gói đó. Bạn không có bằng chứng rằng mọi giao thức VPN đều phù hợp, mọi ứng dụng UDP đã được sửa, hay một dịch vụ thượng nguồn cụ thể là nguyên nhân ban đầu.

Hãy để phản hồi kích thước ICMP hoạt động ở nơi chính sách cho phép, và xử lý cẩn thận việc điều chỉnh tự động dựa trên MTU của tuyến khi đường IPsec bên ngoài không được tuyến bên trong đại diện. Kết luận càng hẹp thì sự cố tiếp theo càng dễ chẩn đoán.

Bài viết liên quan