Strongswan là một triển khai IPSec đa nền tảng nguồn mở. Đây là giải pháp VPN dựa trên IPSec tập trung vào phương pháp và cơ chế xác thực mạnh, cung cấp hỗ trợ cho cả giao thức trao đổi khóa IKEv1 và IKEv2, xác thực dựa trên chứng chỉ X.509 hoặc khóa được chia sẻ trước và xác thực người dùng IKEv2 EAP an toàn.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập từng bước máy chủ VPN IPSec bằng Strongswan. Chúng tôi sẽ tạo một máy chủ VPN IKEv2 với xác thực 'EAP-MSCHAPv2' và sử dụng chứng chỉ Letsencrypt trên máy chủ Ubuntu 18.04.
Cập nhật tất cả các kho lưu trữ và cài đặt strongswan bằng lệnh apt bên dưới.
Chờ tất cả các gói được cài đặt.
Trong bước này, chúng ta sẽ cài đặt công cụ letsencrypt 'certbot' và tạo chứng chỉ cho tên miền máy chủ 'vpn.hakase-labs.pw'.
Cài đặt công cụ letsencrypt 'certbot'.
Sau khi cài đặt hoàn tất, hãy tạo các tệp chứng chỉ SSL mới bằng lệnh certbot bên dưới.
Chứng chỉ Letsencrypt cho tên miền vpn 'vpn.hakase-labs.pw' đã được tạo và nằm trong thư mục '/etc/letsencrypt/live'.
Tiếp theo, chúng ta phải sao chép các tệp chứng chỉ 'fullchain.pem', 'privkey.pem' và 'chain.pem' vào thư mục '/etc/ipsec.d/'.
Chạy các lệnh bên dưới.
Tất cả các chứng chỉ letsencrypt cho VPN Strongswan có tên 'vpn.hakase-labs.pw' đã được tạo và sao chép vào Thư mục '/etc/ipsec.d'.
Sao lưu cấu hình mặc định và tạo cấu hình mới 'ipsec.conf' bằng vimeditor.
Dán cấu hình bên dưới.
Lưu và thoát.
Chi tiết cấu hình:
Chỉnh sửa tệp 'ipsec.secrets' bằng vim.
Và dán cấu hình vào đó.
Lưu và thoát.
Cấu hình chi tiết:
Cấu hình IPSec strongswan đã hoàn tất, hãy khởi động dịch vụ strongswan và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Trước khi bật tường lửa trên máy chủ, chúng ta cần thêm dịch vụ ssh và các cổng UDP strongswan (500 và 4500) vào danh sách dịch vụ tường lửa.
Chạy các lệnh tường lửa ufw bên dưới.
Dịch vụ ssh và các cổng strongswan đã được thêm vào tường lửa ufw.
Tiếp theo, chúng ta sẽ bật chế độ NAT và chuyển tiếp cổng trên tường lửa UFW bằng cách chỉnh sửa tệp cấu hình của nó.
Chỉnh sửa cấu hình ufw mặc định.
Thay đổi 'DEFAULT_FORWARD_POLICY' thành 'ACCEPT'.
Lưu và thoát.
Bây giờ chúng ta cần kiểm tra giao diện mạng được sử dụng để truy cập internet bằng lệnh route bên dưới.
Bạn sẽ nhận được giao diện mạng như 'eth0', 'eth1' hoặc 'ens3' v.v.
Đi đến thư mục '/etc/ufw' và chỉnh sửa tệp cấu hình 'before.rules'.
Dán cấu hình nat và mangle sau vào đầu các dòng.
Và dán chuỗi tùy chỉnh ufw firewall vào cấu hình '*filter'.
Lưu và thoát.
Lưu ý:
Bỏ chú thích Dòng 'net/ipv4/ip_forward'.
Lưu và thoát.
Khởi động và bật tường lửa ufw.
Gõ 'y' để xác nhận và nhấn enter, đảm bảo không có lỗi. Sau đó khởi động lại dịch vụ strongswan.
Cấu hình tường lửa UFW cho chế độ NAT và chuyển tiếp cổng đã hoàn tất.
Kết nối VPN IKEv2 mới đã được tạo trên máy khách. Nhấp vào nút kết nối.
Và máy khách đã được kết nối với máy chủ VPN strongswan và có địa chỉ IP nội bộ/riêng tư là 10.15.1.1.
Máy chủ VPN dựa trên IKEv2 IPSec đã được tạo bằng Strongswan trên máy chủ Ubuntu 18.04.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập từng bước máy chủ VPN IPSec bằng Strongswan. Chúng tôi sẽ tạo một máy chủ VPN IKEv2 với xác thực 'EAP-MSCHAPv2' và sử dụng chứng chỉ Letsencrypt trên máy chủ Ubuntu 18.04.
Điều kiện tiên quyết
- Ubuntu 18.04
- Quyền root
Chúng ta sẽ làm gì?
- Cài đặt Strongswan trên Ubuntu 18.04
- Tạo SSL Letsencrypt
- Cấu hình Strongswan
- Bật NAT và Tường lửa UFW chuyển tiếp cổng
- Kiểm tra
Bước 1 - Cài đặt Strongswan trên Ubuntu
Trong bước đầu tiên này, chúng ta sẽ cài đặt phần mềm triển khai IPsec strongswan và tất cả các gói cần thiết từ kho lưu trữ Ubuntu.Cập nhật tất cả các kho lưu trữ và cài đặt strongswan bằng lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt install strongswan strongswan-pki libstrongswan-standard-plugins libstrongswan-extra-plugins
Bước 2 - Tạo SSL Letsencrypt
Chúng tôi sẽ tạo máy chủ VPN IKEv2 bằng tên miền 'vpn.hakase-labs.pw' và sử dụng chứng chỉ được tạo từ letsencrypt.Trong bước này, chúng ta sẽ cài đặt công cụ letsencrypt 'certbot' và tạo chứng chỉ cho tên miền máy chủ 'vpn.hakase-labs.pw'.
Cài đặt công cụ letsencrypt 'certbot'.
Mã:
sudo apt install certbot -y
Mã:
certbot certonly --rsa-key-size 4096 --standalone --agree-tos --no-eff-email --email [emailprotected] -d vpn.hakase-labs.pw
Tiếp theo, chúng ta phải sao chép các tệp chứng chỉ 'fullchain.pem', 'privkey.pem' và 'chain.pem' vào thư mục '/etc/ipsec.d/'.
Chạy các lệnh bên dưới.
Mã:
cp /etc/letsencrypt/live/vpn.hakase-labs.pw/fullchain.pem /etc/ipsec.d/certs/
cp /etc/letsencrypt/live/vpn.hakase-labs.pw/privkey.pem /etc/ipsec.d/private/
cp /etc/letsencrypt/live/vpn.hakase-labs.pw/chain.pem /etc/ipsec.d/cacerts/
Mã:
cây /etc/ipsec.d/
Sao lưu cấu hình mặc định và tạo cấu hình mới 'ipsec.conf' bằng vimeditor.
Mã:
mv /etc/ipsec.conf /etc/ipsec.conf.asli
vim /etc/ipsec.conf
Mã:
#cấu hình toàn cục IPsec#chron loggerconfig setup charondebug="ike 1, knl 1, cfg 0" uniqueids=no#xác định kết nối ipsec mớiconn hakase-vpn auto=add compress=no type=tunnel keyexchange=ikev2 Ví dụ: aes128-sha1-modp1024, aes128-sha1-modp1536, aes128-sha1-modp2048, aes128-sha256-ecp256, aes128-sha256-modp1024, aes128-sha256-modp1536, aes128-sha256-modp2048, aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024, aes256-sha1-modp1024, aes256-sha256-modp1024, aes256-sha256-modp1024, aes256-sha256-modp1024, aes256-sha256-modp1024 p1536, aes256-sha256-modp2048, aes256-sha256-modp4096, aes256-sha384-ecp384, aes256-sha384-modp1024, aes256-sha384-modp1536, aes256-sha384-modp2048, aes256-sha384-modp4096, aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024, 3des-sha1-modp1024! đặc biệt=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sh a1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha2 56-ecp256, aes128-sha256-modp1024, aes128-sha256-modp1536, aes128-sha256-modp2048, aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024, aes 128gcm16,aes128gcm16-ecp256,aes256-sha1,aes256-sha256,aes256-sha256-modp1024,a es256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha3 84,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16,aes256gcm16-ecp384,3des-sha1! fragmentation=yes forceencaps=yes dpdaction=clear dpddelay=300s rekey=no left=%any [emailprotected] leftcert=fullchain.pem leftsendcert=always leftsubnet=0.0.0.0/0 right=%any rightid=%any rightauth=eap-mschapv2 rightsourceip=10.15.1.0/24 rightdns=1.1.1.1,8.8.8.8 rightsendcert=never eap_identity=%identity
Chi tiết cấu hình:
- Tạo kết nối đường hầm VPN IPSec mới có tên 'hakase-vpn'.
- Chỉ định bộ mã hóa IKEv2 và ESP để xác thực.
- Cấu hình máy chủ 'trái' sử dụng tên miền 'vpn.hakase-labs.pw' và sử dụng chứng chỉ letsencrypt 'fullchain.pem' nằm tại thư mục '/etc/ipsec.d/certs'.
- Thiết lập máy khách/máy từ xa 'đúng' với phương thức xác thực EAP 'eap-mschapv2', gán phạm vi địa chỉ IP ảo '10.15.1.0/24' cho tất cả máy khách được kết nối và sử dụng DNS công khai Cloudflare và google.
Chỉnh sửa tệp 'ipsec.secrets' bằng vim.
Mã:
vim /etc/ipsec.secrets
Mã:
: RSA "privkey.pem"hakase : EAP "hakase321@"tensai : EAP "tensai321@"
Cấu hình chi tiết:
- Chỉ định khóa riêng của máy chủ RSA bằng chứng chỉ letsencrypt 'privkey.pem' nằm trong thư mục '/etc/ipsec.d/private'.
- Xác định định dạng thông tin xác thực người dùng EAP 'user : EAP "password"'.
Cấu hình IPSec strongswan đã hoàn tất, hãy khởi động dịch vụ strongswan và cho phép dịch vụ này khởi chạy mọi lúc khi khởi động hệ thống.
Mã:
systemctl start strongswan
systemctl enable strongswan
Bước 4 - Bật NAT và Tường lửa chuyển tiếp cổng UFW
Trong bước này, chúng tôi sẽ bật chế độ NAT, mở các cổng sẽ được sử dụng cho VPN IPSec strongswan và bật chuyển tiếp cổng. Chúng tôi sẽ sử dụng tường lửa UFW.Trước khi bật tường lửa trên máy chủ, chúng ta cần thêm dịch vụ ssh và các cổng UDP strongswan (500 và 4500) vào danh sách dịch vụ tường lửa.
Chạy các lệnh tường lửa ufw bên dưới.
Mã:
sudo ufw allow ssh
sudo ufw allow 500,4500/udp
Tiếp theo, chúng ta sẽ bật chế độ NAT và chuyển tiếp cổng trên tường lửa UFW bằng cách chỉnh sửa tệp cấu hình của nó.
Chỉnh sửa cấu hình ufw mặc định.
Mã:
vim /etc/default/ufw
Mã:
DEFAULT_FORWARD_POLICY="ACCEPT"
Bây giờ chúng ta cần kiểm tra giao diện mạng được sử dụng để truy cập internet bằng lệnh route bên dưới.
Mã:
route | grep '^default' | grep -o '[^ ]*$'
Đi đến thư mục '/etc/ufw' và chỉnh sửa tệp cấu hình 'before.rules'.
Mã:
cd /etc/ufw/
vim before.rules
Mã:
*nat-A POSTROUTING -s 10.15.1.0/24 -o ens3 -m policy --pol ipsec --dir out -j ACCEPT-A POSTROUTING -s 10.15.1.0/24 -o ens3 -j MASQUERADECOMMIT*mangle-A FORWARD --match policy --pol ipsec --dir in -s 10.15.1.0/24 -o ens3 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360COMMIT
Mã:
*filter.....-A ufw-before-forward --match policy --pol ipsec --dir in --proto esp -s 10.15.1.0/24 -j ACCEPT-A ufw-before-forward --match policy --pol ipsec --dir out --proto esp -d 10.15.1.0/24 -j ACCEPT
Lưu và thoát.
Lưu ý:
- Thay đổi giao diện 'ens3' bằng giao diện mạng của riêng bạn.
- Thay đổi địa chỉ ip Nội bộ/Riêng tư theo ý muốn.
Mã:
cd /etc/ufw
vim sysctl.conf
Mã:
net/ipv4/ip_forward=1
Khởi động và bật tường lửa ufw.
Mã:
sudo ufw enable
Gõ 'y' để xác nhận và nhấn enter, đảm bảo không có lỗi. Sau đó khởi động lại dịch vụ strongswan.
Mã:
systemctl restart strongswan
Bước 5 - Kiểm tra
Trong trường hợp này, chúng tôi sẽ thực hiện kiểm tra trên MacOS X và điện thoại Android.Trên MacOS
- Mở 'Tùy chọn hệ thống' và nhấp vào menu 'Mạng'.
- Nhấp vào nút '+' để tạo kết nối VPN mới.Giao diện: 'VPN'
- Loại VPN: 'IKEv2'
- Tên dịch vụ: 'IKEv2-vpn'
- Trên 'Địa chỉ máy chủ' và 'ID từ xa', nhập tên miền VPN 'vpn.hakase-labs.pw'.
- Nhấp vào 'Cài đặt xác thực'.
- Xác thực bằng 'Tên người dùng'.
- Nhập tên người dùng 'tensai' với mật khẩu 'tensai321@'
- Nhấp vào 'OK' và nhấp vào 'Áp dụng'.
Kết nối VPN IKEv2 mới đã được tạo trên máy khách. Nhấp vào nút kết nối.
Và máy khách đã được kết nối với máy chủ VPN strongswan và có địa chỉ IP nội bộ/riêng tư là 10.15.1.1.
Trên Android
- Tải xuống và cài đặt ứng dụng strongswan android gốc từ Google-Play.
- Thêm cấu hình VPN mới
- Nhập tên miền máy chủ 'vpn.hakase-labs.pw' và sử dụng xác thực Tên người dùng và Mật khẩu IKEv2 EAP.
Máy chủ VPN dựa trên IKEv2 IPSec đã được tạo bằng Strongswan trên máy chủ Ubuntu 18.04.