]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#3541] update docs and examples
authorRazvan Becheriu <razvan@isc.org>
Wed, 4 Jun 2025 13:54:39 +0000 (16:54 +0300)
committerRazvan Becheriu <razvan@isc.org>
Wed, 11 Jun 2025 08:35:45 +0000 (11:35 +0300)
29 files changed:
doc/examples/agent/comments.json
doc/examples/agent/https.json
doc/examples/agent/rbac.json
doc/examples/agent/simple.json
doc/examples/kea4/all-keys.json
doc/examples/kea4/comments.json
doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json
doc/examples/kea4/ha-load-balancing-server2-mt.json
doc/examples/kea6/all-keys.json
doc/examples/kea6/comments.json
doc/examples/kea6/ha-hot-standby-server1-with-tls.json
doc/examples/kea6/ha-hot-standby-server2.json
doc/examples/template-ha-mt-tls/kea-ca-1.conf
doc/examples/template-ha-mt-tls/kea-ca-2.conf
doc/examples/template-ha-mt-tls/kea-dhcp4-1.conf
doc/examples/template-ha-mt-tls/kea-dhcp4-2.conf
doc/examples/template-power-user-home/kea-ca-1.conf
doc/examples/template-power-user-home/kea-ca-2.conf
doc/examples/template-power-user-home/kea-dhcp4-1.conf
doc/examples/template-power-user-home/kea-dhcp4-2.conf
doc/sphinx/arm/agent.rst
doc/sphinx/arm/ddns.rst
doc/sphinx/arm/dhcp4-srv.rst
doc/sphinx/arm/dhcp6-srv.rst
doc/sphinx/arm/ext-netconf.rst
doc/sphinx/arm/hooks-ha.rst
doc/sphinx/arm/hooks-rbac.rst
doc/sphinx/arm/security.rst
src/bin/keactrl/kea-ctrl-agent.conf.pre

index 61f8980d8ade80c90b670ae396d1c13dbd7206c4..b1c7078e5e9d2750673d271d600a26273355e817 100644 (file)
@@ -16,6 +16,9 @@
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8000,
 
         // Extra HTTP headers to add in responses.
index c06039c99f3073e42e60c59ad1fd30707d5cc38b..b8e459ac2eaf1232a0ae78d8cfa79f7a71946f1d 100644 (file)
@@ -13,6 +13,9 @@
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8000,
 
         // TLS trust anchor (Certificate Authority). This is a file name or
index 575cfd90e5fc7b5d44be300f2d0056e5f8c84361..05a8c8454577a58253f89983677f4dc6fa5106f1 100644 (file)
@@ -13,6 +13,9 @@
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8000,
 
         // TLS trust anchor (Certificate Authority). This is a file name or
index 62596c45ca5b6526c615dc283f4ec43e2e7b9c5f..ed37481fb97d62bec43a47676b2110e63a8a4a96 100644 (file)
@@ -13,6 +13,9 @@
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8000,
 
         // Extra HTTP headers to add in responses.
index 5823d4b4c98e8c9a7616f9e2ab4318d46df10859..5315b37d38a772fc775da2c0a05cc2f688368204 100644 (file)
                 // commands should still be sent to a control socket.
                 // The dedicated listener is specifically for HA
                 // updates only.
-                "socket-port": 8000,
+                // For security reasons, Kea should be run as non root
+                // user, a port lower than 1024 should be used (e.g. 894)
+                // and, on Linux systems, the process should have
+                // 'CAP_NET_BIND_SERVICE' capabilities.
+                "socket-port": 8004,
 
                 // TLS trust anchor (Certificate Authority). This is a
                 // file name or a directory path. Make sense with other
index bbe4fa0e860d8301d9373d30062ecd19fa308088..0762fd2298b0e4e20a4123822e7b12c3d76b0496 100644 (file)
@@ -62,7 +62,7 @@
            "comment": "HTTP control socket",
            "socket-type": "http",
            "socket-address": "::1",
