1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-11-25 02:49:52 +03:00

Merge remote-tracking branch 'upstream/master'

synchronized with upstream
This commit is contained in:
you xiaojie 2017-12-26 16:27:02 +08:00
commit 13f8fc6e37
11 changed files with 137 additions and 207 deletions

10
.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
.cproject
.project
.settings/
CMakeLists.txt
Makefile
bin/
cmake-build-debug/
src/bin/BuiltHamcoreFiles/
tmp/

12
.travis.yml Normal file
View File

@ -0,0 +1,12 @@
sudo: required
dist: trusty
os: linux
language: c
compiler: [ gcc, clang ]
script:
- ./configure
- make

View File

@ -139,6 +139,9 @@ CONTRIBUTORS on GitHub:
- Guanzhong Chen - Guanzhong Chen
https://github.com/quantum5 https://github.com/quantum5
- Nguyễn Hồng Quân
https://github.com/hongquan
JOIN THE SOFTETHER VPN DEVELOPMENT JOIN THE SOFTETHER VPN DEVELOPMENT
---------------------------------- ----------------------------------

View File

@ -1,7 +1,15 @@
# SoftEther VPN
[![Build Status](https://travis-ci.org/SoftEtherVPN/SoftEtherVPN.svg?branch=master)](https://travis-ci.org/SoftEtherVPN/SoftEtherVPN)
---
SoftEther VPN (Developer Edition Master Repository) SoftEther VPN (Developer Edition Master Repository)
- An Open-Source Cross-platform Multi-protocol VPN Program - An Open-Source Cross-platform Multi-protocol VPN Program
http://www.softether.org/ http://www.softether.org/
This repository has experimental codes. Pull requests are welcome. This repository has experimental codes. Pull requests are welcome.
Stable Edition is available on Stable Edition is available on
@ -39,8 +47,25 @@ by the single SoftEther VPN Server program.
More details on http://www.softether.org/. More details on http://www.softether.org/.
SOFTETHER VPN ADVANTAGES # BOARD MEMBERS OF THIS REPOSITORY
------------------------
Daiyuu Nobori (Since Jan 2, 2014)
https://github.com/dnobori
Moataz Elmasry (Since Nov 6, 2017)
https://github.com/moatazelmasry2
Zulyandri Zardi (Since Nov 6, 2017)
https://github.com/zulzardi
Alex Maslakov (Since Nov 6, 2017)
https://github.com/GildedHonour
# SOFTETHER VPN ADVANTAGES
- Supporting all popular VPN protocols by the single VPN server: - Supporting all popular VPN protocols by the single VPN server:
SSL-VPN (HTTPS) SSL-VPN (HTTPS)
@ -79,8 +104,7 @@ SOFTETHER VPN ADVANTAGES
- More details at http://www.softether.org/. - More details at http://www.softether.org/.
GETTING STARTED # GETTING STARTED
---------------
Visit the SoftEther VPN Project official web site at first: Visit the SoftEther VPN Project official web site at first:
http://www.softether.org/ http://www.softether.org/
@ -90,11 +114,10 @@ installers from:
http://www.softether-download.com/ http://www.softether-download.com/
To build from the source, To build from the source,
see "BUILD_UNIX.TXT" or "BUILD_WINDOWS.TXT" files. see [BUILD_UNIX](src/BUILD_UNIX.md) or [BUILD_WINDOWS](src/BUILD_WINDOWS.md) files.
HOW TO DOWNLOAD THE LATEST SOURCE CODE PACKAGE # HOW TO DOWNLOAD THE LATEST SOURCE CODE PACKAGE
----------------------------------------------
Go to http://www.softether-download.com/ and you can find the latest Go to http://www.softether-download.com/ and you can find the latest
source-code package file in both .ZIP and .TAR.GZ format. source-code package file in both .ZIP and .TAR.GZ format.
@ -102,8 +125,7 @@ source-code package file in both .ZIP and .TAR.GZ format.
This is the easiest way to obtain the source code of SoftEther VPN. This is the easiest way to obtain the source code of SoftEther VPN.
HOW TO GET THE LATEST SOURCE CODE TREE FOR DEVELOPERS # HOW TO GET THE LATEST SOURCE CODE TREE FOR DEVELOPERS
-----------------------------------------------------
If you are an open-source developer, visit our GitHub repository: If you are an open-source developer, visit our GitHub repository:
https://github.com/SoftEtherVPN/SoftEtherVPN/ https://github.com/SoftEtherVPN/SoftEtherVPN/
@ -111,17 +133,40 @@ https://github.com/SoftEtherVPN/SoftEtherVPN/
You can download the up-to-date source-code tree of SoftEther VPN You can download the up-to-date source-code tree of SoftEther VPN
from GitHub. You may make your own fork project from our project. from GitHub. You may make your own fork project from our project.
## Requirements
### 1. Debian/Ubuntu
- gcc
- libncurses-dev
- libreadline-dev
- make
- openssl-dev
### 2. Redhat/CentOS
- gcc
- openssl-devel
- make
- ncurses-devel
- readline-devel
## Compile and install
The download and build instruction is following: The download and build instruction is following:
```sh
$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git $ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git
$ cd SoftEtherVPN $ cd SoftEtherVPN
$ ./configure $ ./configure
$ make $ make
$ make install $ make install
```
TO CIRCUMVENT YOUR GOVERNMENT'S FIREWALL RESTRICTION
----------------------------------------------------
# TO CIRCUMVENT YOUR GOVERNMENT'S FIREWALL RESTRICTION
Because SoftEther VPN is overly strong tool to build a VPN tunnel, Because SoftEther VPN is overly strong tool to build a VPN tunnel,
some censorship governments want to block your access to the source code some censorship governments want to block your access to the source code
@ -135,13 +180,13 @@ on all the following open-source repositories:
https://github.com/SoftEtherVPN/SoftEtherVPN/ https://github.com/SoftEtherVPN/SoftEtherVPN/
To fetch the source code from GitHub: To fetch the source code from GitHub:
```
$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git $ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git
```
We hope that you can reach one of the above URLs at least! We hope that you can reach one of the above URLs at least!
SOURCE CODE CONTRIBUTION # SOURCE CODE CONTRIBUTION
------------------------
Your contribution to SoftEther VPN Project is much appreciated. Your contribution to SoftEther VPN Project is much appreciated.
Please send patches to us through GitHub. Please send patches to us through GitHub.
@ -149,8 +194,7 @@ Read the SoftEther VPN Patch Acceptance Policy in advance:
http://www.softether.org/5-download/src/9.patch http://www.softether.org/5-download/src/9.patch
DEAR SECURITY EXPERTS # DEAR SECURITY EXPERTS
---------------------
If you find a bug or a security vulnerability please kindly inform us If you find a bug or a security vulnerability please kindly inform us
about the problem immediately so that we can fix the security problem about the problem immediately so that we can fix the security problem
@ -164,8 +208,7 @@ inquiry address. If you need technical assistance, please visit
http://www.softether.org/ and ask your question on the users forum. http://www.softether.org/ and ask your question on the users forum.
DISCLAIMER # DISCLAIMER
----------
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

View File

@ -1,125 +0,0 @@
How to build SoftEther VPN for UNIX
===================================
Requirements
------------
You need to install the following software to build SoftEther VPN for UNIX.
- Linux, FreeBSD, Solaris or Mac OS X.
- GNU Compiler Collectipon (gcc) and binary utilities.
- GNU Make (gmake).
- GNU C Library (glibc).
- POSIX Threads (pthread).
- OpenSSL (crypto, ssl).
- libiconv.
- readline.
- ncurses.
For example, the following commands help you to install the above programs
on Fedora or CentOS Linux:
$ yum -y groupinstall "Development Tools"
$ yum -y install readline-devel ncurses-devel openssl-devel
How to Build
------------
To build the programs from the source code, run the following commands:
$ ./configure
$ make
If any error occurs, please check the above requirements.
How to Install SoftEther VPN Server, Bridge or Client
-----------------------------------------------------
To install the vpnserver, vpnbridge and vpnclient programs into the
/usr/bin directory, run the following as the root user:
# make install
After the installation will complete successfully:
- Execute 'vpnserver start' to run the SoftEther VPN Server background service.
- Execute 'vpnbridge start' to run the SoftEther VPN Bridge background service.
- Execute 'vpnclient start' to run the SoftEther VPN Client background service.
- Execute 'vpncmd' to run SoftEther VPN Command-Line Utility to configure
VPN Server, VPN Bridge or VPN Client.
- You can also use VPN Server/Client Manager GUI Tool on other Windows PC to
connect to VPN services remotely.
You can download the GUI Tools from http://www.softether-download.com/.
How to Run SoftEther VPN Server for Test
----------------------------------------
To start the SoftEther VPN Server background service, run the following:
$ bin/vpnserver/vpnserver start
To stop the service, run the following:
$ bin/vpnserver/vpnserver stop
To configure the running SoftEther VPN Server service,
you can use SoftEther VPN Command Line Management Utility as following:
$ bin/vpncmd/vpncmd
Or you can also use VPN Server Manager GUI Tool on other Windows PC to
connect to the VPN Server remotely. You can download the GUI Tool
from http://www.softether-download.com/.
How to Run SoftEther VPN Bridge for Test
----------------------------------------
To start the SoftEther VPN Bridge background service, run the following:
$ bin/vpnbridge/vpnbridge start
To stop the service, run the following:
$ bin/vpnbridge/vpnbridge stop
To configure the running SoftEther VPN Bridge service,
you can use SoftEther VPN Command Line Management Utility as following:
$ bin/vpncmd/vpncmd
Or you can also use VPN Server Manager GUI Tool on other Windows PC to
connect to the VPN Bridge remotely. You can download the GUI Tool
from http://www.softether-download.com/.
How to Run SoftEther VPN Client for Test
----------------------------------------
To start the SoftEther VPN Client background service, run the following:
$ bin/vpnclient/vpnclient start
To stop the service, run the following:
$ bin/vpnclient/vpnclient stop
To configure the running SoftEther VPN Client service,
you can use SoftEther VPN Command Line Management Utility as following:
$ bin/vpncmd/vpncmd
Or you can also use VPN Client Manager GUI Tool on other Windows PC to
connect to the VPN Client remotely. You can download the GUI Tool
from http://www.softether-download.com/.
************************************
Thank You Using SoftEther VPN !
By SoftEther VPN Open-Source Project
http://www.softether.org/

View File

@ -19,9 +19,10 @@ You need to install the following software to build SoftEther VPN for UNIX.
For example, the following commands help you to install the above programs For example, the following commands help you to install the above programs
on Fedora or CentOS Linux: on Fedora or CentOS Linux:
```
$ yum -y groupinstall "Development Tools" $ yum -y groupinstall "Development Tools"
$ yum -y install readline-devel ncurses-devel openssl-devel $ yum -y install readline-devel ncurses-devel openssl-devel
```
How to Build How to Build
@ -29,8 +30,10 @@ How to Build
To build the programs from the source code, run the following commands: To build the programs from the source code, run the following commands:
```
$ ./configure $ ./configure
$ make $ make
```
If any error occurs, please check the above requirements. If any error occurs, please check the above requirements.
@ -41,7 +44,9 @@ How to Install SoftEther VPN Server, Bridge or Client
To install the vpnserver, vpnbridge and vpnclient programs into the To install the vpnserver, vpnbridge and vpnclient programs into the
/usr/bin directory, run the following as the root user: /usr/bin directory, run the following as the root user:
```
# make install # make install
```
After the installation will complete successfully: After the installation will complete successfully:
@ -61,16 +66,22 @@ How to Run SoftEther VPN Server for Test
To start the SoftEther VPN Server background service, run the following: To start the SoftEther VPN Server background service, run the following:
```
$ bin/vpnserver/vpnserver start $ bin/vpnserver/vpnserver start
```
To stop the service, run the following: To stop the service, run the following:
```
$ bin/vpnserver/vpnserver stop $ bin/vpnserver/vpnserver stop
```
To configure the running SoftEther VPN Server service, To configure the running SoftEther VPN Server service,
you can use SoftEther VPN Command Line Management Utility as following: you can use SoftEther VPN Command Line Management Utility as following:
```
$ bin/vpncmd/vpncmd $ bin/vpncmd/vpncmd
```
Or you can also use VPN Server Manager GUI Tool on other Windows PC to Or you can also use VPN Server Manager GUI Tool on other Windows PC to
connect to the VPN Server remotely. You can download the GUI Tool connect to the VPN Server remotely. You can download the GUI Tool
@ -82,16 +93,22 @@ How to Run SoftEther VPN Bridge for Test
To start the SoftEther VPN Bridge background service, run the following: To start the SoftEther VPN Bridge background service, run the following:
```
$ bin/vpnbridge/vpnbridge start $ bin/vpnbridge/vpnbridge start
```
To stop the service, run the following: To stop the service, run the following:
```
$ bin/vpnbridge/vpnbridge stop $ bin/vpnbridge/vpnbridge stop
```
To configure the running SoftEther VPN Bridge service, To configure the running SoftEther VPN Bridge service,
you can use SoftEther VPN Command Line Management Utility as following: you can use SoftEther VPN Command Line Management Utility as following:
```
$ bin/vpncmd/vpncmd $ bin/vpncmd/vpncmd
```
Or you can also use VPN Server Manager GUI Tool on other Windows PC to Or you can also use VPN Server Manager GUI Tool on other Windows PC to
connect to the VPN Bridge remotely. You can download the GUI Tool connect to the VPN Bridge remotely. You can download the GUI Tool
@ -103,16 +120,22 @@ How to Run SoftEther VPN Client for Test
To start the SoftEther VPN Client background service, run the following: To start the SoftEther VPN Client background service, run the following:
```
$ bin/vpnclient/vpnclient start $ bin/vpnclient/vpnclient start
```
To stop the service, run the following: To stop the service, run the following:
```
$ bin/vpnclient/vpnclient stop $ bin/vpnclient/vpnclient stop
```
To configure the running SoftEther VPN Client service, To configure the running SoftEther VPN Client service,
you can use SoftEther VPN Command Line Management Utility as following: you can use SoftEther VPN Command Line Management Utility as following:
```
$ bin/vpncmd/vpncmd $ bin/vpncmd/vpncmd
```
Or you can also use VPN Client Manager GUI Tool on other Windows PC to Or you can also use VPN Client Manager GUI Tool on other Windows PC to
connect to the VPN Client remotely. You can download the GUI Tool connect to the VPN Client remotely. You can download the GUI Tool

View File

@ -1,44 +0,0 @@
How to build SoftEther VPN for Windows
======================================
Requirements
------------
You need to install the following software to build SoftEther VPN for Windows.
- Microsoft Windows XP, Vista, 7, 8 or later.
- Microsoft Visual Studio 2008 with the latest SP (SP1 9.0.30729.4462 QFE).
Make sure that you installed the x64 compiler and build tools.
* Note:
Visual Studio 2008 SP1 is required to build SoftEther VPN on Windows.
Please make sure that VS2008 'SP1' is installed.
Visual Studio 2010, 2012 or 2013 is currently not supported.
Visual Studio 2008 Express Edition is not supported.
Standard Edition, Professional Edition, Team System or Team Suite is
required.
Full Build Instructions
-----------------------
The following steps will build all SoftEther VPN program files, and also build
the installer packages of SoftEther VPN. It is very easy.
1. Run the "BuildAll.cmd" batch file in the "src" directory.
2. Wait until the building process will complete.
3. The built files are stored on the "output" directory.
Partly Build, Debug or Development Instructions on Visual Studio 2008
---------------------------------------------------------------------
If you are a programmer, you can open the SoftEther VPN solution file
with Visual Studio 2008 to customize. Open "src\SEVPN.sln" and enjoy it.
************************************
Thank You Using SoftEther VPN !
By SoftEther VPN Open-Source Project
http://www.softether.org/

View File

@ -183,8 +183,8 @@ void Enc_tls1_P_hash(const EVP_MD *md, const unsigned char *sec, int sec_len,
HMAC_CTX ctx_tmp_; HMAC_CTX ctx_tmp_;
ctx = &ctx_; ctx = &ctx_;
ctx_tmp = &ctx_tmp_; ctx_tmp = &ctx_tmp_;
Zero(ctx, sizeof(ctx)); Zero(ctx, sizeof(HMAC_CTX));
Zero(ctx_tmp, sizeof(ctx_tmp)); Zero(ctx_tmp, sizeof(HMAC_CTX));
#endif #endif
chunk=EVP_MD_size(md); chunk=EVP_MD_size(md);

View File

@ -422,6 +422,7 @@ $(INSTALL_BINDIR)vpncmd: bin/vpncmd/hamcore.se2 bin/vpncmd/vpncmd
@mkdir -p $(INSTALL_VPNCMD_DIR) @mkdir -p $(INSTALL_VPNCMD_DIR)
cp bin/vpncmd/hamcore.se2 $(INSTALL_VPNCMD_DIR)hamcore.se2 cp bin/vpncmd/hamcore.se2 $(INSTALL_VPNCMD_DIR)hamcore.se2
cp bin/vpncmd/vpncmd $(INSTALL_VPNCMD_DIR)vpncmd cp bin/vpncmd/vpncmd $(INSTALL_VPNCMD_DIR)vpncmd
chmod 644 $(INSTALL_VPNCMD_DIR)hamcore.se2
echo "#!/bin/sh" > $(INSTALL_BINDIR)vpncmd echo "#!/bin/sh" > $(INSTALL_BINDIR)vpncmd
echo $(INSTALL_VPNCMD_DIR)vpncmd '"$$@"' >> $(INSTALL_BINDIR)vpncmd echo $(INSTALL_VPNCMD_DIR)vpncmd '"$$@"' >> $(INSTALL_BINDIR)vpncmd
echo 'exit $$?' >> $(INSTALL_BINDIR)vpncmd echo 'exit $$?' >> $(INSTALL_BINDIR)vpncmd

View File

@ -25,13 +25,19 @@
#CC=gcc #CC=gcc
OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char -m64 ifeq ($(shell uname -m),aarch64)
M64:=
else
M64:=-m64
endif
OPTIONS_LINK_DEBUG=-g -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char $(M64)
OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64 OPTIONS_LINK_DEBUG=-g -fsigned-char $(M64) -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz
OPTIONS_LINK_RELEASE=-O2 -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char $(M64)
OPTIONS_LINK_RELEASE=-O2 -fsigned-char $(M64) -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz
INSTALL_BINDIR=/usr/bin/ INSTALL_BINDIR=/usr/bin/
INSTALL_VPNSERVER_DIR=/usr/vpnserver/ INSTALL_VPNSERVER_DIR=/usr/vpnserver/
@ -422,6 +428,7 @@ $(INSTALL_BINDIR)vpncmd: bin/vpncmd/hamcore.se2 bin/vpncmd/vpncmd
@mkdir -p $(INSTALL_VPNCMD_DIR) @mkdir -p $(INSTALL_VPNCMD_DIR)
cp bin/vpncmd/hamcore.se2 $(INSTALL_VPNCMD_DIR)hamcore.se2 cp bin/vpncmd/hamcore.se2 $(INSTALL_VPNCMD_DIR)hamcore.se2
cp bin/vpncmd/vpncmd $(INSTALL_VPNCMD_DIR)vpncmd cp bin/vpncmd/vpncmd $(INSTALL_VPNCMD_DIR)vpncmd
chmod 644 $(INSTALL_VPNCMD_DIR)hamcore.se2
echo "#!/bin/sh" > $(INSTALL_BINDIR)vpncmd echo "#!/bin/sh" > $(INSTALL_BINDIR)vpncmd
echo $(INSTALL_VPNCMD_DIR)vpncmd '"$$@"' >> $(INSTALL_BINDIR)vpncmd echo $(INSTALL_VPNCMD_DIR)vpncmd '"$$@"' >> $(INSTALL_BINDIR)vpncmd
echo 'exit $$?' >> $(INSTALL_BINDIR)vpncmd echo 'exit $$?' >> $(INSTALL_BINDIR)vpncmd