Nếu bạn đang tìm kiếm giải pháp VPN từ máy khách đến trang web, thì bạn có thể thích giải pháp IKEv2 EAP hơn OpenVPN hoặc Wireguard. Một giải pháp như vậy cực kỳ hữu ích nếu bạn liên tục di chuyển và cần một giải pháp VPN mà bạn có thể dễ dàng kết nối mà không cần tải xuống máy khách hoặc cần khóa. strongSwan là VPN dựa trên IPSec đa nền tảng mã nguồn mở có thể hữu ích trong trường hợp như vậy. Nó có thể cung cấp xác thực dựa trên chứng chỉ X.509 hoặc xác thực người dùng IKEv2 EAP an toàn.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách thiết lập VPN IKEv2 IPSec bằng strongSwan bằng cách sử dụng xác thực
[*]
Một số gói mà hệ thống của bạn nhu cầu.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Thêm dịch vụ IPSec vào Firewalld tường lửa.
Chúng ta cũng cần các cổng HTTP và HTTPS để hoạt động. Mở chúng.
Cho phép chuyển tiếp gói tin NAT, còn được gọi là ngụy trang IP.
Tải lại tường lửa để áp dụng thay đổi.
Chúng ta sẽ sử dụng trình cài đặt gói Snapd cho việc đó. Vì Rocky Linux không đi kèm với nó, hãy cài đặt trình cài đặt Snapd. Yêu cầu kho lưu trữ EPEL để hoạt động.
Cài đặt Snapd.
Bật và khởi động Snap dịch vụ.
Cài đặt gói lõi Snap và đảm bảo rằng phiên bản Snapd của bạn được cập nhật.
Tạo các liên kết cần thiết cho Snapd để làm việc.
Phát hành lệnh sau để cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo rằng lệnh Certbot có thể chạy bằng cách tạo liên kết tượng trưng đến
Xác minh cài đặt.
Chạy lệnh sau để tạo Chứng chỉ SSL.
Lệnh trên sẽ tải xuống chứng chỉ vào
Để kiểm tra xem quá trình gia hạn SSL có hoạt động tốt không, hãy chạy thử quy trình.
Nếu không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Tạo liên kết tượng trưng cho các chứng chỉ trong thư mục
Tạo tệp cấu hình strongSwan và mở tệp đó để chỉnh sửa.
Dán mã sau vào nó.
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.
Nếu bạn muốn tạo đường hầm cho cả IPv4 và IPv6 thông qua VPN, bạn cần chỉ định một nhóm IPv6, DNS và mạng con cục bộ. Thay thế các giá trị của các biến
Vô hiệu hóa plugin OpenSSL vì OpenSSL trên Rocky Linux 9 không cho phép chữ ký RSA với SHA-1 gây ra xác thực lỗi.
Bật và khởi động dịch vụ strongSwan.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút Lưu rồi chọn VPN bạn đã thêm và nhấp vào nút Kết nối để khởi động VPN.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22490%22%20height=%22266%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22669%22%20height=%22382%22%3E%3C/svg%3E
Chọn VPN làm Giao diện, IKEv2 làm Loại VPN và đặt tên cho dịch vụ của bạn. Nhấp vào nút Tạo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22561%22%3E%3C/svg%3E
Nhập tên miền của bạn làm Địa chỉ máy chủ và ID từ xa. Để trống trường ID cục bộ. Nhấp vào nút Cài đặt xác thực để mở một cửa sổ bật lên mới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22666%22%20height=%22563%22%3E%3C/svg%3E
Chọn Tên người dùng làm Cài đặt xác thực rồi nhập thông tin xác thực đã tạo trước đó. Nhấp vào nút Ok để lưu cài đặt. Nhấp vào nút Áp dụng ở cuối để lưu cài đặt. Sau đó nhấp vào nút Kết nối để kết nối với VPN.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22374%22%20height=%2242%22%3E%3C/svg%3E
Sau khi bạn đã thêm, macOS sẽ tạo một phím tắt cho VPN trên thanh menu. Bạn có thể kết nối trực tiếp với VPN từ đó.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22337%22%20height=%22750%22%3E%3C/svg%3E
Đặt tên cho kết nối. Chọn IKEv2/IPSec MSCHAPv2 làm loại VPN. Nhập tên miền của bạn làm địa chỉ máy chủ. Cung cấp bất kỳ chuỗi ngẫu nhiên nào làm Mã định danh IPSec. Nhập tên người dùng và mật khẩu bạn đã cung cấp trước đó. Nhấp vào nút Lưu để hoàn tất.
Chọn Tên kết nối và nhấp vào Kết nối để bắt đầu sử dụng VPN.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22573%22%3E%3C/svg%3E
Mô tả VPN của bạn. Nhập tên miền của bạn làm giá trị cho các trường Máy chủ và ID từ xa. Để trống trường ID cục bộ. Chọn Xác thực người dùng làm Tên người dùng và nhập thông tin xác thực của bạn. Chọn Xong khi hoàn tất và chạm vào công tắc để kết nối với VPN.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách thiết lập VPN IKEv2 IPSec bằng strongSwan bằng cách sử dụng xác thực
EAP-MSCHAPv2
cùng với chứng chỉ SSL Let's Encrypt trên máy chủ Rocky Linux 9. Bạn cũng sẽ học cách kết nối với VPN bằng các máy khách Windows, macOS, Linux và Android.Điều kiện tiên quyết
-
Một máy chủ chạy Rocky Linux 9. Tùy thuộc vào số lượng người dùng kết nối với máy chủ, bạn phải nâng cấp thông số kỹ thuật của máy chủ.
-
Một người dùng không phải root có quyền sudo.
-
Một tên miền đủ điều kiện (FQDN) nhưvpn.example.com
.
-
Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo dnf update
Một số gói mà hệ thống của bạn nhu cầu.
Mã:
$ sudo dnf install wget curl nano unzip yum-utils -y
Bước 1 - Cấu hình Mạng và Tường lửa
Bật chuyển tiếp Gói IP trong tùy chọn hạt nhân.
Mã:
$ echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.conf
$ sudo sysctl -p
Mã:
$ sudo firewall-cmd --permanent --add-service=ipsec
Mã:
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Mã:
$ sudo firewall-cmd --permanent --add-masquerade
Mã:
$ sudo firewall-cmd --reload
Bước 2 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL.Chúng ta sẽ sử dụng trình cài đặt gói Snapd cho việc đó. Vì Rocky Linux không đi kèm với nó, hãy cài đặt trình cài đặt Snapd. Yêu cầu kho lưu trữ EPEL để hoạt động.
Mã:
$ sudo dnf install -y epel-release
Mã:
$ sudo dnf install -y snapd
Mã:
$ sudo systemctl enable snapd --now
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.3.0
Mã:
$ sudo certbot --key-type rsa certonly --standalone --agree-tos --no-eff-email --preferred-challenges http -m [emailprotected] -d vpn.example.com
/etc/letsencrypt/live/vpn.example.com
thư mục trên máy chủ của bạn.Để kiểm tra xem quá trình gia hạn SSL có hoạt động tốt không, hãy chạy thử quy trình.
Mã:
$ sudo certbot renew --dry-run
Bước 3 - Cài đặt strongSwan
strongSwan yêu cầu kho lưu trữ EPEL để cài đặt nhưng vì chúng ta đã cài đặt nó ở bước trước nên bạn có thể bỏ qua. Cài đặt strongSwan bằng lệnh sau.
Mã:
$ sudo dnf install strongswan
/etc/strongswan/swanctl
.
Mã:
$ sudo ln -s /etc/letsencrypt/live/vpn.example.com/fullchain.pem /etc/strongswan/swanctl/x509
$ sudo ln -s /etc/letsencrypt/live/vpn.example.com/privkey.pem /etc/strongswan/swanctl/private
$ sudo ln -s /etc/letsencrypt/live/vpn.example.com/chain.pem /etc/strongswan/swanctl/x509ca
Mã:
$ sudo nano /etc/strongswan/swanctl/conf.d/my_vpn.conf
Mã:
connections { ikev2-eap-mschapv2 { version = 2 proposals = aes256-sha256-modp4096,aes256-sha256-modp2048,aes256gcm16-sha256-modp1024 rekey_time = 0s pools = pool-ipv4 fragmentation = yes dpd_delay = 30s send_cert=always unique = never local { id = vpn.example.com certs = fullchain.pem } remote { auth = eap-mschapv2 eap_id = %any } children { ikev2-eap-mschapv2 { local_ts = 0.0.0.0/0 rekey_time = 0s dpd_action = clear esp_proposals = aes256-sha256-sha1 } } }
}
pools { pool-ipv4 { addrs = 10.1.1.0/24 dns = 1.1.1.1, 8.8.8.8 }
}
secrets { eap-User1 { id = username1 secret = "password1" }
}
Nếu bạn muốn tạo đường hầm cho cả IPv4 và IPv6 thông qua VPN, bạn cần chỉ định một nhóm IPv6, DNS và mạng con cục bộ. Thay thế các giá trị của các biến
local_ts
, addrs
và dns
với các giá trị sau.
Mã:
local_ts = 0.0.0.0/0,::/0
....
addrs = 10.1.1.0/24,2a00:1450:400c:c05::/112
dns = 8.8.8.8,2001:4860:4860::8888
Mã:
$ sudo sed -i "s/load = yes/load = no/" /etc/strongswan/strongswan.d/charon/openssl.conf
Mã:
$ sudo systemctl enable strongswan
$ sudo systemctl start strongswan
Bước 4 - Kết nối qua Windows
Mở ứng dụng Cài đặt và chọn tùy chọn menu Mạng và Internet. Chọn menu VPN rồi nhấp vào nút Thêm kết nối VPN.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22750%22%3E%3C/svg%3E
Nhấp vào nút Lưu rồi chọn VPN bạn đã thêm và nhấp vào nút Kết nối để khởi động VPN.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22490%22%20height=%22266%22%3E%3C/svg%3E
Bước 5 - Kết nối qua macOS
Mở Tùy chọn hệ thống >> Mạng và nhấp vào dấu cộng (+) ở trên cùng bên phải để thêm dịch vụ mới.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22669%22%20height=%22382%22%3E%3C/svg%3E
Chọn VPN làm Giao diện, IKEv2 làm Loại VPN và đặt tên cho dịch vụ của bạn. Nhấp vào nút Tạo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22561%22%3E%3C/svg%3E
Nhập tên miền của bạn làm Địa chỉ máy chủ và ID từ xa. Để trống trường ID cục bộ. Nhấp vào nút Cài đặt xác thực để mở một cửa sổ bật lên mới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22666%22%20height=%22563%22%3E%3C/svg%3E
Chọn Tên người dùng làm Cài đặt xác thực rồi nhập thông tin xác thực đã tạo trước đó. Nhấp vào nút Ok để lưu cài đặt. Nhấp vào nút Áp dụng ở cuối để lưu cài đặt. Sau đó nhấp vào nút Kết nối để kết nối với VPN.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22374%22%20height=%2242%22%3E%3C/svg%3E
Sau khi bạn đã thêm, macOS sẽ tạo một phím tắt cho VPN trên thanh menu. Bạn có thể kết nối trực tiếp với VPN từ đó.
Bước 6 - Kết nối qua Android
Mở menu Cài đặt Android >> Mạng và Internet >> VPN. Nhấp vào dấu cộng (+) ở góc trên bên phải màn hình để thêm cấu hình VPN.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22337%22%20height=%22750%22%3E%3C/svg%3E
Đặt tên cho kết nối. Chọn IKEv2/IPSec MSCHAPv2 làm loại VPN. Nhập tên miền của bạn làm địa chỉ máy chủ. Cung cấp bất kỳ chuỗi ngẫu nhiên nào làm Mã định danh IPSec. Nhập tên người dùng và mật khẩu bạn đã cung cấp trước đó. Nhấp vào nút Lưu để hoàn tất.
Chọn Tên kết nối và nhấp vào Kết nối để bắt đầu sử dụng VPN.
Bước 7 - Kết nối qua iOS
Mở cài đặt iOS và nhấp vào menu Chung. Nhấp vào menu VPN và bạn sẽ nhận được menu tương tự như hiển thị bên dưới. Chọn IKEv2 làm Loại VPN.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22573%22%3E%3C/svg%3E
Mô tả VPN của bạn. Nhập tên miền của bạn làm giá trị cho các trường Máy chủ và ID từ xa. Để trống trường ID cục bộ. Chọn Xác thực người dùng làm Tên người dùng và nhập thông tin xác thực của bạn. Chọn Xong khi hoàn tất và chạm vào công tắc để kết nối với VPN.