-           "socket-port": 8000,
+           "socket-port": 8004,
 
            // In authentication
            "authentication": {
index 168f5027091cbd09c7fb85464c15a9cc1ed98f96..733b4e6c1815dc60af649d02551995d79d0b70ba 100644 (file)
                             // instance if multi-threading is enabled.
                             // The "http-host" and "http-port" values must be set to different
                             // values then the ones used by the Control Agent.
-                            "url": "http://192.168.56.33:8000/",
+                            // For security reasons, Kea should be run as non root user, a port lower
+                            // than 1024 should be used (e.g. 895) and, on Linux systems, the process
+                            // should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.33:8005",
                             // Trust anchor aka certificate authority file or directory.
                             "trust-anchor": "/usr/lib/kea/CA.pem",
                             // Client certificate file name.
                             // channel can be reached. The Control Agent is not required
                             // to run on the partner's machine if multi-threading is enabled.
                             // The "http-host" and "http-port" values must be set to different
-                            // values then the ones used by the Control Agent.
-                            "url": "http://192.168.56.66:8000/",
+                            // values then the ones used by the Control Agent
+                            // For security reasons, Kea should be run as non root user, a port lower
+                            // than 1024 should be used (e.g. 895) and, on Linux systems, the process
+                            // should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.66:8005",
                             // Trust anchor aka certificate authority file or directory.
                             "trust-anchor": "/usr/lib/kea/CA.pem",
                             // Client certificate file name.
index 149bb55e27d2ca45067c0b69f34289fc89cd60e8..e4fa98385f7fc918b31fc86a9136caeff2a84b75 100644 (file)
                             // to run on the partner's machine if multi-threading is enabled.
                             // The "http-host" and "http-port" values must be set to different
                             // values then the ones used by the Control Agent.
-                            "url": "http://192.168.56.33:8000/",
+                            // For security reasons, Kea should be run as non root user, a port lower
+                            // than 1024 should be used (e.g. 895) and, on Linux systems, the process
+                            // should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.33:8005",
                             // The partner is primary. This server is secondary.
                             "role": "primary"
                         },
                             // instance if multi-threading is enabled.
                             // The "http-host" and "http-port" values must be set to different
                             // values then the ones used by the Control Agent.
-                            "url": "http://192.168.56.66:8000/",
+                            // For security reasons, Kea should be run as non root user, a port lower
+                            // than 1024 should be used (e.g. 895) and, on Linux systems, the process
+                            // should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.66:8005",
                             // This server is secondary. The other one must be
                             // primary.
                             "role": "secondary"
index 5c7c1a3ee6e51f494ba46e98a72dec8104a85d10..1eaa975b0799bbd2f306f14238cc5b075143ead6 100644 (file)
                 // commands should still be sent to a control socket.
                 // The dedicated listener is specifically for HA
                 // updates only.
-                "socket-port": 8000,
+                // For security reasons, Kea should be run as non root
+                // user, a port lower than 1024 should be used (e.g. 896)
+                // and, on Linux systems, the process should have
+                // 'CAP_NET_BIND_SERVICE' capabilities.
+                "socket-port": 8006,
 
                 // TLS trust anchor (Certificate Authority). This is a
                 // file name or a directory path. Make sense with other
index bc6ea097dac19d220669a5c046d148da8ee276c7..fdeb352bb815b1a93baabb43029a6339b4f47889 100644 (file)
@@ -62,7 +62,7 @@
            "comment": "HTTP control socket",
            "socket-type": "http",
            "socket-address": "127.0.0.1",
