cloudstack/systemvm/patches/debian/config/opt/cloud/bin
Rohit Yadav 7ce54bf7a8 CLOUDSTACK-9993: Securing Agents Communications (#2239)
This introduces a new certificate authority framework that allows
pluggable CA provider implementations to handle certificate operations
around issuance, revocation and propagation. The framework injects
itself to `NioServer` to handle agent connections securely. The
framework adds assumptions in `NioClient` that a keystore if available
with known name `cloud.jks` will be used for SSL negotiations and
handshake.

This includes a default 'root' CA provider plugin which creates its own
self-signed root certificate authority on first run and uses it for
issuance and provisioning of certificate to CloudStack agents such as
the KVM, CPVM and SSVM agents and also for the management server for
peer clustering.

Additional changes and notes:
- Comma separate list of management server IPs can be set to the 'host'
  global setting. Newly provisioned agents (KVM/CPVM/SSVM etc) will get
  radomized comma separated list to which they will attempt connection
  or reconnection in provided order. This removes need of a TCP LB on
  port 8250 (default) of the management server(s).
- All fresh deployment will enforce two-way SSL authentication where
  connecting agents will be required to present certificates issued
  by the 'root' CA plugin.
- Existing environment on upgrade will continue to use one-way SSL
  authentication and connecting agents will not be required to present
  certificates.
- A script `keystore-setup` is responsible for initial keystore setup
  and CSR generation on the agent/hosts.
- A script `keystore-cert-import` is responsible for import provided
  certificate payload to the java keystore file.
- Agent security (keystore, certificates etc) are setup initially using
  SSH, and later provisioning is handled via an existing agent connection
  using command-answers. The supported clients and agents are limited to
  CPVM, SSVM, and KVM agents, and clustered management server (peering).
- Certificate revocation does not revoke an existing agent-mgmt server
  connection, however rejects a revoked certificate used during SSL
  handshake.
- Older `cloudstackmanagement.keystore` is deprecated and will no longer
  be used by mgmt server(s) for SSL negotiations and handshake. New
  keystores will be named `cloud.jks`, any additional SSL certificates
  should not be imported in it for use with tomcat etc. The `cloud.jks`
  keystore is stricly used for agent-server communications.
- Management server keystore are validated and renewed on start up only,
  the validity of them are same as the CA certificates.

New APIs:
- listCaProviders: lists all available CA provider plugins
- listCaCertificate: lists the CA certificate(s)
- issueCertificate: issues X509 client certificate with/without a CSR
- provisionCertificate: provisions certificate to a host
- revokeCertificate: revokes a client certificate using its serial

Global settings for the CA framework:
- ca.framework.provider.plugin: The configured CA provider plugin
- ca.framework.cert.keysize: The key size for certificate generation
- ca.framework.cert.signature.algorithm: The certificate signature algorithm
- ca.framework.cert.validity.period: Certificate validity in days
- ca.framework.cert.automatic.renewal: Certificate auto-renewal setting
- ca.framework.background.task.delay: CA background task delay/interval
- ca.framework.cert.expiry.alert.period: Days to check and alert expiring certificates

Global settings for the default 'root' CA provider:
- ca.plugin.root.private.key: (hidden/encrypted) CA private key
- ca.plugin.root.public.key: (hidden/encrypted) CA public key
- ca.plugin.root.ca.certificate: (hidden/encrypted) CA certificate
- ca.plugin.root.issuer.dn: The CA issue distinguished name
- ca.plugin.root.auth.strictness: Are clients required to present certificates
- ca.plugin.root.allow.expired.cert: Are clients with expired certificates allowed

UI changes:
- Button to download/save the CA certificates.

Misc changes:
- Upgrades bountycastle version and uses newer classes
- Refactors SAMLUtil to use new CertUtils

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2017-08-28 12:15:11 +02:00
..
cs Fix public IPs not being removed from the VR when deprovisioned 2017-08-01 20:40:25 +02:00
baremetal-vr.py Removing "global" declaration from if block 2015-03-16 11:38:13 +01:00
baremetal_snat.sh restore barematel work after merge 2014-10-17 10:24:01 +02:00
bumpup_priority.sh CLOUDSTACK-5779: Moving bumpUpPriority, edithosts.sh, dnsmasq.sh to use routeProxy 2014-01-16 16:03:09 -08:00
checkbatchs2svpn.sh Gather all S2S vpn statuses before outputting 2017-07-23 13:07:36 +02:00
checkrouter.sh make both check lines consistent 2015-12-28 17:06:58 +01:00
checks2svpn.sh complete implementation of the StrongSwan VPN feature 2017-02-02 16:18:06 -05:00
cloud-nic.sh Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
configure.py CLOUDSTACK-10030: Make sure that public IPs assigned to VPC are reacheable from inside the VPC (#2221) 2017-08-22 08:50:25 +02:00
cs_cmdline.py ACL issues 2015-03-16 11:40:10 +01:00
cs_dhcp.py CLOUDSTACK-9017 : VPC VR DHCP broken for multihomed guest VMs 2017-08-01 20:40:25 +02:00
cs_firewallrules.py Pep8 changes that got lost with the strange double push request problem last time 2015-05-26 07:07:43 -04:00
cs_forwardingrules.py ACL issues 2015-03-16 11:40:10 +01:00
cs_guestnetwork.py ACL issues 2015-03-16 11:40:10 +01:00
cs_ip.py changed the order fix to be closer to the original code 2017-03-17 15:07:11 -04:00
cs_loadbalancer.py ACL issues 2015-03-16 11:40:10 +01:00
cs_monitorservice.py ACL issues 2015-03-16 11:40:10 +01:00
cs_network_acl.py ACL issues 2015-03-16 11:40:10 +01:00
cs_remoteaccessvpn.py CLOUDSTACK-8690:Added remote access vpn and vpn users configuration 2015-09-09 10:50:50 +05:30
cs_site2sitevpn.py Fix unable to setup more than one Site2Site VPN Connection 2016-01-12 11:24:35 +01:00
cs_staticroutes.py CLOUDSTACK-9266: Make deleting static routes in private gw work 2016-01-30 06:25:00 +01:00
cs_vmdata.py ACL issues 2015-03-16 11:40:10 +01:00
cs_vmp.py Revert "Merge pull request #2084 from shapeblue/passwd-speedup" 2017-06-26 09:58:33 +05:30
cs_vpnusers.py CLOUDSTACK-8690:Added remote access vpn and vpn users configuration 2015-09-09 10:50:50 +05:30
dnsmasq.sh CLOUDSTACK-5779: Moving bumpUpPriority, edithosts.sh, dnsmasq.sh to use routeProxy 2014-01-16 16:03:09 -08:00
edithosts.sh CLOUDSTACK-7974: remove old hostname entry for a VM when adding a VM 2014-12-10 18:25:22 +05:30
getRouterAlerts.sh CLOUDSTACK-9183: bash: /opt/cloud/bin/getRouterAlerts.sh: No such file or directory 2016-10-31 21:44:15 +00:00
get_template_version.sh CLOUDSTACK-9828: GetDomRVersionCommand fails to get the correct version as output 2017-03-09 14:15:45 +05:30
ilb.sh CLOUDSTACK-6047: Make VR LB script accept a file name 2014-02-21 18:26:42 -08:00
ipassoc.sh CLOUDSTACK-7544: Fixed ip addr del issues in ipassoc 2014-09-15 14:54:13 +05:30
ipsectunnel.sh made iptables for the VPN connection more secure 2014-12-08 19:06:55 +01:00
line_edit.py Fancy line editor for Ian 2015-03-16 11:35:11 +01:00
loadbalancer.sh CLOUDSTACK-6047: Make VR LB script accept a file name 2014-02-21 18:26:42 -08:00
master.py CLOUDSTACK-9015 - Make sure the Backup router can talk to the Master router after a stop/start/reboot 2015-11-12 18:13:51 +01:00
merge.py CLOUDSTACK-9999: vpc tiers do not work if vpc has more than 8 tiers (#2180) 2017-08-13 01:19:51 +02:00
monitor_service.sh CLOUDSTACK-6714: monitor script echo service command is added with quotes 2014-05-20 14:11:19 +05:30
netusage.sh Added code to configure netusage for vpc and domR devices 2015-03-16 11:35:27 +01:00
passwd_server CLOUDSTACK-7376 passwd_server attempts to start but terminates with the exit code 137 2014-09-17 09:28:44 -07:00
passwd_server_ip CLOUDSTACK-9749: Disable password service on ilb systemvm (#1912) 2017-08-03 22:38:25 +02:00
passwd_server_ip.py CLOUDSTACK-9058 2015-11-12 08:05:57 +00:00
patchsystemvm.sh CLOUDSTACK-9993: Securing Agents Communications (#2239) 2017-08-28 12:15:11 +02:00
prepare_pxe.sh restore barematel work after merge 2014-10-17 10:24:01 +02:00
savepassword.sh CLOUDSTACK-8331: have savepassword try all interfaces 2015-03-18 14:40:23 +05:30
set_redundant.py Java: Fixing the redundant flag for the router control nic and the guest network command; 2015-03-16 11:39:15 +01:00
test.sh Add missing license headers from recent branch merge 3c429ee 2015-03-18 11:03:54 +05:30
update_config.py Revert "Merge pull request #2084 from shapeblue/passwd-speedup" 2017-06-26 09:58:33 +05:30
vmdata.py Fix PEP8 compliance 2015-03-16 11:38:07 +01:00
vpc_func.sh Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
vpc_netusage.sh Added code to configure netusage for vpc and domR devices 2015-03-16 11:35:27 +01:00
vpc_passwd_server systemvm: fix socat usage 2015-03-30 13:50:39 +05:30
vpc_snat.sh Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
vpc_staticroute.sh Move the system vm to a separate maven project. 2013-09-20 18:31:02 +08:00
vr_cfg.sh CLOUDSTACK-9980: Fix for DNS after network restart with clean up. 2017-06-28 12:21:14 +02:00