Hướng dẫn cài đặt máy chủ VPN đa giao thức sử dụng SoftEther

2 năm trước

 

Giới thiệu 

Bài viét hướng dẫn cách cài đặt và cấu hình máy chủ VPN đa giao thức sử dụng SoftEther. Chúng ta có thể cấu hình OpenVPN và L2TP thông qua IPSec và SSTP VPN Server trên Linux

SoftEther là gì?

SoftEther VPN là một trong những phần mềm VPN đa giao thức mạnh mẽ và dễ sử dụng nhất trên thế giới, được thực hiện bởi những người tốt tại Đại học Tsukuba, Nhật Bản. Nó chạy trên Windows, Linux, Mac, FreeBSD và Solaris và là phần mềm miễn phí và mã nguồn mở. Bạn có thể sử dụng SoftEther cho bất kỳ mục đích sử dụng cá nhân hoặc thương mại nào mà không mất phí.

Bước 1: Tạo một máy chủ ảo

Đầu tiên, bạn cần tạo ra một CloudServer của ViCloud. Như đã đề cập trong trang web của SoftEther, SoftEther sẽ làm việc trên hầu hết mọi bản phân phối Linux với kernel v2.4 hoặc cao hơn ,; tuy nhiên bạn nên chọn một trong các bản phân phối này: CentOS, Fedora hoặc Red Hat Enterprise Linux.

 

Cá nhân tôi đã thử trên Ubuntu, CentOS và Fedora với cả 2 bản 32 và 64 bit và chúng hoạt động tốt

 

Bước 2: Update phần mềm máy chủ của bạn

Dùng command bên dưới để update bản mới nhất của gói phần mềm máy chủ của bạn:

Debian / Ubuntu:

apt-get update && apt-get upgrade

CentOS / Fedora:

yum upgrade
 

Bước 3: Download SoftEther

Bạn có thể download bản mới nhất của SoftEther cho Linux từ website của họ:

Download SoftEther

 Thật không may, không có cách nào để có được phiên bản mới nhất thông qua trình quản lý gói (hoặc thậm chí sử dụng một url duy nhất) vào lúc này. Vì vậy, bạn phải duyệt trang web của họ bằng trình duyệt trên máy tính để bàn để tải xuống gói. Có một vài cách để giải quyết vấn đề này: Đầu tiên, duyệt trang web của họ trên máy tính của riêng bạn và sau đó tùy thuộc vào cấu hình máy chủ của bạn (OS, x86 / x64, v.v.) tìm liên kết đến gói thích hợp rồi sử dụng wget để tải xuống gói cho máy chủ của bạn. Ngoài ra, bạn có thể sử dụng trình duyệt web dựa trên thiết bị đầu cuối như lynx để duyệt trang web SoftEther và tải xuống gói phù hợp.

Sau đây là hướng dẫn sử dụng lynx:

Đầu tiên bạn cần cài đặt lynx trên máy chủ của bạn:

Debian / Ubuntu:

apt-get install lynx -y

CentOS / Fedora:

yum install lynx -y

Dùng command bên dưới để duyệt trang web của SoftEther:

lynx http://www.softether-download.com/files/softether/

Browsing SoftEther Files List Using Lynx

 

Trang này chứa tất cả các phiên bản của SoftEther có sẵn. Chọn phiên bản bạn muốn (trong hướng dẫn này chúng tôi sử dụng v2.00-9387-rtm-2013.09.16) và sau đó nhấn Enter để đi đến liên kết. Bây giờ chọn Linux và trong trang tiếp theo chọn SoftEther VPN Server. Tùy thuộc vào kiến ​​trúc phần cứng máy chủ của bạn, chọn một gói;  32bit - Intel x86 64bit - Intel x64 hoặc AMD64 hoạt động cho các CloudServer 32 bit hoặc 64bit của ViCloud. Cuối cùng tải xuống tệp tar từ trang tiếp theo bằng cách nhấn phím "D" trên liên kết và chọn "Save to disk" khi Lynx hỏi. Sau khi tệp được lưu, chúng ta có thể nhấn "Q" để thoát khỏi Lynx và tiếp tục cài đặt.