-           "socket-port": 8000,
+           "socket-port": 8006,
 
            // In authentication
            "authentication": {
index 6e67645b57b03716a92e3e37b0bf97f4408f92e9..a5ae2ae9275260f62a787195e3f2e37aa2d48836 100644 (file)
                             // Control Agent must run along with this DHCPv6 server
                             // instance and the "http-host" and "http-port" must be
                             // set to the corresponding values.
-                            "url": "http://192.168.56.33:8000/",
+                            // For security reasons, Kea should be run as non root
+                            // user, a port lower than 1024 should be used (e.g. 897)
+                            // and, on Linux systems, the process should have
+                            // 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.33:8007",
                             // This server is primary. The other one must be
                             // standby.
                             "role": "primary"
                             // channel can be reached. The Control Agent is required
                             // to run on the partner's machine with "http-host" and
                             // "http-port" values set to the corresponding values.
-                            "url": "http://192.168.56.66:8000/",
+                            // For security reasons, Kea should be run as non root
+                            // user, a port lower than 1024 should be used (e.g. 897)
+                            // and, on Linux systems, the process should have
+                            // 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.66:8007",
                             // The partner is standby. This server is primary.
                             "role": "standby"
                         }
index 037fd978107427f131bd1a4b1448d27d1b239524..dd85224cac57cb8bbcc090c6707dd9a430909509 100644 (file)
                             // channel can be reached. The Control Agent is required
                             // to run on the partner's machine with "http-host" and
                             // "http-port" values set to the corresponding values.
-                            "url": "http://192.168.56.33:8000/",
+                            // For security reasons, Kea should be run as non root
+                            // user, a port lower than 1024 should be used (e.g. 897)
+                            // and, on Linux systems, the process should have
+                            // 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.33:8007",
                             // The partner is primary. This server is standby.
                             "role": "primary"
                         },
                             // Control Agent must run along with this DHCPv6 server
                             // instance and the "http-host" and "http-port" must be
                             // set to the corresponding values.
-                            "url": "http://192.168.56.66:8000/",
+                            // For security reasons, Kea should be run as non root
+                            // user, a port lower than 1024 should be used (e.g. 897)
+                            // and, on Linux systems, the process should have
+                            // 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.56.66:8007",
                             // This server is standby. The other one must be
                             // primary.
                             "role": "standby"
index e937feaeec5cc26056cddadc98f0124afa609cc9..0c6a80a82149e826813ba635a31fe567eee65b91 100644 (file)
@@ -33,6 +33,9 @@
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8001,
 
         "control-sockets":
index 2322261ee34c714defd81274684838de025b8045..2bc24a3b178cf0748a104bd77f2db4e4261a1364 100644 (file)
@@ -33,6 +33,9 @@
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8001,
 
         "control-sockets":
index e2c694e1d5c9386c4861fc4a945facfe2d6f722e..5c450224b111b396dc22cd7951462ab8405db804 100644 (file)
                             // The Control Agent is not needed for the High Availability
                             // with multi-threading, but if it is used, it must use
                             // different values for "http-host" and "http-port".
-                            "url": "http://192.168.1.2:8000/",
+                            // For security reasons, Kea should be run as non root user, a port
+                            // lower than 1024 should be used (e.g. 895) and, on Linux systems,
+                            // the process should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.1.2:8005",
                             // Trust anchor aka certificate authority file or directory.
                             "trust-anchor": "/usr/lib/kea/CA.pem",
                             // Client certificate file name.
                             // The Control Agent is not needed for the High Availability
                             // with multi-threading, but if it is used, it must use
                             // different values for "http-host" and "http-port".
-                            "url": "http://192.168.1.3:8000/",
+                            // For security reasons, Kea should be run as non root user, a port
+                            // lower than 1024 should be used (e.g. 895) and, on Linux systems,
+                            // the process should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.1.3:8005",
                             // Trust anchor aka certificate authority file or directory.
                             "trust-anchor": "/usr/lib/kea/CA.pem",
                             // Client certificate file name.
index 7b9d56ee09f617604d5448eb48e7d50aad2200fb..a49a9505db4e00cf98468a9b9db825a24266e487 100644 (file)
                             // The Control Agent is not needed for the High Availability
                             // with multi-threading, but if it is used, it must use
                             // different values for "http-host" and "http-port".
