1. Những thứ cần chuẩn bị?
- Máy chủ VPS CentOS 7 x64
- Quyền truy cập root vào máy chủ
- Máy khách SSH (Bạn có thể tải xuống Putty hoặc Bitvise)
2. Cài đặt STRONGSWAN
Trước khi cài đặt strongswan, chúng ta cần cập nhật hoặc phân phối trước.
sudo apt-get update
Sau đó, chúng ta cần cài đặt các ứng dụng cần thiết để xây dựng strongswan.
sudo apt-get install libpam0g-dev libssl-dev make gcc curl
Sau đó, chúng ta cần tải xuống strongswan từ nguồn. Bạn phải luôn nhận được nguồn mới nhất vì nó chứa các bản sửa lỗi và cải tiến mới nhất cho mã. Liên kết đến nguồn mới nhất là từ đây [1]. Hiện tại của tôi là phiên bản -5.3.5.
wget https://download.strongswan.org/strongswan-5.3.5.tar.gz
Giải nén strongswan và nhập thư mục.
tar xzf strongswan*.tar.g
cd /root/strongswan-*/
Sau đó, cấu hình strongswan với các mô-đun cần thiết. Đối với hướng dẫn này, sẽ cấu hình strongswan với freeradius, đó là lý do tại sao chúng ta cần cài đặt mô-đun –eap-radius.
./configure --enable-eap-identity --enable-eap-md5 --enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap --enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap --enable-xauth-pam --enable-dhcp --enable-openssl --enable-addrblock --enable-unity --enable-certexpire --enable-radattr --enable-swanctl --disable-gmp
Sau khi cấu hình, bây giờ chúng ta sẽ cài đặt nó.
make && make install
3. Tạo chứng chỉ cho STRONGSWAN
Strongswan đã xây dựng các quy trình tạo chứng chỉ được thực hiện đặc biệt để tạo chứng chỉ dễ dàng. Để tạo chứng chỉ, chúng ta sẽ thực hiện các lệnh sau:
Tạo chứng chỉ máy chủ.
ipsec pki --gen --outform pem > ca.pem
ipsec pki --self --in ca.pem --dn "C=US, O=Premium, CN=Premium CA" --ca --outform pem >ca.cert.pem
ipsec pki --gen --outform pem > server.pem
ipsec pki --pub --in server.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=US, O=Premium, CN=50.31.0.253" --san="50.31.0.253" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
Tên miền hoặc địa chỉ IP của máy chủ VPN của bạn, sau này được nhập vào thuộc tính kết nối máy khách, PHẢI được chứa trong chủ đề Tên phân biệt (CN) và / hoặc trong chủ đề Tên thay thế (–san). Nếu điều này không phù hợp, các máy khách sẽ không kết nối được.
Ứng dụng khách VPN Windows 7 được tích hợp sẵn cần có cờ sử dụng khóa mở rộng serverAuth trong chứng chỉ máy chủ lưu trữ của bạn như được hiển thị ở trên, nếu không ứng dụng khách sẽ từ chối kết nối. Ngoài ra, OS X 10.7.3 trở lên yêu cầu cờ ikeInter Instant , chúng tôi cũng thêm cờ ở đây.
Tạo chứng chỉ khách hàng.
ipsec pki --gen --outform pem > client.pem
ipsec pki --pub --in client.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=US, O=Premium, CN=Premium Client" --outform pem > client.cert.pem
Ứng dụng khách VPN cần có chứng chỉ ứng dụng khách, khóa riêng tư và chứng chỉ CA đang ký. Cách thuận tiện nhất là đặt mọi thứ vào một tệp PKCS # 12 đã ký và xuất tệp đó với một diễn giải.
openssl pkcs12 -export -inkey client.pem -in client.cert.pem -name "client" -certfile ca.cert.pem -caname "Premium CA" -out client.cert.p12
Nhập mật khẩu hai lần, sau đó bạn có .p12. Bạn có thể gửi client.cert.p12 và diễn giải xuất của nó cho người sẽ cài đặt nó vào máy khách.
Sao chép các chứng chỉ đã tạo trong thư mục ipsec.d.
cp -r ca.cert.pem /usr/local/etc/ipsec.d/cacerts/
cp -r server.cert.pem /usr/local/etc/ipsec.d/certs/
cp -r server.pem /usr/local/etc/ipsec.d/private/
cp -r client.cert.pem /usr/local/etc/ipsec.d/certs/
cp -r client.pem /usr/local/etc/ipsec.d/private/
4. Định cấu hình STRONGSWAN, IPSEC & SECRET
Đầu tiên, chúng ta hãy mở tệp ipsec.secrets.
nano /usr/local/etc/ipsec.secrets
Và thêm các chi tiết sau.
: RSA server.pem #is the name of the server certificate
: PSK "myPSKkey" #is the pre-shared-key entered by client
Lưu tệp và thoát, sau đó mở ipsec.conf.
nano /usr/local/etc/ipsec.conf
Và thêm cấu hình sau.
config setup
uniqueids=never
charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
conn %default
leftsubnet=0.0.0.0/0
left=%defaultroute
right=%any
auto=add
conn IKEv1-RSA-XAUTH-RADIUS
keyexchange=ikev1
fragmentation=yes
leftauth=pubkey
leftcert=server.cert.pem
rightauth=pubkey
rightauth2=xauth-radius
rightsourceip=10.31.1.0/24
rightcert=client.cert.pem
fragmentation=yes
conn IKEv1-PSK-XAUTH-RADIUS
keyexchange=ikev1
leftauth=psk
rightauth=psk
rightauth2=xauth-radius
rightsourceip=10.31.1.0/24
fragmentation=yes
conn IKEv2-EAP_MSCHAPv2-RADIUS-iOS
keyexchange=ikev2
ike=aes256-sha256-modp1024,3des-sha1-modp1024,aes256-sha1-modp1024!
esp=aes256-sha256,3des-sha1,aes256-sha1!
leftid=50.31.0.253
rekey=no
left=%any
leftsendcert=always
leftcert=server.cert.pem
rightauth=eap-radius
rightsourceip=10.31.2.0/24
rightsendcert=never
rightdns=8.8.8.8,8.8.4.4
eap_identity=%any
conn IKEv2-EAP_MSCHAPv2-RADIUS
keyexchange=ikev2
ike=aes256-sha1-modp1024!
rekey=no
leftid=@vpn.com
leftauth=pubkey
leftcert=server.cert.pem
rightauth=eap-radius
rightsourceip=10.31.2.0/24
rightsendcert=never
eap_identity=%any
conn L2TP-IKEv1-PSK
type=transport
keyexchange=ikev1
authby=secret
leftprotoport=17/1701
left=%any
right=%any
rightprotoport=17/%any
rekey=no
forceencaps=yes
#auto=add
Trong đó: IKEv1-RSA-XAUTH-RADIUS – được sử dụng bởi xác thực IPSec-RSA
IKEv1-PSK-XAUTH-RADIUS – được sử dụng bởi xác thực IPSec-PSK là loại dựa trên khóa chia sẻ trước. Chúng tôi đã biết khóa PSK của mình kể từ khi chúng tôi thêm khóa này vào tệp ipsec.secrets trước đó.
IKEv2-EAP_MSCHAPv2-RADIUS-iOS – chỉ được sử dụng bởi IKEv2 iOS. Dòng leftid là địa chỉ ip của máy chủ của bạn.
IKEv2-EAP_MSCHAPv2-RADIUS – được hỗ trợ bởi giao thức vpn IKEv2. Nó được sử dụng bởi windows, linux và android.
L2TP-IKEv1-PSK – được sử dụng bởi giao thức L2TP / IPSec mà chúng ta sẽ thảo luận ở phần sau.
Lưu file và thoát.
Tiếp theo, chúng tôi sẽ thêm chi tiết bán kính của chúng tôi trong tệp strongswan.conf. Mở strongswan.conf.
nano /usr/local/etc/strongswan.conf
Và đảm bảo rằng dòng dưới đây được sao chép trong tệp của bạn.
#for radius configuration details see https://wiki.strongswan.org/projects/strongswan/wiki/EAPRAdius
charon {
load_modular = yes
duplicheck.enable = no
compress = yes
plugins {
include strongswan.d/charon/*.conf
eap-radius {
accounting = yes
servers {
#credetials for radius servers. can be 1 more more.
server-a {
# credentials for server a radius
secret = this_is_radius_secret
address = 50.31.1.57
auth_port = 1812
acct_port = 1813
}
}
}
}
dns1 = 8.8.8.8
dns2 = 8.8.4.4
nbns1 = 8.8.8.8
nbns2 = 8.8.4.4
}
include strongswan.d/*.conf
đảm bảo thay đổi địa chỉ và bí mật để phản ánh cấu hình freeradius của bạn.
Nếu bạn có nhiều hơn một máy chủ freeradius, bạn có thể thêm một máy chủ khác bằng cách:
server_b {
secret = your_secret
address = your_freeradius_ip
auth_port = 1812
acct_port = 1813
}
Bây giờ chúng ta sẽ chạy Strongswan.
ipsec start
Để xem các lệnh Strongswan có sẵn, bạn có thể nhập.
ipsec --help
5. Cài đặt và cấu hình ACCEL-PPP
Accel-ppp là một máy chủ ppp hiệu suất cao được tạo ra từ đầu để lấp đầy những thiếu sót của giao thức ppp. Nó dễ sử dụng và cấu hình hơn so với phiên bản cũ và chúng tôi sẽ sử dụng ứng dụng này để cung cấp dịch vụ pptp và l2tp cho khách hàng.
Để cài đặt, chúng tôi sẽ phải cài đặt các tệp cần thiết trước.
apt-get install cmake libssl-dev libpcre3-dev libnet-snmp-perl libtritonus-bin
Sau đó, chúng tôi sẽ tải xuống nguồn mới nhất từ [2].
wget http://downloads.sourceforge.net/project/accel-ppp/
cd /usr/src/
đảm bảo tải xuống nguồn mới nhất từ trang web accel-ppp.
wget http://downloads.sourceforge.net/project/accel-ppp/accel-ppp-1.9.0.tar.bz2
tar -xjf accel-ppp-1.9.0.tar.bz2
mkdir accel-ppp-build
cd accel-ppp-build
Định cấu hình accel-ppp với hỗ trợ bán kính.
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DRADIUS=TRUE -DSHAPER=TRUE ../accel-ppp-1.9.0
Sau đó, bây giờ chúng ta có thể cài đặt accel-ppp.
make && make install
Tạo tệp cấu hình mới ‘/etc/accel-ppp.conf’ và dán cấu hình bên dưới.
[modules]
log_file
log_syslog
pptp
l2tp
auth_mschap_v2
radius
ippool
[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4
[ppp]
verbose=3
min-mtu=1280
mtu=1400
mru=1400
mppe=prefer
ipv4=require
ipv6=deny
lcp-echo-interval=20
lcp-echo-timeout=120
[pptp]
bind=50.31.0.253
echo-interval=30
mppe=prefer
ip-pool=pool1
verbose=3
[l2tp]
bind=50.31.0.253
hello-interval=60
mppe=prefer
ip-pool=pool2
verbose=3
[dns]
dns1=8.8.8.8
dns2=8.8.4.4
[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=sample_server
nas-ip-address=50.31.0.253
server=50.31.1.57,this_is_radius_secret,auth-port=1812,acct-port=1813,req-limit=0,fail-time=0,weight=1000
acct-interim-interval=500
acct-on=1
verbose=1
interim-verbose=1
[client-ip-range]
0.0.0.0/0
[ip-pool]
gw-ip-address=10.0.0.1
10.31.3.3-254,pool1
10.31.4.3-254,pool2
[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
level=5
Lưu file và thoát.
Để chạy accel-ppp, chúng tôi thực hiện.
accel-pppd -d -c /etc/accel-ppp.conf
Ok vậy là đã xong bạn có thể kết nối với máy chủ bằng IKEv2, IPSec, L2TP / IPSec và PPTP từ thiết bị Windows, iOS, Linux và Android.
Leave a Reply