Sổ tay vận hành: đưa hai khách hàng OpenVPN vào riêng biệt
Hai khách hàng trên một máy chủ OpenVPN cần trình lắng nghe, nhóm tunnel, tệp tin cậy và việc phân phối thu hồi riêng, cùng một bài kiểm tra chấp nhận giữ chúng tách biệt.
Hai khách hàng trên một máy chủ nghe như thêm một khối máy chủ và một cổng thứ hai. Nó trở thành một dự án khác ngay khi bạn liệt kê mọi thứ mà khách hàng thực sự sở hữu: một trình lắng nghe, một nhóm tunnel, một danh tính, các tệp tin cậy, tuyến đường và một lịch thu hồi. Bỏ sót một trong số đó và khách hàng thứ hai lặng lẽ thừa hưởng một phần của khách hàng thứ nhất. Tạo một thẻ cho mỗi khách hàng và điền vào trước khi máy khách đầu tiên kết nối.
Gán một thẻ tài nguyên đầy đủ cho mỗi khách hàng
Đặt trước toàn bộ cùng lúc: cổng công khai, mạng con tunnel, đường dẫn cấu hình, đích nhật ký, tên phiên bản dịch vụ và thiết bị. Đặt tên chúng như một nhóm chính là điều ngăn bản sao cổ điển của một tệp đang hoạt động vẫn chứa nhóm hoặc giao diện của khách hàng đầu tiên. Các giá trị là ví dụ, không phải cổng được đặt trước, vì vậy hãy kiểm tra những gì máy chủ đã dùng. Một dịch vụ khởi động không giống một khách hàng đã hoàn chỉnh.
Giữ thẻ bên cạnh cấu hình và cập nhật nó mỗi khi một giá trị thay đổi. Tài liệu xa rời thực tế còn tệ hơn không có.
Giữ vật liệu tin cậy bên trong mỗi khách hàng
Một cơ quan phát hành riêng cho mỗi khách hàng giúp ranh giới dễ suy luận và giữ khóa ký ngoài máy chủ hướng ra internet. Một gốc dùng chung cũng có thể hoạt động, nhưng một neo chung không biến hai dịch vụ thành một miền thành viên duy nhất. Quyết định chuỗi nào mỗi trình lắng nghe chấp nhận và danh tính máy khách nào nó cho phép, rồi ghi lại cả hai. Đừng gỡ chứng chỉ khỏi chuỗi bằng cách thử và sai cho đến khi có thứ gì đó kết nối.
Khóa riêng của chính máy chủ thuộc về một tệp được bảo vệ cho mỗi khách hàng, không phải thư mục mẫu được sao chép cùng cấu hình.
Tách mạng cũng như tách tiến trình
Hai tiến trình trên hai cổng vẫn chia sẻ một máy chủ và một bảng định tuyến trừ khi bạn tách chúng. Xác nhận những gì đang lắng nghe trước khi tin vào thiết kế.
ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pemKiểm tra trình lắng nghe cho biết tiến trình nào sở hữu mỗi cổng công khai, và xác minh cho biết chứng chỉ máy khách có chuỗi tới neo dự định hay không. Không đầu ra nào chứng minh rằng máy khách của A không thể tới mạng con của B, vì vậy hãy xác định chính sách nguồn và đích, các tuyến trả về và mọi dịch vụ được chia sẻ có chủ ý. Không gian tên mạng hoặc vùng chứa tách ngữ cảnh định tuyến và giảm trộn lẫn ngoài ý muốn, nhưng chúng không phải là ranh giới người thuê hoàn chỉnh tự thân. Chọn cơ chế cách ly mạnh hơn khi mô hình mối đe dọa yêu cầu.
Phân phối thu hồi trước khi bàn giao
Triển khai chứng chỉ chưa hoàn tất cho đến khi thu hồi có đường phân phối. Kiểm tra nhà phát hành và cửa sổ hiệu lực của CRL như một phần của việc đưa vào vận hành.
openssl crl -in customer-a/crl.pem -noout -lastupdate -nextupdate
systemctl status openvpn@customer-aKiểm tra CRL báo cáo khi danh sách được phát hành và khi hết hạn, còn trạng thái dịch vụ xác nhận phiên bản đọc nó đang chạy. Làm mới danh sách theo lịch của chính sách phát hành ngay cả khi không có gì mới bị thu hồi, vì CRL hết hạn có thể từ chối mọi máy khách. Công bố một tệp hoàn chỉnh thay vì để người đọc gặp phải ghi một phần, và xác thực chữ ký trước khi triển khai. Ghi lại ai sở hữu việc phát hành, vận hành điểm cuối và ngừng sử dụng, để việc tắt khách hàng A không ảnh hưởng B.
Sau đó chạy cặp chấp nhận: một máy khách được phép tới dịch vụ của chính nó, và thông tin đăng nhập của A bị trình lắng nghe của B từ chối. Đó là ranh giới được diễn đạt như một bài kiểm tra.