-                            "url": "http://192.168.1.2:8000/",
+                            // For security reasons, Kea should be run as non root user, a port
+                            // lower than 1024 should be used (e.g. 895) and, on Linux systems,
+                            // the process should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.1.2:8005",
                             // Trust anchor aka certificate authority file or directory.
                             "trust-anchor": "/usr/lib/kea/CA.pem",
                             // Client certificate file name.
                             // The Control Agent is not needed for the High Availability
                             // with multi-threading, but if it is used, it must use
                             // different values for "http-host" and "http-port".
-                            "url": "http://192.168.1.3:8000/",
+                            // For security reasons, Kea should be run as non root user, a port
+                            // lower than 1024 should be used (e.g. 895) and, on Linux systems,
+                            // the process should have 'CAP_NET_BIND_SERVICE' capabilities.
+                            "url": "http://192.168.1.3:8005",
                             // Trust anchor aka certificate authority file or directory.
                             "trust-anchor": "/usr/lib/kea/CA.pem",
                             // Client certificate file name.
index a280448708dc3fb1ec46b486c42b13003c0f5d09..03f9839920f8cebe3ee1390ed4db12e74fa60a24 100644 (file)
@@ -9,6 +9,9 @@
         "http-host": "192.168.1.2",
 
         // This specifies the port CA will listen on.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8000,
 
         "control-sockets":
index 5d114d103082936896c02159811eb6685bfa36ba..dbff0250ddabbbc848ae3de9f138219f5985d821 100644 (file)
@@ -9,6 +9,9 @@
         "http-host": "192.168.1.3",
 
         // This specifies the port CA will listen on.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8000,
 
         "control-sockets":
index 5b37a3e2c990361db4dacfc54cece28640e307cd..704d16f8108c47323f7b59102c411ebe5b396075 100644 (file)
                             // Control Agent must run along with this DHCPv4 server
                             // instance and the "http-host" and "http-port" must be
                             // set to the corresponding values.
-                            "url": "http://192.168.1.2:8000/",
+                            // For security reasons, Kea should be run as non root user,
+                            // a port lower than 1024 should be used (e.g. 895) and, on
+                            // Linux systems, the process should have 'CAP_NET_BIND_SERVICE'
+                            // capabilities.
+                            "url": "http://192.168.1.2:8005",
                             // This server is primary. The other one must be
                             // secondary.
                             "role": "primary"
                             // channel can be reached. The Control Agent is required
                             // to run on the partner's machine with "http-host" and
                             // "http-port" values set to the corresponding values.
-                            "url": "http://192.168.1.3:8000/",
+                            // For security reasons, Kea should be run as non root user,
+                            // a port lower than 1024 should be used (e.g. 895) and, on
+                            // Linux systems, the process should have 'CAP_NET_BIND_SERVICE'
+                            // capabilities.
+                            "url": "http://192.168.1.3:8005",
                             // The other server is secondary. This one must be
                             // primary.
                             "role": "standby"
index 80d8f2f85889e2caea37d515deb35c6decf51e1f..e6b2f256851ccc3ddb23d9f4ee0cecfb7830e4bf 100644 (file)
                             // channel can be reached. The Control Agent is required
                             // to run on the partner's machine with "http-host" and
                             // "http-port" values set to the corresponding values.
-                            "url": "http://192.168.1.2:8000/",
+                            // For security reasons, Kea should be run as non root user,
+                            // a port lower than 1024 should be used (e.g. 895) and, on
+                            // Linux systems, the process should have 'CAP_NET_BIND_SERVICE'
+                            // capabilities.
+                            "url": "http://192.168.1.2:8005",
                             // The other server is primary. This one must be
                             // secondary.
                             "role": "primary"
                             // Control Agent must run along with this DHCPv4 server
                             // instance and the "http-host" and "http-port" must be
                             // set to the corresponding values.
