.. _sstp: ########### SSTP Server ########### :abbr:`SSTP (Secure Socket Tunneling Protocol)` is a form of :abbr:`VPN (Virtual Private Network)` tunnel that provides a mechanism to transport PPP traffic through an SSL/TLS channel. SSL/TLS provides transport-level security with key negotiation, encryption and traffic integrity checking. The use of SSL/TLS over TCP port 443 allows SSTP to pass through virtually all firewalls and proxy servers except for authenticated web proxies. SSTP is available for Linux, BSD, and Windows. VyOS utilizes accel-ppp_ to provide SSTP server functionality. We support both local and RADIUS authentication. As SSTP provides PPP via a SSL/TLS channel the use of either publically signed certificates as well as a private PKI is required. *********************** Configuring SSTP Server *********************** Certificates ============ Using our documentation chapter - :ref:`pki` generate and install CA and Server certificate .. code-block:: none vyos@vyos:~$ generate pki ca install CA .. code-block:: none vyos@vyos:~$ generate pki certificate sign CA install Server Configuration ============= .. code-block:: none set vpn sstp authentication local-users username test password 'test' set vpn sstp authentication mode 'local' set vpn sstp client-ip-pool SSTP-POOL range '10.0.0.2-10.0.0.100' set vpn sstp default-pool 'SSTP-POOL' set vpn sstp gateway-address '10.0.0.1' set vpn sstp ssl ca-certificate 'CA1' set vpn sstp ssl certificate 'Server' .. cfgcmd:: set vpn sstp authentication mode Set authentication backend. The configured authentication backend is used for all queries. * **radius**: All authentication queries are handled by a configured RADIUS server. * **local**: All authentication queries are handled locally. .. cfgcmd:: set vpn sstp authentication local-users username password Create `` for local authentication on this system. The users password will be set to ``. .. cfgcmd:: set vpn sstp client-ip-pool range Use this command to define the first IP address of a pool of addresses to be given to SSTP clients. If notation ``x.x.x.x-x.x.x.x``, it must be within a /24 subnet. If notation ``x.x.x.x/x`` is used there is possibility to set host/netmask. .. cfgcmd:: set vpn sstp default-pool Use this command to define default address pool name. .. cfgcmd:: set vpn sstp gateway-address Specifies single `` IP address to be used as local address of PPP interfaces. .. cfgcmd:: set vpn sstp ssl ca-certificate Name of installed certificate authority certificate. .. cfgcmd:: set vpn sstp ssl certificate Name of installed server certificate. ********************************* Configuring RADIUS authentication ********************************* To enable RADIUS based authentication, the authentication mode needs to be changed within the configuration. Previous settings like the local users, still exists within the configuration, however they are not used if the mode has been changed from local to radius. Once changed back to local, it will use all local accounts again. .. code-block:: none set vpn sstp authentication mode radius .. cfgcmd:: set vpn sstp authentication radius server key Configure RADIUS `` and its required shared `` for communicating with the RADIUS server. Since the RADIUS server would be a single point of failure, multiple RADIUS servers can be setup and will be used subsequentially. For example: .. code-block:: none set vpn sstp authentication radius server 10.0.0.1 key 'foo' set vpn sstp authentication radius server 10.0.0.2 key 'foo' .. note:: Some RADIUS severs use an access control list which allows or denies queries, make sure to add your VyOS router to the allowed client list. RADIUS source address ===================== If you are using OSPF as IGP, always the closest interface connected to the RADIUS server is used. You can bind all outgoing RADIUS requests to a single source IP e.g. the loopback interface. .. cfgcmd:: set vpn sstp authentication radius source-address
Source IPv4 address used in all RADIUS server queires. .. note:: The ``source-address`` must be configured on one of VyOS interface. Best practice would be a loopback or dummy interface. RADIUS advanced options ======================= .. cfgcmd:: set vpn sstp authentication radius server port Configure RADIUS `` and its required port for authentication requests. .. cfgcmd:: set vpn sstp authentication radius server fail-time