Vẽ đường đi sau giải mã: nơi thiết bị VPN thực thi chính sách
Một sơ đồ dừng ở listener mã hóa không cho thấy chính sách quan trọng. Vẽ đường đi sau giải mã, rồi so sánh các vị trí theo những gì yêu cầu đi qua.
Sơ đồ của nhà cung cấp thường dừng ở listener mã hóa, vì đó là phần có địa chỉ công khai. Câu hỏi quyết định tư thế bảo mật là điều gì xảy ra sau khi giải mã, khi gói tin trở thành IP thông thường và có thể chạm tới mọi thứ mà bảng định tuyến cho phép. Nếu không ai vẽ đoạn đó, không ai chịu trách nhiệm về nó. Runbook dưới đây vẽ nó trước, rồi so sánh các vị trí theo những gì yêu cầu đã giải mã thực sự đi qua.
Vẽ gói tin sau khi giải mã, không phải trước đó
Đường bên ngoài là phần nhà cung cấp ghi lại: một điểm cuối công khai, một chính sách vận chuyển chấp nhận kết nối và một dịch vụ kết thúc nó. Đường bên trong bắt đầu ngay khi gói tin mất phần đầu tunnel, và từ đó nó được điều khiển bởi các quy tắc định tuyến và lọc không liên quan gì đến tunnel. Đặt cả hai trên cùng một trang, vì sơ đồ chỉ có phần đầu ngụ ý rằng chấp nhận và cấp quyền là một quyết định. Chúng không phải vậy, và khoảng trống giữa chúng chính là nơi hầu hết các vị trí sai.
Viết đoạn bên trong thành một chuỗi được đánh số với các loại thiết bị có tên, không phải một mũi tên. Mũi tên che giấu việc yêu cầu có đi qua bộ lọc hay không, và đi qua hay không chính là toàn bộ câu hỏi. Mỗi bước dưới đây nêu tên thiết bị và tập quy tắc hoạt động ở đó, nên một bộ lọc thiếu hiện ra như một khoảng trống thay vì được ngụ ý bằng một đường.
- Máy khách từ xa: thiết bị người dùng tạo ra tunnel.
- Chính sách biên: tập quy tắc chấp nhận vận chuyển bên ngoài tới listener công khai.
- Thiết bị kết thúc: điểm cuối VPN giải đóng gói và trao gói tin cho IP thông thường.
- Bộ lọc bên trong: tập quy tắc chuyển tiếp hoặc nhóm bảo mật giới hạn lưu lượng từ máy khách tới dịch vụ.
- Máy chủ ứng dụng: dịch vụ nhận yêu cầu đã giải mã.
Hai chính sách, hai chủ sở hữu
Chính sách bên ngoài trả lời ai được thiết lập tunnel, và nó được thể hiện trong các quy tắc chấp nhận vận chuyển tới dịch vụ kết thúc. Chính sách bên trong trả lời người dùng đã xác thực được tới dịch vụ nào, và nó sống trong quy tắc chuyển tiếp, nhóm bảo mật hoặc chính ứng dụng. Một thiết bị có thể chứa cả hai, và thiết kế nhiều thiết bị vẫn có cả hai. Chính việc gọi tên riêng chúng cho phép bạn nói cái nào đã hỏng khi người dùng không tới được ứng dụng.
Các kiểm soát chấp nhận như chứng chỉ và xác thực đa yếu tố trả lời về danh tính và không gì khác. Chúng không quyết định vị trí và không cấp quyền theo tài nguyên sau khi người dùng đã vào trong.
Vị trí quyết định ranh giới mà yêu cầu đi qua
Ba vị trí là phổ biến, và mỗi vị trí thay đổi ranh giới mà yêu cầu đã giải mã đi qua. So sánh chúng theo những gì kết thúc ở đó, cái gì có thể thấy văn bản rõ, kiểm soát nào vẫn có thể từ chối yêu cầu, và cái gì hỏng cùng thiết bị. Bảng dưới đây dùng bốn cột đó thay cho một câu hỏi chung, vì mỗi câu trả lời là một quyết định thiết kế riêng.
| Placement | What terminates there | What sees plaintext | Which control can still deny | Failure domain |
|---|---|---|---|---|
| Termination in a dedicated segment | A dedicated VPN endpoint | The endpoint and anything on its segment | The filter between that segment and the application | The segment path can bypass the filter if no rule sits on it |
| Termination on the edge firewall | The firewall's public listener | The firewall, after decapsulation | The firewall's inner rule set | Admission and inspection fail together |
| Termination on the protected LAN | The appliance's LAN leg | Every host on the protected LAN | Only a host control or a downstream gateway | The appliance and the protected hosts fail together |
Vị trí thứ ba là vị trí âm thầm gỡ bỏ việc thực thi, vì một đoạn trên phân đoạn được bảo vệ cho thiết bị một đường trực tiếp mà sơ đồ có thể không hiển thị. Hãy kiểm tra giao diện và tuyến đường thay vì hình vẽ: ip route get 10.20.5.10 báo cáo gói tin sẽ rời đi qua giao diện nào, và câu trả lời thường không phải là câu mà thiết kế đã giả định. Vai trò cổ điển của tường lửa trong việc kiểm soát lưu lượng giữa các thế trận, như được mô tả trongNIST SP 800-41, là một phép thử hữu ích ở đây, vì một thiết bị có đoạn không giới hạn tới mạng được bảo vệ thì kiểm soát không nhiều. Tra cứu tuyến đường là một sơ đồ trung thực hơn sơ đồ trong bài trình bày.
Quản trị thuộc về đường đi được cho phép rõ ràng của riêng nó. Cho phép người dùng tới một ứng dụng không bao giờ đòi hỏi cho phép họ tới giao diện điều khiển của thiết bị, và hai quyền đó nên được cấp bởi các quy tắc khác nhau. Kiểm tra cả hai đường đi riêng biệt, vì một quy tắc chia sẻ che giấu cái nào đã được mở.
Dịch địa chỉ thay đổi những gì các quy tắc phía sau có thể thấy
Dịch địa chỉ nguồn thì tiện lợi và nó phá hủy thông tin. Sau masquerade mọi máy khách đều trông như thiết bị, nên một quy tắc phía sau viết để phân biệt người dùng không còn làm được điều đó. Đây không chỉ là vấn đề ghi nhật ký, đây là vấn đề chính sách: một quy tắc khóa theo địa chỉ máy khách âm thầm trở thành quy tắc khóa theo cổng. Nếu chính sách theo từng người dùng quan trọng, hãy giữ nguồn hoặc thực thi chính sách trước khi dịch.
Đường phản hồi cũng đáng được xem xét như vậy. Ghi lại tuyến đường mà đích chọn cho gói tin trả về, vì phản hồi bất đối xứng đi vòng qua kiểm tra trạng thái và tạo ra kết nối được thiết lập rồi bị treo. Cả hai chiều đều phải đi qua ranh giới bạn đã vẽ, nếu không ranh giới chỉ là đồ trang trí.
sudo tcpdump -ni inside0 host 10.20.5.10
ip route get 10.20.5.10
sudo iptables -t nat -S POSTROUTINGChấp nhận một thao tác được phép và một thao tác bị từ chối
Kiểm thử từ máy khách từ xa thật chứ không phải từ máy chủ quản trị, vì máy chủ quản trị thường ở nơi người dùng sẽ không bao giờ tới. Một thao tác được phép chứng minh đường đi hoạt động, và một thao tác bị từ chối chứng minh chính sách đang làm gì đó. Chạy cả hai sau mỗi lần thay đổi vị trí, và ghi lại danh tính nguồn và đích bạn đã dùng. Một phép thử chỉ chứng minh thành công không thể phân biệt quy tắc đúng với quy tắc bị thiếu.
Sau đó kiểm thử các trường hợp thay đổi trạng thái: kết nối lại, một phiên sống lâu hơn vòng xoay khóa, và sự cố của chính thiết bị. So sánh cập nhật, dung lượng và phục hồi như một phần của cùng một bố cục, vì một thiết bị mang nhiều kiểm soát logic là một miền sự cố với nhiều nhãn. Hộp thứ hai cũng không độc lập khi thông tin đăng nhập quản trị dùng chung hoặc một tuyến đường không giới hạn đánh bại ranh giới mà nó đáng lẽ phải tạo ra.
Ghi lại điểm cuối, đường đi đã giải mã và kiểm soát giới hạn nó. Ba dòng đó vẫn có ý nghĩa dù việc triển khai được gọi là gì.