X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Fgetting-started-guide%2Fsecurity_considerations.rst;h=33f79eb8aa517ea80fe29946fff4ddd0a863392c;hb=a5d2ffcb2ec9a02a39949d94bf194d9f9d9fdf21;hp=70ac5ac7f4f2250ff3583ce6bb111168bd59483c;hpb=062b9a780a6e28d797cf16cc59dc0cf7a77fce87;p=docs.git diff --git a/docs/getting-started-guide/security_considerations.rst b/docs/getting-started-guide/security_considerations.rst index 70ac5ac7f..33f79eb8a 100644 --- a/docs/getting-started-guide/security_considerations.rst +++ b/docs/getting-started-guide/security_considerations.rst @@ -133,6 +133,8 @@ security model to add the following features: For more information, refer to http://www.osgi.org/Main/HomePage. +.. _securing-karaf: + Securing the Karaf container ============================ @@ -165,16 +167,16 @@ configuration options may be applied to the OpenDaylight Karaf distribution. implementing security for the Karaf container. * For role-based JMX administration, refer to - http://karaf.apache.org/manual/latest/users-guide/monitoring.html. + https://karaf.apache.org/manual/latest/#_monitoring * For remote SSH access configuration, refer to - http://karaf.apache.org/manual/latest/users-guide/remote.html. + https://karaf.apache.org/manual/latest/#_remote * For WebConsole access, refer to - http://karaf.apache.org/manual/latest/users-guide/webconsole.html. + https://karaf.apache.org/manual/latest/#_webconsole * For Karaf security features, refer to - http://karaf.apache.org/manual/latest/developers-guide/security-framework.html. + https://karaf.apache.org/manual/latest/#_security_framework Disabling the remote shutdown port ---------------------------------- @@ -199,9 +201,7 @@ Securing OpenDaylight using AAA =============================== AAA stands for Authentication, Authorization, and Accounting. All three of -can help improve the security posture of and OpenDaylight deployment. In this -release, only authentication is fully supported, while authorization is an -experimental feature and accounting remains a work in progress. +these services can help improve the security posture of an OpenDaylight deployment. The vast majority of OpenDaylight's northbound APIs (and all RESTCONF APIs) are protected by AAA by default when installing the +odl-restconf+ feature. In the @@ -211,6 +211,171 @@ per-project release notes. By default, OpenDaylight has only one user account with the username and password *admin*. This should be changed before deploying OpenDaylight. +Securing RESTCONF using HTTPS +============================= + +To secure Jetty RESTful services, including RESTCONF, you must configure the +Jetty server to utilize SSL by performing the following steps. + +#. Issue the following command sequence to create a self-signed certificate for + use by the ODL deployment. + + :: + + keytool -keystore .keystore -alias jetty -genkey -keyalg RSA + Enter keystore password: 123456 + What is your first and last name? + [Unknown]: odl + What is the name of your organizational unit? + [Unknown]: odl + What is the name of your organization? + [Unknown]: odl + What is the name of your City or Locality? + [Unknown]: + What is the name of your State or Province? + [Unknown]: + What is the two-letter country code for this unit? + [Unknown]: + Is CN=odl, OU=odl, O=odl, + L=Unknown, ST=Unknown, C=Unknown correct? + [no]: yes + + +#. After the key has been obtained, make the following changes to + the ``etc/custom.properties`` file to set a few default properties. + + :: + + org.osgi.service.http.secure.enabled=true + org.osgi.service.http.port.secure=8443 + org.ops4j.pax.web.ssl.keystore=./etc/.keystore + org.ops4j.pax.web.ssl.password=123456 + org.ops4j.pax.web.ssl.keypassword=123456 + +#. Then edit the ``etc/jetty.xml`` file with the appropriate HTTP connectors. + + For example: + + :: + + + + + + + + + + https + + + + 32768 + 8192 + 8192 + + + false + + false + 512 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jetty-default + + + + + + + + + + + + + + + karaf + karaf + + + org.apache.karaf.jaas.boot.principal.RolePrincipal + + + + + + + + + default + karaf + + + org.apache.karaf.jaas.boot.principal.RolePrincipal + + + + + + + + +The configuration snippet above adds a connector that is protected by SSL on +port 8443. You can test that the changes have succeeded by restarting Karaf, +issuing the following ``curl`` command, and ensuring that the 2XX HTTP status +code appears in the returned message. + +:: + + curl -u admin:admin -v -k https://localhost:8443/restconf/modules + Security Considerations for Clustering ======================================