-                            "url": "http://192.168.1.3:8000/",
+                            // For security reasons, Kea should be run as non root user,
+                            // a port lower than 1024 should be used (e.g. 895) and, on
+                            // Linux systems, the process should have 'CAP_NET_BIND_SERVICE'
+                            // capabilities.
+                            "url": "http://192.168.1.3:8005",
                             // This server is secondary. The other one must be
                             // primary.
                             "role": "standby"
index ec8c0132708c5a13262e183f48a77b21914c35f1..cfcdbd0b286c6f8da3d6586464cbc2f2024ba0da 100644 (file)
@@ -114,6 +114,10 @@ provided above, the RESTful service will be available at the URL
 ``https://10.20.30.40:8000/``. If these parameters are not specified, the
 default URL is ``http://127.0.0.1:8000/``.
 
+For security reasons, Kea should be run as non root user, a port lower
+than 1024 should be used (e.g. 890) and, on Linux systems, the process
+should have 'CAP_NET_BIND_SERVICE' capabilities.
+
 When using Kea's HA hook library with multi-threading,
 the address:port combination used for CA must be
 different from the HA peer URLs, which are strictly
index 43e8702c45341c445d54f1cf425af07401ec97e2..53a6bf232ec47e2e82e3359938a289e401344453 100644 (file)
@@ -403,6 +403,10 @@ TLS is required). The ``socket-address`` (default ``127.0.0.1``) and
 ``socket-port`` (default 8000) specify an IP address and port to which
 the HTTP service will be bound.
 
+For security reasons, Kea should be run as non root user, a port lower
+than 1024 should be used (e.g. 892) and, on Linux systems, the process
+should have 'CAP_NET_BIND_SERVICE' capabilities.
+
 The ``trust-anchor``, ``cert-file``, ``key-file``, and ``cert-required``
 parameters specify the TLS setup for HTTP, i.e. HTTPS. If these parameters
 are not specified, HTTP is used. The TLS/HTTPS support in Kea is
index a1d47ef3fbf5568a72dffd510fbfd01c5aeec8d3..717f7f7b0a3e9825437aac494bd9cd2147fc6d05 100644 (file)
@@ -7910,6 +7910,10 @@ TLS is required). The ``socket-address`` (default ``127.0.0.1``) and
 ``socket-port`` (default 8000) specify an IP address and port to which
 the HTTP service will be bound.
 
+For security reasons, Kea should be run as non root user, a port lower
+than 1024 should be used (e.g. 894) and, on Linux systems, the process
+should have 'CAP_NET_BIND_SERVICE' capabilities.
+
 Since Kea 2.7.5 the ``http-headers`` parameter specifies a list of
 extra HTTP headers to add to HTTP responses.
 
index 13f28cc450c3ebe314c91490153eb3e926d257da..9b220c013ce71d9b2d84b217a7443fc3bbf99492 100644 (file)
@@ -7816,6 +7816,10 @@ TLS is required). The ``socket-address`` (default ``::1``) and
 ``socket-port`` (default 8000) specify an IP address and port to which
 the HTTP service will be bound.
 
+For security reasons, Kea should be run as non root user, a port lower
+than 1024 should be used (e.g. 896) and, on Linux systems, the process
+should have 'CAP_NET_BIND_SERVICE' capabilities.
+
 Since Kea 2.7.5 the ``http-headers`` parameter specifies a list of
 extra HTTP headers to add to HTTP responses.
 
index 39a6711b63a224f1ab68730ee06e66fb6f9e1ef7..d7d4b2e2c17fa3e087a10a90f56372a18641876e 100644 (file)
@@ -563,15 +563,14 @@ Kea sources.
                    }
                },
 
