How to install SoftEther on CentOS to enable RADIUS authentication in Japan.

Memo

As you know disabled Certificate authentication or RADIUS authentication and other(ex. Deep-inspect packet logging,,,) in Japan due to SoftEther's contractual issue. If you need these features, have to add code and compile from source.

Download source code from SoftEther website.

SoftEther Download page

You should choice "Source Code of SoftEther VPN" from "Choose a component" listbox. It can choose tar.gz or zip if you like and download then untar it.

$ wget https://jp.softether-download.com/files/softether/v4.34-9745-beta-2020.04.05-tree/Source_Code/softether-src-v4.34-9745-beta.tar.gz
$ tar xvf ./softether-src-v4.34-9745-beta.tar.gz

Edit source code.

Edit Server.c file at "src/Cedar/". I like "micro" editor. Of cource, any other editor is fine.

micro

$ micro v4.34-9745/src/Cedar/Server.c

Search the "SiIsEnterpriseFunctionsRestrictedOnOpenSource" function and edit inner code.

The're many ways to get the remove restrictions but one purpose and simple. It's rewrite the function return false any time.

Before:

bool SiIsEnterpriseFunctionsRestrictedOnOpenSource(CEDAR *c)
{
    char region[128];
    bool ret = false;
    // Validate arguments
    if (c == NULL)
    {
        return false;
    }

    SiGetCurrentRegion(c, region, sizeof(region));

    if (StrCmpi(region, "JP") == 0 || StrCmpi(region, "CN") == 0)
    {
        ret = true;
    }

    return ret;
}

I'll show you my examples.

After:

bool SiIsEnterpriseFunctionsRestrictedOnOpenSource(CEDAR *c)
{
    char region[128];
    bool ret = false;
    // Validate arguments
    if (c == NULL)
    {
        return false;
    }

    SiGetCurrentRegion(c, region, sizeof(region));

    if (StrCmpi(region, "JP") == 0 || StrCmpi(region, "CN") == 0)
    {
        ret = false;
    }

    return ret;
}

ret = true; to ret = false;

or

ret = true; to //ret = true; (comment out)

Configure and Compile

$ cd v4.34-9745
$ ./configure
$ make

Wait few minutes.

When compiled, You'll find compiled binary in bin directory.

By @Akio Tomita in
Tags :