StrongSwan là một Giải pháp VPN dựa trên IP nguồn mở. Nó hỗ trợ cả giao thức trao đổi khóa IKEv1 và IKEv2 kết hợp với ngăn xếp NETKEY IPsec của hạt nhân Linux. Hướng dẫn này sẽ chỉ cho bạn cách sử dụng strongSwan để thiết lập máy chủ IPSec VPN trên CentOS 7.
Cài đặt mạnh mẽ
Các gói strongSwan có sẵn trong kho Gói bổ sung dành cho Enterprise Linux (EPEL). Chúng ta nên kích hoạt EPEL trước, sau đó cài đặt strongSwan.
yum install http://ftp.nluug.nl/pub/os/Linux/distr/fedora-epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
yum install strongswan openssl
Tạo chứng chỉ
Cả máy khách và máy chủ VPN đều cần chứng chỉ để xác định và tự xác thực. Tôi đã chuẩn bị hai kịch bản shell để tạo và ký các chứng chỉ. Đầu tiên, chúng tôi tải hai tập lệnh này vào thư mục /etc/strongswan/ipsec.d
.
cd /etc/strongswan/ipsec.d
wget https://raw.githubusercontent.com/michael-loo/strongswan_config/for_vultr/server_key.sh
chmod a+x server_key.sh
wget https://raw.githubusercontent.com/michael-loo/strongswan_config/for_vultr/client_key.sh
chmod a+x client_key.sh
Trong hai .sh
tệp này, tôi đã đặt tên tổ chức là VULTR-VPS-CENTOS
. Nếu bạn muốn thay đổi nó, hãy mở các .sh
tập tin và thay thế O=VULTR-VPS-CENTOS
bằng O=YOUR_ORGANIZATION_NAME
.
Tiếp theo, sử dụng server_key.sh
với địa chỉ IP của máy chủ của bạn để tạo khóa cấp chứng chỉ (CA) và chứng chỉ cho máy chủ. Thay thế SERVER_IP
bằng địa chỉ IP của VPS Vultr của bạn.
./server_key.sh SERVER_IP
Tạo khóa máy khách, chứng chỉ và tệp P12. Ở đây, tôi sẽ tạo chứng chỉ và tệp P12 cho người dùng VPN "john".
./client_key.sh john [email protected]
Thay thế "john" và email của anh ấy bằng email của bạn trước khi chạy tập lệnh.
Sau khi chứng chỉ cho máy khách và máy chủ được tạo, sao chép /etc/strongswan/ipsec.d/john.p12
và /etc/strongswan/ipsec.d/cacerts/strongswanCert.pem
vào máy tính cục bộ của bạn.
Mở tệp cấu hình StrongSwan IPSec.
vi /etc/strongswan/ipsec.conf
Thay thế nội dung của nó bằng văn bản sau.
config setup
uniqueids=never
charondebug="cfg 2, dmn 2, ike 2, net 0"
conn %default
left=%defaultroute
leftsubnet=0.0.0.0/0
leftcert=vpnHostCert.pem
right=%any
rightsourceip=172.16.1.100/16
conn CiscoIPSec
keyexchange=ikev1
fragmentation=yes
rightauth=pubkey
rightauth2=xauth
leftsendcert=always
rekey=no
auto=add
conn XauthPsk
keyexchange=ikev1
leftauth=psk
rightauth=psk
rightauth2=xauth
auto=add
conn IpsecIKEv2
keyexchange=ikev2
leftauth=pubkey
rightauth=pubkey
leftsendcert=always
auto=add
conn IpsecIKEv2-EAP
keyexchange=ikev2
ike=aes256-sha1-modp1024!
rekey=no
leftauth=pubkey
leftsendcert=always
rightauth=eap-mschapv2
eap_identity=%any
auto=add
Chỉnh sửa tập tin cấu hình strongSwan , strongswan.conf
.
vi /etc/strongswan/strongswan.conf
Xóa mọi thứ và thay thế nó bằng cách sau.
charon {
load_modular = yes
duplicheck.enable = no
compress = yes
plugins {
include strongswan.d/charon/*.conf
}
dns1 = 8.8.8.8
dns2 = 8.8.4.4
nbns1 = 8.8.8.8
nbns2 = 8.8.4.4
}
include strongswan.d/*.conf
Chỉnh sửa tệp bí mật IPsec để thêm người dùng và mật khẩu.
vi /etc/strongswan/ipsec.secrets
Thêm tài khoản người dùng "john" vào đó.
: RSA vpnHostKey.pem
: PSK "PSK_KEY"
john %any : EAP "John's Password"
john %any : XAUTH "John's Password"
Xin lưu ý rằng cả hai mặt của dấu hai chấm ':' cần một khoảng trắng.
Cho phép chuyển tiếp IPv4
Chỉnh sửa /etc/sysctl.conf
để cho phép chuyển tiếp trong nhân Linux.
vi /etc/sysctl.conf
Thêm dòng sau vào tập tin.
net.ipv4.ip_forward=1
Lưu tệp, sau đó áp dụng thay đổi.
sysctl -p
Mở tường lửa cho VPN của bạn trên máy chủ.
firewall-cmd --permanent --add-service="ipsec"
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
Bắt đầu VPN
systemctl start strongswan
systemctl enable strongswan
StrongSwan hiện đang chạy trên máy chủ của bạn. Cài đặt các tập tin strongswanCert.pem
và .p12
chứng chỉ vào máy khách của bạn. Bây giờ bạn sẽ có thể tham gia mạng riêng của bạn.