1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2024-11-06 09:40:41 +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
https://github.com/quantum5
- Nguyễn Hồng Quân
https://github.com/hongquan
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)
- An Open-Source Cross-platform Multi-protocol VPN Program
http://www.softether.org/
This repository has experimental codes. Pull requests are welcome.
Stable Edition is available on
@ -39,8 +47,25 @@ by the single SoftEther VPN Server program.
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:
SSL-VPN (HTTPS)
@ -79,8 +104,7 @@ SOFTETHER VPN ADVANTAGES
- More details at http://www.softether.org/.
GETTING STARTED
---------------
# GETTING STARTED
Visit the SoftEther VPN Project official web site at first:
http://www.softether.org/
@ -90,11 +114,10 @@ installers from:
http://www.softether-download.com/
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
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.
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:
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
from GitHub. You may make your own fork project from our project.
The download and build instruction is following:
## 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:
```sh
$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git
$ cd SoftEtherVPN
$ ./configure
$ make
$ 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,
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/
To fetch the source code from GitHub:
```
$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git
```
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.
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
DEAR SECURITY EXPERTS
---------------------
# DEAR SECURITY EXPERTS
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
@ -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.
DISCLAIMER
----------
# DISCLAIMER
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
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
on Fedora or CentOS Linux:
```
$ yum -y groupinstall "Development Tools"
$ yum -y install readline-devel ncurses-devel openssl-devel
```
How to Build
@ -29,8 +30,10 @@ 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.
@ -41,7 +44,9 @@ 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:
@ -61,16 +66,22 @@ 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
@ -82,16 +93,22 @@ 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
@ -103,16 +120,22 @@ 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

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_;
ctx = &ctx_;
ctx_tmp = &ctx_tmp_;
Zero(ctx, sizeof(ctx));
Zero(ctx_tmp, sizeof(ctx_tmp));
Zero(ctx, sizeof(HMAC_CTX));
Zero(ctx_tmp, sizeof(HMAC_CTX));
#endif
chunk=EVP_MD_size(md);

View File

@ -1,24 +1,24 @@
# SoftEther VPN Source Code
#
#
# Copyright (c) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan.
# Copyright (c) 2012-2017 Daiyuu Nobori.
# All Rights Reserved.
#
#
# http://www.softether.org/
#
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# version 2 as published by the Free Software Foundation.
#
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License version 2
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
# Platform: os=Linux, bits=32bit
# Variables
@ -422,6 +422,7 @@ $(INSTALL_BINDIR)vpncmd: bin/vpncmd/hamcore.se2 bin/vpncmd/vpncmd
@mkdir -p $(INSTALL_VPNCMD_DIR)
cp bin/vpncmd/hamcore.se2 $(INSTALL_VPNCMD_DIR)hamcore.se2
cp bin/vpncmd/vpncmd $(INSTALL_VPNCMD_DIR)vpncmd
chmod 644 $(INSTALL_VPNCMD_DIR)hamcore.se2
echo "#!/bin/sh" > $(INSTALL_BINDIR)vpncmd
echo $(INSTALL_VPNCMD_DIR)vpncmd '"$$@"' >> $(INSTALL_BINDIR)vpncmd
echo 'exit $$?' >> $(INSTALL_BINDIR)vpncmd

View File

@ -1,37 +1,43 @@
# SoftEther VPN Source Code
#
#
# Copyright (c) 2012-2017 SoftEther VPN Project at University of Tsukuba, Japan.
# Copyright (c) 2012-2017 Daiyuu Nobori.
# All Rights Reserved.
#
#
# http://www.softether.org/
#
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# version 2 as published by the Free Software Foundation.
#
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License version 2
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
# Platform: os=Linux, bits=64bit
# Variables
#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_VPNSERVER_DIR=/usr/vpnserver/
@ -422,6 +428,7 @@ $(INSTALL_BINDIR)vpncmd: bin/vpncmd/hamcore.se2 bin/vpncmd/vpncmd
@mkdir -p $(INSTALL_VPNCMD_DIR)
cp bin/vpncmd/hamcore.se2 $(INSTALL_VPNCMD_DIR)hamcore.se2
cp bin/vpncmd/vpncmd $(INSTALL_VPNCMD_DIR)vpncmd
chmod 644 $(INSTALL_VPNCMD_DIR)hamcore.se2
echo "#!/bin/sh" > $(INSTALL_BINDIR)vpncmd
echo $(INSTALL_VPNCMD_DIR)vpncmd '"$$@"' >> $(INSTALL_BINDIR)vpncmd
echo 'exit $$?' >> $(INSTALL_BINDIR)vpncmd