Ubuntu 连接到 SSTP VPN

Ubuntu 连接到 SSTP VPN

有人有将 Ubuntu 10.10 机器连接到 SSTP VPN 服务器的经验吗?我还没有找到关于如何操作的太多信息。

答案1

或许sstp 客户端能做到吗?这里是网络管理器对它的支持。

现在有适用于最新发行版的 Ubuntu 软件包,因此你应该能够添加电力购买协议eivnaes/network-manager-sstp并安装软件包:

$ sudo add-apt-repository ppa:eivnaes/network-manager-sstp
...
$ sudo apt-get update
$ sudo apt-get install sstp-client
$ sudo apt-get install network-manager-sstp-gnome # NM configuration GUI

答案2

例子

以下是 /etc/network/interfaces 中条目的一个示例:

auto work
iface work inet ppp
    provider work
    options pty "sstpc vpn.example.com --ca-cert /path/to/example.com.ca.crt --nolaunchpppd" \
            plugin sstp-pppd-plugin.so sstp-sock /var/run/sstpc/sstpc-uds-sock \
            lock nodefaultroute noipdefault noauth user myusername \
            refuse-pap refuse-chap refuse-eap nobsdcomp nodeflate novj \
            nomultilink \
            persist maxfail 0 \
            debug logfd 2
    pre-up touch /etc/ppp/peers/work

用法

然后您只需使用ifup workifdown work来连接或断开连接。

安装

您需要编译 sstp-client 并安装它。可以按照以下说明使用它http://sstp-client.sourceforge.net/或者使用以下说明构建 deb 包:

apt-get install build-essential dpkg-dev debhelper ppp-dev libevent-dev libssl-dev
mkdir sstp-client.build && cd sstp-client.build
wget -o sstp-client-1.0.10.tar.gz http://sourceforge.net/projects/sstp-client/files/sstp-client/1.0.10/sstp-client-1.0.10.tar.gz/download
tar xzvf sstp-client-1.0.10
cd sstp-client-1.0.10
dpkg-buildpackage -b -us -uc
cd ..
dpkg -i sstp-client_1.0.10-0ubuntu2_amd64.deb \
        libsstp-client0_1.0.10-0ubuntu2_amd64.deb \
        libsstp-client-dev_1.0.10-0ubuntu2_amd64.deb
cd /usr/lib/pppd/2.4.5 && ln -s ../2.4.6/sstp-pppd-plugin.so .

修复符号链接

pppd lib 目录被硬编码为使用 2.4.6,而不是已安装的版本,这就是需要符号链接的原因。这是 sstp-client 的 debian 构建描述中的一个错误。

典型的连接超时问题

如果你使用 pppdpty选项(本例中使用的选项),那么plugin sstp-pppd-plugin.so sstp-sock /var/run/sstpc/sstpc-uds-sock指定参数就至关重要了。如果你不指定这些参数,你最终会得到著名的连接中止,原因不明大约 60 秒后会出现错误,并且连接将不会传输数据包。

CA 证书要求

您还必须在本地文件中拥有 Microsoft SSTP VPN 服务器所属的 Active Directory 域的 CA 证书/path/to/example.com.ca.crt。这通常可以在其中一个域控制器上的 SMB 共享中找到CertEnroll。将其导出为 Base64 编码的 X509 证书并根据需要重命名。用于certtool -i <example.com.ca.crt验证您是否拥有包含正确信息的正确证书。

相关内容