Một máy khách VPN trên máy chủ web của bạn có làm hỏng các câu trả lời của nó không?
Một quy tắc định tuyến dựa trên nguồn có thể khôi phục một trang đã xuất bản trong khi miễn trừ lưu lượng mà bạn chưa từng dự định. Hãy đọc bộ chọn trước khi mở rộng ngoại lệ.
Trang tải được từ một máy tính xách tay trên cùng mạng và hết thời gian từ mọi nơi khác, và máy chủ cũng chạy một máy khách VPN cho lưu lượng đi ra của chính nó. Sự kết hợp đó tạo ra một lỗi cụ thể: kết nối vào đến, câu trả lời đi ra theo sai đường, và máy khách bên ngoài không bao giờ thấy câu trả lời. Cả hai nửa đều xuất hiện trong cùng một bản bắt gói, nên thứ tự sự kiện là phần đáng đọc.
Một quy tắc định tuyến dựa trên nguồn thường sửa được triệu chứng. Nó cũng thường miễn trừ nhiều lưu lượng hơn trang đã gây ra nó, và đó là phần đáng hiểu trước khi lưu quy tắc.
Triệu chứng: nó trả lời cục bộ và không trả lời từ bên ngoài
Bên trong mạng, câu trả lời không cần đi qua đường hầm, nên trang tải được và dịch vụ có vẻ khỏe mạnh. Từ bên ngoài, yêu cầu đến được máy chủ và câu trả lời được định tuyến vào VPN, nơi đầu xa không có lý do gì để chấp nhận nó. Trình duyệt thấy hết thời gian thay vì bị từ chối, đó là dấu hiệu của một đường một chiều chứ không phải một cổng đóng.
Xác nhận hình dạng trước khi thay đổi định tuyến: trình lắng nghe đang chạy, yêu cầu cục bộ thành công, và yêu cầu bên ngoài không tạo ra câu trả lời nào. Ba quan sát đó cùng nhau chỉ vào đường trả về chứ không phải cấu hình máy chủ web. Một sự bất đối xứng sạch như vậy hữu ích hơn bất kỳ dòng nhật ký nào, vì nó loại trừ trình lắng nghe trước khi bạn đọc dù chỉ một thông báo lỗi.
Giữ một đường quản trị độc lập mở trong khi làm việc. Một quy tắc phá hỏng phiên SSH của chính bạn biến việc sửa mười phút thành một chuyến thăm thực địa.
Bộ chọn nguồn thực sự khớp với gì
Trong định tuyến chính sách của Linux, một quy tắc như from 192.168.50.2 khớp với các gói có nguồn là địa chỉ đó. Nó không mã hóa sự thật rằng gói đang tiếp tục một cuộc trò chuyện đi vào qua bộ định tuyến gia đình, và nó không biết tiến trình nào đã tạo ra nó. Địa chỉ trong ví dụ đó chỉ là minh họa; hãy thay bằng địa chỉ mà máy chủ của bạn thực sự dùng. Hãy coi dòng đó là một phát biểu về địa chỉ và không hơn gì nữa.
Nếu bảng được chọn cung cấp một tuyến mặc định thông thường, mọi gói mang nguồn đó có thể nhận cùng ngoại lệ. Một dịch vụ khác gắn với cùng địa chỉ sẽ thừa hưởng nó, và một ứng dụng cố ý gắn với địa chỉ đó cũng thừa hưởng nó. Tài liệu tham chiếu quy tắc chính sách liệt kê nguồn, đích, giao thức, cổng, dấu và mức ưu tiên như các bộ chọn riêng biệt, điều này nhắc rằng chỉ nguồn thôi là bộ chọn thô nhất hiện có.
Mức ưu tiên quyết định kết quả. Các tìm kiếm chạy theo thứ tự và bảng đầu tiên cho ra kết quả có thể kết thúc tìm kiếm, nên một quy tắc đặt quá sớm có thể che giấu một tuyến cụ thể hơn mà một bảng sau đó sẽ cung cấp. Hãy đọc toàn bộ danh sách có thứ tự thay vì chỉ dòng bạn đã thêm. Một quy tắc không bao giờ khớp không tốn gì, trong khi một quy tắc khớp quá sớm âm thầm thay đổi mọi thứ phía sau nó.
Kiểm tra đường trả về và lưu lượng mà bạn không dự định
Đọc các quy tắc và bảng, rồi hỏi nhân hệ điều hành xem một cặp nguồn và đích cụ thể sẽ đi theo tuyến nào. Kiểm tra từ chính máy chủ không giống kiểm tra từ bên ngoài, nên hãy làm cả hai.
ip rule show
ip route show table 100
ip route get 203.0.113.44 from 192.168.50.2
ss -ltnp '( sport = :443 )'
Sau đó chấp nhận một kết nối bên ngoài mới và, riêng biệt, một yêu cầu vẫn phải đi ra qua VPN. Nếu cái thứ hai giờ đi ra trực tiếp, ngoại lệ rộng hơn vấn đề bạn đang giải quyết, và bài kiểm tra quan trọng là bài mà bạn không định thay đổi.
Kiểm tra địa chỉ công khai trong trình duyệt chỉ báo cáo những yêu cầu mà trình duyệt đó đã thực hiện. Nó không nói gì về các câu trả lời của máy chủ web, về việc chọn nguồn của một ứng dụng cục bộ khác, hay về điều gì xảy ra với lưu lượng quản trị sau lần kết nối lại VPN tiếp theo.
Quyết định ngoại lệ có thể hẹp đến mức nào
Hai thiết kế đều có thể bảo vệ được và cần được chọn có chủ đích. Nếu máy chủ tồn tại chỉ để xuất bản dịch vụ này và lưu lượng đi ra của nó không quan trọng, một địa chỉ cục bộ chuyên dụng với chính sách chỉ dành cho WAN là cách sắp xếp hợp lý miễn là bạn chấp nhận toàn bộ phạm vi. Nếu chỉ những kết nối vào cụ thể mới nên đủ điều kiện, việc chọn địa chỉ là quá thô và phía trước nó phải có một thiết kế nhận biết kết nối.
Ghi lại hợp đồng mà bạn dựa vào: ánh xạ công khai, địa chỉ máy chủ mà yêu cầu được giao đến, và đường mà câu trả lời được mong đợi đi theo. Một dịch vụ vào được xuất bản qua nhà cung cấp VPN là một hợp đồng khác với dịch vụ xuất bản qua bộ định tuyến gia đình, và một ngoại lệ sao chép từ một ví dụ thường sai với cái kia.
Giữ chính sách trong thành phần sở hữu định tuyến thay vì dán một lệnh vào tệp khởi động. Thứ tự quy tắc, dọn dẹp sau khi thay đổi mạng và phát lại sau khi khởi động lại đều phải tồn tại, và một tệp khởi động chưa được kiểm tra thường thất bại đúng vào lúc bạn không nhìn. Kết thúc bằng kết quả chấp nhận mà bạn có thể bảo vệ: một trang đã xuất bản được khôi phục và một luồng không liên quan không thay đổi.