Một website đang chạy là bằng chứng nhà cung cấp phục vụ được HTTP, không phải bằng chứng bạn kiểm soát một cỗ máy. Giữa gói chia sẻ, ứng dụng được quản lý và máy chủ tự quản lý có một khoảng cách lớn về việc tài khoản được làm gì với mạng. Hãy quyết định thiết kế VPN của bạn cần phía nào của khoảng cách đó trước khi trả thêm một năm. Bốn năng lực phân tách hai trường hợp, và không năng lực nào xuất hiện trên bảng giá.

Mỗi gói thực sự cho bạn những gì

So sánh hữu ích không phải giá hay dung lượng đĩa mà là thẩm quyền. Hãy hỏi tài khoản khởi chạy được gì, chạm tới những tính năng hạt nhân nào, cổng nào nhận lưu lượng vào và lưu lượng được phép có thể lại đi ra nơi khác hay không.

Hầu hết sản phẩm lưu trữ rơi vào ba dạng, và chỉ dạng cuối là máy chủ đa dụng:

CapabilityWebsite planSelf-managed server
Long-running custom processUsually not permittedYours to run under a service manager
Virtual network interfaceAlmost never availablePresent when the kernel module and privilege allow it
Arbitrary inbound portRestricted to the web stackProvider filtering still applies
Forwarding for clientsNot offeredPossible once routing and policy are configured

Tài khoản shell là nguồn nhầm lẫn thường gặp. Truyền tệp hay truy cập tác vụ theo lịch có thể trông như quản trị trong khi tiến trình bị giới hạn trong một thư mục và vài thao tác được phép.

Bốn năng lực quyết định câu trả lời

Hãy xem theo thứ tự, vì thất bại ở bước đầu khiến phần còn lại vô nghĩa.

Thứ nhất, phần mềm phải chạy như một tiến trình lâu dài sống sót qua bảo trì. Thứ hai, phần triển khai phải tạo được giao diện ảo của riêng nó; trên Linux điều đó thường nghĩa là mở /dev/net/tun với quyền quản trị liên quan, như tài liệu của hạt nhân về TUN/TAP mô tả, dù không phải thiết kế VPN nào cũng dùng thiết bị đó. Thứ ba, máy khách phải chạm tới trình lắng nghe ở địa chỉ công khai, trên giao vận và cổng bạn dự định, và một proxy ngược web nhận HTTPS không nói gì về một giao thức không liên quan trên cùng số đó. Thứ tư, lưu lượng được phép phải đi tiếp được, với tuyến, chuyển tiếp và mọi phép dịch thực sự được hỗ trợ.

Các điều khoản dịch vụ nằm bên cạnh bốn điều đó và hoàn toàn không mang tính kỹ thuật. Hạn mức lưu lượng không giới hạn thường mô tả yêu cầu web, không phải một đường hầm chở lượt tải của người khác. Hãy đọc phần sử dụng được chấp nhận trước khi thiết kế quanh nó, và ghi nhớ quyền truy cập khôi phục cho ngày dịch vụ không khởi động.

Tài khoản website dừng lại ở đâu

Gói website thường chạy mã của bạn trong môi trường thực thi được quản lý với điểm vào cố định. Ngay cả khi có tệp nhị phân đường hầm, tiến trình có thể thiếu quyền mở nút thiết bị, ràng buộc một cổng đặc quyền hoặc sửa bảng định tuyến. Những hạn chế đó chính là sản phẩm, không phải sơ suất.

Vì thế một plugin hứa hẹn VPN thường hoá ra là proxy tới nơi khác. Nếu tài khoản hiện tại chỉ cung cấp điều khiển website, bước trung thực là một máy chủ riêng, không phải tìm mô-đun mở khoá thẩm quyền còn thiếu.

Khi một máy chủ phải chạy cả hai

Chia sẻ là khả thi và đôi khi hợp lý, nhưng hãy coi đó là quyết định bảo mật chứ không phải tiện lợi. Một ứng dụng web có biểu mẫu tải lên nằm cạnh thông tin đăng nhập đường hầm và một socket điều khiển, và một lỗ hổng ở bên này chạm tới bên kia. Tài khoản riêng, đơn vị dịch vụ riêng và hệ thống tệp riêng giảm phơi nhiễm đó mà không phải mua máy thứ hai.

Cạnh tranh tài nguyên cũng quan trọng không kém. Một bản sao lưu qua đường hầm và một tiến trình web bận rộn tranh nhau cùng một đường lên và cùng một đĩa, và sự cố trông như một trang chậm chứ không phải đường hầm bão hoà. Hãy quyết định tải nào thắng trước sự cố, và giới hạn đường hầm để website tiếp tục trả lời.

Không cách bố trí nào được cô lập chỉ vì cả hai dịch vụ đang chạy. Khả năng lưu trữ chúng cùng nhau là khởi đầu của thiết kế, và công việc cô lập là thứ khiến nó có thể bảo vệ được.

Hãy giải quyết trên một máy chủ thử nghiệm bằng bốn lệnh

Trước khi di chuyển, hãy thuê phiên bản nhỏ nhất của sản phẩm đích trong một giờ và kiểm tra trực tiếp bốn năng lực. Đoán từ bảng tính năng tiêu tốn ít tiền hơn một năm với gói sai, nhưng nhiều thời gian hơn nhiều.

Chạy những lệnh này trên máy chủ thử nghiệm và đọc thất bại như câu trả lời, không phải chướng ngại:

ls -l /dev/net/tun
sudo ip tuntap add dev tun9 mode tun && sudo ip link del tun9
sysctl net.ipv4.ip_forward
ss -lunp | head

Hai dòng đầu cho biết một thiết bị đường hầm có thể tồn tại hay không. Dòng thứ ba báo cáo máy chủ có được chuyển tiếp gói tin hay không, và dòng thứ tư cho thấy thứ gì đang lắng nghe để xung đột cổng bị bắt sớm. Nhà cung cấp thất bại ở dòng thứ hai vẫn có thể hỗ trợ triển khai trong không gian người dùng, nên khi hỏi bộ phận hỗ trợ của họ, hãy nêu tên cơ chế bạn cần chứ không phải hạng mục sản phẩm.

Bài viết liên quan