Bước 4: Cài đặt và cấu hình SoftEther

Bây giờ chúng ta phải trích xuất gói mà chúng tôi đã nhận được từ trang tải xuống SoftEther và biên dịch nó. Gói được sử dụng trong hướng dẫn này được đặt tên là softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz vì vậy chúng tôi sẽ giải nén nó bằng cách sử dụng lệnh dưới đây:

 tar xzvf softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz

Sau khi giải nén nó, một thư mục có tên B sẽ được tạo trong thư mục làm việc. Để biên dịch SoftEther, các công cụ và gói sau phải được cài đặt trên máy chủ của bạn:

makegccbinutils (gcc)libc (glibc)zlibopensslreadline, and ncurses

Hãy chắc chắn rằng chúng được cài đặt. Bạn có thể cài đặt tất cả các gói cần thiết để xây dựng SoftEther bằng cách sử dụng lệnh dưới đây:

 

Debian / Ubuntu:

apt-get install build-essential -y

CentOS / Fedora:

yum groupinstall "Development Tools"

Lưu ý: rên Fedora, tôi đã phát hiện ra rằng không thể cài đặt gói gcc bằng command bên trên nên chúng ta sẽ phải cài đặt nó theo cách thủ công sử dụng yum install gcc

Khi tất cả những gói cần thiết đã được cài đặt, chúng ta sẽ biên dịch SoftEther sử dụng command sau:

Đầu tiên "cd" vào thư mục vpnserver:

cd vpnserver

chạy "make" để biên dịch SoftEther vào file thực thi:

make

SoftEther License Agreement

SoftEther sẽ yêu cầu bạn đọc và đồng ý với Thỏa thuận Cấp phép của nó. Chọn 1 để đọc thỏa thuận, một lần nữa để xác nhận đã đọc và cuối cùng đồng ý với Thỏa thuận cấp phép.

SoftEther hiện đã được biên dịch và được tạo thành các tệp thực thi (vpnserver và vpncmd). Nếu quá trình không thành công, hãy kiểm tra xem bạn đã cài đặt tất cả các gói yêu cầu chưa.

Bây giờ SoftEther đã được biên dịch, chúng ta có thể di chuyển thư mục vpnserver đến một nơi khác, ở đây chúng ta chuyển nó sang usr / local:

 

cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/

Sau đó thay đổi quyền của file để bảo vệ chúng:

chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd

Nếu bạn thích SoftEther để bắt đầu như một dịch vụ khi khởi động, hãy tạo một tệp có tên vpnserver trong thư mục /etc/init.d và thay đổi nó thành:

Đầu tiên tạo file và mở nó sử dụng vi hoặc nano:

vi /etc/init.d/vpnserver

Dán dòng dưới đây vào file:

#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

Cuối cùng lưu và đóng file bằng cách nhấn phím esc và gõ :wq để đóng.

Chúng ta sẽ phải tạo một thư mục tại  /var/lock/subsys nếu nó không hoạt động:

mkdir /var/lock/subsys

Thay đổi quyền cho dòng lệnh khởi động và chạy vpserver sử dụng command bên dưới:

chmod 755 /etc/init.d/vpnserver && /etc/init.d/vpnserver start

Sử dụng command bên dưới để khởi động:

Debian / Ubuntu:

update-rc.d vpnserver defaults

CentOS / Fedora:

chkconfig --add vpnserver 

Máy chủ SoftEther VPN đã được cài đặt và cấu hình để khởi động. Cuối cùng bạn phải kiểm tra xem liệu rằng máy chủ VPN có đang chạy hay không:

cd /usr/local/vpnserver
./vpncmd

Nhấn 3 để chọn Use of VPN Tools rồi sau đó gõ:

check

Nếu tất cả các kiểm tra vượt qua, thì máy chủ của bạn đã sẵn sàng để trở thành máy chủ SoftEther VPN và bạn có thể chuyển sang bước tiếp theo. Nhập "exit" để thoát khỏi Công cụ VPN. VPN Tools.

