Thiết lập và cấu hình STRONGSWAN & ACCEL-PPP trên UBUNTU

Thiết lập và cấu hình STRONGSWAN & ACCEL-PPP trên UBUNTU

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.

Be the first to comment

Leave a Reply

Your email address will not be published.


*