-               // Currently the DHCP-DDNS (nicknamed D2) server does not support
-               // a command channel.
                "d2":
                {
                    "model": "kea-dhcp-ddns",
                    "control-socket":
                    {
-                       "socket-type": "stdout",
-                       "user-context": { "in-use": false }
+                       "socket-type": "unix",
+                       "socket-name": "kea-ddns-ctrl-socket",
+                       "user-context": { "in-use": true }
                    }
                },
 
index b480627beee0b9f7647c8e2a1a3248307f3c33cb..89e164129df5aea62515e2a42814727c7a8be4f0 100644 (file)
@@ -261,12 +261,12 @@ Server 1:
                    "max-unacked-clients": 5,
                    "peers": [{
                        "name": "server1",
-                       "url": "http://192.168.56.33:8000/",
+                       "url": "http://192.168.56.33:8005",
                        "role": "primary",
                        "auto-failover": true
                    }, {
                        "name": "server2",
-                       "url": "http://192.168.56.66:8000/",
+                       "url": "http://192.168.56.66:8005",
                        "role": "standby",
                        "auto-failover": true
                    }]
@@ -308,12 +308,12 @@ Server 2:
                    "max-unacked-clients": 5,
                    "peers": [{
                        "name": "server1",
-                       "url": "http://192.168.56.33:8000/",
+                       "url": "http://192.168.56.33:8005",
                        "role": "primary",
                        "auto-failover": true
                    }, {
                        "name": "server2",
-                       "url": "http://192.168.56.66:8000/",
+                       "url": "http://192.168.56.66:8005",
                        "role": "standby",
                        "auto-failover": true
                    }]
