Tôi không phải là một chuyên gia bảo mật Tôi nghiêm khắc về bảo mật. Câu hỏi của bạn chính xác đạt đến cốt lõi của bảo mật CNTT: niềm tin. Như tôi thấy, người ta không bao giờ nên cho rằng Bob có thể tin tưởng được. Chắc chắn, Bob có thể là một chàng trai thực sự tốt và đáng tin cậy. Anh ấy làm việc tại công ty của bạn hơn 20 năm. Tuy nhiên, người "Bob" hoàn toàn không liên quan đến cơ sở hạ tầng CNTT của bạn.
Bob sử dụng 'rơle' tùy ý cho phép truy cập. Rơle có thể là bất cứ thứ gì: mật khẩu, chứng chỉ, mã thông báo phần cứng, quét mống mắt, DNA. Chúng là các khóa cho phép truy cập vào hệ thống của bạn. Nếu câu hỏi của bạn là về việc xác minh danh tính của người đang sử dụng chìa khóa, câu trả lời trung thực duy nhất có lẽ là bạn sẽ phải ở trong cùng một phòng. Trong tất cả các trường hợp khác, tôi nghĩ rằng bạn không được đảm bảo với bản thân mình rằng Bob thực sự là Bob và hiện tại không bị giữ tại điểm súng trong khi có được quyền truy cập của anh ta. Vì vậy, trong kế hoạch thiết kế cơ sở hạ tầng CNTT của bạn, điều hợp lý là không đề cập đến "Bob": một thực thể có được quyền truy cập vào trang web của bạn.
Bởi vì bạn chỉ có thể thực sự biết rằng 'một thực thể' đã có được quyền truy cập bằng một khóa mà bạn đã bỏ qua trong quá khứ, quan điểm đúng đắn có lẽ là để giới hạn số lượng cửa mà khóa có thể mở. Càng nhiều chìa khóa bạn đi ra càng ít cửa họ mở.
OpenVPN cũng có một tùy chọn chỉ cho phép một kết nối đồng thời trên mỗi khóa. Sau đó, nếu Alice đăng nhập bằng khóa của Bob trong khi Bob đã ở trong, Alice sẽ bị từ chối truy cập. Thật không may, điều này cũng có nghĩa là Bob không thể đăng nhập khi Alice đăng nhập bằng khóa của Bob. Vì vậy, bạn nên định cấu hình hệ thống của mình để thông báo cho bạn về các lần thử đăng nhập đồng thời từ nhiều IP nguồn. Và khởi động cả hai khi một số vi phạm xảy ra để Bob sẽ phải quay số để được giúp đỡ.
Vấn đề là: đừng tự đảm bảo về những điều bạn không thể chắc chắn và ghi nhớ điều này khi thiết kế kế hoạch bảo mật của bạn. Giả sử luôn có một người thông minh hơn ngoài kia, đi trước bạn, người không thể chờ đợi để chứng minh bạn sai ... chỉ là 'vì sự thất thường'. :-)
auth-user-pass-verify /etc/openvpn/scripts/connect.sh via-env
để có được tên người dùng của người dùng. Bạn có biết nếu tôi cũng có thể lấy ID từ chứng chỉ mà người dùng đang sử dụng không? Nếu vậy, thì tôi có thể viết một tập lệnh Perl để kiểm tra tệp yaml với ID chứng chỉ đã biết.