Pritunl là máy chủ VPN và IPsec nguồn mở có chức năng quản lý người dùng và mở rộng theo chiều ngang cho các tổ chức lớn và nhỏ. Nó cung cấp cho người dùng tùy chọn sử dụng giao thức OpenVPN và Wireguard. Nó đi kèm với giao diện GUI dễ sử dụng và hỗ trợ máy khách trên hầu hết các thiết bị và nền tảng. Tất cả lưu lượng giữa máy khách và máy chủ đều được mã hóa. Pritunl được xây dựng trên MongoDB, một cơ sở dữ liệu đáng tin cậy và có thể mở rộng, có thể triển khai nhanh chóng và có hỗ trợ tích hợp cho việc sao chép, giúp việc triển khai cụm Pritunl trở nên dễ dàng.
Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt máy chủ VPN Pritunl trên Rocky Linux 8. Chúng ta cũng sẽ khám phá cách kết nối với VPN bằng Máy khách Linux.
Điều này cho biết tường lửa đã hoạt động thành công.
Tường lửa hoạt động với các vùng khác nhau và vùng công cộng là vùng mặc định, chúng ta sẽ sử dụng vùng này. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Nó sẽ hiển thị đầu ra sau.
Cho phép các cổng HTTP và HTTPS.
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy đầu ra tương tự.
Tải lại tường lửa để kích hoạt các thay đổi.
Lưu ý: MongoDB 5.0 chỉ hoạt động trên bộ xử lý mới hơn. Nếu máy chủ của bạn đang chạy trên phần cứng cũ hơn, bạn nên chọn phiên bản MongoDB cũ hơn hoặc chuyển sang máy chủ mới hơn.
Tạo và mở tệp /etc/yum.repos.d/mongodb-org-5.0.repo để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Cài đặt MongoDB.
Kích hoạt và khởi động dịch vụ MongoDB.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Cài đặt kho lưu trữ Epel trước, đây là yêu cầu của Pritunl.
Thêm và nhập các khóa GPG cần thiết cho Pritunl.
Cài đặt Pritunl.
Kiểm tra phiên bản Pritunl.
Kích hoạt và khởi động dịch vụ Pritunl.
Bạn sẽ thấy màn hình sau khi khởi chạy URL lần đầu tiên.
Nó tự động lấy URI MongoDB. Đối với khóa thiết lập, hãy chạy lệnh sau.
Nhập khóa đã tạo trên trang web và nhấp vào nút Lưu. Nó sẽ nâng cấp cơ sở dữ liệu và mở màn hình đăng nhập.
Chạy lệnh sau để tạo thông tin đăng nhập mặc định.
Nhập thông tin đăng nhập và đăng nhập. Bạn sẽ nhận được màn hình thiết lập sau.
Nhập mật khẩu mạnh để thay thế mật khẩu mặc định. Nhập tên miền vào trường Lets Encrypt Domain. Pritunl sẽ tự động tạo và thiết lập chứng chỉ SSL cho tên miền.
Bây giờ bạn có thể khởi chạy máy chủ bằng tên miền bằng cách nhập https://pritunl.example.com vào trình duyệt của mình.
Nhấp vào nút Thêm để tiếp tục.
Bước tiếp theo là thêm người dùng. Có hai tùy chọn. Bạn có thể thêm người dùng từng người một hoặc thêm hàng loạt. Chúng ta sẽ thêm một người dùng duy nhất ngay bây giờ. Nhấp vào nút Thêm người dùng.
Trường PIN là tùy chọn và được sử dụng nếu bạn định sử dụng Xác thực hai yếu tố. Mã PIN chỉ bao gồm các chữ số.
Sau khi tổ chức và người dùng đã được thiết lập, hãy chuyển đến tab Máy chủ và nhấp vào nút Thêm máy chủ.
Cổng: Bạn có thể thêm bất kỳ cổng nào mà máy chủ sẽ sử dụng. Đảm bảo rằng cổng mà bạn đã chỉ định mở cho tất cả lưu lượng truy cập đến trong Nhóm bảo mật.
DNS: Bạn có thể thêm Google DNS hoặc OpenDNS.
Mạng ảo: Bạn có thể thêm IP riêng vào trường này, nhưng đảm bảo rằng bất kỳ tài nguyên nào khác không sử dụng IP này. Máy khách sẽ được phân bổ địa chỉ IP từ phạm vi này.
Mạng WG ảo: Địa chỉ mạng WireGuard cho mạng riêng sẽ được chỉ định cho máy khách WireGuard. Nó phải có cùng Khối CIDR như Mạng ảo.
Bật WireGuard: Nếu được chọn, nó sẽ sử dụng WireGuard thay vì OpenVPN. Tuy nhiên, chúng tôi sẽ sử dụng OpenVPN cho hướng dẫn của mình, vì vậy hãy để nó không được chọn.
Cổng WG: Cổng này sẽ được sử dụng cho Kết nối WireGuard. Nó chỉ được sử dụng khi chúng tôi đã bật tùy chọn WireGuard.
Bật Google Authenticator: Để sử dụng xác minh hai bước, hãy bật tùy chọn này. Nếu tùy chọn này được bật trên máy chủ, tất cả các máy khách trong máy chủ đó cần xác minh OTP trước khi kết nối với VPN mỗi lần.
Bật IPv6: Bật máy chủ DNS IPv6. Khách hàng được cấp địa chỉ IPv6 riêng.
Nhấp vào nút Thêm để hoàn tất.
Nhấp vào nút Thêm tổ chức để liên kết tổ chức với máy chủ mới tạo.
Nhấp vào nút Bắt đầu máy chủ để khởi động VPN.
Trong hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng máy khách dòng lệnh. Bạn chỉ có thể cài đặt một loại máy khách trên một hệ thống.
Cài đặt kho lưu trữ EPEL cần thiết cho máy khách Pritunl.
Thêm kho lưu trữ Pritunl chính thức vào hệ thống Rocky Linux của bạn.
Cài đặt máy khách dòng lệnh.
Sao chép liên kết URI tạm thời từ mục nhập cuối cùng.
Nhập lệnh sau trên thiết bị đầu cuối của máy khách để thêm hồ sơ.
Đảm bảo bạn thêm liên kết hồ sơ đã sao chép trước đó sau add trong lệnh.
Kiểm tra danh sách các hồ sơ đã thêm.
Chạy lệnh sau để kết nối với hồ sơ. Bạn không cần sử dụng ID hồ sơ đầy đủ trong lệnh. Chỉ cần sử dụng 3 chữ cái đầu tiên của ID hồ sơ để tham chiếu đến nó.
Bạn đã kết nối thành công tới VPN Pritunl.
Trước tiên, hãy dừng máy chủ Pritunl.
Sửa chữa cơ sở dữ liệu.
Khởi động lại dịch vụ Pritunl.
repair-database sẽ xóa tất cả các bản ghi, đặt lại tất cả các địa chỉ IP ảo tĩnh của người dùng và đặt tất cả các máy chủ ở trạng thái dừng.
Pritunl chạy máy chủ web trên cổng 80 để xác minh Let's Encrypt và chuyển hướng các yêu cầu HTTP sang HTTPS. Bạn có thể tắt chuyển hướng bằng lệnh sau. Điều này cũng sẽ ngăn chặn việc sử dụng chứng chỉ Let's Encrypt.
Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt máy chủ VPN Pritunl trên Rocky Linux 8. Chúng ta cũng sẽ khám phá cách kết nối với VPN bằng Máy khách Linux.
Điều kiện tiên quyết
-
Một hệ thống chạy Rocky Linux 8 để lưu trữ máy chủ Pritunl.
-
Một người dùng không phải root có quyền sudo.
-
Một tên miền trỏ đến máy chủ.
-
Một hệ thống chạy Rocky Linux 8 dưới dạng máy khách.
-
Đảm bảo mọi thứ đã được cập nhật.
Mã:$ sudo dnf update
-
Cài đặt bất kỳ điều kiện tiên quyết nào.
Mã:$ sudo dnf install nano
Bước 1 - Cấu hình Tường lửa
Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --staterunning
Tường lửa hoạt động với các vùng khác nhau và vùng công cộng là vùng mặc định, chúng ta sẽ sử dụng vùng này. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Mã:
$ sudo firewall-cmd --permanent --list-services
Mã:
dhcpv6-client mdns ssh
Mã:
$ sudo firewall-cmd --permanent --add-service=http$ sudo firewall-cmd --permanent --add-service=https
Mã:
$ sudo firewall-cmd --permanent --list-all
Mã:
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Mã:
$ sudo firewall-cmd --reload
Bước 2 - Cài đặt MongoDB
Pritunl được xây dựng trên Cơ sở dữ liệu MongoDB, vì vậy trước tiên, chúng ta cần cài đặt cơ sở dữ liệu đó. Rocky Linux không đi kèm với MongoDB, vì vậy chúng ta cần sử dụng kho lưu trữ chính thức của MongoDB.Lưu ý: MongoDB 5.0 chỉ hoạt động trên bộ xử lý mới hơn. Nếu máy chủ của bạn đang chạy trên phần cứng cũ hơn, bạn nên chọn phiên bản MongoDB cũ hơn hoặc chuyển sang máy chủ mới hơn.
Tạo và mở tệp /etc/yum.repos.d/mongodb-org-5.0.repo để chỉnh sửa.
Mã:
$ sudo nano /etc/yum.repos.d/mongodb-org-5.0.repo
Mã:
[mongodb-org-5.0]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
Cài đặt MongoDB.
Mã:
$ sudo dnf install mongodb-org
Mã:
$ sudo systemctl enable mongod --now
Bước 3 - Cài đặt Pritunl Server
Bước đầu tiên là tạo kho lưu trữ chính thức cho Pritunl. Tạo và mở tệp /etc/yum.repos.d/pritunl.repo để chỉnh sửa.
Mã:
$ sudo nano /etc/yum.repos.d/pritunl.repo
Mã:
[pritunl]name=Kho lưu trữ Pritunlbaseurl=https://repo.pritunl.com/stable/yum/centos/8/gpgcheck=1enabled=1
Cài đặt kho lưu trữ Epel trước, đây là yêu cầu của Pritunl.
Mã:
$ sudo dnf install epel-release
Mã:
$ gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A$ gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Mã:
$ sudo dnf install pritunl
Mã:
$ pritunl versionpritunl v1.30.2960.4
Mã:
$ sudo systemctl enable pritunl --now
Tăng giới hạn tệp mở
Chạy các lệnh sau để tăng giới hạn tệp mở trên máy chủ. Điều này sẽ ngăn chặn mọi sự cố kết nối trong trường hợp tải cao. Nếu bạn đã cài đặt MongoDB trên một máy chủ riêng, bạn cần chạy các lệnh này trên máy chủ đó.
Mã:
$ sudo sh -c 'echo "* hard nofile 64000" >> /etc/security/limits.conf'$ sudo sh -c 'echo "* soft nofile 64000" >> /etc/security/limits.conf'$ sudo sh -c 'echo "root hard nofile 64000" >> /etc/security/limits.conf'$ sudo sh -c 'echo "root soft nofile 64000" >> /etc/security/limits.conf'
Bước 4 - Truy cập và Cấu hình Pritunl
Bạn có thể khởi chạy Pritunl bằng cách nhập http://<serverIP>/ vào trình duyệt của mình. Các trình duyệt hiện đại cố gắng truy cập phiên bản HTTPS của mọi trang web, vì vậy bạn sẽ cần bỏ qua lỗi Quyền riêng tư do trình duyệt đưa ra.Bạn sẽ thấy màn hình sau khi khởi chạy URL lần đầu tiên.
Nó tự động lấy URI MongoDB. Đối với khóa thiết lập, hãy chạy lệnh sau.
Mã:
$ sudo pritunl setup-keyeacbd641982048fd9a60cdf09f7ebaa3
Chạy lệnh sau để tạo thông tin đăng nhập mặc định.
Mã:
$ sudo pritunl default-password[undefined][2021-11-08 22:34:55,255][INFO] Nhận mật khẩu quản trị viên mặc địnhMật khẩu mặc định của quản trị viên: tên người dùng: "pritunl" mật khẩu: "krZQLlH9U7P1"
Nhập mật khẩu mạnh để thay thế mật khẩu mặc định. Nhập tên miền vào trường Lets Encrypt Domain. Pritunl sẽ tự động tạo và thiết lập chứng chỉ SSL cho tên miền.
Bây giờ bạn có thể khởi chạy máy chủ bằng tên miền bằng cách nhập https://pritunl.example.com vào trình duyệt của mình.
Bước 5 - Thêm Tổ chức, Máy chủ và Người dùng
Bước tiếp theo là thêm Tổ chức cho VPN của bạn. Nhấp vào tab Người dùng và nhấp vào nút Thêm Tổ chức.Nhấp vào nút Thêm để tiếp tục.
Bước tiếp theo là thêm người dùng. Có hai tùy chọn. Bạn có thể thêm người dùng từng người một hoặc thêm hàng loạt. Chúng ta sẽ thêm một người dùng duy nhất ngay bây giờ. Nhấp vào nút Thêm người dùng.
Trường PIN là tùy chọn và được sử dụng nếu bạn định sử dụng Xác thực hai yếu tố. Mã PIN chỉ bao gồm các chữ số.
Sau khi tổ chức và người dùng đã được thiết lập, hãy chuyển đến tab Máy chủ và nhấp vào nút Thêm máy chủ.
Cổng: Bạn có thể thêm bất kỳ cổng nào mà máy chủ sẽ sử dụng. Đảm bảo rằng cổng mà bạn đã chỉ định mở cho tất cả lưu lượng truy cập đến trong Nhóm bảo mật.
DNS: Bạn có thể thêm Google DNS hoặc OpenDNS.
Mạng ảo: Bạn có thể thêm IP riêng vào trường này, nhưng đảm bảo rằng bất kỳ tài nguyên nào khác không sử dụng IP này. Máy khách sẽ được phân bổ địa chỉ IP từ phạm vi này.
Mạng WG ảo: Địa chỉ mạng WireGuard cho mạng riêng sẽ được chỉ định cho máy khách WireGuard. Nó phải có cùng Khối CIDR như Mạng ảo.
Bật WireGuard: Nếu được chọn, nó sẽ sử dụng WireGuard thay vì OpenVPN. Tuy nhiên, chúng tôi sẽ sử dụng OpenVPN cho hướng dẫn của mình, vì vậy hãy để nó không được chọn.
Cổng WG: Cổng này sẽ được sử dụng cho Kết nối WireGuard. Nó chỉ được sử dụng khi chúng tôi đã bật tùy chọn WireGuard.
Bật Google Authenticator: Để sử dụng xác minh hai bước, hãy bật tùy chọn này. Nếu tùy chọn này được bật trên máy chủ, tất cả các máy khách trong máy chủ đó cần xác minh OTP trước khi kết nối với VPN mỗi lần.
Bật IPv6: Bật máy chủ DNS IPv6. Khách hàng được cấp địa chỉ IPv6 riêng.
Nhấp vào nút Thêm để hoàn tất.
Nhấp vào nút Thêm tổ chức để liên kết tổ chức với máy chủ mới tạo.
Nhấp vào nút Bắt đầu máy chủ để khởi động VPN.
Bật cổng trong tường lửa
Để chấp nhận các kết nối từ máy khách qua cổng VPN, chúng ta cần bật cổng đó thông qua tường lửa của mình.
Mã:
$ sudo firewall-cmd --permanent --add-port=18412/udp$ sudo firewall-cmd --reload
Bước 6 - Cài đặt Pritunl Client
Bây giờ máy chủ của chúng ta đã hoạt động, đã đến lúc cài đặt một máy khách và kết nối với VPN. Pritunl cung cấp hai loại máy khách - Dòng lệnh và Máy khách GUI.Trong hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng máy khách dòng lệnh. Bạn chỉ có thể cài đặt một loại máy khách trên một hệ thống.
Cài đặt kho lưu trữ EPEL cần thiết cho máy khách Pritunl.
Mã:
$ sudo dnf install epel-release
Mã:
$ sudo tee -a /etc/yum.repos.d/pritunl.repo key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
Mã:
$ sudo dnf install pritunl-client
Bước 7 - Kết nối từ Máy khách đến Máy chủ
Từ tab người dùng của trang web máy chủ Pritunl, lấy liên kết hồ sơ tạm thời để kết nối với máy khách.Sao chép liên kết URI tạm thời từ mục nhập cuối cùng.
Nhập lệnh sau trên thiết bị đầu cuối của máy khách để thêm hồ sơ.
Mã:
$ pritunl-client add pritunl://example.com/ku/2hd6S6Ug
Kiểm tra danh sách các hồ sơ đã thêm.
Mã:
$ pritunl-client list+---------------------+-------------------------+--------------+----------------+----------------+| ID | TÊN | TRỰC TUYẾN CHO | ĐỊA CHỈ MÁY CHỦ | ĐỊA CHỈ MÁY KHÁCH |+----------------------------------+-------------------------+--------------+----------------+----------------+| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | Đã ngắt kết nối | - | - |+----------------------------------+-------------------------+--------------+----------------+----------------+
Mã:
$ pritunl-client start wki --mode=ovpn --password=PINOTP
- Để chỉ định chế độ OPVN, hãy thêm cờ --mode=ovpn vào lệnh.
- Nếu bạn đã bật tùy chọn Google Authenticator, bạn cần định cấu hình tùy chọn này bằng Google Authenticator hoặc ứng dụng khách Authy.
- Để chỉ định mã PIN và mã xác thực hai yếu tố, hãy sử dụng cờ --password=PINOTP trong lệnh. Ví dụ: nếu mã PIN là 54321 và mã OTP là 456789, hãy sử dụng cờ --password=54321456789 trong lệnh trên. Nếu bạn chỉ sử dụng mã PIN, hãy sử dụng cờ --password=PIN.
Mã:
$ pritunl-client list+----------------------------------+-------------------------+------------+----------------+----------------+| ID | NAME | ONLINE FOR | SERVER ADDRESS | CLIENT ADDRESS |+----------------------------------+-------------------------+------------+----------------+----------------+| wkinhnnjyz3ybektjbavy8qpecafqp1e | hforgeuser (howtoforge) | 6 giây | 178.62.233.196 | 192.168.238.2 |+----------------------------------+-------------------------+------------+----------------+----------------+
Dòng lệnh Pritunl
Máy chủ Pritunl đi kèm với một công cụ dòng lệnh mà bạn có thể sử dụng để thực hiện một số thao tác cơ bản.Sửa chữa cơ sở dữ liệu
Bạn có thể sử dụng Pritunl để sửa chữa cơ sở dữ liệu và cho phép khôi phục cơ sở dữ liệu bị hỏng hoặc không nhất quán.Trước tiên, hãy dừng máy chủ Pritunl.
Mã:
$ sudo systemctl stop pritunl
Mã:
$ sudo pritunl repair-database
Mã:
$ sudo systemctl start pritunl
Đặt lại thông tin xác thực
Lệnh sau sẽ đặt lại tên người dùng và mật khẩu của quản trị viên thành pritunl. Lệnh này cũng sẽ xóa mọi cài đặt xác thực một lần và xác thực hai bước cho người dùng quản trị viên nếu được bật.
Mã:
$ sudo pritunl reset-password
Thay đổi Cổng Web Console
Theo mặc định, Pritunl chạy trên cổng 443. Nếu bạn muốn thay đổi, hãy sử dụng lệnh sau.
Mã:
$ sudo pritunl set app.server_port 8443
Mã:
$ sudo pritunl set app.redirect_server false