Bộ chọn lưu lượng IPsec: chúng bao phủ gì và không bao phủ gì
Bộ chọn là chính sách đã thương lượng, không phải tuyến đường và không phải quyền. Đọc chúng từ cả hai đầu, xem bên trả lời thu hẹp chúng thế nào, rồi lần theo một đích đến.
Bộ chọn lưu lượng đặt tên cho lưu lượng bên trong mà một thỏa thuận IPsec bảo vệ, và cặp này được thương lượng chứ không phải giả định. Hai đầu có thể xác thực nhau hoàn hảo mà vẫn bất đồng về việc gói nào thuộc bên trong đường hầm. Sự bất đồng đó vô hình trong trạng thái kết nối, vốn thường báo một đường hầm khỏe mạnh. Đọc bộ chọn từ cả hai đầu rồi lần theo một đích đến tìm ra nó nhanh hơn mọi việc chỉnh sửa chính sách.
Đọc chúng từ cả hai đầu
Mỗi đầu mô tả phía của mình là cục bộ và phía kia là từ xa. Vì vậy cùng một cặp tiền tố xuất hiện đảo ngược trong hai cấu hình, và điều đó đúng chứ không mâu thuẫn. Đảo ngược góc nhìn là việc đầu tiên cần làm khi một thỏa thuận đang chạy trông sai trên giấy. So sánh hai tệp cạnh nhau mà không đảo chúng tạo ra một sự không khớp không hề tồn tại.
Các giá trị không phải lúc nào cũng là một mạng con. Bộ chọn IKEv2 có thể mang dải địa chỉ, số giao thức và dải cổng, và đó là cách một chính sách bảo vệ một dịch vụ thay vì cả một mạng. Một bộ chọn hẹp hơn lưu lượng dự định tạo ra đường hầm mang một số đích và âm thầm loại trừ những đích khác.
Viết cả hai phía vào một bảng trước khi thay đổi bất cứ điều gì. Bài tập này thường giải quyết câu hỏi mà không cần chạm vào tệp cấu hình.
Việc thu hẹp là quyết định của bên trả lời
Bên khởi tạo đề xuất, và bên trả lời chỉ có thể chấp nhận một tập con. IKEv2 cho phép bên trả lời thu hẹp các bộ chọn lưu lượng được đề nghị, và kết quả đã thu hẹp mới là thứ thực sự được cài đặt. Vì vậy đọc cấu hình của bên khởi tạo mô tả một đề nghị, không phải thỏa thuận.
Đó là lý do một mạng con thêm vào máy khách có thể tạo ra đường hầm đang chạy mà vẫn từ chối đích mới. Máy chủ đã thu hẹp đề nghị xuống mức chính sách của nó cho phép, trong khi tệp của máy khách vẫn liệt kê dải rộng hơn. Chỉ trạng thái đã thương lượng mới cho thấy sự thật: trên Linux, ip xfrm policy và danh sách child SA trong tài liệu IKEv2 của strongSwan báo cáo thứ đã cài đặt chứ không phải thứ đã yêu cầu. Khi hai bên không khớp, chính sách của bên trả lời là thứ cần thay đổi.
Một đề nghị bị từ chối là triệu chứng khác với một đề nghị bị thu hẹp. Sự từ chối xuất hiện trong nhật ký thương lượng và không để lại bất kỳ liên kết child nào.
Lần theo một đích đến từ đầu đến cuối
Chọn một đích thực cùng địa chỉ nguồn mà máy khách sẽ dùng cho nó, rồi đưa cặp đó qua ba quyết định độc lập. Tuyến chọn một đường, bộ chọn quyết định đường đó có được bảo vệ hay không, và tường lửa quyết định gói có được phép hay không. Mỗi thứ có thể hỏng một mình, và một bộ chọn rộng không sửa được thứ nào khác.
ip route get 10.20.30.41
ip xfrm policy list
swanctl --list-sas
Truy vấn tuyến nêu tên giao diện và địa chỉ nguồn sẽ mang gói. Danh sách chính sách cho thấy có chính sách đường hầm khớp cho cặp đó hay không, kể cả hướng và mức của nó. Danh sách SA cho thấy các bộ chọn child đã thương lượng cùng với bộ đếm, nên một liên kết child không có gói nào sau khi đã thử lưu lượng là dấu hiệu của các bộ chọn loại trừ thứ đang được gửi. Ba lệnh, ba câu trả lời khác nhau, và chỉ một trong số đó giải thích việc rơi âm thầm.
Nếu bộ đếm child nhích lên trong khi ứng dụng vẫn hỏng, vấn đề nằm ngoài đường hầm. Điều đó chuyển việc điều tra sang trình lắng nghe hoặc tường lửa của máy chủ xa chứ không phải các bộ chọn.
Giữ hai mục tiêu tách biệt
Bảo vệ một mạng con văn phòng và gửi toàn bộ việc duyệt web qua một lối ra từ xa là những yêu cầu khác nhau với bộ chọn khác nhau. Một hồ sơ dựng cho cái này hiếm khi hợp với cái kia, và trộn chúng tạo ra hoặc rò rỉ hoặc một sự chia tách hỏng. Mở rộng dải được bảo vệ nghĩa là thay đổi cả hai đầu và chính sách chuyển tiếp của chúng, vì một thay đổi một phía trở thành đề nghị bị từ chối. Đó là cách phổ biến nhất khiến một đường hầm đang chạy ngừng chạy sau một chỉnh sửa nhỏ.
Bộ chọn mô tả phạm vi mật mã, tuyến chọn đường, và ứng dụng thực thi quyền của riêng chúng. Một đường hầm bao phủ mọi thứ vẫn không thể tới được dịch vụ gắn với loopback, và tuyến vào đường hầm vẫn cần một bộ chọn bao gồm đích. Kiểm tra cả ba với cùng một yêu cầu thử nghiệm, và sự không khớp sẽ tự nêu tên.