TLS bảo vệ một kênh giữa hai đầu và không nói gì về việc những dịch vụ nào nằm bên trong. Lớp bọc biến kênh đó thành một bộ chuyển tiếp đã cấu hình, cho một trình lắng nghe, đến một đích. Một sản phẩm bán với tên SSL VPN thường thêm một giao diện, một bảng định tuyến và một mô hình truy cập quanh cùng nguyên thủy đó. Nhầm lẫn hai thứ này là cách một đường hầm đang hoạt động bị coi là quyền truy cập mạng.

Lớp bọc dịch vụ thực sự nối những gì

Lớp bọc lắng nghe trên một cổng cục bộ và chuyển tiếp những gì đến tới một đích đã cấu hình, có thể là một máy chủ và cổng hoặc một chương trình cục bộ. Đích đó do người viết tệp cấu hình chọn, mỗi lần một trình lắng nghe. Việc cài đặt gói không tạo ra tuyến, giao diện ảo hay khả năng tiếp cận cho bất cứ thứ gì không được liệt kê rõ ràng. Hãy đọc cấu hình trước phần mô tả gói, vì phần mô tả bao quát một lớp sử dụng còn tệp bao quát trường hợp của bạn.

Vì vậy câu hỏi hữu ích về lớp bọc không phải là nó có mã hóa hay không, mà là thứ gì đứng ở mỗi đầu của chuỗi nó xây dựng.

application -> local listener -> TLS connection -> remote listener -> configured backend

Hãy đọc chuỗi đó từ cấu hình chứ không phải từ tên tiếp thị. Mỗi mũi tên là một bước nhảy mạng riêng với địa chỉ riêng và các quy tắc truy cập riêng.

Tìm nơi kênh TLS kết thúc

Nếu lớp bọc kết thúc TLS, mọi thứ nó chuyển tiếp tiếp theo là một kết nối mới với các thuộc tính mới. Luồng có thể là văn bản thuần trên một phân đoạn riêng, hoặc có thể mang bên trong một giao thức được bảo vệ khác. Giả định một trong hai mà không đọc cấu hình backend là cách người ta đi đến kết luận rằng lớp ngoài bảo vệ dữ liệu mà nó không bao giờ nhìn thấy nữa. Bước nhảy được chuyển tiếp xứng đáng có kiểm tra riêng, trên địa chỉ và cổng riêng của nó.

Hãy kiểm tra trình lắng nghe và backend riêng rẽ, vì một cái bắt tay thành công ở cửa trước không nói gì về dịch vụ phía sau.

ss -ltnp | grep -F 443
openssl s_client -connect svc.example.net:443 -servername svc.example.net </dev/null | openssl x509 -noout -subject -dates

Lệnh đầu tiên cho thấy tiến trình nào sở hữu cổng và nó lắng nghe trên địa chỉ nào. Lệnh thứ hai in ra chứng chỉ mà máy khách thực sự nhận được, và đó là bước kiểm tra danh tính mà một số cổng không thể thay thế.

Một VPN định tuyến thêm gì mà lớp bọc không làm

Một VPN định tuyến cài đặt một giao diện, nhận quyền sở hữu các tiền tố được chọn và tích hợp với định tuyến và chính sách truy cập của máy chủ. Mọi ứng dụng trên máy đều được lợi mà không cần biết đường hầm tồn tại. Lớp bọc trao phạm vi đó cho một trình lắng nghe đã cấu hình và dừng ở đó.

Việc chấp nhận lại là một vấn đề riêng. Một VPN xác thực máy khách vẫn cần sự cho phép nói rõ máy khách được truy cập tài nguyên nào, và một lớp bọc xác thực đối tác vẫn cần một backend thực thi các quyền của chính nó.

Có một sự kết hợp hợp lệ: một giao thức VPN được mang bên trong lớp bọc TLS trên một cách bố trí TCP được hỗ trợ có chủ đích. Điều đó xếp chồng hai lớp, và nó không làm cho lớp bọc và VPN thành cùng một loại đối tượng.

So sánh ranh giới đang hỏng

Hãy ghi lại địa chỉ phía trước, trình lắng nghe, danh tính đối tác, mục tiêu backend và thao tác ứng dụng trước khi thay đổi bất cứ điều gì. Sau đó so sánh cái có thể so sánh: thành công qua một tên máy chủ hoặc cổng khác không chứng minh rằng các điều kiện tường lửa và chứng chỉ là giống nhau.

Một yêu cầu backend bị từ chối không bao giờ nên được sửa bằng cách tắt xác minh danh tính phía trước. Điều đó đổi một lỗi ủy quyền có thể chẩn đoán thành một lỗi tin cậy không thể chẩn đoán.

curl -sv --resolve svc.example.net:443:203.0.113.10 https://svc.example.net/health 2>&1 | head -30

Ghim tên vào một địa chỉ đã chọn tách phân giải tên khỏi khả năng tiếp cận, và đó thường là cách nhanh nhất để biết cái nào trong hai bị hỏng.

Phép so sánh quan trọng nêu tên cặp đầu cuối được bảo vệ, tải trọng được mang, các ứng dụng sử dụng nó và quyền được thực thi tại đích. TLS đóng góp vào mô tả đó mà không hoàn thiện nó.

Bài viết liên quan