summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
m---------docs/_include/vyos-1x0
-rw-r--r--docs/changelog/1.3.rst2
-rw-r--r--docs/changelog/1.4.rst15
-rw-r--r--docs/configuration/interfaces/pppoe.rst36
-rw-r--r--docs/configuration/vpn/openconnect.rst183
6 files changed, 198 insertions, 40 deletions
diff --git a/README.md b/README.md
index 90d397d3..417cb29a 100644
--- a/README.md
+++ b/README.md
@@ -62,7 +62,7 @@ Then run:
sudo pip install sphinx-rtd-theme
```
-Do the following to build the HTML and start a webserver:
+Do the following to build the HTML and start a web server:
* Run `make livehtml` inside the `docs` folder
Then, to view the live output:
diff --git a/docs/_include/vyos-1x b/docs/_include/vyos-1x
-Subproject 0f6da5dc6a769ad303795942277ae2529e44e7d
+Subproject 3cbe7878bcadc0f3ecbaeab46d745b5510c26b0
diff --git a/docs/changelog/1.3.rst b/docs/changelog/1.3.rst
index 306a931f..03c7b335 100644
--- a/docs/changelog/1.3.rst
+++ b/docs/changelog/1.3.rst
@@ -1626,7 +1626,7 @@
2021-02-16
==========
-* :vytask:`T3318` (feature): Update Linux Kernel to v5.4.185 / 5.10.106
+* :vytask:`T3318` (feature): Update Linux Kernel to v5.4.188 / 5.10.111
2021-02-14
diff --git a/docs/changelog/1.4.rst b/docs/changelog/1.4.rst
index 057e003d..55875e37 100644
--- a/docs/changelog/1.4.rst
+++ b/docs/changelog/1.4.rst
@@ -8,6 +8,19 @@
_ext/releasenotes.py
+2022-04-15
+==========
+
+* :vytask:`T4327` (default): Ethernet interface configuration fails on Hyper-V due to speed/duplex/autoneg ethtool command error
+* :vytask:`T4364` (feature): salt-minion: Upgrade to 3004 and migrate to get_config_dict()
+
+
+2022-04-13
+==========
+
+* :vytask:`T4333` (feature): Jinja2: add plugin to test if a variable is defined and not none to reduce template complexity
+
+
2022-04-08
==========
@@ -1987,7 +2000,7 @@
==========
* :vytask:`T3313` (bug): ospfv3 interface missing options
-* :vytask:`T3318` (feature): Update Linux Kernel to v5.4.185 / 5.10.106
+* :vytask:`T3318` (feature): Update Linux Kernel to v5.4.188 / 5.10.111
2021-02-15
diff --git a/docs/configuration/interfaces/pppoe.rst b/docs/configuration/interfaces/pppoe.rst
index 4a31efc5..e1bb3056 100644
--- a/docs/configuration/interfaces/pppoe.rst
+++ b/docs/configuration/interfaces/pppoe.rst
@@ -115,24 +115,26 @@ PPPoE options
timeout period, after which an idle PPPoE link will be disconnected. A
non-zero idle timeout will never disconnect the link after it first came up.
-.. cfgcmd:: set interfaces pppoe <interface> default-route [auto | force | none]
+.. cfgcmd:: set interfaces pppoe <interface> no-default-route
- Use this command to specify whether to automatically add a default route
- pointing to the endpoint of the PPPoE when the link comes up. The default
- route is only added if no other default route already exists in the system.
+ Only request an address from the PPPoE server but do not install any default
+ route.
- **default:** A default route to the remote endpoint is automatically added
- when the link comes up (i.e. auto).
+ Example:
- * auto: A default route is added if no other default route (From any
- source) already exists.
- * force: A default route is added after removing *all* existing default
- routes.
- * none: No default route is installed.
+ .. code-block:: none
+
+ set interfaces pppoe pppoe0 no-default-route
+
+.. cfgcmd:: set interfaces pppoe <interface> default-route-distance <distance>
+
+ Set the distance for the default gateway sent by the PPPoE server.
-.. note:: In all modes except 'none', all default routes using this interface
- will be removed when the interface is torn down - even manually installed
- static routes.
+ Example:
+
+ .. code-block:: none
+
+ set interfaces pppoe pppoe0 default-route-distance 220
.. cfgcmd:: set interfaces pppoe <interface> idle-timeout <time>
@@ -190,7 +192,7 @@ PPPoE options
.. hint:: MSS value = MTU - 20 (IP header) - 20 (TCP header), resulting in
1452 bytes on a 1492 byte MTU.
- Instead of a numerical MSS value `clamp-mss-to-pmtu` can be used to
+ Instead of a numerical MSS value `clamp-mss-to-pmtu` can be used to
automatically set the proper value.
.. cfgcmd:: set interfaces pppoe <interface> ip disable-forwarding
@@ -235,8 +237,8 @@ IPv6
.. hint:: MSS value = MTU - 20 (IP header) - 20 (TCP header), resulting in
1452 bytes on a 1492 byte MTU.
-
- Instead of a numerical MSS value `clamp-mss-to-pmtu` can be used to
+
+ Instead of a numerical MSS value `clamp-mss-to-pmtu` can be used to
automatically set the proper value.
.. cfgcmd:: set interfaces pppoe <interface> ipv6 disable-forwarding
diff --git a/docs/configuration/vpn/openconnect.rst b/docs/configuration/vpn/openconnect.rst
index 356b3322..7a279472 100644
--- a/docs/configuration/vpn/openconnect.rst
+++ b/docs/configuration/vpn/openconnect.rst
@@ -13,11 +13,8 @@ device traffic across public networks and private networks, also encrypts the
traffic with SSL protocol.
The remote user will use the openconnect client to connect to the router and
-will receive an IP address from a VPN pool, allowing full access to the network.
-
-.. note:: All certificates should be stored on VyOS under /config/auth. If
- certificates are not stored in the /config directory they will not be
- migrated during a software update.
+will receive an IP address from a VPN pool, allowing full access to the
+network.
*************
Configuration
@@ -27,18 +24,18 @@ SSL Certificates
================
We need to generate the certificate which authenticates users who attempt to
-access the network resource through the SSL VPN tunnels. The following command
-will create a self signed certificates and will be stored in the file path
-`/config/auth`.
+access the network resource through the SSL VPN tunnels. The following commands
+will create a self signed certificates and will be stored in configuration:
.. code-block:: none
- openssl req -newkey rsa:4096 -new -nodes -x509 -days 3650 -keyout /config/auth/server.key -out /config/auth/server.crt
- openssl req -new -x509 -key /config/auth/server.key -out /config/auth/ca.crt
-
-We can also create the certificates using Cerbort which is an easy-to-use client
-that fetches a certificate from Let's Encrypt an open certificate authority
-launched by the EFF, Mozilla, and others and deploys it to a web server.
+ run generate pki ca install <CA name>
+ run generate pki certificate sign <CA name> install <Server name>
+
+We can also create the certificates using Cerbort which is an easy-to-use
+client that fetches a certificate from Let's Encrypt an open certificate
+authority launched by the EFF, Mozilla, and others and deploys it to a web
+server.
.. code-block:: none
@@ -50,7 +47,7 @@ Server Configuration
.. code-block:: none
set vpn openconnect authentication local-users username <user> password <pass>
- set vpn openconnect authentication mode <local|radius>
+ set vpn openconnect authentication mode <local password|radius>
set vpn opneconnect network-settings client-ip-settings subnet <subnet>
set vpn openconnect network-settings name-server <address>
set vpn openconnect network-settings name-server <address>
@@ -58,6 +55,29 @@ Server Configuration
set vpn openconnect ssl certificate <pki-cert-name>
set vpn openconnect ssl passphrase <pki-password>
+2FA OTP support
+====================
+
+Instead of password only authentication, 2FA password
+authentication + OTP key can be used. Alternatively, OTP authentication only,
+without a password, can be used.
+To do this, an OTP configuration must be added to the configuration above:
+
+.. code-block:: none
+
+ set vpn openconnect authentication mode local <password-otp|otp>
+ set vpn openconnect authentication local-users username <user> otp <key>
+ set vpn openconnect authentication local-users username <user> interval <interval (optional)>
+ set vpn openconnect authentication local-users username <user> otp-length <otp-length (optional)>
+ set vpn openconnect authentication local-users username <user> token-type <token-type (optional)>
+
+For generating an OTP key in VyOS, you can use the CLI command
+(operational mode):
+
+.. code-block:: none
+
+ generate openconnect username <user> otp-key hotp-time
+
************
Verification
************
@@ -65,10 +85,133 @@ Verification
.. code-block:: none
- vyos@RTR1:~$ show openconnect-server sessions
-
- interface username ip remote IP RX TX state uptime
- ----------- ---------- ------------ ------------- -------- -------- --------- --------
- sslvpn0 user4 100.64.0.105 xx.xxx.49.253 127.3 KB 160.0 KB connected 12m:28s
+ vyos@vyos:~$ sh openconnect-server sessions
+ interface username ip remote IP RX TX state uptime
+ ----------- ---------- ------------- ----------- ------- --------- --------- --------
+ sslvpn0 tst 172.20.20.198 192.168.6.1 0 bytes 152 bytes connected 3s
.. note:: It is compatible with Cisco (R) AnyConnect (R) clients.
+
+*******
+Example
+*******
+
+SSL Certificates generation
+===========================
+
+Follow the instructions to generate CA cert (in configuration mode):
+
+.. code-block:: none
+
+ vyos@vyos# run generate pki ca install ca-ocserv
+ Enter private key type: [rsa, dsa, ec] (Default: rsa)
+ Enter private key bits: (Default: 2048)
+ Enter country code: (Default: GB) US
+ Enter state: (Default: Some-State) Delaware
+ Enter locality: (Default: Some-City) Mycity
+ Enter organization name: (Default: VyOS) MyORG
+ Enter common name: (Default: vyos.io) oc-ca
+ Enter how many days certificate will be valid: (Default: 1825) 3650
+ Note: If you plan to use the generated key on this router, do not encrypt the private key.
+ Do you want to encrypt the private key with a passphrase? [y/N] N
+ 2 value(s) installed. Use "compare" to see the pending changes, and "commit" to apply.
+ [edit]
+
+Follow the instructions to generate server cert (in configuration mode):
+
+.. code-block:: none
+
+ vyos@vyos# run generate pki certificate sign ca-ocserv install srv-ocserv
+ Do you already have a certificate request? [y/N] N
+ Enter private key type: [rsa, dsa, ec] (Default: rsa)
+ Enter private key bits: (Default: 2048)
+ Enter country code: (Default: GB) US
+ Enter state: (Default: Some-State) Delaware
+ Enter locality: (Default: Some-City) Mycity
+ Enter organization name: (Default: VyOS) MyORG
+ Enter common name: (Default: vyos.io) oc-srv
+ Do you want to configure Subject Alternative Names? [y/N] N
+ Enter how many days certificate will be valid: (Default: 365) 1830
+ Enter certificate type: (client, server) (Default: server)
+ Note: If you plan to use the generated key on this router, do not encrypt the private key.
+ Do you want to encrypt the private key with a passphrase? [y/N] N
+ 2 value(s) installed. Use "compare" to see the pending changes, and "commit" to apply.
+ [edit]
+
+Each of the install command should be applied to the configuration and commited
+before using under the openconnect configuration:
+
+.. code-block:: none
+
+ vyos@vyos# commit
+ [edit]
+ vyos@vyos# save
+ Saving configuration to '/config/config.boot'...
+ Done
+ [edit]
+
+Openconnect Configuration
+=========================
+
+Simple setup with one user added and password authentication:
+
+.. code-block:: none
+
+ set vpn openconnect authentication local-users username tst password 'OC_bad_Secret'
+ set vpn openconnect authentication mode local password
+ set vpn openconnect network-settings client-ip-settings subnet '172.20.20.0/24'
+ set vpn openconnect network-settings name-server '10.1.1.1'
+ set vpn openconnect network-settings name-server '10.1.1.2'
+ set vpn openconnect ssl ca-certificate 'ca-ocserv'
+ set vpn openconnect ssl certificate 'srv-ocserv'
+
+Adding a 2FA with an OTP-key
+============================
+
+First the OTP keys must be generated and sent to the user and to the
+configuration:
+
+.. code-block:: none
+
+ vyos@vyos:~$ generate openconnect username tst otp-key hotp-time
+ # You can share it with the user, he just needs to scan the QR in his OTP app
+ # username: tst
+ # OTP KEY: 5PA4SGYTQSGOBO3H3EQSSNCUNZAYAPH2
+ # OTP URL: otpauth://totp/tst@vyos?secret=5PA4SGYTQSGOBO3H3EQSSNCUNZAYAPH2&digits=6&period=30
+ █████████████████████████████████████████
+ █████████████████████████████████████████
+ ████ ▄▄▄▄▄ █▀ ██▄▀ ▄█▄▀▀▄▄▄▄██ ▄▄▄▄▄ ████
+ ████ █ █ █▀ █▄▄▀▀▀▄█ ▄▄▀▄ █ █ █ ████
+ ████ █▄▄▄█ █▀█▀▄▄▀ ▄▀ █▀ ▀▄██ █▄▄▄█ ████
+ ████▄▄▄▄▄▄▄█▄█▄▀ ▀▄█ ▀ ▀ ▀ █▄█▄▄▄▄▄▄▄████
+ ████ ▄▄▄▀▄▄ ▄███▀▄▀█▄██▀ ▀▄ ▀▄█ ▀ ▀████
+ ████ ▀▀ ▀ ▄█▄ ▀ ▀▄ ▄█▀ ▄█ ▄▀▀▄██ █████
+ ████▄ █▄▀▀▄█▀ ▀█▄█▄▄▄▄ ▄▀█▀▀█ ▀ ▄ ▀█▀████
+ █████ ▀█▀▄▄ █ ▀▄▄ ▄█▄ ▀█▀▀ █▀ ▄█████
+ ████▀██▀█▄▄ ▀▀▀▀█▄▀ ▀█▄▄▀▀▀ ▀ ▀█▄██▀▀████
+ ████▄ ▄ ▄▀▄██▀█ ▄ ▀▄██ ▄▄ ▀▀▄█▄██ ▄█████
+ ████▀▀ ▄▀ ▄ ▀█▀█▀█ █▀█▄▄▀█▀█▄██▄▄█ ▀████
+ ████ █ ▀█▄▄█▄ ▀ ▄▄▀▀ ▀ █▄█▀████ █▀ ▀████
+ ████▄██▄██▄█▀ ▄▀ ▄▄▀▄ ▄▀█ ▄ ▄▄▄ ▀█▄ ████
+ ████ ▄▄▄▄▄ █▄ ▀█▄█ ▄ ▀ ▄ ▄ █▄█ ▄▀▄█████
+ ████ █ █ █ ▀▄██▄▄▀█▄▀▄██▄▀ ▄ ▀██▀████
+ ████ █▄▄▄█ █ ██▀▄▄ ▀▄▄▀█▀ ▀█ ▄▀█ ▀██████
+ ████▄▄▄▄▄▄▄█▄███▄███▄█▄▄▄▄█▄▄█▄██▄█▄█████
+ █████████████████████████████████████████
+ █████████████████████████████████████████
+ # To add this OTP key to configuration, run the following commands:
+ set vpn openconnect authentication local-users username tst otp key 'ebc1c91b13848ce0bb67d9212934546e41803cfa'
+
+Next it is necessary to configure 2FA for OpenConnect:
+
+.. code-block:: none
+
+ set vpn openconnect authentication mode local password-otp
+ set vpn openconnect authentication local-users username tst otp key 'ebc1c91b13848ce0bb67d9212934546e41803cfa'
+
+Now when connecting the user will first be asked for the password
+and then the OTP key.
+
+.. warning:: When using Time-based one-time password (TOTP) (OTP HOTP-time),
+ be sure that the time on the server and the
+ OTP token generator are synchronized by NTP