Chạy VPN và website trên cùng một máy chủ mà không xung đột
Một máy chủ có thể phục vụ trang web và kết thúc các peer VPN, nhưng chỉ khi có quyết định rõ ràng về trình lắng nghe, danh tính và quản trị. Sau đó hãy kiểm tra ranh giới.
Khi chia sẻ một máy chủ giữa trang web công khai và VPN, bạn thừa hưởng hai câu hỏi chứ không phải một: cái gì lắng nghe ở đâu, và ai xác thực ai. Hãy trả lời cả hai trước khi chạm vào tệp cấu hình, vì các giá trị mặc định sai theo những cách chỉ lộ ra dưới tải. Một trang tải qua HTTPS chứng minh trình lắng nghe web trả lời và không nói gì về trình lắng nghe của peer. Những gì tiếp theo là một thứ tự quyết định giúp hai bên không ăn thịt nhau.
Quyết định cái gì lắng nghe trên địa chỉ và giao vận nào
Viết một bảng ba cột, địa chỉ, giao vận và cổng, cùng một hàng cho mỗi dịch vụ, bao gồm giao diện quản trị. TCP 443 cho trang web và UDP 443 cho VPN không phải xung đột dù các số trùng nhau, vì giao vận khác nhau. Hai dịch vụ trên cùng địa chỉ, giao vận và cổng cần một thỏa thuận mà triển khai ghi lại, không phải một thỏa thuận bạn tự nghĩ ra trong lúc sự cố. Bảng đó cũng là hiện vật giúp thay đổi tiếp theo có thể soát xét.
Địa chỉ riêng hoặc cổng thứ hai làm chủ sở hữu hiển thị trong bản bắt gói, và điều đó đáng giá hơn vẻ thanh lịch. Một số triển khai VPN hỗ trợ chia sẻ cổng với máy chủ web, nhưng cơ chế rất cụ thể: daemon kiểm tra các byte đầu tiên và chuyển tiếp lưu lượng không phải giao thức của nó. Một proxy ngược HTTP thông thường không làm vậy, và việc viết lại header sẽ không giúp nó hiểu bắt tay của một đường hầm mã hóa. Hãy đọc ghi chú triển khai của giao thức, như tài liệu trình lắng nghe OpenVPN, và làm theo thỏa thuận mà tài liệu mô tả.
Quyết định danh tính nào thuộc dịch vụ nào
Chứng chỉ trình duyệt và thông tin xác thực của peer VPN là những đối tượng khác nhau với mô hình tin cậy khác nhau. Chứng chỉ web được cơ quan công cộng xác thực và nêu tên máy chủ, trong khi thông tin xác thực của peer xác thực một thiết bị hoặc người dùng với bộ tập trung và có thể tự ký hoặc được cấp nội bộ. Dùng cái này thay cái kia chỉ hiệu quả trong trường hợp hẹp và hiếm khi đáng giá sự gắn kết đó. Tắt xác minh để một chứng chỉ dùng chung khớp vào không phải là kế hoạch tách biệt; nó loại bỏ phép kiểm tra đã cho thông tin xác thực ý nghĩa.
Giữ hai kho độc lập và ghi lại cơ quan nào cấp mỗi thứ. Khi một cái được luân chuyển, cái kia không nên cần thay đổi, và nếu cần, sự gắn kết chính là thứ phải sửa.
Quyết định quản trị sống ở đâu
Giao diện quản trị của VPN thuộc về một đường quản lý, không bao giờ ở trình lắng nghe công khai, ngay cả khi máy chủ đã phục vụ internet. Một máy chủ web trên 443 không có nghĩa là bảng điều khiển của peer phải truy cập được từ mọi nơi, và bảng điều khiển thường là mục tiêu giá trị cao hơn. Hãy gắn nó với địa chỉ loopback hoặc quản lý, giới hạn theo nguồn, và giữ một đường khôi phục không phụ thuộc vào việc đường hầm có bật hay không. Đường khôi phục quan trọng vì lỗi phổ biến là tự khóa mình ra ngoài trong khi sửa ổ khóa.
Viết các quy tắc tường lửa hẹp, một quy tắc cho mỗi trình lắng nghe, nêu tên giao diện hoặc tài khoản dịch vụ ở nơi nền tảng hỗ trợ. Các quy tắc rộng mở máy chủ vì trang web cần 443 là cách các giao diện quản trị lọt vào chỉ mục của máy quét.
Soát lại các quy tắc đó với bảng trình lắng nghe mỗi khi thêm dịch vụ. Việc soát lại rẻ và nó bắt được quy tắc mà ai đó đã thêm lúc hai giờ sáng.
Quyết định làm gì khi hai bên tranh chấp
Chia sẻ một máy chủ nghĩa là chia sẻ CPU, bộ nhớ, bộ mô tả tệp và băng thông, và tài nguyên tranh chấp không phải lúc nào cũng là cái hiển nhiên. Một trang web bận có thể lấp đầy bảng kết nối, làm cạn chỗ của worker, hoặc đẩy hàng đợi đĩa đủ mạnh để việc ghi nhật ký VPN đình trệ. Hãy xem mức dùng theo từng dịch vụ thay vì tổng của máy chủ, vì số trung bình che mất tiến trình nào đang đói. Nếu một khối lượng công việc liên tục cản trở cái kia, hãy cô lập chúng thay vì tinh chỉnh quanh triệu chứng.
Cô lập có thể là một container, một giới hạn cgroup, một hàng đợi riêng hoặc một máy chủ thứ hai, và lựa chọn đúng phụ thuộc vào tài nguyên nào đang tranh chấp. Thay đổi cổng không sửa được gì ở đây, và một phiên bản lớn hơn cũng không sửa được gì nếu giới hạn là một hàng đợi đã bão hòa. Hãy quyết định bằng đo lường: nêu tên tài nguyên, tạo tải cho nó, rồi chọn cách cô lập nhỏ nhất loại bỏ tranh chấp.
Xác minh từ bên ngoài, rồi xác minh lại sau khi khởi động lại
Hãy thử từ một thiết bị không nằm trên mạng của chính máy chủ: tải trang, dựng đường hầm và chạm tới một tài nguyên cần đến nó. Sau đó khởi động lại từng dịch vụ riêng lẻ và lặp lại phép thử còn lại, vì khởi động lại là lúc một thỏa thuận trình lắng nghe dùng chung mất thứ tự. Nếu VPN khởi động trước máy chủ web sở hữu cổng dùng chung, cơ chế chia sẻ có thể không bao giờ gắn vào, và triệu chứng là một đường hầm hôm qua vẫn chạy. Hãy làm rõ sự phụ thuộc trong thứ tự unit.
Sau đó xác nhận ranh giới: trang trả lời trên cổng của nó, VPN trả lời trên cổng riêng, và giao diện quản trị chỉ trả lời từ đường quản lý. Ghi lại kết quả bên cạnh bảng trình lắng nghe kèm ngày. Một máy chủ vượt qua cả ba phép kiểm tra sau khi khởi động lại là máy chủ bạn có thể bàn giao cho người khác mà không cần thuyết trình.