Một nhà thầu cần một ứng dụng web nội bộ và không gì khác, và câu trả lời dễ dàng là cấp cho họ một đường hầm vào mạng con của máy chủ. Cách đó hiệu quả cho đến ngày họ quét nó. Thiết kế hẹp hơn đòi hỏi nhiều suy nghĩ hơn, vì khả năng tiếp cận, định tuyến và quyền của ứng dụng là ba kiểm soát riêng biệt phải khớp nhau.

Viết yêu cầu như một dịch vụ, không phải một mạng con

Bắt đầu với máy đích, giao thức và cổng, rồi thêm nhóm người dùng hoặc thiết bị cần đến nó. Chỉ bao gồm vùng DNS riêng nếu ứng dụng phân giải tên, và chỉ bao gồm nhà cung cấp danh tính nếu luồng đăng nhập cần đến nó. Mọi thứ khác là phụ thuộc mà bạn chưa biện minh.

Mạng con là chi tiết triển khai của nhóm mạng, còn dịch vụ là thứ doanh nghiệp yêu cầu và là đơn vị có thể được xem xét và ngừng sử dụng.

Nếu danh sách phụ thuộc vượt quá ba mục, ứng dụng có lẽ cần cuộc trao đổi thiết kế riêng.

Định tuyến hẹp, nhưng thực thi ở nơi khác

Một tuyến hoặc bộ chọn hẹp cho đường hầm biết mang gói nào; đó không phải chính sách ủy quyền. Bộ lọc cổng, tường lửa của máy đích và mô hình quyền của chính ứng dụng là nơi quyết định quyền truy cập. Một tuyến chỉ phủ một địa chỉ là khởi đầu tốt, và nó không phải kiểm soát chặn được người dùng quyết tâm. Chính sự tách biệt đó cho phép bạn đổi bộ lọc mà không thiết kế lại đường hầm.

Ngược lại, một tuyến rộng với bộ lọc chặt có thể hợp lý, nhưng chỉ khi mọi người liên quan biết cái nào đang thực thi.

Ghi lại rõ ràng điểm thực thi, nếu không thay đổi tiếp theo sẽ vô tình di chuyển nó.

Kiểm tra nguồn mà dịch vụ thực sự thấy

Đích thấy địa chỉ nhóm của máy khách hoặc địa chỉ của cổng, tùy việc bạn có dịch địa chỉ hay không. Quy tắc tường lửa và nhật ký của máy phải khớp với nguồn thật. Nếu nhiều người dùng chia sẻ một nguồn đã dịch, không quy tắc theo từng người dùng nào trên máy đó phân biệt được họ, và đây là ràng buộc thiết kế, không phải lỗi.

Chọn dịch địa chỉ một cách có chủ đích: nó đơn giản hóa định tuyến và phá hủy danh tính nguồn, điều quan trọng cho kiểm toán và cho quy tắc theo từng người dùng.

Ghi lại bạn đã chọn cái nào trong hai, bên cạnh quy tắc phụ thuộc vào nó.

Ủy quyền ứng dụng không phải tùy chọn

Đến được một cổng không cấp vai trò. Ứng dụng vẫn cần đăng nhập và quyền riêng, vì lớp mạng không thể diễn đạt người dùng được sửa bản ghi nào. Một dịch vụ tin mọi yêu cầu từ mạng con nội bộ biến đường hầm hẹp thành toàn quyền truy cập cho một thông tin đăng nhập bị xâm phạm. Đường hầm quyết định ai được mở socket, và ứng dụng quyết định được làm gì với nó.

Đây là nơi thiết kế hẹp trả công hai lần, vì ít máy tiếp cận được nghĩa là ít chỗ để lợi dụng sai sót ở tầng ứng dụng.

Giữ quy tắc mạng và vai trò ứng dụng trong các hệ thống riêng, và ngừng sử dụng chúng riêng rẽ.

Chứng minh cả đường được phép và đường bị từ chối

Kết nối với tư cách người dùng được ủy quyền và thực hiện một thao tác đại diện vô hại, sau đó thử một đích lẽ ra không thể đến được. Một thiết kế chỉ kiểm tra nửa đầu là chưa được kiểm tra, và chính phép thử từ chối chứng minh thiết kế. Kiểm tra phiên mới sau mỗi lần đổi quy tắc, và xem đường quay về nếu yêu cầu đến mà phản hồi không.

Đừng tắt bộ lọc chuyển tiếp để bài kiểm tra chấp nhận đạt, vì điều đó thay đổi thứ đang được kiểm tra.

Khi người dùng không còn cần dịch vụ, hãy ngừng danh tính từ xa và vai trò ứng dụng trong hệ thống tương ứng của chúng, và ghi lại cả hai. Hướng dẫn chuyển tiếp của strongSwan bao gồm phía cổng của đường đi.

Bài viết liên quan