Hãy bắt đầu từ ma trận, không phải từ cú pháp tường lửa. Một bảng có vai trò ở một bên và dịch vụ ở bên kia có thể được chủ sở hữu ứng dụng rà soát, chủ sở hữu bảo mật tranh luận và người giữ cổng vào triển khai. Việc rà soát đó rẻ hơn việc gỡ lỗi những quy tắc mà không ai đồng ý.

Một giờ viết nó tiết kiệm một tuần khảo cổ quy tắc về sau. Thiết kế nói về việc ai đến được dịch vụ nào, và đó là phần tồn tại sau khi đánh số lại.

Bước 1: đặt tên vai trò trước khi nói đến mạng

Hãy bắt đầu từ con người, không phải từ switch. Ghi lại từng nhóm kết nối từ xa và câu duy nhất mô tả nhóm đó làm gì, chẳng hạn nhân viên kho đọc mức tồn kho hoặc một nhà thầu bảo trì một tích hợp. Nếu hai nhóm nhận cùng quyền truy cập, với mục đích này chúng là một vai trò.

Dừng lại ở đây nếu một vai trò chỉ tồn tại vì sơ đồ tổ chức. Một vai trò không có nhu cầu dịch vụ riêng sẽ thành một hàng ô giống nhau, và những hàng giống nhau mời gọi ai đó sau này cấp cả một mạng con cho tiện. Hãy chia theo việc người ta làm, không theo ai ký duyệt chi phí của họ. Sáu vai trò thường là quá nhiều với một văn phòng nhỏ và ba thường là đúng.

Bước 2: biến mỗi ô thành một phát biểu dịch vụ

Một ô ghi «Ứng dụng» thì không kiểm chứng được. Một ô ghi «HTTPS đến máy chủ ERP ở cổng 443, từ nhóm nhân viên» thì kiểm chứng được. Hãy thay mọi tên mạng bằng đích đến, giao thức và cổng, rồi thêm phụ thuộc mà dịch vụ không thể chạy nếu thiếu, chẳng hạn bộ phân giải nội bộ hoặc nhà cung cấp danh tính.

CheckPasses whenStop if
Destination namedHost and port appear in the cellCell names a VLAN or a subnet
Direction statedInitiator and responder are both clearCell implies two-way access
Dependency listedDNS or identity path is explicitWhole infrastructure range is granted
Negative case writtenAt least one denied pair is recordedOnly allow rules exist

Cột hướng bắt được những lỗi đắt nhất. Quyền cho nhân viên mở một ứng dụng không có nghĩa là quyền cho máy chủ ứng dụng mở kết nối ngược về laptop của nhân viên, và một quy tắc có trạng thái cho phép hướng thứ nhất thường bị đọc như thể cho phép hướng thứ hai.

Bước 3: quyết định nơi danh tính trở thành chính sách

Ai đó phải biến một phiên đã xác thực thành vai trò mà cổng vào có thể thi hành. Các lựa chọn được hỗ trợ gồm chính sách nhóm do backend xác thực cung cấp, thuộc tính phiên đáng tin cậy, hoặc các nhóm địa chỉ riêng theo vai trò. Cả ba đều hoạt động; nhãn do máy khách gửi thì không. Hãy chọn cơ chế mà cổng vào của bạn ghi trong tài liệu, không phải cơ chế một bài đăng diễn đàn mô tả.

Gán một địa chỉ chỉ trông như thuộc về một VLAN là cùng một câu trả lời rỗng trong bộ trang phục khác. Hướng dẫn của Netgate về quy tắc tường lửa OpenVPN làm rõ sự tách biệt: cho phép đường hầm đi lên là một quyết định khác với cho phép lưu lượng đi qua nó.

Ghi lại cơ chế bạn đã chọn và nơi nó được cấu hình. Khi một vai trò thay đổi, ghi chú đó là khác biệt giữa một lần chỉnh sửa và một cuộc tìm kiếm qua ba giao diện. Nó cũng cho kiểm toán viên biết nên nhìn vào đâu trước.

Bước 4: để ý địa chỉ nguồn mà đích đến nhìn thấy

Chính sách chuyển tiếp phải khớp với nguồn thực ở biên. Nếu cổng vào dịch máy khách VPN sang địa chỉ của chính nó, mọi tường lửa phía dưới chỉ thấy một nguồn và mất khả năng quyết định theo vai trò. Nếu nó giữ địa chỉ máy khách, đường quay về phải tồn tại cho nhóm địa chỉ đó.

Hãy thử cả hai hướng trước khi viết các quy tắc cuối cùng, rồi ghi nguồn quan sát được bên cạnh từng ô. Chạy cùng phép kiểm tra từ hai vai trò khác nhau và so sánh kết quả. Nếu cả hai đều hiện địa chỉ của cổng vào thì sự phân biệt vai trò đã mất. Một ma trận giả định địa chỉ được giữ nguyên trong khi cổng vào thực hiện dịch nguồn sẽ thất bại ở ACL phía dưới đầu tiên.

Bước 5: thử từng ô trước khi phát hành

Biến mỗi ô được phép thành một thao tác đại diện và mỗi ô bị từ chối thành một trường hợp phủ định. Chạy cả hai từ một máy khách trong vai trò thực, không phải từ bảng điều khiển của cổng vào, vì bảng điều khiển bỏ qua đường đi mà bạn đang thử.

# allowed: staff role reaches the ERP endpoint
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://erp.internal.example/health

# denied: the same role must not reach a management host
nc -vz -w 3 10.30.5.11 22

# observed source address at the destination
sudo tcpdump -ni any 'tcp port 443 and host 10.30.20.15'

Một trường hợp phủ định mà kết nối được là một phát hiện, không phải sự cố ngẫu nhiên, và chỗ của nó trong ma trận là ô thất bại cho đến khi quy tắc được sửa. Giữ các lệnh kiểm tra bên cạnh bảng để người rà soát sau chạy lại chúng thay vì dựng lại lập luận.

Bảng hoàn chỉnh sống lâu hơn cổng vào mà nó được viết cho. Quy tắc thay đổi theo firmware và nhà cung cấp, trong khi hàng nói rằng một nhà thầu đến được một dịch vụ dự án vẫn đúng cho đến khi công việc đó thay đổi.

Bài viết liên quan