Xác thực hai yếu tố trong OpenVPN với bot Telegram

Bài viết mô tả việc thiết lập máy chủ OpenVPN để kích hoạt xác thực hai yếu tố với bot Telegram sẽ gửi yêu cầu xác nhận khi kết nối.

OpenVPN là một máy chủ VPN mã nguồn mở, miễn phí, nổi tiếng, được sử dụng rộng rãi để tổ chức quyền truy cập an toàn của nhân viên vào các tài nguyên nội bộ của tổ chức.

Khi xác thực để kết nối với máy chủ VPN, sự kết hợp giữa khóa và thông tin đăng nhập/mật khẩu của người dùng thường được sử dụng. Đồng thời, mật khẩu được lưu trữ trên máy khách biến toàn bộ tập hợp thành một yếu tố duy nhất không cung cấp mức độ bảo mật phù hợp. Kẻ tấn công, sau khi giành được quyền truy cập vào máy khách, cũng có quyền truy cập vào máy chủ VPN. Điều này đặc biệt đúng đối với các kết nối từ máy chạy Windows.

Sử dụng yếu tố thứ hai giúp giảm 99% nguy cơ truy cập trái phép và hoàn toàn không làm phức tạp quá trình kết nối cho người dùng.

Hãy để tôi đặt chỗ ngay: để triển khai, bạn sẽ cần kết nối máy chủ xác thực của bên thứ ba multifactor.ru, trong đó bạn có thể sử dụng biểu giá miễn phí cho nhu cầu của mình.

Nguyên tắc hoạt động

  1. OpenVPN sử dụng plugin openvpn-plugin-auth-pam để xác thực
  2. Plugin kiểm tra mật khẩu người dùng trên máy chủ và yêu cầu yếu tố thứ hai thông qua giao thức RADIUS trong dịch vụ Multifactor
  3. Multifactor gửi tin nhắn cho người dùng qua bot Telegram xác nhận quyền truy cập
  4. Người dùng xác nhận yêu cầu truy cập trong trò chuyện Telegram và kết nối với VPN

Cài đặt máy chủ OpenVPN

Có rất nhiều bài viết trên Internet mô tả quá trình cài đặt và cấu hình OpenVPN, vì vậy chúng tôi sẽ không sao chép chúng. Nếu bạn cần trợ giúp, có một số liên kết đến các hướng dẫn ở cuối bài viết.

Thiết lập đa yếu tố

Đi đến Hệ thống điều khiển đa yếu tố, hãy chuyển đến phần "Tài nguyên" và tạo VPN mới.
Sau khi tạo, bạn sẽ có hai lựa chọn: Mã định danh NAS и Đã chia sẻ bí mật, chúng sẽ được yêu cầu cho cấu hình tiếp theo.

Xác thực hai yếu tố trong OpenVPN với bot Telegram

Trong phần "Nhóm", đi tới cài đặt nhóm "Tất cả người dùng" và xóa cờ "Tất cả tài nguyên" để chỉ người dùng của một nhóm nhất định mới có thể kết nối với máy chủ VPN.

Tạo nhóm mới "Người dùng VPN", tắt tất cả các phương thức xác thực ngoại trừ Telegram và cho biết rằng người dùng có quyền truy cập vào tài nguyên VPN đã tạo.

Xác thực hai yếu tố trong OpenVPN với bot Telegram

Trong phần "Người dùng", hãy tạo những người dùng sẽ có quyền truy cập vào VPN, thêm họ vào nhóm "Người dùng VPN" và gửi cho họ liên kết để định cấu hình yếu tố xác thực thứ hai. Thông tin đăng nhập của người dùng phải khớp với thông tin đăng nhập trên máy chủ VPN.

Xác thực hai yếu tố trong OpenVPN với bot Telegram

Thiết lập máy chủ OpenVPN

Mở tập tin /etc/openvpn/server.conf và thêm plugin để xác thực bằng mô-đun PAM

plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

Plugin có thể được đặt trong thư mục /usr/lib/openvpn/plugin/ hoặc /usr/lib64/openvpn/plugin/ tùy thuộc vào hệ thống của bạn.

Tiếp theo bạn cần cài đặt module pam_radius_auth

$ sudo yum install pam_radius

Mở file để chỉnh sửa /etc/pam_radius.conf và chỉ định địa chỉ máy chủ RADIUS của Multifactor

radius.multifactor.ru   shared_secret   40

Trong đó:

  • bán kính.multifactor.ru - địa chỉ máy chủ
  • Shared_secret - sao chép từ tham số cài đặt VPN tương ứng
  • 40 giây - hết thời gian chờ yêu cầu có biên độ lớn

Các server còn lại phải xóa hoặc cho ý kiến ​​(đặt dấu chấm phẩy ở đầu)

Tiếp theo, tạo một tệp cho openvpn loại dịch vụ

$ sudo vi /etc/pam.d/openvpn

và viết nó vào

auth    required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth    substack     password-auth
account substack     password-auth

Dòng đầu tiên kết nối mô-đun PAM pam_radius_auth với các tham số:

  • Skip_passwd - vô hiệu hóa việc truyền mật khẩu của người dùng đến máy chủ RADIUS Multifactor (anh ta không cần biết điều đó).
  • client_id - thay thế [NAS-Identifier] bằng tham số tương ứng từ cài đặt tài nguyên VPN.
    Tất cả các tham số có thể được mô tả trong tài liệu cho mô-đun.

Dòng thứ hai và thứ ba bao gồm xác minh hệ thống về thông tin đăng nhập, mật khẩu và quyền người dùng trên máy chủ của bạn cùng với yếu tố xác thực thứ hai.

Khởi động lại OpenVPN

$ sudo systemctl restart openvpn@server

thiết lập máy khách

Bao gồm yêu cầu đăng nhập và mật khẩu người dùng trong tệp cấu hình máy khách

auth-user-pass

Проверка

Khởi chạy ứng dụng khách OpenVPN, kết nối với máy chủ, nhập tên người dùng và mật khẩu của bạn. Bot Telegram sẽ gửi yêu cầu truy cập bằng hai nút

Xác thực hai yếu tố trong OpenVPN với bot Telegram

Một nút cho phép truy cập, nút thứ hai chặn nó.

Bây giờ bạn có thể lưu mật khẩu của mình trên máy khách một cách an toàn; yếu tố thứ hai sẽ bảo vệ máy chủ OpenVPN của bạn khỏi bị truy cập trái phép một cách đáng tin cậy.

Nếu có điều gì đó không hiệu quả

Tuần tự kiểm tra xem bạn có bỏ sót điều gì không:

  • Có một người dùng trên máy chủ có OpenVPN với mật khẩu được đặt
  • Máy chủ có quyền truy cập qua cổng UDP 1812 tới địa chỉ bán kính.multifactor.ru
  • Các tham số NAS-Identifier và Shared Secret được chỉ định chính xác
  • Một người dùng có cùng thông tin đăng nhập đã được tạo trong hệ thống Multifactor và được cấp quyền truy cập vào nhóm người dùng VPN
  • Người dùng đã cấu hình phương thức xác thực qua Telegram

Nếu trước đây bạn chưa thiết lập OpenVPN, hãy đọc bài viết chi tiết.

Các hướng dẫn được thực hiện với các ví dụ trên CentOS 7.

Nguồn: www.habr.com

Thêm một lời nhận xét