Bộ lọc hải đăng của Nebula so với tường lửa: mỗi bên chặn gì
Danh sách cho phép của hải đăng chọn điểm cuối lớp dưới nào mà một đối tác công bố hoặc thử. Các quy tắc tường lửa điều hành lưu lượng trong lớp phủ sau cú bắt tay.
Nhìn một cú bắt tay của Nebula từ phía sai và hai cơ chế trông như có thể thay thế cho nhau. Một bên quyết định nút báo cho hải đăng những địa chỉ nào và sẽ thử những địa chỉ từ xa nào; bên kia quyết định điều gì được đi qua khi đường hầm đã tồn tại. Một bộ lọc có thể chặn kết nối trước khi bất kỳ quy tắc tường lửa nào được đánh giá, và một quy tắc tường lửa không thể làm sống lại điểm cuối mà việc khám phá đã gỡ bỏ. Hai lớp trả lời những câu hỏi khác nhau, và thứ tự chúng hành động chính là chìa khóa.
Theo dõi một kết nối qua bốn giai đoạn: địa chỉ cục bộ được công bố, điểm cuối từ xa được xem xét, cú bắt tay và lưu lượng trong lớp phủ. Mỗi giai đoạn có cấu hình riêng và dấu hiệu hỏng riêng.
Bắt đầu từ địa chỉ cục bộ mà nút công bố
local_allow_list lọc các địa chỉ cục bộ của máy chủ này trước khi chúng được báo cho các hải đăng. Các mục có thể là dải địa chỉ, và cấu hình cũng hỗ trợ mẫu tên giao diện. Điều đó hữu ích khi máy chủ có cầu nối container hoặc giao diện đường hầm bổ sung không nên trở thành điểm cuối của đối tác.
Đi qua các giao diện của máy chủ và hỏi đối tác từ xa thực sự đến được những cái nào. Địa chỉ cầu Docker là cục bộ cho máy chủ đó và vô dụng cho một đối tác ở mạng khác. Công bố nó lãng phí việc khám phá và có thể đưa một đối tác tới địa chỉ không bao giờ trả lời. Bất cứ thứ gì đối tác không thể định tuyến tới đều là nhiễu trong phản hồi của hải đăng.
Danh sách cho phép hẹp an toàn hơn danh sách chặn rộng ở đây. Nếu chỉ có các mục cho phép, phần còn lại không được chỉ định sẽ bị loại trừ; thêm một mục chặn sau đó sẽ thay đổi logic mặc định và cần một lần xem xét riêng. Thay đổi đó đáng để xem lại giá trị mặc định.
Sau đó quan sát việc chọn điểm cuối từ xa
remote_allow_list lọc các địa chỉ mà máy chủ này sẽ xem xét cho một đối tác từ xa trong cú bắt tay. Nó áp dụng cho địa chỉ lớp dưới, không phải địa chỉ lớp phủ mà đối tác sẽ dùng sau khi đường hầm được dựng lên.
Một dải riêng có thể hoàn toàn dùng được trong mạng văn phòng chia sẻ và vô nghĩa khi hai máy chủ nằm trong các mạng không liên quan mà cả hai đều dùng 10.0.0.0/8. Bộ lọc cho phép bạn ưu tiên đường đi có thể định tuyến và bỏ qua sự trùng hợp.
Khi một đối tác không kết nối được, hãy so sánh địa chỉ đang được thử với quy tắc khớp với nó. Bật nhật ký bắt tay và đọc địa chỉ từ xa đã chọn; dòng nhật ký nêu tên điểm cuối đã sống sót qua bộ lọc, điều này hữu ích hơn danh sách địa chỉ mà đối tác sở hữu.
Bộ lọc tên giao diện ở phía công bố có thể gỡ điểm cuối trước khi phía nhận nhìn thấy nó. Kiểm tra cả hai nút khi chỉ một hướng hỏng.
Sau cú bắt tay, các quy tắc truy cập của lớp phủ được áp dụng
Các quy tắc tường lửa của Nebula hoạt động bên trong lớp phủ, sau khi đường hầm được thiết lập. Chúng khớp máy chủ, nhóm, cổng và giao thức, và quyết định một gói có được vào hoặc ra khỏi máy chủ cục bộ hay không. Chúng không chọn điểm cuối ở lớp dưới.
Sự tách biệt này giải thích một chẩn đoán sai phổ biến. Một người vận hành thêm quy tắc tường lửa cho một cổng và vẫn không kết nối được, vì bộ lọc hải đăng đã gỡ điểm cuối duy nhất có thể đến được. Một người khác mở bộ lọc địa chỉ và vẫn không đến được dịch vụ, vì tường lửa của lớp phủ từ chối cổng đó.
Hãy đọc lỗi ở đúng lớp. Một cú bắt tay không bao giờ hoàn tất chỉ vào việc khám phá, lọc điểm cuối hoặc đường mạng. Một cú bắt tay hoàn tất nhưng sau đó kết nối dịch vụ bị từ chối hoặc bị bỏ chỉ vào tường lửa của lớp phủ hoặc ứng dụng.
Hãy đọc giá trị mặc định khi trộn cho phép và chặn
Cấu hình hải đăng hỗ trợ danh sách chỉ-cho-phép, chỉ-chặn và hỗn hợp, và giá trị mặc định cho phần còn lại không được chỉ định khác nhau giữa các dạng đó. Một danh sách hỗn hợp cần một mặc định rõ ràng cho họ địa chỉ; giả định rằng phần còn lại hành xử như cấu hình trước đó là cách một điểm cuối đang hoạt động lặng lẽ biến mất.
lighthouse:
local_allow_list:
interfaces:
docker0: false
remote_allow_list:
192.168.0.0/16: true
default: false
Coi giá trị mặc định là một phần của quy tắc, không phải văn bản mẫu. Nếu mặc định của họ là chặn, mọi địa chỉ không được liệt kê đều bị loại trừ, kể cả dải văn phòng mới được thêm sau khi cấu hình được viết.
Ghi lại những địa chỉ nào được dự định đến được và kiểm tra từ cả hai phía. Một bộ lọc hoạt động cho một cặp đối tác có thể hỏng với một cặp khác mà đường chung duy nhất dùng một địa chỉ bị danh sách loại trừ.
Dùng relay khi không có điểm cuối trực tiếp nào đến được
Nếu mọi điểm cuối ứng viên đều bị lọc hoặc không đến được, câu trả lời không phải là một danh sách cho phép rộng hơn nhận lại những địa chỉ bạn không tin. Cấu hình relay của Nebula cung cấp một đường đối tác thay thế khi kết nối trực tiếp không khả thi.
Relay giải quyết vận chuyển và khám phá, không phải ủy quyền, và nó không mở rộng tường lửa. Tường lửa của lớp phủ vẫn quyết định dịch vụ nào được dùng, và relay không biến việc lọc của hải đăng thành cơ chế kiểm soát truy cập.
Kiểm tra đường relay với các điểm cuối trực tiếp bị tắt và xác nhận dịch vụ dự định vẫn hoạt động trong khi dịch vụ không dự định thì không. Một phép thử đó tách việc sửa vận chuyển khỏi thay đổi chính sách và giữ hai lớp trung thực.