@@ -687,17 +687,17 @@ only difference that ``this-server-name`` should be set to "server2" and
                    "delayed-updates-limit": 100,
                    "peers": [{
                        "name": "server1",
-                       "url": "http://192.168.56.33:8000/",
+                       "url": "http://192.168.56.33:8005",
                        "role": "primary",
                        "auto-failover": true
                    }, {
                        "name": "server2",
-                       "url": "http://192.168.56.66:8000/",
+                       "url": "http://192.168.56.66:8005",
                        "role": "secondary",
                        "auto-failover": true
                    }, {
                        "name": "server3",
-                       "url": "http://192.168.56.99:8000/",
+                       "url": "http://192.168.56.99:8005",
                        "role": "backup",
                        "basic-auth-user": "foo",
                        "basic-auth-password": "1234",
@@ -1084,17 +1084,17 @@ The following is an example configuration of the primary server in a
                    "max-rejected-lease-updates": 10,
                    "peers": [{
                        "name": "server1",
-                       "url": "http://192.168.56.33:8000/",
+                       "url": "http://192.168.56.33:8005",
                        "role": "primary",
                        "auto-failover": true
                    }, {
                        "name": "server2",
-                       "url": "http://192.168.56.66:8000/",
+                       "url": "http://192.168.56.66:8005",
                        "role": "standby",
                        "auto-failover": true
                    }, {
                        "name": "server3",
-                       "url": "http://192.168.56.99:8000/",
+                       "url": "http://192.168.56.99:8005",
                        "basic-auth-user": "foo",
                        "basic-auth-password": "1234",
                        "role": "backup",
@@ -1165,15 +1165,15 @@ The following is an example configuration file for the primary server in a
                    "wait-backup-ack": false,
                    "peers": [{
                        "name": "server1",
-                       "url": "http://192.168.56.33:8000/",
+                       "url": "http://192.168.56.33:8005",
                        "role": "primary"
                    }, {
                        "name": "server2",
-                       "url": "http://192.168.56.66:8000/",
+                       "url": "http://192.168.56.66:8005",
                        "role": "backup"
                    }, {
                        "name": "server3",
-                       "url": "http://192.168.56.99:8000/",
+                       "url": "http://192.168.56.99:8005",
                        "basic-auth-user": "foo",
                        "basic-auth-password": "1234",
                        "role": "backup"
@@ -1287,12 +1287,12 @@ default to ``true``:
                        "peers": [
                            {
                                "name": "server1",
-                               "url": "http://192.168.56.33:8000/",
+                               "url": "http://192.168.56.33:8005",
                                "role": "primary"
                            },
                            {
                                "name": "server2",
-                               "url": "http://192.168.56.66:8000/",
+                               "url": "http://192.168.56.66:8005",
                                "role": "secondary"
                            }
                        ]
@@ -1379,12 +1379,12 @@ single page of leases from 60 seconds to 90 seconds:
                        "peers": [
                            {
                                "name": "server1",
-                               "url": "http://192.168.56.33:8000/",
+                               "url": "http://192.168.56.33:8005",
                                "role": "primary"
                            },
                            {
                                "name": "server2",
-                               "url": "http://192.168.56.66:8000/",
+                               "url": "http://192.168.56.66:8005",
                                "role": "secondary"
                            }
                        ]
@@ -1457,12 +1457,12 @@ the HA state machine to pause in the ``waiting`` state after server startup.
                        "peers": [
                            {
                                "name": "server1",
-                               "url": "http://192.168.56.33:8000/",
+                               "url": "http://192.168.56.33:8005",
                                "role": "primary"
                            },
                            {
                                "name": "server2",
-                               "url": "http://192.168.56.66:8000/",
+                               "url": "http://192.168.56.66:8005",
                                "role": "secondary"
                            }
                        ],
@@ -1512,12 +1512,12 @@ Consider the following configuration:
                        "peers": [
                            {
                                "name": "server1",
-                               "url": "http://192.168.56.33:8000/",
+                               "url": "http://192.168.56.33:8005",
                                "role": "primary"
                            },
                            {
                                "name": "server2",
-                               "url": "http://192.168.56.66:8000/",
+                               "url": "http://192.168.56.66:8005",
                                "role": "secondary"
                            }
                        ],
@@ -1593,6 +1593,9 @@ machine as the primary server. This configuration is valid for both the
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port
+        // lower than 1024 should be used (e.g. 890) and, on Linux systems,
+        // the process should have 'CAP_NET_BIND_SERVICE' capabilities.
        "http-port": 8000,
 
        "control-sockets": {
@@ -1683,8 +1686,12 @@ as illustrated below:
                              // Since the HA+MT uses a direct connection, the
                              // DHCPv4 server open its own socket. Note that it
                              // must be different than the one used by the CA
-                             // (typically 8000). In this example, 8001 is used.
-                             "url": "http://192.0.2.1:8001/",
+                             // (typically 8000). In this example, 8005 is used.
+                             // For security reasons, Kea should be run as non root
+                             // user, a port lower than 1024 should be used (e.g. 895)
+                             // and, on Linux systems, the process should have
+                             // 'CAP_NET_BIND_SERVICE' capabilities.
+                             "url": "http://192.0.2.1:8005",
                              // This server is primary. The other one must be
                              // secondary.
                              "role": "primary"
@@ -1696,8 +1703,12 @@ as illustrated below:
                              // Since the HA+MT uses a direct connection, the
                              // DHCPv4 server open its own socket. Note that it
                              // must be different than the one used by the CA
-                             // (typically 8000). In this example, 8001 is used.
-                             "url": "http://192.0.2.2:8001/",
+                             // (typically 8000). In this example, 8005 is used.
+                             // For security reasons, Kea should be run as non root
+                             // user, a port lower than 1024 should be used (e.g. 895)
+                             // and, on Linux systems, the process should have
+                             // 'CAP_NET_BIND_SERVICE' capabilities.
+                             "url": "http://192.0.2.2:8005",
                              // The partner is a secondary. This server is a
                              // primary as specified in the previous "peers"
                              // entry and in "this-server-name" before that.
@@ -2461,13 +2472,13 @@ grouped into relationships as in the snippet below:
                                 "peers": [
                                     {
                                         "name": "server1",
-                                        "url": "http://192.168.56.66:8000/",
+                                        "url": "http://192.168.56.66:8007",
                                         "role": "primary",
                                         "auto-failover": true
                                     },
                                     {
                                         "name": "server2",
-                                        "url": "http://192.168.56.33:8000/",
+                                        "url": "http://192.168.56.33:8007",
                                         "role": "standby",
                                         "auto-failover": true
                                     }
@@ -2485,13 +2496,13 @@ grouped into relationships as in the snippet below:
                                 "peers": [
                                     {
                                         "name": "server3",
-                                        "url": "http://192.168.57.99:8000/",
+                                        "url": "http://192.168.57.99:8007",
                                         "role": "primary",
                                         "auto-failover": true
                                     },
                                     {
                                         "name": "server4",
-                                        "url": "http://192.168.57.33:8000/",
+                                        "url": "http://192.168.57.33:8007",
                                         "role": "standby",
                                         "auto-failover": true
                                     }
@@ -2565,13 +2576,13 @@ branch ``server3``:
                                 "peers": [
                                     {
                                         "name": "server3",
-                                        "url": "http://192.168.57.99:8000/",
+                                        "url": "http://192.168.57.99:8007",
                                         "role": "primary",
                                         "auto-failover": true
                                     },
                                     {
                                         "name": "server4",
-                                        "url": "http://192.168.57.33:8000/",
+                                        "url": "http://192.168.57.33:8007",
                                         "role": "standby",
                                         "auto-failover": true
                                     }
index 88bad10c152ee29396eb19035e13398012c93caa..8051fbeb491f59c4d7164dedf902d04f6d2cb89b 100644 (file)
@@ -249,6 +249,9 @@ in the Kea source and is copied below.
         // listener is different (e.g. 8001) than the one used by CA. Note
         // the commands should still be sent via CA. The dedicated listener
         // is specifically for HA updates only.
+        // For security reasons, Kea should be run as non root user, a port lower
+        // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+        // should have 'CAP_NET_BIND_SERVICE' capabilities.
         "http-port": 8000,
 
         // TLS trust anchor (Certificate Authority). This is a file name or
index aa4a055a50c1a007c2b1123eefa73c93dfd888f0..6251a8e09ab194afcfcf5962f67f1977e4b17b2e 100644 (file)
@@ -317,6 +317,9 @@ capabilities mechanism on Linux systems, Kea can run from an unprivileged accoun
 The Control Agent (CA) can accept incoming HTTP or HTTPS connections. The default port is 8000, which
 does not require privileged access.
 
+For security reasons, Kea should be run as non root user, a port lower than 1024 should be used (e.g. 890)
+and, on Linux systems, the process should have 'CAP_NET_BIND_SERVICE' capabilities.
+
 Securing Kea Administrative Access
 ----------------------------------
 
index 29d81111b097991fd83e1ebac69583d65977cd22..6f7a366feb1ac48d29b908ae9cc9cbff1a54f43e 100644 (file)
@@ -6,7 +6,7 @@
 // do. Comments in this configuration file sometimes refer to sections for more
 // details. These are section numbers in Kea User's Guide. The version matching
 // your software should come with your Kea package, but it is also available
-// in ISC's Knowledgebase (https://kea.readthedocs.io; the direct link for
+// in ISC's Knowledge base (https://kea.readthedocs.io; the direct link for
 // the stable version is https://kea.readthedocs.io/).
 //
 // This configuration file contains only Control Agent's configuration.
@@ -24,6 +24,9 @@
     // listener is different (e.g. 8001) than the one used by CA. Note
     // the commands should still be sent via CA. The dedicated listener
     // is specifically for HA updates only.
+    // For security reasons, Kea should be run as non root user, a port lower
+    // than 1024 should be used (e.g. 890) and, on Linux systems, the process
+    // should have 'CAP_NET_BIND_SERVICE' capabilities.
     "http-port": 8000,
 
     // Allow access only to kea-api user.