Có hai cách để cấu hình máy chủ SoftEther VPN: bạn có thể sử dụng trình quản lý máy chủ dựa trên Windows để quản lý và cấu hình bất kỳ số lượng máy chủ SoftEther VPN nào từ xa; hoặc sử dụng vpncmdtool cài sẵn để định cấu hình máy chủ của bạn.

Bạn có thể tải SoftEther Server Manager cho Windows bằng cách sử dụng trang web của họ và thực hiện cấu hình bằng GUI mà nó cung cấp, đó là một cách thích hợp hơn nếu bạn là người dùng Windows.

Ở đây chúng tôi sử dụng vpncmd để cấu hình máy chủ VPN của chúng tô

 

Bước 5: Thay đổi mẩ khẩu admin

Bây giờ bạn đã cài đặt máy chủ SoftEther VPN, bạn phải gán mật khẩu admin để sử dụng với SoftEther. Bạn có thể làm điều này bằng cách sử dụng vpncmd, đó là công cụ quản trị dựa trên dòng lệnh của SoftEther:

./vpncmd

Nhấn 1 để chọn  "Management of VPN Server or VPN Bridge", sau đó nhấn Enter mà không cần nhập bất kỳ thứ gì để kết nối với máy chủ localhost và nhấn Enter mà không nhập bất kỳ thứ gì để kết nối với máy chủ bằng chế độ quản trị máy chủ

Dùng command bên dưới để thay đổi mật khẩu admin:

ServerPasswordSet
 

Bước 6: Tạo một Virtual Hub

Để dùng SoftEther, chúng ta phải tạo một Virtual Hub. Sau đây là một ví dụ chúng tôi tạo một hub tên là VPN để nhập command bên dưới trong công cụ vpncmd:

HubCreate VPN

iếp theo bạn sẽ được yêu cầu nhập mật khẩu quản trị viên cho hub. Mật khẩu này sẽ được sử dụng bất cứ khi nào bạn không đăng nhập vào khi đang ở mode server admin và nếu bạn muốn quản lí một hub cụ thể nào đó.

Bây giờ chọn Virtual Hub bạn vừa tạo với command sau:

Hub VPN
 

Bước 7: Bật SecureNAT

Có hai cách để kết nối các hub của bạn với mạng máy chủ: sử dụng kết nối Local Bridge hoặc sử dụng chức năng SecureNAT.

Bạn có thể sử dụng từng cái riêng biệt, nhưng việc sử dụng hai cái này lại với nhau sẽ gây ra vấn đề. 

Chúng tôi sử dụng SecureNAT, rất dễ cài đặt và hoạt động khá tốt trong hầu hết các trường hợp. Bạn cũng có thể sử dụng Local Bridge, nhưng sau đó bạn phải cài đặt và cấu hình DHCP Server.

SecureNAT là sự kết hợp của Virtual NAT và chức năng DHCP Server. Bạn có thể bật SecureNAT sử dụng command bên dưới:

SecureNatEnable
 

Bước 8: Tạo và quản lí người dùng

 Bây giờ chúng ta phải tạo người dùng cho Virtual Hub để sử dụng VPN. Chúng ta có thể tạo người dùng cho Virtual Hub bằng cách sử dụng lệnh UserCreate và xem danh sách người dùng hiện tại của UserList. Người dùng có thể được thêm vào các nhóm và thậm chí có thể có các loại chế độ xác thực khác nhau (bao gồm: Mật khẩu, Chứng chỉ, RADIUS, NTLM, v.v.).

Bằng cách dùng UserCreate húng ta có thể tạo người dùng tên là "test"

UserCreate test

Loại xác thực mặc định là mật khẩu những chúng ta có thể đổi sang dạng khác sử dụng command bên dưới:

UserNTLMSet cho NT Domain Authentication

UserPasswordSet cho Password Authentication

UserAnonymousSet cho Anonymous Authentication

UserRadiusSet cho RADIUS Authentication

UserCertSet cho Individual Certificate Authentication

UserSignedSet cho Signed Certificate Authentication

In this tutorial we use Password as the user authentication mode for our test user, so using this command set a password for user test:

