AnyConnect VPN Serverの無料アナログ



前回の投稿で、Softether VPN Serverとソースからのインストール方法について説明しました。 過去に、私はこのサーバーに非常に失望しました。なぜなら、常に通常の速度で動作させることができなかったからです。 私は開発者フォーラムに書きましたが、問題について明確な答えが得られませんでした。まあ、何もすることはありません。別のソリューションを選択する必要があります。



StrongSwan VPNサーバーを試しましたが、サーバーの構成が困難であることがわかりました。また、http-proxyを介してお金を稼ぐことができませんでした(また、そうすべきではありません)。

最終的に、Cisco AnyConnectサーバーの無料で優れた実装であるOpen Connect Serverを選択しました。

皆さんの多くは、Ciscoルーター専用のvpnserverであるAny Connectサーバーに精通していると思います。



残念ながら、このプログラムがDebianリポジトリにあるか他のプログラムにあるかについては情報がありませんが、ソースから収集することができます。





...

InstallNettle()

{

if ["$ isget" = "get"]

それから

rm -rfv ./nettle*

wget -c ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz

tar -xvf nettle-2.7.1.tar.gz

fi

cd nettle-2.7.1

#autoreconf

./configure --prefix = / --host = $ HOST

check_success

make V = 0 -j 4 LDFLAGS = "-ldl"

check_success

V = 0に設定DESTDIR = $ SYSROOTをインストール

check_success

cd ...

}



InstallGnutls()

{

if ["$ isget" = "get"]

それから

rm -rfv ./gnutls*

git clone git://gitorious.org/gnutls/gnutls.git

fi

cd gnutls

autoreconfを作成する

check_success

./configure --prefix = / --host = $ HOST NETTLE_CFLAGS = "-I $ SYSROOT / include" NETTLE_LIBS = "-L $ SYSROOT / lib -lnettle" \

HOGWEED_CFLAGS = "-I $ SYSROOT / include" HOGWEED_LIBS = "-L $ SYSROOT / lib -lhogweed" \

--disable-doc --with-default-trust-store-file = "/ etc / ssl / ca-bundle.crt" --enable-local-libopts = yes





check_success

V = 0 -j 4にする

check_success

V = 0に設定DESTDIR = $ SYSROOTをインストール

check_success

cd ...



InstallOpenConnect()

{

if ["$ isget" = "get"]

それから

rm -rfv ./ocserv*

git clone git://git.infradead.org/ocserv.git

fi

cd ocserv

autoreconfを作成する

chmod + x ./autogen.sh

./autogen.sh

./configure --prefix = / --host = $ HOST LIBGNUTLS_CFLAGS = "-I $ SYSROOT / include" LIBGNUTLS_LIBS = "-L $ SYSROOT / lib -lgnutls" \

LIBREADLINE_CFLAGS = "-I $ SYSROOT / include / readline" LIBREADLINE_LIBS = "-L $ SYSROOT / lib -lreadline -lncurses" \

--enable-local-libopts = yes



check_success

V = 0を作るAUTOGEN = "autogen"

check_success

sed -i -eの| / bin / true | autogen | g './doc/Makefile

V = 0に設定DESTDIR = $ SYSROOTをインストール

check_success

cd ...

}

}





証明書の生成




#!/ bin / bash



certtool --generate-privkey --outfile ca-key.pem

猫<< _EOF_> ca.tmpl

cn = "loft.dtdns.net"

組織=「ロフト株式会社」

シリアル= 1

expiration_days = 999

ca

signing_key

cert_signing_key

crl_signing_key

_EOF_



certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem



certtool --generate-privkey --outfile server-key.pem

cat << _EOF_> server.tmpl

cn = "loft.dtdns.net"

組織=「ロフト株式会社」

シリアル= 2

expiration_days = 999

signing_key

encryption_key#生成された鍵がRSAのものである場合のみ

tls_www_server

_EOF_



certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server -cert.pem



mv -fv ./server-cert.pem / etc /

mv -fv ./server-key.pem / etc /

ocpasswd root -c / etc / ocpasswd





設定ファイル




最大クライアント数= 16

最大同一クライアント= 16

tcp-port = 443

udp-port = 443

キープアライブ= 32400

dpd = 1900

mobile-dpd = 1800

try-mtu-discovery = false

auth = "プレーン[/ etc / ocpasswd]"



server-cert = /etc/server-cert.pem

サーバーキー= /etc/server-key.pem



tls-priorities = "NORMAL:%SERVER_PRECEDENCE:%COMPAT"



auth-timeout = 4000

cookie-timeout = 300

拒否ローミング= false

キー再生成時間= 172800

rekey-method = ssl



use-utmp = true

use-occtl = true



pid-file = /var/run/ocserv.pid

ソケットファイル= / var / run / ocserv-socket



run-as-user = root

run-as-group = root

cgroup = "cpuset、cpu:test"

デバイス= vpns

cisco-client-compat = true

predictable-ips = true



default-domain = example.com



#リースを提供するアドレスのプール。

ipv4-network = 192.168.2.0

ipv4-netmask = 255.255.255.0



dns = 8.8.8.8



ping-leases = false







systemdで実行するユニット




[単位]

説明= OpenConnectサーバー

後= network.target [サービス]

タイプ= forking環境= "LD_LIBRARY_PATH = / lib:/ lib" PIDFile = / var / run / ocserv.pid

ExecStart = / sbin / ocserv --config = / etc / ocserv.conf Restart = always

[インストール]

WantedBy = multi-user.target





コマンド「/ sbin / ocserv --config = / etc / ocserv.conf」でサーバーを起動した後

公式のAnyConnectクライアントを使用して接続できます。



公式iOSアプリから。





最後に、私はプロジェクトが本当に好きだったと言いたいです。 私は開発者に連絡し、彼は非常に迅速かつ詳細に私に答えました。

サーバーは非常にスマートです。速度がまったく低下しないと思いました。

通り過ぎないでください!



All Articles