UserPasswordSet test
 

Bước 9: Cài đặt  L2TP/IPSec

Để mở máy chủ L2TP/IPsec VPN, bạn có thể dùng command bên dưới:

IPsecEnable

Sau khi nhập lệnh này, bạn sẽ được yêu cầu cấu hình các chức năng của máy chủ L2TP:

Enable L2TP over IPsec Server Function: Chọn yes để bật L2TP VPN qua IPSec với mã hóa khóa được chia sẻ trước đó. Bây giờ bạn có thể tạo kết nối VPN tới máy chủ này bằng các thiết bị iPhone, Android, Windows và Mac OS X.

Enable Raw L2TP Server Function: Tính năng này sẽ bật VPN L2TP cho các client không có mã hóa IPSec.

Enable EtherIP / L2TPv3 over IPsec Server Function: Các bộ định tuyến tương thích với EtherIP / L2TPv3 trên IPsec có thể kết nối với máy chủ này bằng cách bật chức năng này.

Pre Shared Key for IPsec: Nhập khóa chia sẻ trước để sử dụng với L2TP VPN.

Default Virtual HUB in a case of omitting the HUB on the Username: Người dùng phải chỉ định Virtual Hub mà họ đang cố gắng kết nối bằng cách sử dụng Username@TargetHubName làm tên người dùng của họ khi kết nối. Tùy chọn này chỉ định Virtual Hub nào sẽ được sử dụng nếu người dùng không cung cấp thông tin đó. Trong trường hợp của chúng tôi, hãy nhập VPN

 

Bước 10: Cài đặt SSTP/OpenVPN

SoftEther có thể sao chép các chức năng của Microsoft SSTP VPN Server và OpenVPN Server. Nhưng trước khi chúng tôi kích hoạt chúng, chúng tôi phải tạo chứng chỉ SSL tự ký cho máy chủ của chúng tôi. Bạn có thể sử dụng lệnh openssl hoặc SoftEther để tạo chứng chỉ SSL.

Ở đây chúng tôi sử dụng lệnh ServerCertRegenerate của SoftEther để tạo và đăng ký chứng chỉ SSL tự ký cho máy chủ của chúng tôi. Đối số được truyền cho lệnh là CN (Common Name) và phải được đặt thành tên máy chủ (FQDN) hoặc địa chỉ IP của bạn:

ServerCertRegenerate [CN]

Lưu ý 1: SoftEther cũng đi kèm với chức năng Dynamic DNS tích hợp, có thể gán một tên máy chủ duy nhất và vĩnh viễn cho máy chủ của bạn. Bạn có thể sử dụng tên máy chủ được gán bởi hàm này để tạo Chứng chỉ SSL và kết nối với máy chủ của bạn.

Lưu ý 2: Nếu bạn đã có chứng chỉ SSL hoặc bạn vừa tạo mối cái sử dụng openssl thì nó có thể được thêm vào máy chử sử dụng command ServerCertSet.

Bây giờ chúng ta đã tạo chứng chỉ, chúng ta sẽ phải tải xuống chứng chỉ cho client và thêm chúng dưới dạng đánh tin cậy. Bằng cách sử dụng command dưới đây, chúng ta có thể lưu máy chủ và một file có tên cert.cer:

ServerCertGet ~/cert.cer

Giờ bạn có thể download chứng chỉ cho client của bạn sử dụng FileZilla hoặc các SFTP Client khác.

 Giờ bạn đã tạo và đăng kí chứng chỉ SSL cho server của chúng ta, chúng ta có thể bật chức năng SSTP với command này:

SstpEnable yes

Và để bật OpenVPN:

OpenVpnEnable yes /PORTS:1194

Lưu ý: Cổng mặc định của OpenVPN là 1194, nhưng bạn có thể thay đổi thành bất cứ cổng nào mà bạn muốn bằng cách thay đổi /PORTS:1194 thành cổng hoặc các cổng bạn muốn.

Sau khi bạn đã bật OpenVPN, bạn có thể download file cấu hình mẫu cho client OpenVPN. Sau đây chúng tôi tạo một file cấu hình VPN mẫu và lưu nó vào  myopenvpnconfig.zip:

OpenVpnMakeConfig ~/my_openvpn_config.zip

Sau đó bạn có thể download nó sử dụng bất cứ client SFTP nào như FileZilla và áp dụng nó cho những client OpenVPN của bạn.

 SoftEther cũng cung cấp một phần mềm VPN Client chuyên dụng cho cả Windows và Linux. Nó hỗ trợ một giao thức cụ thể SoftEther được gọi là Ethernet qua HTTPS hoặc SSL-VPN rất mạnh mẽ. Nó sử dụng giao thức HTTPS và cổng 443 để thiết lập đường hầm VPN và vì cổng này nổi tiếng, hầu như tất cả tường lửa, máy chủ proxy và NAT đều có thể chuyển gói. Để sử dụng giao thức SSL-VPN, bạn phải tải xuống và cài đặt SoftEther VPN Client, có thể lấy từ trang web của họ.

 

Bước 11: Kết nối tới máy chủ SoftEther VPN (Cấu hình Client)

Vì SoftEther là một máy chủ VPN đa giao thức, có nhiều cách để kết nối với nó như một máy khách. Bạn có thể chọn bất kỳ giao thức nào để thiết lập kết nối an toàn tới máy chủ của bạn, bao gồm L2TP, SSTP, OpenVPN và giao thức độc quyền với giao thức SoftEther có tên SSL-VPN.

Tùy thuộc vào hệ điều hành và cấu hình máy khách, bạn có thể sử dụng bất kỳ giao thức nào đã đề cập. Tuy nhiên, tôi thích sử dụng SSL-VPN vì nó an toàn và nhanh chóng, và cũng như đã đề cập trước đó vì nó sử dụng một cổng thông dụng và nổi tiếng (443 hoặc https-port),nó có thể xâm nhập hầu hết các tường lửa

Ở đây chúng tôi sử dụng phần mềm máy khách VPN riêng của SoftEther để kết nối với máy chủ của chúng tôi: Trước tiên hãy tải xuống Máy khách SoftEther VPN cho Linux từ trang web của SoftEther. Chúng tôi có thể tải xuống bằng trình duyệt lynx. Nhập lệnh này để mở trang tải xuống của SoftEther:

 

.

lynx http://www.softether-download.com/files/softether/

 

Sau đó, cũng giống như bạn đã làm khi tải xuống phần mềm Máy chủ, hãy chọn phiên bản mới nhất (Ở đây chúng tôi đã sử dụng v2.00-9387-rtm-2013.09.16). Bây giờ chọn Linux và trong trang tiếp theo chọn SoftEther VPN Client. Bây giờ tùy thuộc vào cấu trúc phần cứng của hệ thống, chọn một gói (32bit - Intel x86 và 64bit - Intel x64 hoặc AMD64 hoạt động cho các CloudServer 32 bit hoặc 64bit của ViCloud). Cuối cùng tải xuống tệp tar từ trang tiếp theo bằng cách nhấn phím "D" trên liên kết và chọn Save to disk khi Lynx hỏi. Sau khi tệp được lưu, nhấn "Q" để thoát khỏi Lynx.

.

Extract file tar bạn vừa download sử dụng command:

tar xzvf softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz

Lưu ý: Thay đổi softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz thành tên file bạn vừa tải.

Bây giờ cũng giống như chúng ta đã làm với máy chủ, chúng ta phải biên dịch và tạo vpnclient một tệp thực thi bằng cách chạy các lệnh này (hãy chắc chắn rằng bạn có các công cụ phát triển được đề cập trong Bước 4 được cài đặt trên máy khách):

cd vpnclient
make

Nhập 1 3 lần khi bạn được yêu cầu đọc và chập nhận các Điều lệ và sau đó chuyển các file tới mục khác và thay đổi quyền truy cập:

cd ..
mv vpnclient /usr/local
cd /usr/local/vpnclient/
chmod 600 *
chmod 700 vpnclient
chmod 700 vpncmd

Sau đó khởi động dịch vụ client VPN sử dụng command sau:

./vpnclient start

Để cấu hình client của chúng ta, chúng ta sẽ dùng vpncmd. Khi bạn đang trong thư mục vpnclient, nhập command này để chạy công cụ vpncmd:

./vpncmd

Chọn 2 để nhập mode Management of VPN Client, sau đó nhận enter để kết nối và quản lí client VPN cục bộ bạn vừa cài đặt 

SoftEther sử dụng Virtual Adapters để thiết lập kết nối đến máy chủ VPN sử dụng command này để tạo một Virtual Adapter tên là myadapter:

NicCreate myadapter

Giờ dùng command này tạo một kết nối VPN mới tên là myconnection:

AccountCreate myconnection

Sau đó nhập số IP và số cổng của máy chủ SoftEther VPN của bạn. Số cổng có thể là bất kỳ cổng nào bạn đã đặt làm nghe trên máy chủ của mình. Theo mặc định, SoftEther lắng nghe trên bốn cổng sau: 443, 992, 1194, 5555. Dưới đây là ví dụ nơi chúng tôi sử dụng cổng 443

Destination VPN Server Host Name and Port Number: [VPN Server IP Address]:443

Lưu ý: Thay vì địa chỉ IP, bạn cũng có thể nhập tên miền mà đủ điều kiện của máy chủ (FQDN)

Giờ nhập tên của Virtual Hub bạn đang cố kết nối trên máy chủ của bạn. Trong trường hợp này, nó được đặt tên là VPN:

Destination Virtual Hub Name: VPN

Sau đó nhập tên người dùng bạn vừa tạo trong máy chủ của bạn. Chúng ta đã tạo người dùng gọi là test:

Connecting User Name: test

Cuối cùng nhập tên của Virtual Hub bạn vừa tạo:

Used Virtual Network Adapter Name: myadapter

Bây giờ kết nối VPN của chúng tôi đã được tạo và sẵn sàng kết nối. Bước cuối cùng là thay đổi chế độ Xác thực thành Mật khẩu vì đó là cách chúng tôi đã định cấu hình chế độ xác thực của người dùng trong máy chủ:

AccountPasswordSet myconnection

Khi được yêu cầu, nhập standard với tư cách là phương pháp xác thực mật khẩu:

Specify standard or radius: standard

Cuối cùng bạn có thể kết nối-- dùng command này để thực hiện:

AccountConnect myconnection

Bạn có thể thấy trạng thái kết nối sử dụng command này:

AccountStatusGet myconnection

Lưu ý: Để giúp kết nối của bạn với máy chủ an toàn hơn và ngăn chặn các cuộc tấn công trung gian, tốt nhất bạn nên sử dụng chứng chỉ SSL để xác định máy chủ của mình. Điều này có thể được thực hiện dễ dàng bằng SoftEther. Để làm điều đó, trước tiên bạn phải tải xuống tệp cert cho ứng dụng khách của mình như được giải thích trong Bước 10 và sau đó sử dụng CertAdd thêm tệp đó vào chứng chỉ đáng tin cậy của khách hàng của bạn. Sau đó, sử dụng lệnh AccountServerCertEnable bật xác minh chứng chỉ cho kết nối VPN của bạn.

 

Kết luận

Trong phần này, chúng tôi đã giới thiệu cho các bạn về quá trình thiết lập một SoftEther VPN Server bằng vpncmd, đây là tiện ích quản trị dòng lệnh được cung cấp bởi SoftEther. Tất cả những điều được thực hiện ở đây cũng có thể được thực hiện bằng SoftEther Server Manager cho Windows, và thậm chí còn dễ dàng hơn khi cài đặt SoftEther VPN Server bằng công cụ đó. Vì vậy, tôi khuyên bạn nên sử dụng nó nếu bạn có một máy Windows.

Xong. Chúng tôi đã cài đặt và cấu hình thành công máy chủ VPN đa giao thức bằng SoftEther. Giờ đây, khách hàng có thể kết nối với máy chủ của chúng tôi bằng L2TP, IPSec, SSTP, OpenVPN, v.v.